diff --git a/.appveyor.yml b/.appveyor.yml index e7c42827..32e8f2bd 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -66,7 +66,6 @@ after_test: bin\glslangValidator.exe bin\spirv-remap.exe include\glslang\* - include\SPIRV\* lib\glslang%SUFFIX%.lib lib\HLSL%SUFFIX%.lib lib\OGLCompiler%SUFFIX%.lib diff --git a/.travis.yml b/.travis.yml index 24789121..1fa3fc01 100644 --- a/.travis.yml +++ b/.travis.yml @@ -99,7 +99,6 @@ after_success: zip ${TARBALL} bin/glslangValidator include/glslang/* - include/SPIRV/* lib/libglslang${SUFFIX}.a lib/libHLSL${SUFFIX}.a lib/libOGLCompiler${SUFFIX}.a diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 00000000..cc18aa26 --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,245 @@ +package( + 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] diff --git a/BUILD.gn b/BUILD.gn index be9e1ab9..098d7de6 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -33,6 +33,19 @@ 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") { @@ -47,8 +60,10 @@ source_set("glslang_sources") { 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", @@ -159,7 +174,7 @@ source_set("glslang_sources") { } if (is_clang) { - cflags_cc = [ + cflags = [ "-Wno-extra-semi", "-Wno-ignored-qualifiers", "-Wno-implicit-fallthrough", @@ -167,6 +182,7 @@ source_set("glslang_sources") { "-Wno-sign-compare", "-Wno-unused-variable", "-Wno-missing-field-initializers", + "-Wno-newline-eof", ] } if (is_win && !is_clang) { @@ -180,6 +196,9 @@ source_set("glslang_sources") { "${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") { @@ -191,6 +210,9 @@ source_set("glslang_default_resource_limits_sources") { ":glslang_sources", ] public_configs = [ ":glslang_public" ] + + configs -= _configs_to_remove + configs += _configs_to_add } executable("glslang_validator") { @@ -206,6 +228,9 @@ executable("glslang_validator") { ":glslang_default_resource_limits_sources", ":glslang_sources", ] + + configs -= _configs_to_remove + configs += _configs_to_add } executable("spirv-remap") { @@ -216,4 +241,7 @@ executable("spirv-remap") { deps = [ ":glslang_sources", ] + + configs -= _configs_to_remove + configs += _configs_to_add } diff --git a/CMakeLists.txt b/CMakeLists.txt index 196194d1..d6fc8d42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,9 @@ if (POLICY CMP0048) 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) @@ -13,6 +16,7 @@ include(GNUInstallDirs) include(CMakeDependentOption) option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) +option(BUILD_EXTERNAL "Build external dependencies in /External" ON) set(LIB_TYPE STATIC) @@ -28,13 +32,16 @@ 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 minumum needed for web use" 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) +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) @@ -50,7 +57,7 @@ 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") + 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}") @@ -61,8 +68,10 @@ macro(glslang_pch SRCS PCHCPP) endmacro(glslang_pch) project(glslang) -# make testing optional -include(CTest) + +if(ENABLE_CTEST) + include(CTest) +endif() if(ENABLE_HLSL) add_definitions(-DENABLE_HLSL) @@ -70,6 +79,9 @@ 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) @@ -98,38 +110,29 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "MSVC") add_compile_options(/GR-) # Disable RTTI endif() -if(ENABLE_GLSLANG_WEB) - 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(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") - add_link_options("SHELL: -s MODULARIZE=1") - if(ENABLE_EMSCRIPTEN_SINGLE_FILE) - add_link_options("SHELL: -s SINGLE_FILE=1") - endif(ENABLE_EMSCRIPTEN_SINGLE_FILE) - - if(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE) - add_link_options("SHELL: -s ENVIRONMENT=node") - add_link_options("SHELL: -s BINARYEN_ASYNC_COMPILATION=0") + 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_link_options("SHELL: -s ENVIRONMENT=web,worker") - add_link_options("SHELL: -s EXPORT_ES6=1") + add_compile_options(-Os -fno-exceptions) + add_link_options(-Os) endif() - else() - if(MSVC) - add_compile_options(/Os /GR-) - else() - add_compile_options(-Os -fno-exceptions) - add_link_options(-Os) - endif() - endif(EMSCRIPTEN) -endif(ENABLE_GLSLANG_WEB) + endif(ENABLE_GLSLANG_WEB) +endif(EMSCRIPTEN) # Request C++11 if(${CMAKE_VERSION} VERSION_LESS 3.1) @@ -153,12 +156,12 @@ 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(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External) +if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External) find_package(PythonInterp 3 REQUIRED) -endif() -# We depend on these for later projects, so they should come first. -add_subdirectory(External) + # 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) @@ -183,4 +186,29 @@ add_subdirectory(SPIRV) if(ENABLE_HLSL) add_subdirectory(hlsl) endif(ENABLE_HLSL) -add_subdirectory(gtests) +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) diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt index 5bb3f0ee..e0096743 100644 --- a/OGLCompilersDLL/CMakeLists.txt +++ b/OGLCompilersDLL/CMakeLists.txt @@ -9,6 +9,7 @@ if(WIN32) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OGLCompiler + install(TARGETS OGLCompiler EXPORT OGLCompilerTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT OGLCompilerTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/README.md b/README.md index 427cf5a5..67801e47 100755 --- a/README.md +++ b/README.md @@ -28,6 +28,15 @@ 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 ------------------------------- @@ -94,8 +103,8 @@ cd ../.. ``` If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan, -or wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, install -spirv-tools with this: +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 @@ -166,26 +175,30 @@ 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). -### WASM for the the Web +### Building to WASM for the Web and Node -Use the steps in [Build Steps](#build-steps), which following notes/exceptions: +Use the steps in [Build Steps](#build-steps), with the following notes/exceptions: * For building the web subset of core glslang: - + `m4` also needs a `-DGLSLANG_WEB` argument, or simply execute `updateGrammar web` from the glslang subdirectory - + turn off the CMAKE options for `BUILD_TESTING`, `ENABLE_OPT`, and `INSTALL_GTEST`, - while turning on `ENABLE_GLSLANG_WEB` + + 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) -* Do not checkout SPIRV-Tools into `External` - + Does not work correctly with emscripten out of the box and we don't want it - in the build anyway. *TBD* Have build ignore SPIRV-Tools for web build -* Wrap call to `cmake` using `emconfigure` with ENABLE_GLSLANG_WEB=ON: - + e.g. For Linux, `emconfigure cmake -DCMAKE_BUILD_TYPE=Release - -DENABLE_GLSLANG_WEB=ON -DCMAKE_INSTALL_PREFIX="$(pwd)/install" ..` -* To get a 'true' minimized build, make sure to use `brotli` to compress the .js + + [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 ------- @@ -223,6 +236,11 @@ Running `runtests` script-backed tests: 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 @@ -303,7 +321,7 @@ 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 (orignal) +### 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`. diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt old mode 100644 new mode 100755 index 94d2ebeb..439b9918 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -36,7 +36,9 @@ set(SPVREMAP_HEADERS add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS}) set_property(TARGET SPIRV PROPERTY FOLDER glslang) set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON) -target_include_directories(SPIRV PUBLIC ..) +target_include_directories(SPIRV PUBLIC + $ + $) if (ENABLE_SPVREMAPPER) add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) @@ -57,7 +59,9 @@ if(ENABLE_OPT) PRIVATE ${spirv-tools_SOURCE_DIR}/source ) target_link_libraries(SPIRV glslang SPIRV-Tools-opt) - target_include_directories(SPIRV PUBLIC ../External) + target_include_directories(SPIRV PUBLIC + $ + $) else() target_link_libraries(SPIRV glslang) endif(ENABLE_OPT) @@ -70,22 +74,29 @@ endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) if (ENABLE_SPVREMAPPER) - install(TARGETS SPVRemapper + install(TARGETS SPVRemapper EXPORT SPVRemapperTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - install(TARGETS SPIRV + 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 + install(TARGETS SPVRemapper EXPORT SPVRemapperTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - install(TARGETS SPIRV + 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) diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h index 1140bef5..e58e836a 100644 --- a/SPIRV/GLSL.ext.KHR.h +++ b/SPIRV/GLSL.ext.KHR.h @@ -41,6 +41,7 @@ static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_stora 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"; diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp old mode 100644 new mode 100755 index 2c9fcd81..745dd7f2 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -100,11 +100,11 @@ struct OpDecorations { spv::Decoration precision; #ifdef GLSLANG_WEB - void addNoContraction(spv::Builder&, spv::Id) const { }; - void addNonUniform(spv::Builder&, spv::Id) const { }; + 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); }; + 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; @@ -217,11 +217,6 @@ protected: bool isTrivial(const glslang::TIntermTyped* node); spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right); spv::Id getExtBuiltins(const char* name); - void addPre13Extension(const char* ext) - { - if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) - builder.addExtension(ext); - } std::pair getForcedType(spv::BuiltIn, const glslang::TType&); spv::Id translateForcedType(spv::Id object); spv::Id createCompositeConstruct(spv::Id typeId, std::vector constituents); @@ -297,8 +292,8 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage) switch (stage) { case EShLangVertex: return spv::ExecutionModelVertex; case EShLangFragment: return spv::ExecutionModelFragment; -#ifndef GLSLANG_WEB case EShLangCompute: return spv::ExecutionModelGLCompute; +#ifndef GLSLANG_WEB case EShLangTessControl: return spv::ExecutionModelTessellationControl; case EShLangTessEvaluation: return spv::ExecutionModelTessellationEvaluation; case EShLangGeometry: return spv::ExecutionModelGeometry; @@ -379,22 +374,20 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useSto // Translate glslang type to SPIR-V memory decorations. void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector& memory, bool useVulkanMemoryModel) { -#ifndef GLSLANG_WEB if (!useVulkanMemoryModel) { - if (qualifier.coherent) + if (qualifier.isCoherent()) memory.push_back(spv::DecorationCoherent); - if (qualifier.volatil) { + if (qualifier.isVolatile()) { memory.push_back(spv::DecorationVolatile); memory.push_back(spv::DecorationCoherent); } } - if (qualifier.restrict) + if (qualifier.isRestrict()) memory.push_back(spv::DecorationRestrict); if (qualifier.isReadOnly()) memory.push_back(spv::DecorationNonWritable); if (qualifier.isWriteOnly()) memory.push_back(spv::DecorationNonReadable); -#endif } // Translate glslang type to SPIR-V layout decorations. @@ -517,7 +510,7 @@ spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(const glsl { #ifndef GLSLANG_WEB if (qualifier.isNonUniform()) { - builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); builder.addCapability(spv::CapabilityShaderNonUniformEXT); return spv::DecorationNonUniformEXT; } else @@ -678,6 +671,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI 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. @@ -701,7 +701,7 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI glslangIntermediate->getStage() == EShLangTessControl || glslangIntermediate->getStage() == EShLangTessEvaluation) { - builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer); + builder.addIncorporatedExtension(spv::E_SPV_EXT_shader_viewport_index_layer, spv::Spv_1_5); builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); } return spv::BuiltInViewportIndex; @@ -726,23 +726,23 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI glslangIntermediate->getStage() == EShLangTessControl || glslangIntermediate->getStage() == EShLangTessEvaluation) { - builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer); + builder.addIncorporatedExtension(spv::E_SPV_EXT_shader_viewport_index_layer, spv::Spv_1_5); builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); } return spv::BuiltInLayer; case glslang::EbvBaseVertex: - addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addIncorporatedExtension(spv::E_SPV_KHR_shader_draw_parameters, spv::Spv_1_3); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInBaseVertex; case glslang::EbvBaseInstance: - addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addIncorporatedExtension(spv::E_SPV_KHR_shader_draw_parameters, spv::Spv_1_3); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInBaseInstance; case glslang::EbvDrawId: - addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addIncorporatedExtension(spv::E_SPV_KHR_shader_draw_parameters, spv::Spv_1_3); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInDrawIndex; @@ -762,12 +762,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvTessCoord: return spv::BuiltInTessCoord; case glslang::EbvPatchVertices: return spv::BuiltInPatchVertices; case glslang::EbvHelperInvocation: return spv::BuiltInHelperInvocation; - 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; case glslang::EbvSubGroupSize: builder.addExtension(spv::E_SPV_KHR_shader_ballot); @@ -874,12 +868,12 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI return spv::BuiltInBaryCoordPullModelAMD; case glslang::EbvDeviceIndex: - addPre13Extension(spv::E_SPV_KHR_device_group); + builder.addIncorporatedExtension(spv::E_SPV_KHR_device_group, spv::Spv_1_3); builder.addCapability(spv::CapabilityDeviceGroup); return spv::BuiltInDeviceIndex; case glslang::EbvViewIndex: - addPre13Extension(spv::E_SPV_KHR_multiview); + builder.addIncorporatedExtension(spv::E_SPV_KHR_multiview, spv::Spv_1_3); builder.addCapability(spv::CapabilityMultiView); return spv::BuiltInViewIndex; @@ -1192,7 +1186,7 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T } if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) { - addPre13Extension(spv::E_SPV_KHR_storage_buffer_storage_class); + builder.addIncorporatedExtension(spv::E_SPV_KHR_storage_buffer_storage_class, spv::Spv_1_3); return spv::StorageClassStorageBuffer; } @@ -1208,8 +1202,8 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T case glslang::EvqGlobal: return spv::StorageClassPrivate; case glslang::EvqConstReadOnly: return spv::StorageClassFunction; case glslang::EvqTemporary: return spv::StorageClassFunction; -#ifndef GLSLANG_WEB 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; @@ -1253,13 +1247,13 @@ void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TTyp // assume a dynamically uniform index if (baseType.getBasicType() == glslang::EbtSampler) { if (baseType.getQualifier().hasAttachment()) { - builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); builder.addCapability(spv::CapabilityInputAttachmentArrayDynamicIndexingEXT); } else if (baseType.isImage() && baseType.getSampler().isBuffer()) { - builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); builder.addCapability(spv::CapabilityStorageTexelBufferArrayDynamicIndexingEXT); } else if (baseType.isTexture() && baseType.getSampler().isBuffer()) { - builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); builder.addCapability(spv::CapabilityUniformTexelBufferArrayDynamicIndexingEXT); } } @@ -1404,13 +1398,13 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl if (glslangIntermediate->usingPhysicalStorageBuffer()) { addressingModel = spv::AddressingModelPhysicalStorageBuffer64EXT; - builder.addExtension(spv::E_SPV_EXT_physical_storage_buffer); + 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.addExtension(spv::E_SPV_KHR_vulkan_memory_model); + builder.addIncorporatedExtension(spv::E_SPV_KHR_vulkan_memory_model, spv::Spv_1_5); } builder.setMemoryModel(addressingModel, memoryModel); @@ -1470,13 +1464,20 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl 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; + 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); @@ -1494,7 +1495,6 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl #endif break; -#ifndef GLSLANG_WEB case EShLangCompute: builder.addCapability(spv::CapabilityShader); builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0), @@ -1510,6 +1510,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl builder.addExtension(spv::E_SPV_NV_compute_shader_derivatives); } break; +#ifndef GLSLANG_WEB case EShLangTessEvaluation: case EShLangTessControl: builder.addCapability(spv::CapabilityTessellation); @@ -1629,11 +1630,11 @@ void TGlslangToSpvTraverser::finishSpv() for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it) entryPoint->addIdOperand(*it); -#ifndef GLSLANG_WEB - // Add capabilities, extensions, remove unneeded decorations, etc., + // 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(); -#endif } // Write the SPV into 'out'. @@ -2551,7 +2552,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt binOp = glslang::EOpMod; break; -#ifndef GLSLANG_WEB case glslang::EOpEmitVertex: case glslang::EOpEndPrimitive: case glslang::EOpBarrier: @@ -2575,10 +2575,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // These all have 0 operands and will naturally finish up in the code below for 0 operands break; - case glslang::EOpAtomicStore: - noReturnValue = true; - // fallthrough - case glslang::EOpAtomicLoad: case glslang::EOpAtomicAdd: case glslang::EOpAtomicMin: case glslang::EOpAtomicMax: @@ -2590,6 +2586,14 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt 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: @@ -2604,6 +2608,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt 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: @@ -2672,6 +2687,19 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt 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) @@ -2690,14 +2718,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType()); } 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: case glslang::EOpAtomicLoad: case glslang::EOpAtomicStore: case glslang::EOpAtomicCounterAdd: @@ -2823,12 +2843,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt builder.createNoResultOp(spv::OpCooperativeMatrixStoreNV, idImmOps); result = 0; - } else if (atomic) { - // Handle all atomics - result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), lvalueCoherentFlags); } 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: @@ -3242,11 +3262,11 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* switch (storageClass) { case spv::StorageClassInput: case spv::StorageClassOutput: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); builder.addCapability(spv::CapabilityStorageInputOutput16); break; case spv::StorageClassUniform: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); if (node->getType().getQualifier().storage == glslang::EvqBuffer) builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); else @@ -3254,12 +3274,12 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* break; #ifndef GLSLANG_WEB case spv::StorageClassPushConstant: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); builder.addCapability(spv::CapabilityStoragePushConstant16); break; case spv::StorageClassStorageBuffer: case spv::StorageClassPhysicalStorageBufferEXT: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); break; #endif @@ -3274,13 +3294,13 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* if (node->getType().contains8BitInt()) { if (storageClass == spv::StorageClassPushConstant) { - builder.addExtension(spv::E_SPV_KHR_8bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); builder.addCapability(spv::CapabilityStoragePushConstant8); } else if (storageClass == spv::StorageClassUniform) { - builder.addExtension(spv::E_SPV_KHR_8bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); builder.addCapability(spv::CapabilityUniformAndStorageBuffer8BitAccess); } else if (storageClass == spv::StorageClassStorageBuffer) { - builder.addExtension(spv::E_SPV_KHR_8bit_storage); + builder.addIncorporatedExtension(spv::E_SPV_KHR_8bit_storage, spv::Spv_1_5); builder.addCapability(spv::CapabilityStorageBuffer8BitAccess); } else { builder.addCapability(spv::CapabilityInt8); @@ -3537,11 +3557,11 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty else { #ifndef GLSLANG_WEB if (!lastBufferBlockMember) { - builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5); builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT); } - spvType = builder.makeRuntimeArray(spvType); #endif + spvType = builder.makeRuntimeArray(spvType); } if (stride > 0) builder.addDecoration(spvType, spv::DecorationArrayStride, stride); @@ -3706,6 +3726,7 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, 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, @@ -4164,9 +4185,11 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF // memory and use RestrictPointer/AliasedPointer. if (originalParam(type.getQualifier().storage, type, false) || !writableParam(type.getQualifier().storage)) { - decorations.push_back(type.getQualifier().restrict ? spv::DecorationRestrict : spv::DecorationAliased); + decorations.push_back(type.getQualifier().isRestrict() ? spv::DecorationRestrict : + spv::DecorationAliased); } else { - decorations.push_back(type.getQualifier().restrict ? spv::DecorationRestrictPointerEXT : spv::DecorationAliasedPointerEXT); + decorations.push_back(type.getQualifier().isRestrict() ? spv::DecorationRestrictPointerEXT : + spv::DecorationAliasedPointerEXT); } } }; @@ -4974,6 +4997,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } +#ifndef GLSLANG_WEB // nonprivate if (imageType.getQualifier().nonprivate) { params.nonprivate = true; @@ -4983,6 +5007,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO if (imageType.getQualifier().volatil) { params.volatil = true; } +#endif std::vector result( 1, builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, @@ -5217,6 +5242,30 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD 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: @@ -5731,6 +5780,18 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe 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: @@ -6278,6 +6339,13 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora 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: @@ -6399,7 +6467,7 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv scopeId = builder.makeUintConstant(spv::ScopeDevice); } // semantics default to relaxed - spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() ? + spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() && glslangIntermediate->usingVulkanMemoryModel() ? spv::MemorySemanticsVolatileMask : spv::MemorySemanticsMaskNone); spv::Id semanticsId2 = semanticsId; @@ -6837,8 +6905,9 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s default: assert(0 && "Unhandled subgroup operation!"); } - const bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; - const bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; + + const bool isUnsigned = isTypeUnsignedInt(typeProxy); + const bool isFloat = isTypeFloat(typeProxy); const bool isBool = typeProxy == glslang::EbtBool; spv::Op opCode = spv::OpNop; @@ -7167,6 +7236,48 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: 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) @@ -7325,47 +7436,6 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter); libCall = spv::InterpolateAtVertexAMD; 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; case glslang::EOpReportIntersectionNV: { @@ -7473,17 +7543,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: // Intrinsics with no arguments (or no return value, and no precision). spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId) { -#ifndef GLSLANG_WEB // 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::EOpEmitVertex: - builder.createNoResultOp(spv::OpEmitVertex); - return 0; - case glslang::EOpEndPrimitive: - builder.createNoResultOp(spv::OpEndPrimitive); - return 0; case glslang::EOpBarrier: if (glslangIntermediate->getStage() == EShLangTessControl) { if (glslangIntermediate->usingVulkanMemoryModel()) { @@ -7504,18 +7567,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAllMemory | spv::MemorySemanticsAcquireReleaseMask); return 0; - case glslang::EOpMemoryBarrierAtomicCounter: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; case glslang::EOpMemoryBarrierBuffer: builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsUniformMemoryMask | spv::MemorySemanticsAcquireReleaseMask); return 0; - case glslang::EOpMemoryBarrierImage: - builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; case glslang::EOpMemoryBarrierShared: builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsWorkgroupMemoryMask | spv::MemorySemanticsAcquireReleaseMask); @@ -7524,6 +7579,15 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: 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 | @@ -7568,6 +7632,14 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: 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); @@ -7615,10 +7687,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.addCapability(spv::CapabilityShaderClockKHR); return builder.createOp(spv::OpReadClockKHR, typeId, args); } +#endif default: break; } -#endif logger->missingFunctionality("unknown operation with no arguments"); @@ -7823,7 +7895,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n // We now know we have a specialization constant to build -#ifndef GLSLANG_WEB // 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) { @@ -7838,7 +7909,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n } return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true); } -#endif // 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. @@ -8174,7 +8244,8 @@ int GetSpirvGeneratorVersion() // 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 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 diff --git a/SPIRV/GlslangToSpv.h b/SPIRV/GlslangToSpv.h index 86e1c23b..3907be43 100755 --- a/SPIRV/GlslangToSpv.h +++ b/SPIRV/GlslangToSpv.h @@ -40,7 +40,7 @@ #endif #include "SpvTools.h" -#include "../glslang/Include/intermediate.h" +#include "glslang/Include/intermediate.h" #include #include diff --git a/SPIRV/InReadableOrder.cpp b/SPIRV/InReadableOrder.cpp index 52b29613..9d9410be 100644 --- a/SPIRV/InReadableOrder.cpp +++ b/SPIRV/InReadableOrder.cpp @@ -61,17 +61,22 @@ namespace { // Use by calling visit() on the root block. class ReadableOrderTraverser { public: - explicit ReadableOrderTraverser(std::function callback) : callback_(callback) {} + 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), then descends into its + // 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. - void visit(Block* block) + // 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); + callback_(block, why, header); visited_.insert(block); Block* mergeBlock = nullptr; Block* continueBlock = nullptr; @@ -87,27 +92,40 @@ public: delayed_.insert(continueBlock); } } - const auto successors = block->getSuccessors(); - for (auto it = successors.cbegin(); it != successors.cend(); ++it) - visit(*it); + 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); + visit(continueBlock, continueWhy, block); } if (mergeBlock) { + const spv::ReachReason mergeWhy = + (reachableViaControlFlow_.count(mergeBlock) > 0) + ? spv::ReachViaControlFlow + : spv::ReachDeadMerge; delayed_.erase(mergeBlock); - visit(mergeBlock); + visit(mergeBlock, mergeWhy, block); } } private: - std::function callback_; + 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) +void spv::inReadableOrder(Block* root, std::function callback) { - ReadableOrderTraverser(callback).visit(root); + ReadableOrderTraverser(callback).visit(root, spv::ReachViaControlFlow, nullptr); } diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index a99a0c30..31fee975 100644 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -67,6 +67,7 @@ typedef enum { 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 { @@ -105,6 +106,20 @@ public: 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); @@ -668,16 +683,21 @@ public: // based on the type of the base and the chain of dereferences. Id accessChainGetInferredType(); - // Add capabilities, extensions, remove unneeded decorations, etc., + // 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 instruction in a reachable block in a function. - void postProcessReachable(const 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; diff --git a/SPIRV/SpvPostProcess.cpp b/SPIRV/SpvPostProcess.cpp index 18765a31..d40174d1 100644 --- a/SPIRV/SpvPostProcess.cpp +++ b/SPIRV/SpvPostProcess.cpp @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -57,6 +58,7 @@ namespace spv { 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. @@ -318,17 +320,16 @@ void Builder::postProcess(Instruction& inst) } } } - -// Called for each instruction in a reachable block. -void Builder::postProcessReachable(const Instruction&) -{ - // did have code here, but questionable to do so without deleting the instructions -} +#endif // comment in header -void Builder::postProcess() +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 @@ -336,16 +337,41 @@ void Builder::postProcess() for (auto fi = module.getFunctions().cbegin(); fi != module.getFunctions().cend(); fi++) { Function* f = *fi; Block* entry = f->getEntryBlock(); - inReadableOrder(entry, [&reachableBlocks](const Block* b) { reachableBlocks.insert(b); }); + 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 (reachableBlocks.count(b) == 0) { - for (auto ii = b->getInstructions().cbegin(); ii != b->getInstructions().cend(); ii++) + 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 { @@ -353,7 +379,11 @@ void Builder::postProcess() 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 @@ -363,24 +393,17 @@ void Builder::postProcess() Instruction* type = groupedTypes[OpTypePointer][t]; if (type->getImmediateOperand(0) == (unsigned)StorageClassPhysicalStorageBufferEXT) { if (containsType(type->getIdOperand(1), OpTypeInt, 8)) { - addExtension(spv::E_SPV_KHR_8bit_storage); + 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)) { - addExtension(spv::E_SPV_KHR_16bit_storage); + addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3); addCapability(spv::CapabilityStorageBuffer16BitAccess); } } } - // process all reachable instructions... - for (auto bi = reachableBlocks.cbegin(); bi != reachableBlocks.cend(); ++bi) { - const Block* block = *bi; - const auto function = [this](const std::unique_ptr& inst) { postProcessReachable(*inst.get()); }; - std::for_each(block->getInstructions().begin(), block->getInstructions().end(), function); - } - // process all block-contained instructions for (auto fi = module.getFunctions().cbegin(); fi != module.getFunctions().cend(); fi++) { Function* f = *fi; @@ -414,5 +437,14 @@ void Builder::postProcess() } } } +#endif + +// comment in header +void Builder::postProcess() { + postProcessCFG(); +#ifndef GLSLANG_WEB + postProcessFeatures(); +#endif +} }; // end spv namespace diff --git a/SPIRV/SpvTools.cpp b/SPIRV/SpvTools.cpp index 698f154a..7c3b0391 100644 --- a/SPIRV/SpvTools.cpp +++ b/SPIRV/SpvTools.cpp @@ -173,6 +173,7 @@ void SpirvToolsLegalize(const glslang::TIntermediate&, std::vector if (options->generateDebugInfo) { optimizer.RegisterPass(spvtools::CreatePropagateLineInfoPass()); } + optimizer.RegisterPass(spvtools::CreateWrapOpKillPass()); optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass()); optimizer.RegisterPass(spvtools::CreateMergeReturnPass()); optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass()); @@ -196,8 +197,6 @@ void SpirvToolsLegalize(const glslang::TIntermediate&, std::vector optimizer.RegisterPass(spvtools::CreateDeadInsertElimPass()); if (options->optimizeSize) { optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass()); - // TODO(greg-lunarg): Add this when AMD driver issues are resolved - // optimizer.RegisterPass(CreateCommonUniformElimPass()); } optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); optimizer.RegisterPass(spvtools::CreateCFGCleanupPass()); diff --git a/SPIRV/SpvTools.h b/SPIRV/SpvTools.h index 7422d012..59c914da 100644 --- a/SPIRV/SpvTools.h +++ b/SPIRV/SpvTools.h @@ -46,7 +46,7 @@ #include #endif -#include "../glslang/MachineIndependent/localintermediate.h" +#include "glslang/MachineIndependent/localintermediate.h" #include "Logger.h" namespace glslang { diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index b0bcdfbe..bee5c797 100644 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -931,6 +931,8 @@ const char* CapabilityString(int info) case CapabilityDemoteToHelperInvocationEXT: return "DemoteToHelperInvocationEXT"; case CapabilityShaderClockKHR: return "ShaderClockKHR"; + case CapabilityIntegerFunctions2INTEL: return "CapabilityIntegerFunctions2INTEL"; + default: return "Bad"; } } diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp index 59fdecee..1e96f7b4 100644 --- a/SPIRV/spirv.hpp +++ b/SPIRV/spirv.hpp @@ -91,6 +91,7 @@ enum AddressingModel { AddressingModelLogical = 0, AddressingModelPhysical32 = 1, AddressingModelPhysical64 = 2, + AddressingModelPhysicalStorageBuffer64 = 5348, AddressingModelPhysicalStorageBuffer64EXT = 5348, AddressingModelMax = 0x7fffffff, }; @@ -99,6 +100,7 @@ enum MemoryModel { MemoryModelSimple = 0, MemoryModelGLSL450 = 1, MemoryModelOpenCL = 2, + MemoryModelVulkan = 3, MemoryModelVulkanKHR = 3, MemoryModelMax = 0x7fffffff, }; @@ -183,6 +185,7 @@ enum StorageClass { StorageClassHitAttributeNV = 5339, StorageClassIncomingRayPayloadNV = 5342, StorageClassShaderRecordBufferNV = 5343, + StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBufferEXT = 5349, StorageClassMax = 0x7fffffff, }; @@ -311,9 +314,13 @@ enum ImageOperandsShift { 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, @@ -330,9 +337,13 @@ enum ImageOperandsMask { 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, @@ -448,8 +459,11 @@ enum Decoration { DecorationPerViewNV = 5272, DecorationPerTaskNV = 5273, DecorationPerVertexNV = 5285, + DecorationNonUniform = 5300, DecorationNonUniformEXT = 5300, + DecorationRestrictPointer = 5355, DecorationRestrictPointerEXT = 5355, + DecorationAliasedPointer = 5356, DecorationAliasedPointerEXT = 5356, DecorationCounterBuffer = 5634, DecorationHlslCounterBufferGOOGLE = 5634, @@ -630,8 +644,11 @@ enum MemorySemanticsShift { MemorySemanticsCrossWorkgroupMemoryShift = 9, MemorySemanticsAtomicCounterMemoryShift = 10, MemorySemanticsImageMemoryShift = 11, + MemorySemanticsOutputMemoryShift = 12, MemorySemanticsOutputMemoryKHRShift = 12, + MemorySemanticsMakeAvailableShift = 13, MemorySemanticsMakeAvailableKHRShift = 13, + MemorySemanticsMakeVisibleShift = 14, MemorySemanticsMakeVisibleKHRShift = 14, MemorySemanticsVolatileShift = 15, MemorySemanticsMax = 0x7fffffff, @@ -649,8 +666,11 @@ enum MemorySemanticsMask { MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, MemorySemanticsAtomicCounterMemoryMask = 0x00000400, MemorySemanticsImageMemoryMask = 0x00000800, + MemorySemanticsOutputMemoryMask = 0x00001000, MemorySemanticsOutputMemoryKHRMask = 0x00001000, + MemorySemanticsMakeAvailableMask = 0x00002000, MemorySemanticsMakeAvailableKHRMask = 0x00002000, + MemorySemanticsMakeVisibleMask = 0x00004000, MemorySemanticsMakeVisibleKHRMask = 0x00004000, MemorySemanticsVolatileMask = 0x00008000, }; @@ -659,8 +679,11 @@ enum MemoryAccessShift { MemoryAccessVolatileShift = 0, MemoryAccessAlignedShift = 1, MemoryAccessNontemporalShift = 2, + MemoryAccessMakePointerAvailableShift = 3, MemoryAccessMakePointerAvailableKHRShift = 3, + MemoryAccessMakePointerVisibleShift = 4, MemoryAccessMakePointerVisibleKHRShift = 4, + MemoryAccessNonPrivatePointerShift = 5, MemoryAccessNonPrivatePointerKHRShift = 5, MemoryAccessMax = 0x7fffffff, }; @@ -670,8 +693,11 @@ enum MemoryAccessMask { MemoryAccessVolatileMask = 0x00000001, MemoryAccessAlignedMask = 0x00000002, MemoryAccessNontemporalMask = 0x00000004, + MemoryAccessMakePointerAvailableMask = 0x00000008, MemoryAccessMakePointerAvailableKHRMask = 0x00000008, + MemoryAccessMakePointerVisibleMask = 0x00000010, MemoryAccessMakePointerVisibleKHRMask = 0x00000010, + MemoryAccessNonPrivatePointerMask = 0x00000020, MemoryAccessNonPrivatePointerKHRMask = 0x00000020, }; @@ -681,6 +707,7 @@ enum Scope { ScopeWorkgroup = 2, ScopeSubgroup = 3, ScopeInvocation = 4, + ScopeQueueFamily = 5, ScopeQueueFamilyKHR = 5, ScopeMax = 0x7fffffff, }; @@ -781,6 +808,8 @@ enum Capability { CapabilityGroupNonUniformShuffleRelative = 66, CapabilityGroupNonUniformClustered = 67, CapabilityGroupNonUniformQuad = 68, + CapabilityShaderLayer = 69, + CapabilityShaderViewportIndex = 70, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, CapabilitySubgroupVoteKHR = 4431, @@ -825,21 +854,36 @@ enum Capability { 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, diff --git a/SPIRV/spvIR.h b/SPIRV/spvIR.h index 7e2d4bc1..cf6a7115 100755 --- a/SPIRV/spvIR.h +++ b/SPIRV/spvIR.h @@ -226,6 +226,36 @@ public: 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()) { @@ -235,6 +265,7 @@ public: case OpKill: case OpReturn: case OpReturnValue: + case OpUnreachable: return true; default: return false; @@ -268,10 +299,24 @@ protected: 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. -void inReadableOrder(Block* root, std::function callback); +// 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. @@ -321,7 +366,7 @@ public: parameterInstructions[p]->dump(out); // Blocks - inReadableOrder(blocks[0], [&out](const Block* b) { b->dump(out); }); + inReadableOrder(blocks[0], [&out](const Block* b, ReachReason, Block*) { b->dump(out); }); Instruction end(0, 0, OpFunctionEnd); end.dump(out); } diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index 5cea53d9..2cf2899c 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -4,25 +4,25 @@ set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang) set_property(TARGET glslang-default-resource-limits PROPERTY POSITION_INDEPENDENT_CODE ON) target_include_directories(glslang-default-resource-limits - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC ${PROJECT_SOURCE_DIR}) + PUBLIC $ + PUBLIC $) + set(SOURCES StandAlone.cpp DirStackFileIncluder.h) -set(REMAPPER_SOURCES spirv-remap.cpp) add_executable(glslangValidator ${SOURCES}) -add_executable(spirv-remap ${REMAPPER_SOURCES}) set_property(TARGET glslangValidator PROPERTY FOLDER tools) -set_property(TARGET spirv-remap PROPERTY FOLDER tools) glslang_set_link_args(glslangValidator) -glslang_set_link_args(spirv-remap) set(LIBRARIES glslang SPIRV - SPVRemapper glslang-default-resource-limits) +if(ENABLE_SPVREMAPPER) + set(LIBRARIES ${LIBRARIES} SPVRemapper) +endif() + if(WIN32) set(LIBRARIES ${LIBRARIES} psapi) elseif(UNIX) @@ -32,22 +32,36 @@ elseif(UNIX) endif(WIN32) target_link_libraries(glslangValidator ${LIBRARIES}) -target_link_libraries(spirv-remap ${LIBRARIES}) -target_include_directories(glslangValidator PUBLIC ../External) +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 + install(TARGETS glslangValidator EXPORT glslangValidatorTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(EXPORT glslangValidatorTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) - install(TARGETS spirv-remap + 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 + 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) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 9fa311bc..07479321 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -615,8 +615,12 @@ void ProcessArguments(std::vector>& workItem } 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, spirv1.0, spirv1.1, spirv1.2, or spirv1.3"); + 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 @@ -984,7 +988,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) // 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(); @@ -1618,7 +1622,7 @@ void usage() " --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}\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" diff --git a/Test/100.frag b/Test/100.frag index 4f0c69b5..0508ea99 100644 --- a/Test/100.frag +++ b/Test/100.frag @@ -219,6 +219,9 @@ int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer int init2 = gl_FrontFacing ? 1 : 2; +#define A__B // error +int a__b; // error + #pragma STDGL invariant(all) #line 3000 diff --git a/Test/130.frag b/Test/130.frag index 3e394110..8a5bfd52 100644 --- a/Test/130.frag +++ b/Test/130.frag @@ -167,3 +167,12 @@ void qux2() } layout(early_fragment_tests) out; // ERROR + +#extension GL_ARB_explicit_uniform_location : enable + +layout(location = 3) uniform vec4 ucolor0; // ERROR: explicit attrib location is also required for version < 330 + +#extension GL_ARB_explicit_attrib_location : enable + +layout(location = 4) uniform vec4 ucolor1; + diff --git a/Test/150.frag b/Test/150.frag index 16963afb..e87d6336 100644 --- a/Test/150.frag +++ b/Test/150.frag @@ -47,4 +47,5 @@ void barWxyz() int primitiveID() { return gl_PrimitiveID; + gl_PerFragment; // ERROR, block name can't get reused } diff --git a/Test/330.frag b/Test/330.frag index 9afa8f82..b37d8de8 100644 --- a/Test/330.frag +++ b/Test/330.frag @@ -149,4 +149,17 @@ void fooKeyMem() KeyMem.precise; } -layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range \ No newline at end of file +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; + + diff --git a/Test/430.comp b/Test/430.comp index 0929432b..178b9942 100644 --- a/Test/430.comp +++ b/Test/430.comp @@ -48,6 +48,9 @@ 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]; diff --git a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out index 2e58bdd0..887e4acd 100644 --- a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out +++ b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out @@ -1,6 +1,6 @@ hlsl.aliasOpaque.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 87 Capability Shader diff --git a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out index d334b7e6..ad9e6c10 100644 --- a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out +++ b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out @@ -1,6 +1,6 @@ hlsl.flattenOpaque.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 185 Capability Shader diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out index 921cb96a..6ed8da21 100644 --- a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out +++ b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out @@ -1,6 +1,6 @@ hlsl.flattenOpaqueInit.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 134 Capability Shader diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out index 39770f45..81ab5e60 100644 --- a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out +++ b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out @@ -1,6 +1,6 @@ hlsl.flattenOpaqueInitMix.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 97 Capability Shader diff --git a/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/Test/baseLegalResults/hlsl.flattenSubset.frag.out index 4628479a..562070d6 100644 --- a/Test/baseLegalResults/hlsl.flattenSubset.frag.out +++ b/Test/baseLegalResults/hlsl.flattenSubset.frag.out @@ -1,6 +1,6 @@ hlsl.flattenSubset.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader diff --git a/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/Test/baseLegalResults/hlsl.flattenSubset2.frag.out index 0d7ab560..5cc280bf 100644 --- a/Test/baseLegalResults/hlsl.flattenSubset2.frag.out +++ b/Test/baseLegalResults/hlsl.flattenSubset2.frag.out @@ -1,6 +1,6 @@ hlsl.flattenSubset2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader diff --git a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out index 27482b34..f4c9c5ab 100644 --- a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out +++ b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out @@ -1,6 +1,6 @@ hlsl.partialFlattenLocal.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 158 Capability Shader diff --git a/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out index e54fb7ef..7be570bd 100644 --- a/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out +++ b/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out @@ -1,6 +1,6 @@ hlsl.partialFlattenMixed.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 36 Capability Shader diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index 5e702e87..8dd31e32 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -83,9 +83,11 @@ ERROR: 0:193: '.length' : not supported for this version or the enabled extensio 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: 77 compilation errors. No code generated. +ERROR: 79 compilation errors. No code generated. Shader version: 100 @@ -421,6 +423,7 @@ ERROR: node is still EOpNull! 0:? 5.000000 0:? 'init1' ( global mediump int) 0:? 'init2' ( global mediump int) +0:? 'a__b' ( global mediump int) Linked fragment stage: @@ -573,4 +576,5 @@ ERROR: node is still EOpNull! 0:? 5.000000 0:? 'init1' ( global mediump int) 0:? 'init2' ( global mediump int) +0:? 'a__b' ( global mediump int) diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out index 81d055be..0af9ab9f 100644 --- a/Test/baseResults/130.frag.out +++ b/Test/baseResults/130.frag.out @@ -29,10 +29,13 @@ ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the ena ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions ERROR: 0:154: 'iimage2D' : Reserved word. ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in' -ERROR: 28 compilation errors. No code generated. +ERROR: 0:173: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions +ERROR: 29 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_separate_shader_objects Requested GL_ARB_shader_image_load_store @@ -402,12 +405,16 @@ ERROR: node is still EOpNull! 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_separate_shader_objects Requested GL_ARB_shader_image_load_store @@ -457,4 +464,6 @@ ERROR: node is still EOpNull! 0:? 'gl_FogFragCoord' ( smooth in float) 0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D) 0:? 'iimg2D' (layout( r32i) uniform iimage2D) +0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float) +0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float) diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out index 1454b558..e51b13d1 100644 --- a/Test/baseResults/150.frag.out +++ b/Test/baseResults/150.frag.out @@ -3,7 +3,9 @@ ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_ ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use -ERROR: 4 compilation errors. No code generated. +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 @@ -106,6 +108,7 @@ ERROR: node is still EOpNull! 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) diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out index 84d4d086..54ecfa5f 100644 --- a/Test/baseResults/300BuiltIns.frag.out +++ b/Test/baseResults/300BuiltIns.frag.out @@ -1,9 +1,9 @@ 300BuiltIns.frag ERROR: 0:6: 'float' : type requires declaration of default precision qualifier ERROR: 0:70: 'noise2' : no matching overloaded function found -ERROR: 0:72: 't__' : identifiers containing consecutive underscores ("__") are reserved, and an error if version <= 300 -ERROR: 0:75: '#define' : names containing consecutive underscores are reserved, and an error if version <= 300: __D -ERROR: 4 compilation errors. No code generated. +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 diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out index 36ba7a2b..bb2770f5 100644 --- a/Test/baseResults/330.frag.out +++ b/Test/baseResults/330.frag.out @@ -40,11 +40,14 @@ ERROR: 0:140: 'assign' : cannot convert from ' const float' to ' temp 2-compone ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found ERROR: 0:141: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' ERROR: 0:152: 'index' : value must be 0 or 1 -ERROR: 41 compilation errors. No code generated. +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) @@ -126,6 +129,9 @@ ERROR: node is still EOpNull! 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: @@ -135,6 +141,7 @@ 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) @@ -191,4 +198,7 @@ ERROR: node is still EOpNull! 0:? 'precise' ( global int) 0:? 'KeyMem' ( global structure{ global int precise}) 0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) +0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float) +0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float) +0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors}) diff --git a/Test/baseResults/430.comp.out b/Test/baseResults/430.comp.out index ef8d19e1..55c82388 100644 --- a/Test/baseResults/430.comp.out +++ b/Test/baseResults/430.comp.out @@ -8,14 +8,15 @@ ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers ERROR: 0:49: 'shared' : cannot initialize this type of qualifier -ERROR: 0:51: 'local_size' : can only apply to 'in' -ERROR: 0:51: 'local_size' : can only apply to 'in' -ERROR: 0:51: 'local_size' : can only apply to 'in' -ERROR: 0:65: 'assign' : l-value required "ro" (can't modify a readonly buffer) -ERROR: 0:77: '=' : cannot convert from ' temp double' to ' temp int' -ERROR: 0:81: 'input block' : not supported in this stage: compute -ERROR: 0:85: 'output block' : not supported in this stage: compute -ERROR: 16 compilation errors. No code generated. +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 @@ -51,77 +52,77 @@ ERROR: node is still EOpNull! 0:39 10 (const int) 0:39 true case 0:40 Barrier ( global void) -0:63 Function Definition: foo( ( global void) -0:63 Function Parameters: -0:65 Sequence -0:65 move second child to first child ( temp float) -0:65 direct index (layout( column_major shared) readonly temp float) -0:65 values: direct index for structure (layout( column_major shared) readonly buffer unsized 3-element array of float) -0:65 '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:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 4.700000 -0:66 array length ( temp int) -0:66 values: direct index for structure (layout( column_major shared) readonly buffer unsized 3-element array of float) -0:66 '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:66 Constant: -0:66 1 (const int) -0:67 Barrier ( global void) -0:72 Function Definition: fooaoeu( ( global void) -0:72 Function Parameters: -0:73 Sequence -0:73 Sequence -0:73 move second child to first child ( temp 2-component vector of int) -0:73 'storePos' ( temp 2-component vector of int) -0:73 Convert uint to int ( temp 2-component vector of int) -0:73 vector swizzle ( temp 2-component vector of uint) -0:73 'gl_GlobalInvocationID' ( in 3-component vector of uint GlobalInvocationID) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:74 Sequence -0:74 move second child to first child ( temp double) -0:74 'localCoef' ( temp double) -0:74 Convert float to double ( temp double) -0:74 length ( global float) -0:74 divide ( temp 2-component vector of float) -0:74 Convert int to float ( temp 2-component vector of float) -0:74 subtract ( temp 2-component vector of int) -0:74 Convert uint to int ( temp 2-component vector of int) -0:74 vector swizzle ( temp 2-component vector of uint) -0:74 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 8 (const int) -0:74 Constant: -0:74 8.000000 -0:75 Sequence -0:75 move second child to first child ( temp 4-component vector of double) -0:75 'aa' ( temp 4-component vector of double) -0:75 Constant: -0:75 0.400000 -0:75 0.200000 -0:75 0.300000 -0:75 0.400000 +0: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 double) -0:76 'globalCoef' ( temp double) -0:76 Constant: -0:76 1.000000 +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 double) -0:78 'di' ( temp double) -0:78 Convert int to double ( temp double) -0:78 'i' ( temp int) +0:78 move second child to first child ( temp 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) diff --git a/Test/baseResults/compoundsuffix.frag.hlsl b/Test/baseResults/compoundsuffix.frag.hlsl index f47c97dc..650d1d0b 100644 --- a/Test/baseResults/compoundsuffix.frag.hlsl +++ b/Test/baseResults/compoundsuffix.frag.hlsl @@ -1,6 +1,6 @@ compoundsuffix.frag.hlsl // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/glsl.450.subgroup.frag.out b/Test/baseResults/glsl.450.subgroup.frag.out index e61523e9..817abb24 100644 --- a/Test/baseResults/glsl.450.subgroup.frag.out +++ b/Test/baseResults/glsl.450.subgroup.frag.out @@ -85,11 +85,13 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques 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:232: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:233: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:234: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 0:235: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins -ERROR: 90 compilation errors. No code generated. +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 @@ -352,270 +354,278 @@ ERROR: node is still EOpNull! 0:116 Function Definition: ballot_works(vf4; ( global void) 0:116 Function Parameters: 0:116 'f4' ( in 4-component vector of float) -0:117 Sequence -0:117 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask) -0:118 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask) -0:119 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask) -0:120 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask) -0:121 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask) -0:122 subgroupBroadcast ( global 4-component vector of float) -0:122 'f4' ( in 4-component vector of float) -0:122 Constant: -0:122 0 (const uint) -0:123 subgroupBroadcastFirst ( global 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:124 Sequence -0:124 move second child to first child ( temp 4-component vector of uint) -0:124 'ballot' ( temp 4-component vector of uint) -0:124 subgroupBallot ( global 4-component vector of uint) -0:124 Constant: -0:124 false (const bool) -0:125 subgroupInverseBallot ( global bool) -0:125 Constant: -0:125 1 (const uint) -0:125 1 (const uint) -0:125 1 (const uint) -0:125 1 (const uint) -0:126 subgroupBallotBitExtract ( global bool) -0:126 'ballot' ( temp 4-component vector of uint) -0:126 Constant: -0:126 0 (const uint) -0:127 subgroupBallotBitCount ( global uint) -0:127 'ballot' ( temp 4-component vector of uint) -0:128 subgroupBallotInclusiveBitCount ( global uint) +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:129 subgroupBallotExclusiveBitCount ( global 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 subgroupBallotFindLSB ( global uint) +0:130 subgroupBallotInclusiveBitCount ( global uint) 0:130 'ballot' ( temp 4-component vector of uint) -0:131 subgroupBallotFindMSB ( global uint) +0:131 subgroupBallotExclusiveBitCount ( global uint) 0:131 'ballot' ( temp 4-component vector of uint) -0:135 Function Definition: vote_works(vf4; ( global void) -0:135 Function Parameters: -0:135 'f4' ( in 4-component vector of float) -0:137 Sequence -0:137 subgroupAll ( global bool) -0:137 Constant: -0:137 true (const bool) -0:138 subgroupAny ( global bool) -0:138 Constant: -0:138 false (const bool) -0:139 subgroupAllEqual ( global bool) -0:139 'f4' ( in 4-component vector of float) -0:144 Function Definition: shuffle_works(vf4; ( global void) -0:144 Function Parameters: -0:144 'f4' ( in 4-component vector of float) -0:146 Sequence -0:146 subgroupShuffle ( global 4-component vector of float) -0:146 'f4' ( in 4-component vector of float) -0:146 Constant: -0:146 0 (const uint) -0:147 subgroupShuffleXor ( global 4-component vector of float) -0:147 'f4' ( in 4-component vector of float) -0:147 Constant: -0:147 1 (const uint) -0:148 subgroupShuffleUp ( global 4-component vector of float) +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 1 (const uint) -0:149 subgroupShuffleDown ( global 4-component vector of float) +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:153 Function Definition: arith_works(vf4; ( global void) -0:153 Function Parameters: -0:153 'f4' ( in 4-component vector of float) +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:156 subgroupAdd ( global 4-component vector of float) -0:156 'f4' ( in 4-component vector of float) -0:157 subgroupMul ( global 4-component vector of float) -0:157 'f4' ( in 4-component vector of float) -0:158 subgroupMin ( global 4-component vector of float) +0:158 subgroupAdd ( global 4-component vector of float) 0:158 'f4' ( in 4-component vector of float) -0:159 subgroupMax ( global 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 subgroupAnd ( global 4-component vector of uint) -0:160 'ballot' ( temp 4-component vector of uint) -0:161 subgroupOr ( global 4-component vector of uint) -0:161 'ballot' ( temp 4-component vector of uint) -0:162 subgroupXor ( global 4-component vector of uint) +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 subgroupInclusiveAdd ( global 4-component vector of float) -0:163 'f4' ( in 4-component vector of float) -0:164 subgroupInclusiveMul ( global 4-component vector of float) -0:164 'f4' ( in 4-component vector of float) -0:165 subgroupInclusiveMin ( global 4-component vector of float) +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 subgroupInclusiveMax ( global 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 subgroupInclusiveAnd ( global 4-component vector of uint) -0:167 'ballot' ( temp 4-component vector of uint) -0:168 subgroupInclusiveOr ( global 4-component vector of uint) -0:168 'ballot' ( temp 4-component vector of uint) -0:169 subgroupInclusiveXor ( global 4-component vector of uint) +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 subgroupExclusiveAdd ( global 4-component vector of float) -0:170 'f4' ( in 4-component vector of float) -0:171 subgroupExclusiveMul ( global 4-component vector of float) -0:171 'f4' ( in 4-component vector of float) -0:172 subgroupExclusiveMin ( global 4-component vector of float) +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 subgroupExclusiveMax ( global 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 subgroupExclusiveAnd ( global 4-component vector of uint) -0:174 'ballot' ( temp 4-component vector of uint) -0:175 subgroupExclusiveOr ( global 4-component vector of uint) -0:175 'ballot' ( temp 4-component vector of uint) -0:176 subgroupExclusiveXor ( global 4-component vector of uint) +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:180 Function Definition: clustered_works(vf4; ( global void) -0:180 Function Parameters: -0:180 'f4' ( in 4-component vector of float) -0:182 Sequence -0:182 Sequence -0:182 move second child to first child ( temp 4-component vector of uint) -0:182 'ballot' ( temp 4-component vector of uint) -0:182 Constant: -0:182 85 (const uint) -0:182 0 (const uint) -0:182 0 (const uint) -0:182 0 (const uint) -0:183 subgroupClusteredAdd ( global 4-component vector of float) -0:183 'f4' ( in 4-component vector of float) -0:183 Constant: -0:183 2 (const uint) -0:184 subgroupClusteredMul ( global 4-component vector of float) -0:184 'f4' ( in 4-component vector of float) -0:184 Constant: -0:184 2 (const uint) -0:185 subgroupClusteredMin ( global 4-component vector of float) +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 subgroupClusteredMax ( global 4-component vector of float) +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 subgroupClusteredAnd ( global 4-component vector of uint) -0:187 'ballot' ( temp 4-component vector of 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 subgroupClusteredOr ( global 4-component vector of uint) -0:188 'ballot' ( temp 4-component vector of 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 subgroupClusteredXor ( global 4-component vector of 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:193 Function Definition: quad_works(vf4; ( global void) -0:193 Function Parameters: -0:193 'f4' ( in 4-component vector of float) -0:195 Sequence -0:195 subgroupQuadBroadcast ( global 4-component vector of float) -0:195 'f4' ( in 4-component vector of float) -0:195 Constant: -0:195 0 (const uint) -0:196 subgroupQuadSwapHorizontal ( global 4-component vector of float) -0:196 'f4' ( in 4-component vector of float) -0:197 subgroupQuadSwapVertical ( global 4-component vector of float) -0:197 'f4' ( in 4-component vector of float) -0:198 subgroupQuadSwapDiagonal ( global 4-component vector of float) +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:202 Function Definition: partitioned_works(vf4; ( global void) -0:202 Function Parameters: -0:202 'f4' ( in 4-component vector of float) -0:204 Sequence -0:204 Sequence -0:204 move second child to first child ( temp 4-component vector of uint) -0:204 'parti' ( temp 4-component vector of uint) -0:204 subgroupPartitionNV ( global 4-component vector of uint) -0:204 'f4' ( in 4-component vector of float) -0:205 Sequence -0:205 move second child to first child ( temp 4-component vector of uint) -0:205 'ballot' ( temp 4-component vector of uint) -0:205 Constant: -0:205 85 (const uint) -0:205 0 (const uint) -0:205 0 (const uint) -0:205 0 (const uint) -0:206 subgroupPartitionedAddNV ( global 4-component vector of float) -0:206 'f4' ( in 4-component vector of float) -0:206 'parti' ( temp 4-component vector of uint) -0:207 subgroupPartitionedMulNV ( global 4-component vector of float) -0:207 'f4' ( in 4-component vector of float) -0:207 'parti' ( temp 4-component vector of uint) -0:208 subgroupPartitionedMinNV ( global 4-component vector of float) -0:208 'f4' ( in 4-component vector of float) -0:208 'parti' ( temp 4-component vector of uint) -0:209 subgroupPartitionedMaxNV ( global 4-component vector of float) -0:209 'f4' ( in 4-component vector of float) -0:209 'parti' ( temp 4-component vector of uint) -0:210 subgroupPartitionedAndNV ( global 4-component vector of uint) -0:210 'ballot' ( temp 4-component vector of uint) +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 subgroupPartitionedOrNV ( global 4-component vector of uint) -0:211 'ballot' ( 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 subgroupPartitionedXorNV ( global 4-component vector of uint) -0:212 'ballot' ( 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 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float) +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 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float) -0:214 'f4' ( in 4-component vector of float) +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 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float) -0:215 'f4' ( in 4-component vector of float) +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 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float) -0:216 'f4' ( in 4-component vector of float) +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 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint) -0:217 'ballot' ( 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 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint) -0:218 'ballot' ( 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 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint) -0:219 'ballot' ( 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 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float) +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 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float) -0:221 'f4' ( in 4-component vector of float) +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 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float) -0:222 'f4' ( in 4-component vector of float) +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 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float) -0:223 'f4' ( in 4-component vector of float) +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 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint) -0:224 'ballot' ( 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 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint) -0:225 'ballot' ( 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 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint) -0:226 'ballot' ( 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:230 Function Definition: sm_builtins_err( ( global void) -0:230 Function Parameters: -0:232 Sequence -0:232 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV) -0:233 'gl_SMCountNV' ( flat in uint SMCountNV) -0:234 'gl_WarpIDNV' ( flat in uint WarpIDNV) -0:235 'gl_SMIDNV' ( flat in uint SMIDNV) -0:242 Function Definition: sm_builtins( ( global void) -0:242 Function Parameters: -0:244 Sequence -0:244 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV) -0:245 'gl_SMCountNV' ( flat in uint SMCountNV) -0:246 'gl_WarpIDNV' ( flat in uint WarpIDNV) -0:247 'gl_SMIDNV' ( flat in uint SMIDNV) +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) diff --git a/Test/baseResults/glsl.entryPointRename.vert.bad.out b/Test/baseResults/glsl.entryPointRename.vert.bad.out index c7ea97e0..7b99bbe8 100644 --- a/Test/baseResults/glsl.entryPointRename.vert.bad.out +++ b/Test/baseResults/glsl.entryPointRename.vert.bad.out @@ -2,7 +2,7 @@ glsl.entryPointRename.vert ERROR: Source entry point must be "main" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/glsl.entryPointRename.vert.out b/Test/baseResults/glsl.entryPointRename.vert.out index 3dbe13ba..3044deec 100644 --- a/Test/baseResults/glsl.entryPointRename.vert.out +++ b/Test/baseResults/glsl.entryPointRename.vert.out @@ -1,6 +1,6 @@ glsl.entryPointRename.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/glspv.esversion.vert.out b/Test/baseResults/glspv.esversion.vert.out index 395d7f37..9f925133 100644 --- a/Test/baseResults/glspv.esversion.vert.out +++ b/Test/baseResults/glspv.esversion.vert.out @@ -1,6 +1,6 @@ glspv.esversion.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 10 Capability Shader diff --git a/Test/baseResults/glspv.version.frag.out b/Test/baseResults/glspv.version.frag.out index 4a45b5bf..42c73ddb 100644 --- a/Test/baseResults/glspv.version.frag.out +++ b/Test/baseResults/glspv.version.frag.out @@ -2,7 +2,7 @@ glspv.version.frag ERROR: #version: compilation for SPIR-V does not support the compatibility profile // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 6 Capability Shader diff --git a/Test/baseResults/hlsl.PointSize.geom.out b/Test/baseResults/hlsl.PointSize.geom.out index 77cdc7db..80fee613 100644 --- a/Test/baseResults/hlsl.PointSize.geom.out +++ b/Test/baseResults/hlsl.PointSize.geom.out @@ -71,7 +71,7 @@ output primitive = line_strip Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 36 Capability Geometry diff --git a/Test/baseResults/hlsl.PointSize.vert.out b/Test/baseResults/hlsl.PointSize.vert.out index bda0030e..2390a5af 100644 --- a/Test/baseResults/hlsl.PointSize.vert.out +++ b/Test/baseResults/hlsl.PointSize.vert.out @@ -38,7 +38,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out float PointSize) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 16 Capability Shader diff --git a/Test/baseResults/hlsl.aliasOpaque.frag.out b/Test/baseResults/hlsl.aliasOpaque.frag.out index 63d29fa4..d22bac6b 100644 --- a/Test/baseResults/hlsl.aliasOpaque.frag.out +++ b/Test/baseResults/hlsl.aliasOpaque.frag.out @@ -143,7 +143,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 64 Capability Shader diff --git a/Test/baseResults/hlsl.amend.frag.out b/Test/baseResults/hlsl.amend.frag.out index e273abeb..7fd07270 100644 --- a/Test/baseResults/hlsl.amend.frag.out +++ b/Test/baseResults/hlsl.amend.frag.out @@ -160,7 +160,7 @@ gl_FragCoord origin is upper left 0:? 'm' ( global 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 57 Capability Shader diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index 80d51539..4c2a8c11 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -345,7 +345,7 @@ gl_FragCoord origin is upper left 0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 143 Capability Shader diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 2e706d76..71781027 100644 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -290,7 +290,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 126 Capability Shader diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out index 9af6fed2..402807e9 100644 --- a/Test/baseResults/hlsl.array.implicit-size.frag.out +++ b/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -163,7 +163,7 @@ gl_FragCoord origin is upper left 0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Shader diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out index 94629996..6c852c37 100644 --- a/Test/baseResults/hlsl.array.multidim.frag.out +++ b/Test/baseResults/hlsl.array.multidim.frag.out @@ -134,7 +134,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 57 Capability Shader diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 562a8633..2002b0df 100644 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:? 'a5' (layout( location=4) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 58 Capability Shader diff --git a/Test/baseResults/hlsl.attribute.expression.comp.out b/Test/baseResults/hlsl.attribute.expression.comp.out index 1b3ffdbc..1ff21238 100644 --- a/Test/baseResults/hlsl.attribute.expression.comp.out +++ b/Test/baseResults/hlsl.attribute.expression.comp.out @@ -82,7 +82,7 @@ local_size = (4, 6, 8) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 44e963e0..2290cd80 100644 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/hlsl.attributeC11.frag.out b/Test/baseResults/hlsl.attributeC11.frag.out index 47dd96a7..14bdcddd 100644 --- a/Test/baseResults/hlsl.attributeC11.frag.out +++ b/Test/baseResults/hlsl.attributeC11.frag.out @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 51 Capability Shader diff --git a/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out b/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out index e3784473..a486d1e9 100644 --- a/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out +++ b/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 28 Capability Shader diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out index d84642e9..fb26bc31 100644 --- a/Test/baseResults/hlsl.basic.comp.out +++ b/Test/baseResults/hlsl.basic.comp.out @@ -64,7 +64,7 @@ local_size = (1, 1, 1) 0:? 'gti' ( in 3-component vector of int LocalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/hlsl.basic.geom.out b/Test/baseResults/hlsl.basic.geom.out index f4116d4e..ee123d44 100644 --- a/Test/baseResults/hlsl.basic.geom.out +++ b/Test/baseResults/hlsl.basic.geom.out @@ -188,7 +188,7 @@ output primitive = line_strip 0:? 'OutputStream.something' (layout( location=1) out int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 68 Capability Geometry diff --git a/Test/baseResults/hlsl.boolConv.vert.out b/Test/baseResults/hlsl.boolConv.vert.out index d88955fa..8762faf4 100644 --- a/Test/baseResults/hlsl.boolConv.vert.out +++ b/Test/baseResults/hlsl.boolConv.vert.out @@ -204,7 +204,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 99 Capability Shader diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 25a79630..e41c02d9 100644 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -147,7 +147,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 73 Capability Shader diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index f3278834..698350cb 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -358,7 +358,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 148 Capability Shader diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 85dafcc7..e4bcb61d 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -358,7 +358,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 148 Capability Shader diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 0aa11bea..aa657f37 100644 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader diff --git a/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/Test/baseResults/hlsl.cbuffer-identifier.vert.out index f7225f84..5cec136e 100644 --- a/Test/baseResults/hlsl.cbuffer-identifier.vert.out +++ b/Test/baseResults/hlsl.cbuffer-identifier.vert.out @@ -250,7 +250,7 @@ Shader version: 500 0:? 'input.Norm' (layout( location=1) in 3-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 93 Capability Shader diff --git a/Test/baseResults/hlsl.charLit.vert.out b/Test/baseResults/hlsl.charLit.vert.out index b09fc81f..4846f8f2 100644 --- a/Test/baseResults/hlsl.charLit.vert.out +++ b/Test/baseResults/hlsl.charLit.vert.out @@ -146,7 +146,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 58 Capability Shader diff --git a/Test/baseResults/hlsl.clip.frag.out b/Test/baseResults/hlsl.clip.frag.out index dbf99bf5..a0ebb745 100644 --- a/Test/baseResults/hlsl.clip.frag.out +++ b/Test/baseResults/hlsl.clip.frag.out @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-1.frag.out b/Test/baseResults/hlsl.clipdistance-1.frag.out index f223ddc4..43825052 100644 --- a/Test/baseResults/hlsl.clipdistance-1.frag.out +++ b/Test/baseResults/hlsl.clipdistance-1.frag.out @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:? 'cull' ( in 1-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-1.geom.out b/Test/baseResults/hlsl.clipdistance-1.geom.out index 144b8775..53483598 100644 --- a/Test/baseResults/hlsl.clipdistance-1.geom.out +++ b/Test/baseResults/hlsl.clipdistance-1.geom.out @@ -550,7 +550,7 @@ output primitive = line_strip 0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 118 Capability Geometry diff --git a/Test/baseResults/hlsl.clipdistance-1.vert.out b/Test/baseResults/hlsl.clipdistance-1.vert.out index d1d1370a..7d8b49f8 100644 --- a/Test/baseResults/hlsl.clipdistance-1.vert.out +++ b/Test/baseResults/hlsl.clipdistance-1.vert.out @@ -108,7 +108,7 @@ Shader version: 500 0:? 'cull' ( out 1-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 46 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-2.frag.out b/Test/baseResults/hlsl.clipdistance-2.frag.out index 64604ebb..d1da7bc2 100644 --- a/Test/baseResults/hlsl.clipdistance-2.frag.out +++ b/Test/baseResults/hlsl.clipdistance-2.frag.out @@ -290,7 +290,7 @@ gl_FragCoord origin is upper left 0:? 'cull' ( in 4-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-2.geom.out b/Test/baseResults/hlsl.clipdistance-2.geom.out index a8abd02f..bdee84f8 100644 --- a/Test/baseResults/hlsl.clipdistance-2.geom.out +++ b/Test/baseResults/hlsl.clipdistance-2.geom.out @@ -724,7 +724,7 @@ output primitive = line_strip 0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 128 Capability Geometry diff --git a/Test/baseResults/hlsl.clipdistance-2.vert.out b/Test/baseResults/hlsl.clipdistance-2.vert.out index 397a25d7..77bd23d4 100644 --- a/Test/baseResults/hlsl.clipdistance-2.vert.out +++ b/Test/baseResults/hlsl.clipdistance-2.vert.out @@ -420,7 +420,7 @@ Shader version: 500 0:? 'cull' ( out 4-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 89 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-3.frag.out b/Test/baseResults/hlsl.clipdistance-3.frag.out index 3b5082e8..c7eda56f 100644 --- a/Test/baseResults/hlsl.clipdistance-3.frag.out +++ b/Test/baseResults/hlsl.clipdistance-3.frag.out @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:? 'cull' ( in 2-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-3.geom.out b/Test/baseResults/hlsl.clipdistance-3.geom.out index f8ba5c6d..2e6b5f64 100644 --- a/Test/baseResults/hlsl.clipdistance-3.geom.out +++ b/Test/baseResults/hlsl.clipdistance-3.geom.out @@ -630,7 +630,7 @@ output primitive = line_strip 0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 127 Capability Geometry diff --git a/Test/baseResults/hlsl.clipdistance-3.vert.out b/Test/baseResults/hlsl.clipdistance-3.vert.out index 01afd179..c9289a53 100644 --- a/Test/baseResults/hlsl.clipdistance-3.vert.out +++ b/Test/baseResults/hlsl.clipdistance-3.vert.out @@ -136,7 +136,7 @@ Shader version: 500 0:? 'cull' ( out 2-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 51 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-4.frag.out b/Test/baseResults/hlsl.clipdistance-4.frag.out index 95f81c95..8a46b157 100644 --- a/Test/baseResults/hlsl.clipdistance-4.frag.out +++ b/Test/baseResults/hlsl.clipdistance-4.frag.out @@ -174,7 +174,7 @@ gl_FragCoord origin is upper left 0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 57 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-4.geom.out b/Test/baseResults/hlsl.clipdistance-4.geom.out index 1096e02c..31d32051 100644 --- a/Test/baseResults/hlsl.clipdistance-4.geom.out +++ b/Test/baseResults/hlsl.clipdistance-4.geom.out @@ -612,7 +612,7 @@ output primitive = line_strip 0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 130 Capability Geometry diff --git a/Test/baseResults/hlsl.clipdistance-4.vert.out b/Test/baseResults/hlsl.clipdistance-4.vert.out index d05fae41..7fca9d4e 100644 --- a/Test/baseResults/hlsl.clipdistance-4.vert.out +++ b/Test/baseResults/hlsl.clipdistance-4.vert.out @@ -270,7 +270,7 @@ Shader version: 500 0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-5.frag.out b/Test/baseResults/hlsl.clipdistance-5.frag.out index afdd4c4d..f0adb05b 100644 --- a/Test/baseResults/hlsl.clipdistance-5.frag.out +++ b/Test/baseResults/hlsl.clipdistance-5.frag.out @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 62 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-5.vert.out b/Test/baseResults/hlsl.clipdistance-5.vert.out index 3e8f1fe7..264c22c2 100644 --- a/Test/baseResults/hlsl.clipdistance-5.vert.out +++ b/Test/baseResults/hlsl.clipdistance-5.vert.out @@ -318,7 +318,7 @@ Shader version: 500 0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 73 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-6.frag.out b/Test/baseResults/hlsl.clipdistance-6.frag.out index 3ee8065a..49c225a2 100644 --- a/Test/baseResults/hlsl.clipdistance-6.frag.out +++ b/Test/baseResults/hlsl.clipdistance-6.frag.out @@ -282,7 +282,7 @@ gl_FragCoord origin is upper left 0:? 'v.clip1' ( in 8-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 79 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-6.vert.out b/Test/baseResults/hlsl.clipdistance-6.vert.out index a386d0ac..024d0285 100644 --- a/Test/baseResults/hlsl.clipdistance-6.vert.out +++ b/Test/baseResults/hlsl.clipdistance-6.vert.out @@ -428,7 +428,7 @@ Shader version: 500 0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 86 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-7.frag.out b/Test/baseResults/hlsl.clipdistance-7.frag.out index 94b6a791..5ff568e7 100644 --- a/Test/baseResults/hlsl.clipdistance-7.frag.out +++ b/Test/baseResults/hlsl.clipdistance-7.frag.out @@ -270,7 +270,7 @@ gl_FragCoord origin is upper left 0:? 'v.clip1' ( in 8-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 78 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-7.vert.out b/Test/baseResults/hlsl.clipdistance-7.vert.out index 87e34bd8..24eced89 100644 --- a/Test/baseResults/hlsl.clipdistance-7.vert.out +++ b/Test/baseResults/hlsl.clipdistance-7.vert.out @@ -384,7 +384,7 @@ Shader version: 500 0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 81 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-8.frag.out b/Test/baseResults/hlsl.clipdistance-8.frag.out index 98c9505c..f4e55acb 100644 --- a/Test/baseResults/hlsl.clipdistance-8.frag.out +++ b/Test/baseResults/hlsl.clipdistance-8.frag.out @@ -186,7 +186,7 @@ gl_FragCoord origin is upper left 0:? 'v.clip1' ( in 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-8.vert.out b/Test/baseResults/hlsl.clipdistance-8.vert.out index 88800e3c..456e11f5 100644 --- a/Test/baseResults/hlsl.clipdistance-8.vert.out +++ b/Test/baseResults/hlsl.clipdistance-8.vert.out @@ -240,7 +240,7 @@ Shader version: 500 0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 62 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-9.frag.out b/Test/baseResults/hlsl.clipdistance-9.frag.out index ff7f2619..0a17eafa 100644 --- a/Test/baseResults/hlsl.clipdistance-9.frag.out +++ b/Test/baseResults/hlsl.clipdistance-9.frag.out @@ -144,7 +144,7 @@ gl_FragCoord origin is upper left 0:? 'clip0' ( in 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 68 Capability Shader diff --git a/Test/baseResults/hlsl.clipdistance-9.vert.out b/Test/baseResults/hlsl.clipdistance-9.vert.out index 2d0c9b02..61b996fb 100644 --- a/Test/baseResults/hlsl.clipdistance-9.vert.out +++ b/Test/baseResults/hlsl.clipdistance-9.vert.out @@ -194,7 +194,7 @@ Shader version: 500 0:? 'clip0' ( out 4-element array of float ClipDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 67 Capability Shader diff --git a/Test/baseResults/hlsl.color.hull.tesc.out b/Test/baseResults/hlsl.color.hull.tesc.out index 72e0b7e7..c5be8e40 100644 --- a/Test/baseResults/hlsl.color.hull.tesc.out +++ b/Test/baseResults/hlsl.color.hull.tesc.out @@ -356,7 +356,7 @@ triangle order = cw 0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 127 Capability Tessellation diff --git a/Test/baseResults/hlsl.comparison.vec.frag.out b/Test/baseResults/hlsl.comparison.vec.frag.out index ff73e178..5936c9a9 100644 --- a/Test/baseResults/hlsl.comparison.vec.frag.out +++ b/Test/baseResults/hlsl.comparison.vec.frag.out @@ -262,7 +262,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 96 Capability Shader diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index 7df88e7f..e23d49c9 100644 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -522,7 +522,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 206 Capability Shader diff --git a/Test/baseResults/hlsl.constantbuffer.frag.out b/Test/baseResults/hlsl.constantbuffer.frag.out index fa8881db..48d849b4 100644 --- a/Test/baseResults/hlsl.constantbuffer.frag.out +++ b/Test/baseResults/hlsl.constantbuffer.frag.out @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader @@ -240,6 +240,5 @@ Validation failed 60: 7(fvec4) CompositeConstruct 59 59 59 59 ReturnValue 60 30: Label - 62: 7(fvec4) Undef - ReturnValue 62 + Unreachable FunctionEnd diff --git a/Test/baseResults/hlsl.constructArray.vert.out b/Test/baseResults/hlsl.constructArray.vert.out index 6e18ad97..8ba41bc9 100644 --- a/Test/baseResults/hlsl.constructArray.vert.out +++ b/Test/baseResults/hlsl.constructArray.vert.out @@ -268,7 +268,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 89 Capability Shader diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 227c7e17..085821ab 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/hlsl.constructimat.frag.out b/Test/baseResults/hlsl.constructimat.frag.out index 075dabb5..a5014db4 100644 --- a/Test/baseResults/hlsl.constructimat.frag.out +++ b/Test/baseResults/hlsl.constructimat.frag.out @@ -545,7 +545,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 98 Capability Shader diff --git a/Test/baseResults/hlsl.coverage.frag.out b/Test/baseResults/hlsl.coverage.frag.out index 691d6436..a1480735 100644 --- a/Test/baseResults/hlsl.coverage.frag.out +++ b/Test/baseResults/hlsl.coverage.frag.out @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 52 Capability Shader diff --git a/Test/baseResults/hlsl.dashI.vert.out b/Test/baseResults/hlsl.dashI.vert.out index eb9406b2..d5e7e209 100644 --- a/Test/baseResults/hlsl.dashI.vert.out +++ b/Test/baseResults/hlsl.dashI.vert.out @@ -1,6 +1,6 @@ hlsl.dashI.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out index 2bc08dab..559708d1 100644 --- a/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out +++ b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out @@ -1,6 +1,6 @@ hlsl.deadFunctionMissingBody.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader diff --git a/Test/baseResults/hlsl.depthGreater.frag.out b/Test/baseResults/hlsl.depthGreater.frag.out index df6311f6..70928024 100644 --- a/Test/baseResults/hlsl.depthGreater.frag.out +++ b/Test/baseResults/hlsl.depthGreater.frag.out @@ -50,7 +50,7 @@ using depth_greater 0:? 'depth' ( out float FragDepth) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/hlsl.depthLess.frag.out b/Test/baseResults/hlsl.depthLess.frag.out index d2b9d8ed..275eaf13 100644 --- a/Test/baseResults/hlsl.depthLess.frag.out +++ b/Test/baseResults/hlsl.depthLess.frag.out @@ -42,7 +42,7 @@ using depth_less 0:? '@entryPointOutput' ( out float FragDepth) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 16 Capability Shader diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index cc7c8666..23ed871b 100644 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index bb564658..2b65a76b 100644 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -2,68 +2,95 @@ hlsl.doLoop.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) -0:2 Function Parameters: -0:2 'input' ( in float) +0:1 Function Definition: f0( ( temp void) +0:1 Function Parameters: 0:? Sequence -0:3 Loop with condition not tested first: Unroll -0:3 Loop Condition -0:3 Constant: -0:3 false (const bool) -0:3 No loop body -0:4 Loop with condition not tested first: Unroll -0:4 Loop Condition -0:4 Constant: -0:4 false (const bool) -0:4 No loop body -0:5 Loop with condition not tested first -0:5 Loop Condition -0:5 Compare Greater Than ( temp bool) -0:5 'input' ( in float) -0:5 Constant: -0:5 2.000000 -0:5 Loop Body -0:? Sequence -0:5 Branch: Return with expression -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 'input' ( in float) -0:6 Loop with condition not tested first +0: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 Compare Less Than ( temp bool) -0:6 'input' ( in float) -0:6 Constant: -0:6 10.000000 -0:6 Loop Body -0:6 Pre-Increment ( temp float) -0:6 'input' ( in float) -0:7 Loop with condition not tested first -0:7 Loop Condition -0:7 Compare Less Than ( temp bool) -0:7 Pre-Increment ( temp float) -0:7 'input' ( in float) -0:7 Constant: -0:7 10.000000 -0:7 Loop Body -0:7 Loop with condition tested first -0:7 Loop Condition -0:7 Compare Less Than ( temp bool) -0:7 Pre-Increment ( temp float) -0:7 'input' ( in float) -0:7 Constant: -0:7 10.000000 -0:7 No loop body -0:8 Branch: Return with expression -0:8 Construct vec4 ( temp 4-component vector of float) -0:8 'input' ( in float) -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: +0: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:2 move second child to first child ( temp float) +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:2 move second child to first child ( temp 4-component vector of 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:2 Function Call: @PixelShaderFunction(f1; ( temp 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) @@ -76,196 +103,272 @@ Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) -0:2 Function Parameters: -0:2 'input' ( in float) +0:1 Function Definition: f0( ( temp void) +0:1 Function Parameters: 0:? Sequence -0:3 Loop with condition not tested first: Unroll -0:3 Loop Condition -0:3 Constant: -0:3 false (const bool) -0:3 No loop body -0:4 Loop with condition not tested first: Unroll -0:4 Loop Condition -0:4 Constant: -0:4 false (const bool) -0:4 No loop body -0:5 Loop with condition not tested first -0:5 Loop Condition -0:5 Compare Greater Than ( temp bool) -0:5 'input' ( in float) -0:5 Constant: -0:5 2.000000 -0:5 Loop Body -0:? Sequence -0:5 Branch: Return with expression -0:5 Construct vec4 ( temp 4-component vector of float) -0:5 'input' ( in float) -0:6 Loop with condition not tested first +0: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 Compare Less Than ( temp bool) -0:6 'input' ( in float) -0:6 Constant: -0:6 10.000000 -0:6 Loop Body -0:6 Pre-Increment ( temp float) -0:6 'input' ( in float) -0:7 Loop with condition not tested first -0:7 Loop Condition -0:7 Compare Less Than ( temp bool) -0:7 Pre-Increment ( temp float) -0:7 'input' ( in float) -0:7 Constant: -0:7 10.000000 -0:7 Loop Body -0:7 Loop with condition tested first -0:7 Loop Condition -0:7 Compare Less Than ( temp bool) -0:7 Pre-Increment ( temp float) -0:7 'input' ( in float) -0:7 Constant: -0:7 10.000000 -0:7 No loop body -0:8 Branch: Return with expression -0:8 Construct vec4 ( temp 4-component vector of float) -0:8 'input' ( in float) -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: +0: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:2 move second child to first child ( temp float) +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:2 move second child to first child ( temp 4-component vector of 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:2 Function Call: @PixelShaderFunction(f1; ( temp 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): 80007 -// Id's are bound by 71 +// 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" 64 67 + EntryPoint Fragment 4 "PixelShaderFunction" 92 95 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "PixelShaderFunction" - Name 11 "@PixelShaderFunction(f1;" - Name 10 "input" - Name 62 "input" - Name 64 "input" - Name 67 "@entryPointOutput" - Name 68 "param" - Decorate 64(input) Location 0 - Decorate 67(@entryPointOutput) Location 0 + 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 - 6: TypeFloat 32 - 7: TypePointer Function 6(float) - 8: TypeVector 6(float) 4 - 9: TypeFunction 8(fvec4) 7(ptr) - 17: TypeBool - 18: 17(bool) ConstantFalse - 31: 6(float) Constant 1073741824 - 38: 6(float) Constant 1065353216 - 41: 6(float) Constant 1092616192 - 63: TypePointer Input 6(float) - 64(input): 63(ptr) Variable Input - 66: TypePointer Output 8(fvec4) -67(@entryPointOutput): 66(ptr) Variable Output + 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 - 62(input): 7(ptr) Variable Function - 68(param): 7(ptr) Variable Function - 65: 6(float) Load 64(input) - Store 62(input) 65 - 69: 6(float) Load 62(input) - Store 68(param) 69 - 70: 8(fvec4) FunctionCall 11(@PixelShaderFunction(f1;) 68(param) - Store 67(@entryPointOutput) 70 + 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 -11(@PixelShaderFunction(f1;): 8(fvec4) Function None 9 - 10(input): 7(ptr) FunctionParameter - 12: Label - Branch 13 - 13: Label - LoopMerge 15 16 Unroll - Branch 14 - 14: Label - Branch 16 - 16: Label - BranchConditional 18 13 15 - 15: Label - Branch 19 - 19: Label - LoopMerge 21 22 Unroll - Branch 20 - 20: Label - Branch 22 - 22: Label - BranchConditional 18 19 21 - 21: Label - Branch 23 - 23: Label - LoopMerge 25 26 None - Branch 24 - 24: Label - 27: 6(float) Load 10(input) - 28: 8(fvec4) CompositeConstruct 27 27 27 27 - ReturnValue 28 - 26: Label - 30: 6(float) Load 10(input) - 32: 17(bool) FOrdGreaterThan 30 31 - BranchConditional 32 23 25 - 25: Label - Branch 33 - 33: Label - LoopMerge 35 36 None + 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 - 37: 6(float) Load 10(input) - 39: 6(float) FAdd 37 38 - Store 10(input) 39 - Branch 36 - 36: Label - 40: 6(float) Load 10(input) - 42: 17(bool) FOrdLessThan 40 41 - BranchConditional 42 33 35 + LoopMerge 36 37 Unroll + Branch 35 35: Label - Branch 43 - 43: Label - LoopMerge 45 46 None - Branch 44 - 44: Label - Branch 47 - 47: Label - LoopMerge 49 50 None + 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 - 52: 6(float) Load 10(input) - 53: 6(float) FAdd 52 38 - Store 10(input) 53 - 54: 17(bool) FOrdLessThan 53 41 - BranchConditional 54 48 49 - 48: Label - Branch 50 - 50: Label - Branch 47 - 49: Label - Branch 46 - 46: Label - 55: 6(float) Load 10(input) - 56: 6(float) FAdd 55 38 - Store 10(input) 56 - 57: 17(bool) FOrdLessThan 56 41 - BranchConditional 57 43 45 - 45: Label - 58: 6(float) Load 10(input) - 59: 8(fvec4) CompositeConstruct 58 58 58 58 - ReturnValue 59 + 54: 10(float) Load 17(input) + 56: 10(float) FAdd 54 55 + Store 17(input) 56 + Branch 53 + 53: Label + 57: 10(float) Load 17(input) + 59: 32(bool) FOrdLessThan 57 58 + BranchConditional 59 50 52 + 52: Label + Return + FunctionEnd + 21(f4(f1;): 2 Function None 16 + 20(input): 11(ptr) FunctionParameter + 22: Label + Branch 60 + 60: Label + LoopMerge 62 63 None + Branch 61 + 61: Label + Branch 64 + 64: Label + LoopMerge 66 67 None + Branch 68 + 68: Label + 69: 10(float) Load 20(input) + 70: 10(float) FAdd 69 55 + Store 20(input) 70 + 71: 32(bool) FOrdLessThan 70 58 + BranchConditional 71 65 66 + 65: Label + Branch 67 + 67: Label + Branch 64 + 66: Label + Branch 63 + 63: Label + 72: 10(float) Load 20(input) + 73: 10(float) FAdd 72 55 + Store 20(input) 73 + 74: 32(bool) FOrdLessThan 73 58 + BranchConditional 74 60 62 + 62: Label + Return + FunctionEnd +26(@PixelShaderFunction(f1;): 23(fvec4) Function None 24 + 25(input): 11(ptr) FunctionParameter + 27: Label + 77(param): 11(ptr) Variable Function + 80(param): 11(ptr) Variable Function + 83(param): 11(ptr) Variable Function + 75: 2 FunctionCall 6(f0() + 76: 2 FunctionCall 8(f1() + 78: 10(float) Load 25(input) + Store 77(param) 78 + 79: 10(float) FunctionCall 14(f2(f1;) 77(param) + 81: 10(float) Load 25(input) + Store 80(param) 81 + 82: 2 FunctionCall 18(f3(f1;) 80(param) + 84: 10(float) Load 25(input) + Store 83(param) 84 + 85: 2 FunctionCall 21(f4(f1;) 83(param) + 86: 10(float) Load 25(input) + 87: 23(fvec4) CompositeConstruct 86 86 86 86 + ReturnValue 87 FunctionEnd diff --git a/Test/baseResults/hlsl.domain.1.tese.out b/Test/baseResults/hlsl.domain.1.tese.out index 4bc8bac5..0b7b2756 100644 --- a/Test/baseResults/hlsl.domain.1.tese.out +++ b/Test/baseResults/hlsl.domain.1.tese.out @@ -286,7 +286,7 @@ triangle order = none 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 103 Capability Tessellation diff --git a/Test/baseResults/hlsl.domain.2.tese.out b/Test/baseResults/hlsl.domain.2.tese.out index 827f80f7..e6ec924a 100644 --- a/Test/baseResults/hlsl.domain.2.tese.out +++ b/Test/baseResults/hlsl.domain.2.tese.out @@ -284,7 +284,7 @@ triangle order = none 0:? 'pcf_data.foo' (layout( location=2) patch in float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 98 Capability Tessellation diff --git a/Test/baseResults/hlsl.domain.3.tese.out b/Test/baseResults/hlsl.domain.3.tese.out index dd3d502a..4b8584c9 100644 --- a/Test/baseResults/hlsl.domain.3.tese.out +++ b/Test/baseResults/hlsl.domain.3.tese.out @@ -264,7 +264,7 @@ triangle order = none 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 100 Capability Tessellation diff --git a/Test/baseResults/hlsl.earlydepthstencil.frag.out b/Test/baseResults/hlsl.earlydepthstencil.frag.out index e598a519..f30b89ad 100755 --- a/Test/baseResults/hlsl.earlydepthstencil.frag.out +++ b/Test/baseResults/hlsl.earlydepthstencil.frag.out @@ -108,7 +108,7 @@ using early_fragment_tests 0:? 'input.Position' ( in 4-component vector of float FragCoord) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/hlsl.emptystruct.init.vert.out b/Test/baseResults/hlsl.emptystruct.init.vert.out index 410915cf..c3c3aef8 100644 --- a/Test/baseResults/hlsl.emptystruct.init.vert.out +++ b/Test/baseResults/hlsl.emptystruct.init.vert.out @@ -60,7 +60,7 @@ Shader version: 500 0:? 'vertexIndex' (layout( location=0) in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/hlsl.emptystructreturn.frag.out b/Test/baseResults/hlsl.emptystructreturn.frag.out index 1c9953b5..bb9c26c3 100644 --- a/Test/baseResults/hlsl.emptystructreturn.frag.out +++ b/Test/baseResults/hlsl.emptystructreturn.frag.out @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/hlsl.emptystructreturn.vert.out b/Test/baseResults/hlsl.emptystructreturn.vert.out index 65d326d4..22027bfd 100644 --- a/Test/baseResults/hlsl.emptystructreturn.vert.out +++ b/Test/baseResults/hlsl.emptystructreturn.vert.out @@ -49,7 +49,7 @@ Shader version: 500 Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index dc9eea4a..d65532df 100644 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:? 'i.i2' (layout( location=1) flat in 2-component vector of int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 74 Capability Shader diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index 6ca3011b..e1af2846 100644 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:? 'out3.i' (layout( location=5) out 2-component vector of int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 89 Capability Shader diff --git a/Test/baseResults/hlsl.entry.rename.frag.out b/Test/baseResults/hlsl.entry.rename.frag.out index 9e23396a..b0e958b3 100644 --- a/Test/baseResults/hlsl.entry.rename.frag.out +++ b/Test/baseResults/hlsl.entry.rename.frag.out @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader diff --git a/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out b/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out index 61367d6c..c4e6baf0 100644 --- a/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out +++ b/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out @@ -1,6 +1,6 @@ hlsl.explicitDescriptorSet.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/Test/baseResults/hlsl.explicitDescriptorSet.frag.out index 9bc2f019..9665ad25 100644 --- a/Test/baseResults/hlsl.explicitDescriptorSet.frag.out +++ b/Test/baseResults/hlsl.explicitDescriptorSet.frag.out @@ -1,6 +1,6 @@ hlsl.explicitDescriptorSet.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/hlsl.flatten.return.frag.out b/Test/baseResults/hlsl.flatten.return.frag.out index e47fe3eb..bc388f85 100644 --- a/Test/baseResults/hlsl.flatten.return.frag.out +++ b/Test/baseResults/hlsl.flatten.return.frag.out @@ -118,7 +118,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 49 Capability Shader diff --git a/Test/baseResults/hlsl.flattenOpaque.frag.out b/Test/baseResults/hlsl.flattenOpaque.frag.out index 94d02f49..688656c1 100644 --- a/Test/baseResults/hlsl.flattenOpaque.frag.out +++ b/Test/baseResults/hlsl.flattenOpaque.frag.out @@ -295,7 +295,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 122 Capability Shader diff --git a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out index a5a59442..6d168587 100644 --- a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out +++ b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out @@ -165,7 +165,7 @@ Shader version: 500 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 82 Capability Shader diff --git a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out index 5a2aa2a1..62a2e8e7 100644 --- a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out +++ b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out @@ -107,7 +107,7 @@ Shader version: 500 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 59 Capability Shader diff --git a/Test/baseResults/hlsl.flattenSubset.frag.out b/Test/baseResults/hlsl.flattenSubset.frag.out index 262a29d6..f6da1a9e 100644 --- a/Test/baseResults/hlsl.flattenSubset.frag.out +++ b/Test/baseResults/hlsl.flattenSubset.frag.out @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:? 'vpos' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/hlsl.flattenSubset2.frag.out b/Test/baseResults/hlsl.flattenSubset2.frag.out index 77dc4cd5..40d92a95 100644 --- a/Test/baseResults/hlsl.flattenSubset2.frag.out +++ b/Test/baseResults/hlsl.flattenSubset2.frag.out @@ -149,7 +149,7 @@ gl_FragCoord origin is upper left 0:? 'vpos' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 56 Capability Shader diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 49827dcf..0f7600e0 100644 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:? 'scalar' ( global float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 8dc33078..8e8c821f 100644 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Shader diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 3e835f80..b6c27101 100644 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -2,197 +2,251 @@ hlsl.forLoop.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) -0:2 Function Parameters: -0:2 'input' ( in 4-component vector of float) +0:1 Function Definition: f0( ( temp void) +0:1 Function Parameters: 0:? Sequence 0:? Sequence -0:3 Loop with condition tested first -0:3 No loop condition -0:3 No loop body -0:4 Sequence -0:4 Pre-Increment ( temp 4-component vector of float) -0:4 'input' ( in 4-component vector of float) -0:4 Loop with condition tested first -0:4 No loop condition -0:4 No loop body -0:? Sequence -0:5 Loop with condition tested first: Unroll -0:5 Loop Condition -0:5 any ( temp bool) -0:5 NotEqual ( temp 4-component vector of bool) -0:5 'input' ( in 4-component vector of float) -0:5 'input' ( in 4-component vector of float) -0:5 No loop body -0:? Sequence +0: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 Loop Condition -0:6 any ( temp bool) -0:6 NotEqual ( temp 4-component vector of bool) -0:6 'input' ( in 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:6 Loop Body -0:? Sequence -0:6 Branch: Return with expression -0:6 Negate value ( temp 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:7 Sequence -0:7 Pre-Decrement ( temp 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Loop with condition tested first -0:7 Loop Condition -0:7 any ( temp bool) -0:7 NotEqual ( temp 4-component vector of bool) -0:7 'input' ( in 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Loop Body -0:? Sequence -0:7 Branch: Return with expression -0:7 Negate value ( temp 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Loop Terminal Expression -0:7 add second child into first child ( temp 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Constant: -0:7 2.000000 +0: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:8 Loop with condition tested first -0:8 No loop condition -0:8 Loop Body -0:8 Test condition and select ( temp void) -0:8 Condition -0:8 Compare Greater Than ( temp bool) -0:8 direct index ( temp float) -0:8 'input' ( in 4-component vector of float) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 2.000000 -0:8 true case -0:8 Branch: Break +0: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:9 Loop with condition tested first -0:9 No loop condition -0:9 Loop Body -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Compare Greater Than ( temp bool) -0:9 direct index ( temp float) -0:9 'input' ( in 4-component vector of float) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 2.000000 -0:9 true case -0:9 Branch: Continue -0:11 Sequence -0:11 move second child to first child ( temp int) -0:11 'ii' ( temp int) -0:11 Constant: -0:11 -1 (const int) -0:11 Loop with condition tested first -0:11 Loop Condition -0:11 Compare Less Than ( temp bool) -0:11 'ii' ( temp int) -0:11 Constant: -0:11 3 (const int) -0:11 Loop Body -0:11 Test condition and select ( temp void) -0:11 Condition -0:11 Compare Equal ( temp bool) -0:11 'ii' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 true case -0:11 Branch: Continue -0:11 Loop Terminal Expression -0:11 Pre-Increment ( temp int) -0:11 'ii' ( temp int) -0:12 Pre-Decrement ( temp float) -0:12 'ii' ( temp float) -0:13 Sequence -0:13 move second child to first child ( temp int) -0:13 'first' ( temp int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child ( temp int) -0:13 'second' ( temp int) -0:13 Constant: -0:13 1 (const int) -0:13 Loop with condition tested first -0:13 No loop condition -0:13 Loop Body -0:13 add ( temp int) -0:13 'first' ( temp int) -0:13 'second' ( temp int) -0:14 Sequence -0:14 move second child to first child ( temp int) -0:14 'i' ( temp int) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child ( temp int) -0:14 'count' ( temp int) -0:14 Convert float to int ( temp int) -0:14 'ii' ( temp float) 0:14 Loop with condition tested first 0:14 Loop Condition -0:14 Compare Less Than ( temp bool) -0:14 'i' ( temp int) -0:14 'count' ( temp int) -0:14 No loop body -0:14 Loop Terminal Expression -0:14 Post-Increment ( temp int) -0:14 'i' ( temp int) -0:15 Sequence -0:15 move second child to first child ( temp float) -0:15 'first' ( temp float) -0:15 Constant: -0:15 0.000000 -0:15 Loop with condition tested first -0:15 Loop Condition -0:15 Compare Less Than ( temp bool) -0:15 'first' ( temp float) -0:15 direct index ( temp float) -0:15 'second' ( temp 2-element array of float) -0:15 Constant: -0:15 0 (const int) -0:15 Loop Body -0:15 add ( temp float) -0:15 add ( temp float) -0:15 'first' ( temp float) -0:15 direct index ( temp float) -0:15 'second' ( temp 2-element array of float) -0:15 Constant: -0:15 1 (const int) -0:15 'third' ( temp float) -0:15 Loop Terminal Expression -0:15 Pre-Increment ( temp float) -0:15 direct index ( temp float) -0:15 'second' ( temp 2-element array of float) -0:15 Constant: -0:15 1 (const int) -0:? Sequence -0:16 Comma ( temp float) -0:16 Comma ( temp float) -0:16 Pre-Decrement ( temp float) -0:16 'ii' ( temp float) -0:16 Pre-Decrement ( temp float) -0:16 'ii' ( temp float) -0:16 Pre-Decrement ( temp float) -0:16 'ii' ( temp float) -0:16 Loop with condition tested first -0:16 No loop condition -0:16 Loop Body -0:16 'ii' ( temp float) -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: +0: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:2 move second child to first child ( temp 4-component vector of float) +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:2 move second child to first child ( temp 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:2 Function Call: @PixelShaderFunction(vf4; ( temp 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) @@ -205,501 +259,654 @@ 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:1 Function Definition: f0( ( temp void) +0:1 Function Parameters: 0:? Sequence 0:? Sequence -0:3 Loop with condition tested first -0:3 No loop condition -0:3 No loop body -0:4 Sequence -0:4 Pre-Increment ( temp 4-component vector of float) -0:4 'input' ( in 4-component vector of float) -0:4 Loop with condition tested first -0:4 No loop condition -0:4 No loop body -0:? Sequence -0:5 Loop with condition tested first: Unroll -0:5 Loop Condition -0:5 any ( temp bool) -0:5 NotEqual ( temp 4-component vector of bool) -0:5 'input' ( in 4-component vector of float) -0:5 'input' ( in 4-component vector of float) -0:5 No loop body -0:? Sequence +0: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 Loop Condition -0:6 any ( temp bool) -0:6 NotEqual ( temp 4-component vector of bool) -0:6 'input' ( in 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:6 Loop Body -0:? Sequence -0:6 Branch: Return with expression -0:6 Negate value ( temp 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:7 Sequence -0:7 Pre-Decrement ( temp 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Loop with condition tested first -0:7 Loop Condition -0:7 any ( temp bool) -0:7 NotEqual ( temp 4-component vector of bool) -0:7 'input' ( in 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Loop Body -0:? Sequence -0:7 Branch: Return with expression -0:7 Negate value ( temp 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Loop Terminal Expression -0:7 add second child into first child ( temp 4-component vector of float) -0:7 'input' ( in 4-component vector of float) -0:7 Constant: -0:7 2.000000 +0: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:8 Loop with condition tested first -0:8 No loop condition -0:8 Loop Body -0:8 Test condition and select ( temp void) -0:8 Condition -0:8 Compare Greater Than ( temp bool) -0:8 direct index ( temp float) -0:8 'input' ( in 4-component vector of float) -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 2.000000 -0:8 true case -0:8 Branch: Break +0: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:9 Loop with condition tested first -0:9 No loop condition -0:9 Loop Body -0:9 Test condition and select ( temp void) -0:9 Condition -0:9 Compare Greater Than ( temp bool) -0:9 direct index ( temp float) -0:9 'input' ( in 4-component vector of float) -0:9 Constant: -0:9 0 (const int) -0:9 Constant: -0:9 2.000000 -0:9 true case -0:9 Branch: Continue -0:11 Sequence -0:11 move second child to first child ( temp int) -0:11 'ii' ( temp int) -0:11 Constant: -0:11 -1 (const int) -0:11 Loop with condition tested first -0:11 Loop Condition -0:11 Compare Less Than ( temp bool) -0:11 'ii' ( temp int) -0:11 Constant: -0:11 3 (const int) -0:11 Loop Body -0:11 Test condition and select ( temp void) -0:11 Condition -0:11 Compare Equal ( temp bool) -0:11 'ii' ( temp int) -0:11 Constant: -0:11 2 (const int) -0:11 true case -0:11 Branch: Continue -0:11 Loop Terminal Expression -0:11 Pre-Increment ( temp int) -0:11 'ii' ( temp int) -0:12 Pre-Decrement ( temp float) -0:12 'ii' ( temp float) -0:13 Sequence -0:13 move second child to first child ( temp int) -0:13 'first' ( temp int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child ( temp int) -0:13 'second' ( temp int) -0:13 Constant: -0:13 1 (const int) -0:13 Loop with condition tested first -0:13 No loop condition -0:13 Loop Body -0:13 add ( temp int) -0:13 'first' ( temp int) -0:13 'second' ( temp int) -0:14 Sequence -0:14 move second child to first child ( temp int) -0:14 'i' ( temp int) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child ( temp int) -0:14 'count' ( temp int) -0:14 Convert float to int ( temp int) -0:14 'ii' ( temp float) 0:14 Loop with condition tested first 0:14 Loop Condition -0:14 Compare Less Than ( temp bool) -0:14 'i' ( temp int) -0:14 'count' ( temp int) -0:14 No loop body -0:14 Loop Terminal Expression -0:14 Post-Increment ( temp int) -0:14 'i' ( temp int) -0:15 Sequence -0:15 move second child to first child ( temp float) -0:15 'first' ( temp float) -0:15 Constant: -0:15 0.000000 -0:15 Loop with condition tested first -0:15 Loop Condition -0:15 Compare Less Than ( temp bool) -0:15 'first' ( temp float) -0:15 direct index ( temp float) -0:15 'second' ( temp 2-element array of float) -0:15 Constant: -0:15 0 (const int) -0:15 Loop Body -0:15 add ( temp float) -0:15 add ( temp float) -0:15 'first' ( temp float) -0:15 direct index ( temp float) -0:15 'second' ( temp 2-element array of float) -0:15 Constant: -0:15 1 (const int) -0:15 'third' ( temp float) -0:15 Loop Terminal Expression -0:15 Pre-Increment ( temp float) -0:15 direct index ( temp float) -0:15 'second' ( temp 2-element array of float) -0:15 Constant: -0:15 1 (const int) -0:? Sequence -0:16 Comma ( temp float) -0:16 Comma ( temp float) -0:16 Pre-Decrement ( temp float) -0:16 'ii' ( temp float) -0:16 Pre-Decrement ( temp float) -0:16 'ii' ( temp float) -0:16 Pre-Decrement ( temp float) -0:16 'ii' ( temp float) -0:16 Loop with condition tested first -0:16 No loop condition -0:16 Loop Body -0:16 'ii' ( temp float) -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: +0: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:2 move second child to first child ( temp 4-component vector of float) +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:2 move second child to first child ( temp 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:2 Function Call: @PixelShaderFunction(vf4; ( temp 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): 80007 -// Id's are bound by 183 +// 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" 176 179 + EntryPoint Fragment 4 "PixelShaderFunction" 233 236 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "PixelShaderFunction" - Name 11 "@PixelShaderFunction(vf4;" - Name 10 "input" - Name 92 "ii" - Name 111 "ii" - Name 114 "first" - Name 116 "second" - Name 124 "i" - Name 125 "count" - Name 138 "first" - Name 149 "second" - Name 157 "third" - Name 174 "input" - Name 176 "input" - Name 179 "@entryPointOutput" - Name 180 "param" - Decorate 176(input) Location 0 - Decorate 179(@entryPointOutput) Location 0 + 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 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeFunction 7(fvec4) 8(ptr) - 18: 6(float) Constant 1065353216 - 32: TypeBool - 33: TypeVector 32(bool) 4 - 63: 6(float) Constant 1073741824 - 71: TypeInt 32 0 - 72: 71(int) Constant 0 - 73: TypePointer Function 6(float) - 90: TypeInt 32 1 - 91: TypePointer Function 90(int) - 93: 90(int) Constant 4294967295 - 100: 90(int) Constant 3 - 103: 90(int) Constant 2 - 109: 90(int) Constant 1 - 115: 90(int) Constant 0 - 139: 6(float) Constant 0 - 146: 71(int) Constant 2 - 147: TypeArray 6(float) 146 - 148: TypePointer Function 147 - 175: TypePointer Input 7(fvec4) - 176(input): 175(ptr) Variable Input - 178: TypePointer Output 7(fvec4) -179(@entryPointOutput): 178(ptr) Variable Output + 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 - 174(input): 8(ptr) Variable Function - 180(param): 8(ptr) Variable Function - 177: 7(fvec4) Load 176(input) - Store 174(input) 177 - 181: 7(fvec4) Load 174(input) - Store 180(param) 181 - 182: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 180(param) - Store 179(@entryPointOutput) 182 + 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 -11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 - 10(input): 8(ptr) FunctionParameter - 12: Label - 92(ii): 91(ptr) Variable Function - 111(ii): 73(ptr) Variable Function - 114(first): 91(ptr) Variable Function - 116(second): 91(ptr) Variable Function - 124(i): 91(ptr) Variable Function - 125(count): 91(ptr) Variable Function - 138(first): 73(ptr) Variable Function - 149(second): 148(ptr) Variable Function - 157(third): 73(ptr) Variable Function - Branch 13 - 13: Label - LoopMerge 15 16 None - Branch 14 + 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 - Branch 16 - 16: Label - Branch 13 - 15: Label - 17: 7(fvec4) Load 10(input) - 19: 7(fvec4) CompositeConstruct 18 18 18 18 - 20: 7(fvec4) FAdd 17 19 - Store 10(input) 20 - Branch 21 - 21: Label - LoopMerge 23 24 None - Branch 22 - 22: Label - Branch 24 - 24: Label - Branch 21 - 23: Label - Branch 25 - 25: Label - LoopMerge 27 28 Unroll - Branch 29 - 29: Label - 30: 7(fvec4) Load 10(input) - 31: 7(fvec4) Load 10(input) - 34: 33(bvec4) FOrdNotEqual 30 31 - 35: 32(bool) Any 34 - BranchConditional 35 26 27 - 26: Label - Branch 28 - 28: Label - Branch 25 - 27: Label - Branch 36 - 36: Label - LoopMerge 38 39 None - Branch 40 - 40: Label - 41: 7(fvec4) Load 10(input) - 42: 7(fvec4) Load 10(input) - 43: 33(bvec4) FOrdNotEqual 41 42 - 44: 32(bool) Any 43 - BranchConditional 44 37 38 - 37: Label - 45: 7(fvec4) Load 10(input) - 46: 7(fvec4) FNegate 45 - ReturnValue 46 - 39: Label - Branch 36 - 38: Label - 48: 7(fvec4) Load 10(input) - 49: 7(fvec4) CompositeConstruct 18 18 18 18 - 50: 7(fvec4) FSub 48 49 - Store 10(input) 50 + 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 - LoopMerge 53 54 None - Branch 55 - 55: Label - 56: 7(fvec4) Load 10(input) - 57: 7(fvec4) Load 10(input) - 58: 33(bvec4) FOrdNotEqual 56 57 - 59: 32(bool) Any 58 - BranchConditional 59 52 53 - 52: Label - 60: 7(fvec4) Load 10(input) - 61: 7(fvec4) FNegate 60 - ReturnValue 61 - 54: Label - 64: 7(fvec4) Load 10(input) - 65: 7(fvec4) CompositeConstruct 63 63 63 63 - 66: 7(fvec4) FAdd 64 65 - Store 10(input) 66 - Branch 51 + Branch 53 53: Label - Branch 67 - 67: Label - LoopMerge 69 70 None - Branch 68 - 68: Label - 74: 73(ptr) AccessChain 10(input) 72 - 75: 6(float) Load 74 - 76: 32(bool) FOrdGreaterThan 75 63 - SelectionMerge 78 None - BranchConditional 76 77 78 - 77: Label - Branch 69 - 78: Label - Branch 70 - 70: Label - Branch 67 + 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 - Branch 80 - 80: Label - LoopMerge 82 83 None - Branch 81 - 81: Label - 84: 73(ptr) AccessChain 10(input) 72 - 85: 6(float) Load 84 - 86: 32(bool) FOrdGreaterThan 85 63 - SelectionMerge 88 None - BranchConditional 86 87 88 - 87: Label - Branch 83 - 88: Label - Branch 83 - 83: Label - Branch 80 + 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 - Store 92(ii) 93 - Branch 94 - 94: Label - LoopMerge 96 97 None - Branch 98 - 98: Label - 99: 90(int) Load 92(ii) - 101: 32(bool) SLessThan 99 100 - BranchConditional 101 95 96 - 95: Label - 102: 90(int) Load 92(ii) - 104: 32(bool) IEqual 102 103 - SelectionMerge 106 None - BranchConditional 104 105 106 - 105: Label - Branch 97 - 106: Label - Branch 97 - 97: Label - 108: 90(int) Load 92(ii) - 110: 90(int) IAdd 108 109 - Store 92(ii) 110 - Branch 94 - 96: Label - 112: 6(float) Load 111(ii) - 113: 6(float) FSub 112 18 - Store 111(ii) 113 - Store 114(first) 115 - Store 116(second) 109 - Branch 117 - 117: Label - LoopMerge 119 120 None - Branch 118 - 118: Label - 121: 90(int) Load 114(first) - 122: 90(int) Load 116(second) - 123: 90(int) IAdd 121 122 - Branch 120 + 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 117 - 119: Label - Store 124(i) 115 - 126: 6(float) Load 111(ii) - 127: 90(int) ConvertFToS 126 - Store 125(count) 127 + 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 132 - 132: Label - 133: 90(int) Load 124(i) - 134: 90(int) Load 125(count) - 135: 32(bool) SLessThan 133 134 - BranchConditional 135 129 130 - 129: Label - Branch 131 - 131: Label - 136: 90(int) Load 124(i) - 137: 90(int) IAdd 136 109 - Store 124(i) 137 - Branch 128 + 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 - Store 138(first) 139 - Branch 140 - 140: Label - LoopMerge 142 143 None + 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 - 145: 6(float) Load 138(first) - 150: 73(ptr) AccessChain 149(second) 115 - 151: 6(float) Load 150 - 152: 32(bool) FOrdLessThan 145 151 - BranchConditional 152 141 142 - 141: Label - 153: 6(float) Load 138(first) - 154: 73(ptr) AccessChain 149(second) 109 - 155: 6(float) Load 154 - 156: 6(float) FAdd 153 155 - 158: 6(float) Load 157(third) - 159: 6(float) FAdd 156 158 - Branch 143 - 143: Label - 160: 73(ptr) AccessChain 149(second) 109 - 161: 6(float) Load 160 - 162: 6(float) FAdd 161 18 - Store 160 162 - Branch 140 - 142: Label - 163: 6(float) Load 111(ii) - 164: 6(float) FSub 163 18 - Store 111(ii) 164 - 165: 6(float) Load 111(ii) - 166: 6(float) FSub 165 18 - Store 111(ii) 166 - 167: 6(float) Load 111(ii) - 168: 6(float) FSub 167 18 - Store 111(ii) 168 - Branch 169 - 169: Label - LoopMerge 171 172 None + Branch 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 - Branch 172 - 172: Label - Branch 169 - 171: Label - 173: 7(fvec4) Undef - ReturnValue 173 + 171: 122(int) Load 164(ii) + 173: 61(bool) SLessThan 171 172 + BranchConditional 173 167 168 + 167: Label + 174: 122(int) Load 164(ii) + 176: 61(bool) IEqual 174 175 + SelectionMerge 178 None + BranchConditional 176 177 178 + 177: Label + Branch 169 + 178: Label + Branch 169 + 169: Label + 180: 122(int) Load 164(ii) + 181: 122(int) IAdd 180 127 + Store 164(ii) 181 + Branch 166 + 168: Label + 183: 8(float) Load 182(ii) + 184: 8(float) FSub 183 47 + Store 182(ii) 184 + 185: 2 FunctionCall 31(f99() + Store 186(i) 125 + 188: 8(float) Load 182(ii) + 189: 122(int) ConvertFToS 188 + Store 187(count) 189 + Branch 190 + 190: Label + LoopMerge 192 193 None + Branch 194 + 194: Label + 195: 122(int) Load 186(i) + 196: 122(int) Load 187(count) + 197: 61(bool) SLessThan 195 196 + BranchConditional 197 191 192 + 191: Label + Branch 193 + 193: Label + 198: 122(int) Load 186(i) + 199: 122(int) IAdd 198 127 + Store 186(i) 199 + Branch 190 + 192: Label + Store 200(first) 201 + Branch 202 + 202: Label + LoopMerge 204 205 None + Branch 206 + 206: Label + 207: 8(float) Load 200(first) + 212: 33(ptr) AccessChain 211(second) 125 + 213: 8(float) Load 212 + 214: 61(bool) FOrdLessThan 207 213 + BranchConditional 214 203 204 + 203: Label + 215: 8(float) Load 200(first) + 216: 33(ptr) AccessChain 211(second) 127 + 217: 8(float) Load 216 + 218: 8(float) FAdd 215 217 + 220: 8(float) Load 219(third) + 221: 8(float) FAdd 218 220 + Branch 205 + 205: Label + 222: 33(ptr) AccessChain 211(second) 127 + 223: 8(float) Load 222 + 224: 8(float) FAdd 223 47 + Store 222 224 + Branch 202 + 204: Label + 226: 8(float) Load 182(ii) + Store 225(param) 226 + 227: 2 FunctionCall 36(f100(f1;) 225(param) + 228: 9(fvec4) Load 39(input) + ReturnValue 228 FunctionEnd diff --git a/Test/baseResults/hlsl.format.rwtexture.frag.out b/Test/baseResults/hlsl.format.rwtexture.frag.out new file mode 100644 index 00000000..699dafeb --- /dev/null +++ b/Test/baseResults/hlsl.format.rwtexture.frag.out @@ -0,0 +1,501 @@ +hlsl.format.rwtexture.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:56 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Parameters: +0:? Sequence +0:59 move second child to first child ( temp 4-component vector of float) +0:59 Color: direct index for structure ( temp 4-component vector of float) +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1.000000 +0:59 1.000000 +0:59 1.000000 +0:59 1.000000 +0:60 move second child to first child ( temp float) +0:60 Depth: direct index for structure ( temp float) +0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 1.000000 +0:62 Branch: Return with expression +0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Definition: main( ( temp void) +0:56 Function Parameters: +0:? Sequence +0:56 Sequence +0:56 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:56 Color: direct index for structure ( temp 4-component vector of float) +0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:56 Depth: direct index for structure ( temp float) +0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rg32f) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba8_snorm) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba8i) uniform image2D) +0:? 'g_tTex2di4' (layout( r11f_g11f_b10f) uniform iimage2D) +0:? 'g_tTex2du4' (layout( r8_snorm) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rg8) readonly uniform image3D) +0:? 'g_tTex3di4' (layout( rgba16i) writeonly uniform iimage3D) +0:? 'g_tTex3du4' (layout( r8i) readonly writeonly uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba8ui) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rg32ui) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( r16ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgb10_a2ui) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( r8ui) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba16f) uniform uimage2DArray) +0:? 'g_tTex01' (layout( rgba8) uniform iimage2DArray) +0:? 'g_tTex02' (layout( rg16f) uniform iimage2DArray) +0:? 'g_tTex03' (layout( r16f) uniform iimage2DArray) +0:? 'g_tTex04' (layout( rgb10_a2) uniform iimage2DArray) +0:? 'g_tTex05' (layout( rg16) uniform iimage2DArray) +0:? 'g_tTex06' (layout( r32f) uniform iimage2DArray) +0:? 'g_tTex07' (layout( rgba16) uniform iimage2DArray) +0:? 'g_tTex08' (layout( r16) uniform iimage2DArray) +0:? 'g_tTex09' (layout( r8) uniform iimage2DArray) +0:? 'g_tTex10' (layout( rgba16_snorm) uniform iimage2DArray) +0:? 'g_tTex11' (layout( rg16_snorm) uniform iimage2DArray) +0:? 'g_tTex12' (layout( r16_snorm) uniform iimage2DArray) +0:? 'g_tTex13' (layout( r8_snorm) uniform iimage2DArray) +0:? 'g_tTex14' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex15' (layout( r32i) uniform iimage2DArray) +0:? 'g_tTex16' (layout( r32ui) uniform iimage2DArray) +0:? 'g_tTex17' (layout( rg16i) uniform iimage2DArray) +0:? 'g_tTex18' (layout( r16i) uniform iimage2DArray) +0:? 'g_tTex19' (layout( rg32i) uniform iimage2DArray) +0:? 'g_tTex20' (layout( rg8i) uniform iimage2DArray) +0:? 'g_tTex21' (layout( rg8ui) uniform iimage2DArray) +0:? 'g_tTex22' (layout( rgba32ui) uniform iimage2DArray) +0:? 'g_tTex23' (layout( rgba16ui) uniform iimage2DArray) +0:? 'g_tTex24' (layout( rg32ui) uniform iimage2DArray) +0:? 'g_tTex25' (layout( rg16ui) uniform iimage2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:56 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Parameters: +0:? Sequence +0:59 move second child to first child ( temp 4-component vector of float) +0:59 Color: direct index for structure ( temp 4-component vector of float) +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1.000000 +0:59 1.000000 +0:59 1.000000 +0:59 1.000000 +0:60 move second child to first child ( temp float) +0:60 Depth: direct index for structure ( temp float) +0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 1.000000 +0:62 Branch: Return with expression +0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Definition: main( ( temp void) +0:56 Function Parameters: +0:? Sequence +0:56 Sequence +0:56 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:56 Color: direct index for structure ( temp 4-component vector of float) +0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:56 Depth: direct index for structure ( temp float) +0:56 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rg32f) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba8_snorm) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba8i) uniform image2D) +0:? 'g_tTex2di4' (layout( r11f_g11f_b10f) uniform iimage2D) +0:? 'g_tTex2du4' (layout( r8_snorm) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rg8) readonly uniform image3D) +0:? 'g_tTex3di4' (layout( rgba16i) writeonly uniform iimage3D) +0:? 'g_tTex3du4' (layout( r8i) readonly writeonly uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba8ui) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rg32ui) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( r16ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgb10_a2ui) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( r8ui) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba16f) uniform uimage2DArray) +0:? 'g_tTex01' (layout( rgba8) uniform iimage2DArray) +0:? 'g_tTex02' (layout( rg16f) uniform iimage2DArray) +0:? 'g_tTex03' (layout( r16f) uniform iimage2DArray) +0:? 'g_tTex04' (layout( rgb10_a2) uniform iimage2DArray) +0:? 'g_tTex05' (layout( rg16) uniform iimage2DArray) +0:? 'g_tTex06' (layout( r32f) uniform iimage2DArray) +0:? 'g_tTex07' (layout( rgba16) uniform iimage2DArray) +0:? 'g_tTex08' (layout( r16) uniform iimage2DArray) +0:? 'g_tTex09' (layout( r8) uniform iimage2DArray) +0:? 'g_tTex10' (layout( rgba16_snorm) uniform iimage2DArray) +0:? 'g_tTex11' (layout( rg16_snorm) uniform iimage2DArray) +0:? 'g_tTex12' (layout( r16_snorm) uniform iimage2DArray) +0:? 'g_tTex13' (layout( r8_snorm) uniform iimage2DArray) +0:? 'g_tTex14' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex15' (layout( r32i) uniform iimage2DArray) +0:? 'g_tTex16' (layout( r32ui) uniform iimage2DArray) +0:? 'g_tTex17' (layout( rg16i) uniform iimage2DArray) +0:? 'g_tTex18' (layout( r16i) uniform iimage2DArray) +0:? 'g_tTex19' (layout( rg32i) uniform iimage2DArray) +0:? 'g_tTex20' (layout( rg8i) uniform iimage2DArray) +0:? 'g_tTex21' (layout( rg8ui) uniform iimage2DArray) +0:? 'g_tTex22' (layout( rgba32ui) uniform iimage2DArray) +0:? 'g_tTex23' (layout( rgba16ui) uniform iimage2DArray) +0:? 'g_tTex24' (layout( rg32ui) uniform iimage2DArray) +0:? 'g_tTex25' (layout( rg16ui) uniform iimage2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 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 diff --git a/Test/baseResults/hlsl.fraggeom.frag.out b/Test/baseResults/hlsl.fraggeom.frag.out index af3564d1..7509ddc8 100644 --- a/Test/baseResults/hlsl.fraggeom.frag.out +++ b/Test/baseResults/hlsl.fraggeom.frag.out @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 25 Capability Shader diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 32d27ab0..b954c2b6 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -262,7 +262,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 124 Capability Shader diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 57e4499d..530bccd8 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -258,7 +258,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 135 Capability Shader diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index a0c8d159..de745d1b 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -220,7 +220,7 @@ Shader version: 500 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 126 Capability Shader diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 85ba2945..3a897121 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -208,7 +208,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 114 Capability Shader diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index c73547e3..36011878 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -202,7 +202,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 97 Capability Shader diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index ac6c8174..c2a49018 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -750,7 +750,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 255 Capability Shader diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 8617d701..8bb01d53 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -758,7 +758,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 265 Capability Shader diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 4a0d77a0..a7776780 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -1263,7 +1263,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 399 Capability Shader diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index c9740b05..2acc9753 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -1255,7 +1255,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 389 Capability Shader diff --git a/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out index 5e2d4221..8ad84cd7 100644 --- a/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out @@ -456,7 +456,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 164 Capability Shader diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index eb92fbb0..cf406ed4 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2318,7 +2318,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 550 Capability Shader diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index cccdfeb2..51368b6d 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -116,7 +116,7 @@ Shader version: 500 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 48 Capability Shader diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out index d8675a20..d096c381 100644 --- a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -718,7 +718,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 232 Capability Shader diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index d1e28447..7c46c8e1 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -580,7 +580,7 @@ using depth_any 0:? 'sample' (layout( location=0) flat in int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 198 Capability Shader diff --git a/Test/baseResults/hlsl.global-const-init.frag.out b/Test/baseResults/hlsl.global-const-init.frag.out index a1aa55b5..828c0c59 100644 --- a/Test/baseResults/hlsl.global-const-init.frag.out +++ b/Test/baseResults/hlsl.global-const-init.frag.out @@ -102,7 +102,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/hlsl.groupid.comp.out b/Test/baseResults/hlsl.groupid.comp.out index a76db505..65804b73 100644 --- a/Test/baseResults/hlsl.groupid.comp.out +++ b/Test/baseResults/hlsl.groupid.comp.out @@ -82,7 +82,7 @@ local_size = (8, 8, 1) 0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 37 Capability Shader diff --git a/Test/baseResults/hlsl.gs-hs-mix.tesc.out b/Test/baseResults/hlsl.gs-hs-mix.tesc.out index 4971371a..fabc1109 100644 --- a/Test/baseResults/hlsl.gs-hs-mix.tesc.out +++ b/Test/baseResults/hlsl.gs-hs-mix.tesc.out @@ -798,7 +798,7 @@ triangle order = ccw 0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 216 Capability Tessellation diff --git a/Test/baseResults/hlsl.hlslOffset.vert.out b/Test/baseResults/hlsl.hlslOffset.vert.out index b0c04672..099318cb 100644 --- a/Test/baseResults/hlsl.hlslOffset.vert.out +++ b/Test/baseResults/hlsl.hlslOffset.vert.out @@ -26,7 +26,7 @@ Shader version: 500 0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader diff --git a/Test/baseResults/hlsl.hull.1.tesc.out b/Test/baseResults/hlsl.hull.1.tesc.out index 1be14987..ca4417d7 100644 --- a/Test/baseResults/hlsl.hull.1.tesc.out +++ b/Test/baseResults/hlsl.hull.1.tesc.out @@ -224,7 +224,7 @@ vertex spacing = equal_spacing 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 89 Capability Tessellation diff --git a/Test/baseResults/hlsl.hull.2.tesc.out b/Test/baseResults/hlsl.hull.2.tesc.out index c8218d23..70fc4f1e 100644 --- a/Test/baseResults/hlsl.hull.2.tesc.out +++ b/Test/baseResults/hlsl.hull.2.tesc.out @@ -220,7 +220,7 @@ vertex spacing = equal_spacing 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 91 Capability Tessellation diff --git a/Test/baseResults/hlsl.hull.3.tesc.out b/Test/baseResults/hlsl.hull.3.tesc.out index 4ff01985..fba7fac8 100644 --- a/Test/baseResults/hlsl.hull.3.tesc.out +++ b/Test/baseResults/hlsl.hull.3.tesc.out @@ -220,7 +220,7 @@ vertex spacing = equal_spacing 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 91 Capability Tessellation diff --git a/Test/baseResults/hlsl.hull.4.tesc.out b/Test/baseResults/hlsl.hull.4.tesc.out index a99730d0..253bdc64 100644 --- a/Test/baseResults/hlsl.hull.4.tesc.out +++ b/Test/baseResults/hlsl.hull.4.tesc.out @@ -476,7 +476,7 @@ triangle order = cw 0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 127 Capability Tessellation diff --git a/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out index 41f3c0a4..2bf3c7c7 100644 --- a/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out +++ b/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out @@ -396,7 +396,7 @@ triangle order = cw 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 124 Capability Tessellation diff --git a/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out index 986e1102..62e48f74 100644 --- a/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out +++ b/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out @@ -414,7 +414,7 @@ triangle order = cw 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 126 Capability Tessellation diff --git a/Test/baseResults/hlsl.hull.void.tesc.out b/Test/baseResults/hlsl.hull.void.tesc.out index c44c7e4d..7c006db3 100644 --- a/Test/baseResults/hlsl.hull.void.tesc.out +++ b/Test/baseResults/hlsl.hull.void.tesc.out @@ -108,7 +108,7 @@ triangle order = ccw 0:? 'InvocationId' ( in uint InvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 55 Capability Tessellation diff --git a/Test/baseResults/hlsl.identifier.sample.frag.out b/Test/baseResults/hlsl.identifier.sample.frag.out index a23451ec..ddc4c51d 100644 --- a/Test/baseResults/hlsl.identifier.sample.frag.out +++ b/Test/baseResults/hlsl.identifier.sample.frag.out @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 056b672e..6b6de9c5 100644 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -2,104 +2,116 @@ hlsl.if.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) -0:2 Function Parameters: -0:2 'input' ( in 4-component vector of float) +0: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:3 Test condition and select ( temp void) -0:3 Condition -0:3 all ( temp bool) -0:3 Equal ( temp 4-component vector of bool) -0:3 'input' ( in 4-component vector of float) -0:3 'input' ( in 4-component vector of float) -0:3 true case -0:4 Branch: Return with expression -0:4 'input' ( in 4-component vector of float) -0:6 Test condition and select ( temp void) -0:6 Condition -0:6 all ( temp bool) -0:6 Equal ( temp 4-component vector of bool) -0:6 'input' ( in 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:6 true case -0:7 Branch: Return with expression -0:7 'input' ( in 4-component vector of float) -0:6 false case -0:9 Branch: Return with expression -0:9 Negate value ( temp 4-component vector of float) +0: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:11 Test condition and select ( temp void) -0:11 Condition -0:11 all ( temp bool) -0:11 Equal ( temp 4-component vector of bool) -0:11 'input' ( in 4-component vector of float) -0:11 'input' ( in 4-component vector of float) -0:11 true case is null -0:14 Test condition and select ( temp void) -0:14 Condition -0:14 all ( temp bool) -0:14 Equal ( temp 4-component vector of bool) -0:14 'input' ( in 4-component vector of float) -0:14 'input' ( in 4-component vector of float) -0:14 true case is null -0:19 Test condition and select ( temp void): Flatten -0:19 Condition -0:19 all ( temp bool) -0:19 Equal ( temp 4-component vector of bool) -0:19 'input' ( in 4-component vector of float) -0:19 'input' ( in 4-component vector of float) -0:19 true case +0:9 'input' ( in 4-component vector of float) +0:9 true case 0:? Sequence -0:20 Branch: Return with expression -0:20 'input' ( in 4-component vector of float) +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 +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:24 Branch: Return with expression -0:24 'input' ( in 4-component vector of float) -0:23 false case -0:? Sequence -0:26 Branch: Return with expression -0:26 Negate value ( temp 4-component vector of float) -0:26 'input' ( in 4-component vector of float) -0:30 Test condition and select ( temp void) -0:30 Condition -0:30 Convert float to bool ( temp bool) -0:30 move second child to first child ( temp float) -0:30 'ii' ( temp float) -0:30 direct index ( temp float) -0:30 'input' ( in 4-component vector of float) -0:30 Constant: -0:30 2 (const int) -0:30 true case -0:31 Pre-Increment ( temp float) -0:31 'ii' ( temp float) -0:32 Pre-Increment ( temp int) -0:32 'ii' ( temp int) -0:33 Test condition and select ( temp void) -0:33 Condition -0:33 Compare Equal ( temp bool) -0:33 Convert int to float ( temp float) -0:33 'ii' ( temp int) -0:33 Constant: -0:33 1.000000 -0:33 true case -0:34 Pre-Increment ( temp int) -0:34 'ii' ( temp int) -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: +0: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:2 move second child to first child ( temp 4-component vector of float) +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:2 move second child to first child ( temp 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:2 Function Call: @PixelShaderFunction(vf4; ( temp 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) @@ -112,259 +124,295 @@ 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: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:3 Test condition and select ( temp void) -0:3 Condition -0:3 all ( temp bool) -0:3 Equal ( temp 4-component vector of bool) -0:3 'input' ( in 4-component vector of float) -0:3 'input' ( in 4-component vector of float) -0:3 true case -0:4 Branch: Return with expression -0:4 'input' ( in 4-component vector of float) -0:6 Test condition and select ( temp void) -0:6 Condition -0:6 all ( temp bool) -0:6 Equal ( temp 4-component vector of bool) -0:6 'input' ( in 4-component vector of float) -0:6 'input' ( in 4-component vector of float) -0:6 true case -0:7 Branch: Return with expression -0:7 'input' ( in 4-component vector of float) -0:6 false case -0:9 Branch: Return with expression -0:9 Negate value ( temp 4-component vector of float) +0: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:11 Test condition and select ( temp void) -0:11 Condition -0:11 all ( temp bool) -0:11 Equal ( temp 4-component vector of bool) -0:11 'input' ( in 4-component vector of float) -0:11 'input' ( in 4-component vector of float) -0:11 true case is null -0:14 Test condition and select ( temp void) -0:14 Condition -0:14 all ( temp bool) -0:14 Equal ( temp 4-component vector of bool) -0:14 'input' ( in 4-component vector of float) -0:14 'input' ( in 4-component vector of float) -0:14 true case is null -0:19 Test condition and select ( temp void): Flatten -0:19 Condition -0:19 all ( temp bool) -0:19 Equal ( temp 4-component vector of bool) -0:19 'input' ( in 4-component vector of float) -0:19 'input' ( in 4-component vector of float) -0:19 true case +0:9 'input' ( in 4-component vector of float) +0:9 true case 0:? Sequence -0:20 Branch: Return with expression -0:20 'input' ( in 4-component vector of float) +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 +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:24 Branch: Return with expression -0:24 'input' ( in 4-component vector of float) -0:23 false case -0:? Sequence -0:26 Branch: Return with expression -0:26 Negate value ( temp 4-component vector of float) -0:26 'input' ( in 4-component vector of float) -0:30 Test condition and select ( temp void) -0:30 Condition -0:30 Convert float to bool ( temp bool) -0:30 move second child to first child ( temp float) -0:30 'ii' ( temp float) -0:30 direct index ( temp float) -0:30 'input' ( in 4-component vector of float) -0:30 Constant: -0:30 2 (const int) -0:30 true case -0:31 Pre-Increment ( temp float) -0:31 'ii' ( temp float) -0:32 Pre-Increment ( temp int) -0:32 'ii' ( temp int) -0:33 Test condition and select ( temp void) -0:33 Condition -0:33 Compare Equal ( temp bool) -0:33 Convert int to float ( temp float) -0:33 'ii' ( temp int) -0:33 Constant: -0:33 1.000000 -0:33 true case -0:34 Pre-Increment ( temp int) -0:34 'ii' ( temp int) -0:2 Function Definition: PixelShaderFunction( ( temp void) -0:2 Function Parameters: +0: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:2 move second child to first child ( temp 4-component vector of float) +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:2 move second child to first child ( temp 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:2 Function Call: @PixelShaderFunction(vf4; ( temp 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): 80007 -// Id's are bound by 103 +// 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" 96 99 + EntryPoint Fragment 4 "PixelShaderFunction" 110 113 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "PixelShaderFunction" - Name 11 "@PixelShaderFunction(vf4;" + Name 11 "f0(vf4;" Name 10 "input" - Name 68 "ii" + Name 14 "f1(vf4;" + Name 13 "input" + Name 17 "@PixelShaderFunction(vf4;" + Name 16 "input" + Name 55 "param" + Name 78 "param" Name 82 "ii" - Name 94 "input" - Name 96 "input" - Name 99 "@entryPointOutput" - Name 100 "param" - Decorate 96(input) Location 0 - Decorate 99(@entryPointOutput) Location 0 + 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) - 15: TypeBool - 16: TypeVector 15(bool) 4 - 67: TypePointer Function 6(float) - 69: TypeInt 32 0 - 70: 69(int) Constant 2 - 73: 6(float) Constant 0 - 78: 6(float) Constant 1065353216 - 80: TypeInt 32 1 - 81: TypePointer Function 80(int) - 84: 80(int) Constant 1 - 95: TypePointer Input 7(fvec4) - 96(input): 95(ptr) Variable Input - 98: TypePointer Output 7(fvec4) -99(@entryPointOutput): 98(ptr) Variable Output + 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 - 94(input): 8(ptr) Variable Function - 100(param): 8(ptr) Variable Function - 97: 7(fvec4) Load 96(input) - Store 94(input) 97 - 101: 7(fvec4) Load 94(input) - Store 100(param) 101 - 102: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 100(param) - Store 99(@entryPointOutput) 102 + 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(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 11(f0(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label - 68(ii): 67(ptr) Variable Function + 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 - 13: 7(fvec4) Load 10(input) - 14: 7(fvec4) Load 10(input) - 17: 16(bvec4) FOrdEqual 13 14 - 18: 15(bool) All 17 - SelectionMerge 20 None - BranchConditional 18 19 20 - 19: Label - 21: 7(fvec4) Load 10(input) - ReturnValue 21 - 20: Label - 23: 7(fvec4) Load 10(input) - 24: 7(fvec4) Load 10(input) - 25: 16(bvec4) FOrdEqual 23 24 - 26: 15(bool) All 25 - SelectionMerge 28 None - BranchConditional 26 27 31 - 27: Label - 29: 7(fvec4) Load 10(input) - ReturnValue 29 - 31: Label - 32: 7(fvec4) Load 10(input) - 33: 7(fvec4) FNegate 32 - ReturnValue 33 - 28: Label - 35: 7(fvec4) Load 10(input) - 36: 7(fvec4) Load 10(input) - 37: 16(bvec4) FOrdEqual 35 36 - 38: 15(bool) All 37 - SelectionMerge 40 None - BranchConditional 38 39 40 - 39: Label - Branch 40 - 40: Label - 41: 7(fvec4) Load 10(input) - 42: 7(fvec4) Load 10(input) - 43: 16(bvec4) FOrdEqual 41 42 - 44: 15(bool) All 43 - SelectionMerge 46 None - BranchConditional 44 45 46 - 45: Label - Branch 46 - 46: Label - 47: 7(fvec4) Load 10(input) - 48: 7(fvec4) Load 10(input) - 49: 16(bvec4) FOrdEqual 47 48 - 50: 15(bool) All 49 - SelectionMerge 52 Flatten + 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 10(input) + 53: 7(fvec4) Load 16(input) ReturnValue 53 52: Label - 55: 7(fvec4) Load 10(input) - 56: 7(fvec4) Load 10(input) - 57: 16(bvec4) FOrdEqual 55 56 - 58: 15(bool) All 57 - SelectionMerge 60 None - BranchConditional 58 59 63 - 59: Label - 61: 7(fvec4) Load 10(input) - ReturnValue 61 - 63: Label - 64: 7(fvec4) Load 10(input) - 65: 7(fvec4) FNegate 64 - ReturnValue 65 - 60: Label - 71: 67(ptr) AccessChain 10(input) 70 - 72: 6(float) Load 71 - Store 68(ii) 72 - 74: 15(bool) FOrdNotEqual 72 73 - SelectionMerge 76 None - BranchConditional 74 75 76 - 75: Label - 77: 6(float) Load 68(ii) - 79: 6(float) FAdd 77 78 - Store 68(ii) 79 - Branch 76 - 76: Label - 83: 80(int) Load 82(ii) - 85: 80(int) IAdd 83 84 - Store 82(ii) 85 - 86: 80(int) Load 82(ii) - 87: 6(float) ConvertSToF 86 - 88: 15(bool) FOrdEqual 87 78 + 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: 80(int) Load 82(ii) - 92: 80(int) IAdd 91 84 - Store 82(ii) 92 + 91: 6(float) Load 82(ii) + 93: 6(float) FAdd 91 92 + Store 82(ii) 93 Branch 90 90: Label - 93: 7(fvec4) Undef - ReturnValue 93 + 97: 94(int) Load 96(ii) + 99: 94(int) IAdd 97 98 + Store 96(ii) 99 + 100: 94(int) Load 96(ii) + 101: 6(float) ConvertSToF 100 + 102: 21(bool) FOrdEqual 101 92 + SelectionMerge 104 None + BranchConditional 102 103 104 + 103: Label + 105: 94(int) Load 96(ii) + 106: 94(int) IAdd 105 98 + Store 96(ii) 106 + Branch 104 + 104: Label + 107: 7(fvec4) Undef + ReturnValue 107 FunctionEnd diff --git a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out index 721aeead..304f24b6 100644 --- a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out +++ b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out @@ -72,7 +72,7 @@ local_size = (8, 8, 8) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/hlsl.implicitBool.frag.out b/Test/baseResults/hlsl.implicitBool.frag.out index c6161258..8b5dcde7 100644 --- a/Test/baseResults/hlsl.implicitBool.frag.out +++ b/Test/baseResults/hlsl.implicitBool.frag.out @@ -332,7 +332,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 139 Capability Shader diff --git a/Test/baseResults/hlsl.include.vert.out b/Test/baseResults/hlsl.include.vert.out index 88ee8e78..4a814ae9 100644 --- a/Test/baseResults/hlsl.include.vert.out +++ b/Test/baseResults/hlsl.include.vert.out @@ -1,6 +1,6 @@ ../Test/hlsl.include.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 44 Capability Shader diff --git a/Test/baseResults/hlsl.inf.vert.out b/Test/baseResults/hlsl.inf.vert.out index 1cedc55f..02326b3b 100644 --- a/Test/baseResults/hlsl.inf.vert.out +++ b/Test/baseResults/hlsl.inf.vert.out @@ -112,7 +112,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 37 Capability Shader diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 1d9a5efa..2139adb4 100644 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -331,7 +331,7 @@ gl_FragCoord origin is upper left 0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 110 Capability Shader diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 9e03de3a..0ba8bd27 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -358,7 +358,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 112 Capability Shader diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 42adb1a8..2ffa3c56 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -214,7 +214,7 @@ using depth_any 0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 92 Capability Shader diff --git a/Test/baseResults/hlsl.int.dot.frag.out b/Test/baseResults/hlsl.int.dot.frag.out index afe44c85..a691836f 100644 --- a/Test/baseResults/hlsl.int.dot.frag.out +++ b/Test/baseResults/hlsl.int.dot.frag.out @@ -224,7 +224,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsic.frexp.frag.out b/Test/baseResults/hlsl.intrinsic.frexp.frag.out index 3a9d6fd5..9fb9cc55 100644 --- a/Test/baseResults/hlsl.intrinsic.frexp.frag.out +++ b/Test/baseResults/hlsl.intrinsic.frexp.frag.out @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 98 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsic.frexp.vert.out b/Test/baseResults/hlsl.intrinsic.frexp.vert.out index 92bd7ef0..7069ecec 100644 --- a/Test/baseResults/hlsl.intrinsic.frexp.vert.out +++ b/Test/baseResults/hlsl.intrinsic.frexp.vert.out @@ -113,7 +113,7 @@ Shader version: 500 0:? Linker Objects // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 78 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 13fe5780..a078978e 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -52,7 +52,7 @@ local_size = (1, 1, 1) 0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 3329c5cb..761a3b3d 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -717,7 +717,7 @@ local_size = (1, 1, 1) Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 265 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out b/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out index f2216def..48322416 100644 --- a/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out +++ b/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 55a102f5..472f31b2 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:? 'inU1b' (layout( location=9) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 90 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index 3f69827d..0260b937 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -155,7 +155,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 80 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index c5619efa..785b083d 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 103 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.f3216.frag.out b/Test/baseResults/hlsl.intrinsics.f3216.frag.out index c447efc4..77826b3b 100644 --- a/Test/baseResults/hlsl.intrinsics.f3216.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f3216.frag.out @@ -270,7 +270,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 106 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index b8add071..dca823b6 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -185,1073 +185,1068 @@ gl_FragCoord origin is upper left 0:55 'inF1' ( in float) 0:56 Sequence 0:56 move second child to first child ( temp float) -0:56 'r034' ( temp float) -0:56 Fraction ( 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 'r036' ( temp float) -0:57 fwidth ( 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 bool) -0:58 'r037' ( temp bool) -0:58 isinf ( temp bool) +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 'r038' ( temp bool) -0:59 isnan ( 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 float) -0:60 'r039' ( temp float) -0:60 ldexp ( temp float) +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:60 'inF1' ( in float) 0:61 Sequence 0:61 move second child to first child ( temp float) -0:61 'r039a' ( temp float) -0:61 mix ( temp float) +0:61 'r039' ( temp float) +0:61 ldexp ( temp float) 0:61 'inF0' ( in float) 0:61 'inF1' ( in float) -0:61 'inF2' ( in float) 0:62 Sequence 0:62 move second child to first child ( temp float) -0:62 'r040' ( temp float) -0:62 log ( 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 'r041' ( temp float) -0:63 component-wise multiply ( temp float) -0:63 log2 ( temp float) -0:63 'inF0' ( in float) -0:63 Constant: -0:63 0.301030 +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 'r042' ( temp float) -0:64 log2 ( temp float) -0:64 'inF0' ( in 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 'r043' ( temp float) -0:65 max ( temp float) +0:65 'r042' ( temp float) +0:65 log2 ( temp float) 0:65 'inF0' ( in float) -0:65 'inF1' ( in float) 0:66 Sequence 0:66 move second child to first child ( temp float) -0:66 'r044' ( temp float) -0:66 min ( 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 'r045' ( temp float) -0:67 pow ( 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 'r046' ( temp float) -0:68 radians ( 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 'r047' ( temp float) -0:69 divide ( temp float) -0:69 Constant: -0:69 1.000000 +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 uint) -0:70 'r048' ( temp uint) -0:70 Convert int to uint ( temp uint) -0:70 bitFieldReverse ( temp int) -0:70 Constant: -0:70 2 (const int) +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 float) -0:71 'r049' ( temp float) -0:71 roundEven ( temp float) -0:71 'inF0' ( in float) +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 'r050' ( temp float) -0:72 inverse sqrt ( 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 'r051' ( temp float) -0:73 clamp ( temp float) +0:73 'r050' ( temp float) +0:73 inverse sqrt ( temp float) 0:73 'inF0' ( in float) -0:73 Constant: -0:73 0.000000 -0:73 Constant: -0:73 1.000000 0:74 Sequence 0:74 move second child to first child ( temp float) -0:74 'r052' ( temp float) -0:74 Sign ( 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 'r053' ( temp float) -0:75 sine ( 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 'inF1' ( in float) +0:76 'r053' ( temp float) 0:76 sine ( temp float) 0:76 'inF0' ( in float) -0:76 move second child to first child ( temp float) -0:76 'inF2' ( in float) -0:76 cosine ( temp float) -0:76 'inF0' ( in float) 0:77 Sequence 0:77 move second child to first child ( temp float) -0:77 'r055' ( temp float) -0:77 hyp. sine ( 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 'r056' ( temp float) -0:78 smoothstep ( temp float) +0:78 'r055' ( temp float) +0:78 hyp. sine ( temp float) 0:78 'inF0' ( in float) -0:78 'inF1' ( in float) -0:78 'inF2' ( in float) 0:79 Sequence 0:79 move second child to first child ( temp float) -0:79 'r057' ( temp float) -0:79 sqrt ( 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 'r058' ( temp float) -0:80 step ( temp float) +0:80 'r057' ( temp float) +0:80 sqrt ( temp float) 0:80 'inF0' ( in float) -0:80 'inF1' ( in float) 0:81 Sequence 0:81 move second child to first child ( temp float) -0:81 'r059' ( temp float) -0:81 tangent ( 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 'r060' ( temp float) -0:82 hyp. tangent ( temp float) +0:82 'r059' ( temp float) +0:82 tangent ( temp float) 0:82 'inF0' ( in float) -0:84 Sequence -0:84 move second child to first child ( temp float) -0:84 'r061' ( temp float) -0:84 trunc ( temp float) -0:84 'inF0' ( in float) -0:86 Branch: Return with expression -0:86 Constant: -0:86 0.000000 -0:90 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) -0:90 Function Parameters: -0:90 'inF0' ( in 1-component vector of float) -0:90 'inF1' ( in 1-component vector of float) -0:90 'inF2' ( in 1-component vector of 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:92 Branch: Return with expression -0:92 Constant: -0:92 0.000000 -0:96 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) -0:96 Function Parameters: -0:96 'inF0' ( in 2-component vector of float) -0:96 'inF1' ( in 2-component vector of float) -0:96 'inF2' ( in 2-component vector of float) -0:96 'inU0' ( in 2-component vector of uint) -0:96 'inU1' ( in 2-component vector of uint) +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:99 Sequence -0:99 move second child to first child ( temp bool) -0:99 'r000' ( temp bool) -0:99 all ( temp bool) -0:99 Convert float to bool ( temp 2-component vector of bool) -0:99 'inF0' ( in 2-component vector of float) 0:100 Sequence -0:100 move second child to first child ( temp 2-component vector of float) -0:100 'r001' ( temp 2-component vector of float) -0:100 Absolute value ( temp 2-component vector of float) -0:100 'inF0' ( in 2-component vector of float) +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 'r002' ( temp 2-component vector of float) -0:101 arc cosine ( 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 bool) -0:102 'r003' ( temp bool) -0:102 any ( temp bool) -0:102 Convert float to bool ( temp 2-component vector of bool) -0:102 'inF0' ( in 2-component vector of float) +0:102 move second child to first child ( temp 2-component vector of float) +0:102 '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 2-component vector of float) -0:103 'r004' ( temp 2-component vector of float) -0:103 arc sine ( temp 2-component vector of float) -0:103 'inF0' ( in 2-component vector of float) +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 int) -0:104 'r005' ( temp 2-component vector of int) -0:104 floatBitsToInt ( temp 2-component vector of int) +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 uint) -0:105 'r006' ( temp 2-component vector of uint) -0:105 floatBitsToUint ( temp 2-component vector of uint) +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 float) -0:106 'r007' ( temp 2-component vector of float) -0:106 intBitsToFloat ( temp 2-component vector of float) -0:106 'inU0' ( in 2-component vector of uint) -0:108 Sequence -0:108 move second child to first child ( temp 2-component vector of float) -0:108 'r009' ( temp 2-component vector of float) -0:108 arc tangent ( temp 2-component vector of float) -0:108 'inF0' ( in 2-component vector of float) +0: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 'r010' ( 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:109 'inF1' ( 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 'r011' ( temp 2-component vector of float) -0:110 Ceiling ( 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 'r012' ( temp 2-component vector of float) -0:111 clamp ( 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:111 'inF1' ( in 2-component vector of float) -0:111 'inF2' ( in 2-component vector of float) -0:112 Test condition and select ( temp void) -0:112 Condition -0:112 any ( temp bool) -0:112 Compare Less Than ( temp 2-component vector of bool) +0:112 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 Constant: -0:112 0.000000 -0:112 0.000000 -0:112 true case -0:112 Branch: Kill +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 'inU0' ( in 2-component vector of uint) +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 Sequence -0:114 move second child to first child ( temp 2-component vector of float) -0:114 'r013' ( temp 2-component vector of float) -0:114 cosine ( temp 2-component vector of float) -0:114 'inF0' ( in 2-component vector of float) +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 'r015' ( temp 2-component vector of float) -0:115 hyp. cosine ( 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 int) -0:116 'r016' ( temp 2-component vector of int) +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:117 Sequence -0:117 move second child to first child ( temp 2-component vector of float) -0:117 'r017' ( temp 2-component vector of float) -0:117 dPdx ( temp 2-component vector of float) -0:117 'inF0' ( in 2-component vector of float) 0:118 Sequence 0:118 move second child to first child ( temp 2-component vector of float) -0:118 'r018' ( temp 2-component vector of float) -0:118 dPdxCoarse ( 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 'r019' ( temp 2-component vector of float) -0:119 dPdxFine ( 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 'r020' ( temp 2-component vector of float) -0:120 dPdy ( 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 'r021' ( temp 2-component vector of float) -0:121 dPdyCoarse ( 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 'r022' ( temp 2-component vector of float) -0:122 dPdyFine ( 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 'r023' ( temp 2-component vector of float) -0:123 degrees ( 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:127 Sequence -0:127 move second child to first child ( temp float) -0:127 'r026' ( temp float) -0:127 distance ( temp float) -0:127 'inF0' ( in 2-component vector of float) -0:127 'inF1' ( 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 'r027' ( temp float) -0:128 dot-product ( 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:132 Sequence -0:132 move second child to first child ( temp 2-component vector of float) -0:132 'r028' ( temp 2-component vector of float) -0:132 exp ( temp 2-component vector of float) -0:132 'inF0' ( 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 'r029' ( temp 2-component vector of float) -0:133 exp2 ( 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 'r030' ( temp 2-component vector of float) -0:134 face-forward ( 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:134 'inF1' ( in 2-component vector of float) -0:134 'inF2' ( in 2-component vector of float) 0:135 Sequence -0:135 move second child to first child ( temp 2-component vector of uint) -0:135 'r031' ( temp 2-component vector of uint) +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:136 Sequence -0:136 move second child to first child ( temp 2-component vector of uint) -0:136 'r032' ( temp 2-component vector of 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:137 Sequence -0:137 move second child to first child ( temp 2-component vector of float) -0:137 'r033' ( temp 2-component vector of float) -0:137 Floor ( temp 2-component vector of float) -0:137 'inF0' ( in 2-component vector of float) -0:139 Sequence -0:139 move second child to first child ( temp 2-component vector of float) -0:139 'r035' ( temp 2-component vector of float) -0:139 mod ( temp 2-component vector of float) -0:139 'inF0' ( in 2-component vector of float) -0:139 'inF1' ( in 2-component vector of float) +0: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 'r036' ( temp 2-component vector of float) -0:140 Fraction ( 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 'r038' ( temp 2-component vector of float) -0:141 fwidth ( 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 bool) -0:142 'r039' ( temp 2-component vector of bool) -0:142 isinf ( temp 2-component vector of bool) +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 'r040' ( temp 2-component vector of bool) -0:143 isnan ( 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 float) -0:144 'r041' ( temp 2-component vector of float) -0:144 ldexp ( temp 2-component vector of float) +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:144 'inF1' ( 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 'r039a' ( temp 2-component vector of float) -0:145 mix ( 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:145 'inF2' ( in 2-component vector of float) 0:146 Sequence -0:146 move second child to first child ( temp float) -0:146 'r042' ( temp float) -0:146 length ( temp float) +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 2-component vector of float) -0:147 'r043' ( temp 2-component vector of float) -0:147 log ( temp 2-component vector of float) +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 'r044' ( temp 2-component vector of float) -0:148 vector-scale ( temp 2-component vector of float) -0:148 log2 ( temp 2-component vector of float) -0:148 'inF0' ( in 2-component vector of float) -0:148 Constant: -0:148 0.301030 +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 'r045' ( 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 '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 'r046' ( temp 2-component vector of float) -0:150 max ( 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:150 'inF1' ( in 2-component vector of float) 0:151 Sequence 0:151 move second child to first child ( temp 2-component vector of float) -0:151 'r047' ( temp 2-component vector of float) -0:151 min ( 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 'r048' ( temp 2-component vector of float) -0:152 normalize ( 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 'r049' ( temp 2-component vector of float) -0:153 pow ( 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:153 'inF1' ( 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 'r050' ( temp 2-component vector of float) -0:154 radians ( 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 'r051' ( temp 2-component vector of float) -0:155 divide ( temp 2-component vector of float) -0:155 Constant: -0:155 1.000000 +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 'r052' ( temp 2-component vector of float) -0:156 reflect ( 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:156 'inF1' ( 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 'r053' ( temp 2-component vector of float) -0:157 refract ( 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:157 Constant: -0:157 2.000000 0:158 Sequence -0:158 move second child to first child ( temp 2-component vector of uint) -0:158 'r054' ( temp 2-component vector of uint) +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:159 Sequence -0:159 move second child to first child ( temp 2-component vector of float) -0:159 'r055' ( temp 2-component vector of float) -0:159 roundEven ( temp 2-component vector of float) -0:159 'inF0' ( in 2-component vector of float) 0:160 Sequence 0:160 move second child to first child ( temp 2-component vector of float) -0:160 'r056' ( temp 2-component vector of float) -0:160 inverse sqrt ( 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 'r057' ( temp 2-component vector of float) -0:161 clamp ( 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:161 Constant: -0:161 0.000000 -0:161 Constant: -0:161 1.000000 0:162 Sequence 0:162 move second child to first child ( temp 2-component vector of float) -0:162 'r058' ( temp 2-component vector of float) -0:162 Sign ( 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 'r059' ( temp 2-component vector of float) -0:163 sine ( 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 'inF1' ( in 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:164 move second child to first child ( temp 2-component vector of float) -0:164 'inF2' ( in 2-component vector of float) -0:164 cosine ( 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 'r060' ( temp 2-component vector of float) -0:165 hyp. sine ( 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 'r061' ( temp 2-component vector of float) -0:166 smoothstep ( 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:166 'inF1' ( in 2-component vector of float) -0:166 'inF2' ( 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 'r062' ( temp 2-component vector of float) -0:167 sqrt ( 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 'r063' ( temp 2-component vector of float) -0:168 step ( 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:168 'inF1' ( 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 'r064' ( temp 2-component vector of float) -0:169 tangent ( 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 'r065' ( temp 2-component vector of float) -0:170 hyp. tangent ( 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:172 Sequence -0:172 move second child to first child ( temp 2-component vector of float) -0:172 'r066' ( temp 2-component vector of float) -0:172 trunc ( temp 2-component vector of float) -0:172 'inF0' ( in 2-component vector of float) -0:175 Branch: Return with expression +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:179 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) -0:179 Function Parameters: -0:179 'inF0' ( in 3-component vector of float) -0:179 'inF1' ( in 3-component vector of float) -0:179 'inF2' ( in 3-component vector of float) -0:179 'inU0' ( in 3-component vector of uint) -0:179 'inU1' ( in 3-component vector of uint) +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:182 Sequence -0:182 move second child to first child ( temp bool) -0:182 'r000' ( temp bool) -0:182 all ( temp bool) -0:182 Convert float to bool ( temp 3-component vector of bool) -0:182 'inF0' ( in 3-component vector of float) 0:183 Sequence -0:183 move second child to first child ( temp 3-component vector of float) -0:183 'r001' ( temp 3-component vector of float) -0:183 Absolute value ( temp 3-component vector of float) -0:183 'inF0' ( in 3-component vector of float) +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 'r002' ( temp 3-component vector of float) -0:184 arc cosine ( 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 bool) -0:185 'r003' ( temp bool) -0:185 any ( temp bool) -0:185 Convert float to bool ( temp 3-component vector of bool) -0:185 'inF0' ( in 3-component vector of float) +0:185 move second child to first child ( temp 3-component vector of float) +0:185 '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 3-component vector of float) -0:186 'r004' ( temp 3-component vector of float) -0:186 arc sine ( temp 3-component vector of float) -0:186 'inF0' ( in 3-component vector of float) +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 int) -0:187 'r005' ( temp 3-component vector of int) -0:187 floatBitsToInt ( temp 3-component vector of int) +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 uint) -0:188 'r006' ( temp 3-component vector of uint) -0:188 floatBitsToUint ( temp 3-component vector of uint) +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 float) -0:189 'r007' ( temp 3-component vector of float) -0:189 intBitsToFloat ( temp 3-component vector of float) -0:189 'inU0' ( in 3-component vector of uint) -0:191 Sequence -0:191 move second child to first child ( temp 3-component vector of float) -0:191 'r009' ( temp 3-component vector of float) -0:191 arc tangent ( temp 3-component vector of float) -0:191 'inF0' ( in 3-component vector of float) +0: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 'r010' ( 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:192 'inF1' ( 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 'r011' ( temp 3-component vector of float) -0:193 Ceiling ( 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 'r012' ( temp 3-component vector of float) -0:194 clamp ( 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:194 'inF1' ( in 3-component vector of float) -0:194 'inF2' ( in 3-component vector of float) -0:195 Test condition and select ( temp void) -0:195 Condition -0:195 any ( temp bool) -0:195 Compare Less Than ( temp 3-component vector of bool) +0:195 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 Constant: -0:195 0.000000 -0:195 0.000000 -0:195 0.000000 -0:195 true case -0:195 Branch: Kill +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 'inU0' ( in 3-component vector of uint) +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 Sequence -0:197 move second child to first child ( temp 3-component vector of float) -0:197 'r013' ( temp 3-component vector of float) -0:197 cosine ( temp 3-component vector of float) -0:197 'inF0' ( in 3-component vector of float) +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 'r014' ( temp 3-component vector of float) -0:198 hyp. cosine ( 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 uint) -0:199 'r015' ( temp 3-component vector of uint) +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:200 Sequence -0:200 move second child to first child ( temp 3-component vector of float) -0:200 'r016' ( temp 3-component vector of float) -0:200 cross-product ( temp 3-component vector of float) -0:200 'inF0' ( in 3-component vector of float) -0:200 'inF1' ( in 3-component vector of float) 0:201 Sequence 0:201 move second child to first child ( temp 3-component vector of float) -0:201 'r017' ( temp 3-component vector of float) -0:201 dPdx ( 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 'r018' ( temp 3-component vector of float) -0:202 dPdxCoarse ( 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 'r019' ( temp 3-component vector of float) -0:203 dPdxFine ( 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 'r020' ( temp 3-component vector of float) -0:204 dPdy ( 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 'r021' ( temp 3-component vector of float) -0:205 dPdyCoarse ( 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 'r022' ( temp 3-component vector of float) -0:206 dPdyFine ( 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 'r023' ( temp 3-component vector of float) -0:207 degrees ( 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 float) -0:208 'r024' ( temp float) -0:208 distance ( temp float) +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:208 'inF1' ( in 3-component vector of float) 0:209 Sequence 0:209 move second child to first child ( temp float) -0:209 'r025' ( temp float) -0:209 dot-product ( 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:213 Sequence -0:213 move second child to first child ( temp 3-component vector of float) -0:213 'r029' ( temp 3-component vector of float) -0:213 exp ( temp 3-component vector of float) -0:213 'inF0' ( 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 'r030' ( temp 3-component vector of float) -0:214 exp2 ( 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 'r031' ( temp 3-component vector of float) -0:215 face-forward ( 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:215 'inF1' ( in 3-component vector of float) -0:215 'inF2' ( in 3-component vector of float) 0:216 Sequence -0:216 move second child to first child ( temp 3-component vector of uint) -0:216 'r032' ( temp 3-component vector of uint) +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:217 Sequence -0:217 move second child to first child ( temp 3-component vector of uint) -0:217 'r033' ( temp 3-component vector of 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:218 Sequence -0:218 move second child to first child ( temp 3-component vector of float) -0:218 'r034' ( temp 3-component vector of float) -0:218 Floor ( temp 3-component vector of float) -0:218 'inF0' ( in 3-component vector of float) -0:220 Sequence -0:220 move second child to first child ( temp 3-component vector of float) -0:220 'r036' ( temp 3-component vector of float) -0:220 mod ( temp 3-component vector of float) -0:220 'inF0' ( in 3-component vector of float) -0:220 'inF1' ( in 3-component vector of float) +0: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 'r037' ( temp 3-component vector of float) -0:221 Fraction ( 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 'r039' ( temp 3-component vector of float) -0:222 fwidth ( 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 bool) -0:223 'r040' ( temp 3-component vector of bool) -0:223 isinf ( temp 3-component vector of bool) +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 'r041' ( temp 3-component vector of bool) -0:224 isnan ( 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 float) -0:225 'r042' ( temp 3-component vector of float) -0:225 ldexp ( temp 3-component vector of float) +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:225 'inF1' ( 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 'r039a' ( temp 3-component vector of float) -0:226 mix ( 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:226 'inF2' ( 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 'r039b' ( 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 Constant: -0:227 0.300000 +0:227 'inF2' ( in 3-component vector of float) 0:228 Sequence -0:228 move second child to first child ( temp float) -0:228 'r043' ( temp float) -0:228 length ( temp float) +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 3-component vector of float) -0:229 'r044' ( temp 3-component vector of float) -0:229 log ( temp 3-component vector of float) +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 'r045' ( temp 3-component vector of float) -0:230 vector-scale ( temp 3-component vector of float) -0:230 log2 ( temp 3-component vector of float) -0:230 'inF0' ( in 3-component vector of float) -0:230 Constant: -0:230 0.301030 +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 'r046' ( 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 '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 'r047' ( temp 3-component vector of float) -0:232 max ( 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:232 'inF1' ( in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child ( temp 3-component vector of float) -0:233 'r048' ( temp 3-component vector of float) -0:233 min ( 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 'r049' ( temp 3-component vector of float) -0:234 normalize ( 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 'r050' ( temp 3-component vector of float) -0:235 pow ( 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:235 'inF1' ( 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 'r051' ( temp 3-component vector of float) -0:236 radians ( 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 'r052' ( temp 3-component vector of float) -0:237 divide ( temp 3-component vector of float) -0:237 Constant: -0:237 1.000000 +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 'r053' ( temp 3-component vector of float) -0:238 reflect ( 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:238 'inF1' ( 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 'r054' ( temp 3-component vector of float) -0:239 refract ( 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:239 Constant: -0:239 2.000000 0:240 Sequence -0:240 move second child to first child ( temp 3-component vector of uint) -0:240 'r055' ( temp 3-component vector of uint) +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:241 Sequence -0:241 move second child to first child ( temp 3-component vector of float) -0:241 'r056' ( temp 3-component vector of float) -0:241 roundEven ( temp 3-component vector of float) -0:241 'inF0' ( in 3-component vector of float) 0:242 Sequence 0:242 move second child to first child ( temp 3-component vector of float) -0:242 'r057' ( temp 3-component vector of float) -0:242 inverse sqrt ( 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 'r058' ( temp 3-component vector of float) -0:243 clamp ( 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:243 Constant: -0:243 0.000000 -0:243 Constant: -0:243 1.000000 0:244 Sequence 0:244 move second child to first child ( temp 3-component vector of float) -0:244 'r059' ( temp 3-component vector of float) -0:244 Sign ( 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 'r060' ( temp 3-component vector of float) -0:245 sine ( 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 'inF1' ( in 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:246 move second child to first child ( temp 3-component vector of float) -0:246 'inF2' ( in 3-component vector of float) -0:246 cosine ( 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 'r061' ( temp 3-component vector of float) -0:247 hyp. sine ( 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 'r062' ( temp 3-component vector of float) -0:248 smoothstep ( 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:248 'inF1' ( in 3-component vector of float) -0:248 'inF2' ( 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 'r063' ( temp 3-component vector of float) -0:249 sqrt ( 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 'r064' ( temp 3-component vector of float) -0:250 step ( 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:250 'inF1' ( 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 'r065' ( temp 3-component vector of float) -0:251 tangent ( 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 'r066' ( temp 3-component vector of float) -0:252 hyp. tangent ( 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:254 Sequence -0:254 move second child to first child ( temp 3-component vector of float) -0:254 'r067' ( temp 3-component vector of float) -0:254 trunc ( temp 3-component vector of float) -0:254 'inF0' ( in 3-component vector of float) -0:257 Branch: Return with expression +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:261 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) -0:261 Function Parameters: -0:261 'inF0' ( in 4-component vector of float) -0:261 'inF1' ( in 4-component vector of float) -0:261 'inF2' ( in 4-component vector of float) -0:261 'inU0' ( in 4-component vector of uint) -0:261 'inU1' ( in 4-component vector of uint) +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:264 Sequence -0:264 move second child to first child ( temp bool) -0:264 'r000' ( temp bool) -0:264 all ( temp bool) -0:264 Convert float to bool ( temp 4-component vector of bool) -0:264 'inF0' ( in 4-component vector of float) 0:265 Sequence -0:265 move second child to first child ( temp 4-component vector of float) -0:265 'r001' ( temp 4-component vector of float) -0:265 Absolute value ( temp 4-component vector of float) -0:265 'inF0' ( in 4-component vector of float) +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 'r002' ( temp 4-component vector of float) -0:266 arc cosine ( 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 bool) -0:267 'r003' ( temp bool) -0:267 any ( temp bool) -0:267 Convert float to bool ( temp 4-component vector of bool) -0:267 'inF0' ( in 4-component vector of float) +0:267 move second child to first child ( temp 4-component vector of float) +0:267 '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 4-component vector of float) -0:268 'r004' ( temp 4-component vector of float) -0:268 arc sine ( temp 4-component vector of float) -0:268 'inF0' ( in 4-component vector of float) +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 int) -0:269 'r005' ( temp 4-component vector of int) -0:269 floatBitsToInt ( temp 4-component vector of int) +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 uint) -0:270 'r006' ( temp 4-component vector of uint) -0:270 floatBitsToUint ( temp 4-component vector of uint) +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 float) -0:271 'r007' ( temp 4-component vector of float) -0:271 intBitsToFloat ( temp 4-component vector of float) -0:271 'inU0' ( in 4-component vector of uint) -0:273 Sequence -0:273 move second child to first child ( temp 4-component vector of float) -0:273 'r009' ( temp 4-component vector of float) -0:273 arc tangent ( temp 4-component vector of float) -0:273 'inF0' ( in 4-component vector of float) +0: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 'r010' ( 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:274 'inF1' ( 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 'r011' ( temp 4-component vector of float) -0:275 Ceiling ( 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 'r012' ( temp 4-component vector of float) -0:276 clamp ( 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:276 'inF1' ( in 4-component vector of float) -0:276 'inF2' ( in 4-component vector of float) -0:277 Test condition and select ( temp void) -0:277 Condition -0:277 any ( temp bool) -0:277 Compare Less Than ( temp 4-component vector of bool) +0:277 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 Constant: -0:277 0.000000 -0:277 0.000000 -0:277 0.000000 -0:277 0.000000 -0:277 true case -0:277 Branch: Kill +0: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 'inU0' ( in 4-component vector of uint) +0:278 'inF0' ( in 4-component vector of float) 0:278 Constant: 0:278 0.000000 0:278 0.000000 @@ -1259,905 +1254,917 @@ gl_FragCoord origin is upper left 0:278 0.000000 0:278 true case 0:278 Branch: Kill -0:279 Sequence -0:279 move second child to first child ( temp 4-component vector of float) -0:279 'r013' ( temp 4-component vector of float) -0:279 cosine ( temp 4-component vector of float) -0:279 'inF0' ( in 4-component vector of float) +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 'r014' ( temp 4-component vector of float) -0:280 hyp. cosine ( 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 uint) -0:281 'r015' ( temp 4-component vector of uint) +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:282 Sequence -0:282 move second child to first child ( temp 4-component vector of float) -0:282 'r016' ( temp 4-component vector of float) -0:282 dPdx ( temp 4-component vector of float) -0:282 'inF0' ( in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child ( temp 4-component vector of float) -0:283 'r017' ( temp 4-component vector of float) -0:283 dPdxCoarse ( 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 'r018' ( temp 4-component vector of float) -0:284 dPdxFine ( 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 'r019' ( temp 4-component vector of float) -0:285 dPdy ( 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 'r020' ( temp 4-component vector of float) -0:286 dPdyCoarse ( 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 'r021' ( temp 4-component vector of float) -0:287 dPdyFine ( 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 'r022' ( temp 4-component vector of float) -0:288 degrees ( 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 float) -0:289 'r023' ( temp float) -0:289 distance ( temp float) +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:289 'inF1' ( in 4-component vector of float) 0:290 Sequence 0:290 move second child to first child ( temp float) -0:290 'r024' ( temp float) -0:290 dot-product ( 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 4-component vector of float) -0:291 'r025' ( temp 4-component vector of float) -0:291 Construct vec4 ( temp 4-component vector of float) -0:291 Constant: -0:291 1.000000 -0:291 component-wise multiply ( temp float) -0:291 direct index ( temp float) -0:291 'inF0' ( in 4-component vector of float) -0:291 Constant: -0:291 1 (const int) -0:291 direct index ( temp float) -0:291 'inF1' ( in 4-component vector of float) -0:291 Constant: -0:291 1 (const int) -0:291 direct index ( temp float) -0:291 'inF0' ( in 4-component vector of float) -0:291 Constant: -0:291 2 (const int) -0:291 direct index ( temp float) -0:291 'inF1' ( in 4-component vector of float) -0:291 Constant: -0:291 3 (const int) -0:295 Sequence -0:295 move second child to first child ( temp 4-component vector of float) -0:295 'r029' ( temp 4-component vector of float) -0:295 exp ( temp 4-component vector of float) -0:295 'inF0' ( in 4-component vector of float) +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 'r030' ( temp 4-component vector of float) -0:296 exp2 ( 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 'r031' ( temp 4-component vector of float) -0:297 face-forward ( 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:297 'inF1' ( in 4-component vector of float) -0:297 'inF2' ( in 4-component vector of float) 0:298 Sequence -0:298 move second child to first child ( temp 4-component vector of uint) -0:298 'r032' ( temp 4-component vector of uint) +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:299 Sequence -0:299 move second child to first child ( temp 4-component vector of uint) -0:299 'r033' ( temp 4-component vector of 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:300 Sequence -0:300 move second child to first child ( temp 4-component vector of float) -0:300 'r034' ( temp 4-component vector of float) -0:300 Floor ( temp 4-component vector of float) -0:300 'inF0' ( in 4-component vector of float) -0:302 Sequence -0:302 move second child to first child ( temp 4-component vector of float) -0:302 'r036' ( temp 4-component vector of float) -0:302 mod ( temp 4-component vector of float) -0:302 'inF0' ( in 4-component vector of float) -0:302 'inF1' ( in 4-component vector of float) +0: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 'r037' ( temp 4-component vector of float) -0:303 Fraction ( 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 'r039' ( temp 4-component vector of float) -0:304 fwidth ( 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 bool) -0:305 'r040' ( temp 4-component vector of bool) -0:305 isinf ( temp 4-component vector of bool) +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 'r041' ( temp 4-component vector of bool) -0:306 isnan ( 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 float) -0:307 'r042' ( temp 4-component vector of float) -0:307 ldexp ( temp 4-component vector of float) +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:307 'inF1' ( 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 'r039a' ( temp 4-component vector of float) -0:308 mix ( 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:308 'inF2' ( in 4-component vector of float) 0:309 Sequence -0:309 move second child to first child ( temp float) -0:309 'r043' ( temp float) -0:309 length ( temp float) +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 4-component vector of float) -0:310 'r044' ( temp 4-component vector of float) -0:310 log ( temp 4-component vector of float) +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 'r045' ( temp 4-component vector of float) -0:311 vector-scale ( temp 4-component vector of float) -0:311 log2 ( temp 4-component vector of float) -0:311 'inF0' ( in 4-component vector of float) -0:311 Constant: -0:311 0.301030 +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 'r046' ( 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 '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 'r047' ( temp 4-component vector of float) -0:313 max ( 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:313 'inF1' ( in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child ( temp 4-component vector of float) -0:314 'r048' ( temp 4-component vector of float) -0:314 min ( 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 'r049' ( temp 4-component vector of float) -0:315 normalize ( 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 'r050' ( temp 4-component vector of float) -0:316 pow ( 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:316 'inF1' ( 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 'r051' ( temp 4-component vector of float) -0:317 radians ( 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 'r052' ( temp 4-component vector of float) -0:318 divide ( temp 4-component vector of float) -0:318 Constant: -0:318 1.000000 +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 'r053' ( temp 4-component vector of float) -0:319 reflect ( 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:319 'inF1' ( 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 'r054' ( temp 4-component vector of float) -0:320 refract ( 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:320 Constant: -0:320 2.000000 0:321 Sequence -0:321 move second child to first child ( temp 4-component vector of uint) -0:321 'r055' ( temp 4-component vector of uint) +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:322 Sequence -0:322 move second child to first child ( temp 4-component vector of float) -0:322 'r056' ( temp 4-component vector of float) -0:322 roundEven ( temp 4-component vector of float) -0:322 'inF0' ( in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child ( temp 4-component vector of float) -0:323 'r057' ( temp 4-component vector of float) -0:323 inverse sqrt ( 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 'r058' ( temp 4-component vector of float) -0:324 clamp ( 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:324 Constant: -0:324 0.000000 -0:324 Constant: -0:324 1.000000 0:325 Sequence 0:325 move second child to first child ( temp 4-component vector of float) -0:325 'r059' ( temp 4-component vector of float) -0:325 Sign ( 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 'r060' ( temp 4-component vector of float) -0:326 sine ( 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 'inF1' ( in 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:327 move second child to first child ( temp 4-component vector of float) -0:327 'inF2' ( in 4-component vector of float) -0:327 cosine ( 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 'r061' ( temp 4-component vector of float) -0:328 hyp. sine ( 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 'r062' ( temp 4-component vector of float) -0:329 smoothstep ( 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:329 'inF1' ( in 4-component vector of float) -0:329 'inF2' ( 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 'r063' ( temp 4-component vector of float) -0:330 sqrt ( 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 'r064' ( temp 4-component vector of float) -0:331 step ( 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:331 'inF1' ( 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 'r065' ( temp 4-component vector of float) -0:332 tangent ( 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 'r066' ( temp 4-component vector of float) -0:333 hyp. tangent ( 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:335 Sequence -0:335 move second child to first child ( temp 4-component vector of float) -0:335 'r067' ( temp 4-component vector of float) -0:335 trunc ( temp 4-component vector of float) -0:335 'inF0' ( in 4-component vector of float) -0:338 Branch: Return with expression +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:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) -0:401 Function Parameters: -0:401 'inF0' ( in 2X2 matrix of float) -0:401 'inF1' ( in 2X2 matrix of float) -0:401 'inF2' ( in 2X2 matrix of float) +0: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:403 Sequence -0:403 move second child to first child ( temp bool) -0:403 'r000' ( temp bool) -0:403 all ( temp bool) -0:403 Convert float to bool ( temp 2X2 matrix of bool) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r001' ( temp 2X2 matrix of float) -0:403 Absolute value ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 arc cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp bool) -0:403 'r003' ( temp bool) -0:403 any ( temp bool) -0:403 Convert float to bool ( temp 2X2 matrix of bool) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r004' ( temp 2X2 matrix of float) -0:403 arc sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r005' ( temp 2X2 matrix of float) -0:403 arc tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r006' ( temp 2X2 matrix of float) -0:403 arc tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r007' ( temp 2X2 matrix of float) -0:403 Ceiling ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Test condition and select ( temp void) -0:403 Condition -0:403 any ( temp bool) -0:403 Compare Less Than ( temp 2X2 matrix of bool) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 true case -0:403 Branch: Kill -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r008' ( temp 2X2 matrix of float) -0:403 clamp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r009' ( temp 2X2 matrix of float) -0:403 cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r010' ( temp 2X2 matrix of float) -0:403 hyp. cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r011' ( temp 2X2 matrix of float) -0:403 dPdx ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r012' ( temp 2X2 matrix of float) -0:403 dPdxCoarse ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r013' ( temp 2X2 matrix of float) -0:403 dPdxFine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r014' ( temp 2X2 matrix of float) -0:403 dPdy ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r015' ( temp 2X2 matrix of float) -0:403 dPdyCoarse ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r016' ( temp 2X2 matrix of float) -0:403 dPdyFine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r017' ( temp 2X2 matrix of float) -0:403 degrees ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp float) -0:403 'r018' ( temp float) -0:403 determinant ( temp float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r019' ( temp 2X2 matrix of float) -0:403 exp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'R020' ( temp 2X2 matrix of float) -0:403 exp2 ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r021' ( temp 2X2 matrix of float) -0:403 Floor ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r022' ( temp 2X2 matrix of float) -0:403 mod ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r023' ( temp 2X2 matrix of float) -0:403 Fraction ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r025' ( temp 2X2 matrix of float) -0:403 fwidth ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r026' ( temp 2X2 matrix of float) -0:403 ldexp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r026a' ( temp 2X2 matrix of float) -0:403 mix ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r027' ( temp 2X2 matrix of float) -0:403 log ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r028' ( temp 2X2 matrix of float) -0:403 matrix-scale ( temp 2X2 matrix of float) -0:403 log2 ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Constant: -0:403 0.301030 -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r029' ( temp 2X2 matrix of float) -0:403 log2 ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r030' ( temp 2X2 matrix of float) -0:403 max ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r031' ( temp 2X2 matrix of float) -0:403 min ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r032' ( temp 2X2 matrix of float) -0:403 pow ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r033' ( temp 2X2 matrix of float) -0:403 radians ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r034' ( temp 2X2 matrix of float) -0:403 roundEven ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r035' ( temp 2X2 matrix of float) -0:403 inverse sqrt ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r036' ( temp 2X2 matrix of float) -0:403 clamp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 Constant: -0:403 1.000000 -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r037' ( temp 2X2 matrix of float) -0:403 Sign ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r038' ( temp 2X2 matrix of float) -0:403 sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r039' ( temp 2X2 matrix of float) -0:403 hyp. sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r049' ( temp 2X2 matrix of float) -0:403 smoothstep ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r041' ( temp 2X2 matrix of float) -0:403 sqrt ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r042' ( temp 2X2 matrix of float) -0:403 step ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r043' ( temp 2X2 matrix of float) -0:403 tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r044' ( temp 2X2 matrix of float) -0:403 hyp. tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 transpose ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r046' ( temp 2X2 matrix of float) -0:403 trunc ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:406 Branch: Return with expression +0: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:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) -0:410 Function Parameters: -0:410 'inF0' ( in 3X3 matrix of float) -0:410 'inF1' ( in 3X3 matrix of float) -0:410 'inF2' ( in 3X3 matrix of float) +0: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:412 Sequence -0:412 move second child to first child ( temp bool) -0:412 'r000' ( temp bool) -0:412 all ( temp bool) -0:412 Convert float to bool ( temp 3X3 matrix of bool) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r001' ( temp 3X3 matrix of float) -0:412 Absolute value ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 arc cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp bool) -0:412 'r003' ( temp bool) -0:412 any ( temp bool) -0:412 Convert float to bool ( temp 3X3 matrix of bool) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r004' ( temp 3X3 matrix of float) -0:412 arc sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r005' ( temp 3X3 matrix of float) -0:412 arc tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r006' ( temp 3X3 matrix of float) -0:412 arc tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r007' ( temp 3X3 matrix of float) -0:412 Ceiling ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Test condition and select ( temp void) -0:412 Condition -0:412 any ( temp bool) -0:412 Compare Less Than ( temp 3X3 matrix of bool) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 true case -0:412 Branch: Kill -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r008' ( temp 3X3 matrix of float) -0:412 clamp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r009' ( temp 3X3 matrix of float) -0:412 cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r010' ( temp 3X3 matrix of float) -0:412 hyp. cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r011' ( temp 3X3 matrix of float) -0:412 dPdx ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r012' ( temp 3X3 matrix of float) -0:412 dPdxCoarse ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r013' ( temp 3X3 matrix of float) -0:412 dPdxFine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r014' ( temp 3X3 matrix of float) -0:412 dPdy ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r015' ( temp 3X3 matrix of float) -0:412 dPdyCoarse ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r016' ( temp 3X3 matrix of float) -0:412 dPdyFine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r017' ( temp 3X3 matrix of float) -0:412 degrees ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp float) -0:412 'r018' ( temp float) -0:412 determinant ( temp float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r019' ( temp 3X3 matrix of float) -0:412 exp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'R020' ( temp 3X3 matrix of float) -0:412 exp2 ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r021' ( temp 3X3 matrix of float) -0:412 Floor ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r022' ( temp 3X3 matrix of float) -0:412 mod ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r023' ( temp 3X3 matrix of float) -0:412 Fraction ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r025' ( temp 3X3 matrix of float) -0:412 fwidth ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r026' ( temp 3X3 matrix of float) -0:412 ldexp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r026a' ( temp 3X3 matrix of float) -0:412 mix ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r027' ( temp 3X3 matrix of float) -0:412 log ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r028' ( temp 3X3 matrix of float) -0:412 matrix-scale ( temp 3X3 matrix of float) -0:412 log2 ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Constant: -0:412 0.301030 -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r029' ( temp 3X3 matrix of float) -0:412 log2 ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r030' ( temp 3X3 matrix of float) -0:412 max ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r031' ( temp 3X3 matrix of float) -0:412 min ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r032' ( temp 3X3 matrix of float) -0:412 pow ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r033' ( temp 3X3 matrix of float) -0:412 radians ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r034' ( temp 3X3 matrix of float) -0:412 roundEven ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r035' ( temp 3X3 matrix of float) -0:412 inverse sqrt ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r036' ( temp 3X3 matrix of float) -0:412 clamp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 Constant: -0:412 1.000000 -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r037' ( temp 3X3 matrix of float) -0:412 Sign ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r038' ( temp 3X3 matrix of float) -0:412 sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r039' ( temp 3X3 matrix of float) -0:412 hyp. sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r049' ( temp 3X3 matrix of float) -0:412 smoothstep ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r041' ( temp 3X3 matrix of float) -0:412 sqrt ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r042' ( temp 3X3 matrix of float) -0:412 step ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r043' ( temp 3X3 matrix of float) -0:412 tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r044' ( temp 3X3 matrix of float) -0:412 hyp. tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 transpose ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r046' ( temp 3X3 matrix of float) -0:412 trunc ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:415 Branch: Return with expression +0: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 @@ -2168,297 +2175,297 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) -0:419 Function Parameters: -0:419 'inF0' ( in 4X4 matrix of float) -0:419 'inF1' ( in 4X4 matrix of float) -0:419 'inF2' ( in 4X4 matrix of float) +0: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:421 Sequence -0:421 move second child to first child ( temp bool) -0:421 'r000' ( temp bool) -0:421 all ( temp bool) -0:421 Convert float to bool ( temp 4X4 matrix of bool) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r001' ( temp 4X4 matrix of float) -0:421 Absolute value ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 arc cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp bool) -0:421 'r003' ( temp bool) -0:421 any ( temp bool) -0:421 Convert float to bool ( temp 4X4 matrix of bool) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r004' ( temp 4X4 matrix of float) -0:421 arc sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r005' ( temp 4X4 matrix of float) -0:421 arc tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r006' ( temp 4X4 matrix of float) -0:421 arc tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r007' ( temp 4X4 matrix of float) -0:421 Ceiling ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Test condition and select ( temp void) -0:421 Condition -0:421 any ( temp bool) -0:421 Compare Less Than ( temp 4X4 matrix of bool) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 true case -0:421 Branch: Kill -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r008' ( temp 4X4 matrix of float) -0:421 clamp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r009' ( temp 4X4 matrix of float) -0:421 cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r010' ( temp 4X4 matrix of float) -0:421 hyp. cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r011' ( temp 4X4 matrix of float) -0:421 dPdx ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r012' ( temp 4X4 matrix of float) -0:421 dPdxCoarse ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r013' ( temp 4X4 matrix of float) -0:421 dPdxFine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r014' ( temp 4X4 matrix of float) -0:421 dPdy ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r015' ( temp 4X4 matrix of float) -0:421 dPdyCoarse ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r016' ( temp 4X4 matrix of float) -0:421 dPdyFine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r017' ( temp 4X4 matrix of float) -0:421 degrees ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp float) -0:421 'r018' ( temp float) -0:421 determinant ( temp float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r019' ( temp 4X4 matrix of float) -0:421 exp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'R020' ( temp 4X4 matrix of float) -0:421 exp2 ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r021' ( temp 4X4 matrix of float) -0:421 Floor ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r022' ( temp 4X4 matrix of float) -0:421 mod ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r023' ( temp 4X4 matrix of float) -0:421 Fraction ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r025' ( temp 4X4 matrix of float) -0:421 fwidth ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r026' ( temp 4X4 matrix of float) -0:421 ldexp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r026a' ( temp 4X4 matrix of float) -0:421 mix ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r027' ( temp 4X4 matrix of float) -0:421 log ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r028' ( temp 4X4 matrix of float) -0:421 matrix-scale ( temp 4X4 matrix of float) -0:421 log2 ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Constant: -0:421 0.301030 -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r029' ( temp 4X4 matrix of float) -0:421 log2 ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r030' ( temp 4X4 matrix of float) -0:421 max ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r031' ( temp 4X4 matrix of float) -0:421 min ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r032' ( temp 4X4 matrix of float) -0:421 pow ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r033' ( temp 4X4 matrix of float) -0:421 radians ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r034' ( temp 4X4 matrix of float) -0:421 roundEven ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r035' ( temp 4X4 matrix of float) -0:421 inverse sqrt ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r036' ( temp 4X4 matrix of float) -0:421 clamp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 Constant: -0:421 1.000000 -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r037' ( temp 4X4 matrix of float) -0:421 Sign ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r038' ( temp 4X4 matrix of float) -0:421 sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r039' ( temp 4X4 matrix of float) -0:421 hyp. sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r049' ( temp 4X4 matrix of float) -0:421 smoothstep ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r041' ( temp 4X4 matrix of float) -0:421 sqrt ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r042' ( temp 4X4 matrix of float) -0:421 step ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r043' ( temp 4X4 matrix of float) -0:421 tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r044' ( temp 4X4 matrix of float) -0:421 hyp. tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 transpose ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r046' ( temp 4X4 matrix of float) -0:421 trunc ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:424 Branch: Return with expression +0: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 @@ -2476,334 +2483,334 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp void) -0:442 Function Parameters: -0:442 'inF0' ( in float) -0:442 'inF1' ( in float) -0:442 'inFV0' ( in 2-component vector of float) -0:442 'inFV1' ( in 2-component vector of float) -0:442 'inFM0' ( in 2X2 matrix of float) -0:442 'inFM1' ( in 2X2 matrix of float) +0: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:443 Sequence -0:443 move second child to first child ( temp float) -0:443 'r0' ( temp float) -0:443 component-wise multiply ( temp float) -0:443 'inF1' ( in float) -0:443 'inF0' ( in float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r1' ( temp 2-component vector of float) -0:443 vector-scale ( temp 2-component vector of float) -0:443 'inF0' ( in float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r2' ( temp 2-component vector of float) -0:443 vector-scale ( temp 2-component vector of float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inF0' ( in float) -0:443 Sequence -0:443 move second child to first child ( temp float) -0:443 'r3' ( temp float) -0:443 dot-product ( temp float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inFV1' ( in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r4' ( temp 2-component vector of float) -0:443 vector-times-matrix ( temp 2-component vector of float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r5' ( temp 2-component vector of float) -0:443 matrix-times-vector ( temp 2-component vector of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child ( temp 2X2 matrix of float) -0:443 'r6' ( temp 2X2 matrix of float) -0:443 matrix-scale ( temp 2X2 matrix of float) -0:443 'inF0' ( in float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child ( temp 2X2 matrix of float) -0:443 'r7' ( temp 2X2 matrix of float) -0:443 matrix-scale ( temp 2X2 matrix of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 'inF0' ( in float) -0:443 Sequence -0:443 move second child to first child ( temp 2X2 matrix of float) -0:443 'r8' ( temp 2X2 matrix of float) -0:443 matrix-multiply ( temp 2X2 matrix of float) -0:443 'inFM1' ( in 2X2 matrix of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp void) -0:449 Function Parameters: -0:449 'inF0' ( in float) -0:449 'inF1' ( in float) -0:449 'inFV0' ( in 3-component vector of float) -0:449 'inFV1' ( in 3-component vector of float) -0:449 'inFM0' ( in 3X3 matrix of float) -0:449 'inFM1' ( in 3X3 matrix of float) +0: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:450 Sequence -0:450 move second child to first child ( temp float) -0:450 'r0' ( temp float) -0:450 component-wise multiply ( temp float) -0:450 'inF1' ( in float) -0:450 'inF0' ( in float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r1' ( temp 3-component vector of float) -0:450 vector-scale ( temp 3-component vector of float) -0:450 'inF0' ( in float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r2' ( temp 3-component vector of float) -0:450 vector-scale ( temp 3-component vector of float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inF0' ( in float) -0:450 Sequence -0:450 move second child to first child ( temp float) -0:450 'r3' ( temp float) -0:450 dot-product ( temp float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inFV1' ( in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r4' ( temp 3-component vector of float) -0:450 vector-times-matrix ( temp 3-component vector of float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r5' ( temp 3-component vector of float) -0:450 matrix-times-vector ( temp 3-component vector of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child ( temp 3X3 matrix of float) -0:450 'r6' ( temp 3X3 matrix of float) -0:450 matrix-scale ( temp 3X3 matrix of float) -0:450 'inF0' ( in float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child ( temp 3X3 matrix of float) -0:450 'r7' ( temp 3X3 matrix of float) -0:450 matrix-scale ( temp 3X3 matrix of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 'inF0' ( in float) -0:450 Sequence -0:450 move second child to first child ( temp 3X3 matrix of float) -0:450 'r8' ( temp 3X3 matrix of float) -0:450 matrix-multiply ( temp 3X3 matrix of float) -0:450 'inFM1' ( in 3X3 matrix of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp void) -0:456 Function Parameters: -0:456 'inF0' ( in float) -0:456 'inF1' ( in float) -0:456 'inFV0' ( in 4-component vector of float) -0:456 'inFV1' ( in 4-component vector of float) -0:456 'inFM0' ( in 4X4 matrix of float) -0:456 'inFM1' ( in 4X4 matrix of float) +0: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:457 Sequence -0:457 move second child to first child ( temp float) -0:457 'r0' ( temp float) -0:457 component-wise multiply ( temp float) -0:457 'inF1' ( in float) -0:457 'inF0' ( in float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r1' ( temp 4-component vector of float) -0:457 vector-scale ( temp 4-component vector of float) -0:457 'inF0' ( in float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r2' ( temp 4-component vector of float) -0:457 vector-scale ( temp 4-component vector of float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inF0' ( in float) -0:457 Sequence -0:457 move second child to first child ( temp float) -0:457 'r3' ( temp float) -0:457 dot-product ( temp float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inFV1' ( in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r4' ( temp 4-component vector of float) -0:457 vector-times-matrix ( temp 4-component vector of float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r5' ( temp 4-component vector of float) -0:457 matrix-times-vector ( temp 4-component vector of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child ( temp 4X4 matrix of float) -0:457 'r6' ( temp 4X4 matrix of float) -0:457 matrix-scale ( temp 4X4 matrix of float) -0:457 'inF0' ( in float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child ( temp 4X4 matrix of float) -0:457 'r7' ( temp 4X4 matrix of float) -0:457 matrix-scale ( temp 4X4 matrix of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 'inF0' ( in float) -0:457 Sequence -0:457 move second child to first child ( temp 4X4 matrix of float) -0:457 'r8' ( temp 4X4 matrix of float) -0:457 matrix-multiply ( temp 4X4 matrix of float) -0:457 'inFM1' ( in 4X4 matrix of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) -0:466 Function Parameters: -0:466 'inF0' ( in float) -0:466 'inF1' ( in float) -0:466 'inFV2' ( in 2-component vector of float) -0:466 'inFV3' ( in 3-component vector of float) -0:466 'inFM2x3' ( in 2X3 matrix of float) -0:466 'inFM3x2' ( in 3X2 matrix of float) -0:466 'inFM3x3' ( in 3X3 matrix of float) -0:466 'inFM3x4' ( in 3X4 matrix of float) -0:466 'inFM2x4' ( in 2X4 matrix of float) +0: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:467 Sequence -0:467 move second child to first child ( temp float) -0:467 'r00' ( temp float) -0:467 component-wise multiply ( temp float) -0:467 'inF1' ( in float) -0:467 'inF0' ( in float) 0:468 Sequence -0:468 move second child to first child ( temp 2-component vector of float) -0:468 'r01' ( temp 2-component vector of float) -0:468 vector-scale ( temp 2-component vector of float) +0:468 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:468 'inFV2' ( in 2-component vector of float) 0:469 Sequence -0:469 move second child to first child ( temp 3-component vector of float) -0:469 'r02' ( temp 3-component vector of float) -0:469 vector-scale ( temp 3-component vector of float) +0:469 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 'inFV3' ( in 3-component vector of float) +0:469 'inFV2' ( in 2-component vector of float) 0:470 Sequence -0:470 move second child to first child ( temp 2-component vector of float) -0:470 'r03' ( temp 2-component vector of float) -0:470 vector-scale ( temp 2-component vector of float) -0:470 'inFV2' ( in 2-component vector of float) +0:470 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 3-component vector of float) -0:471 'r04' ( temp 3-component vector of float) -0:471 vector-scale ( temp 3-component vector of float) -0:471 'inFV3' ( in 3-component vector of float) +0:471 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 float) -0:472 'r05' ( temp float) -0:472 dot-product ( temp float) -0:472 'inFV2' ( in 2-component vector of float) -0:472 'inFV2' ( in 2-component vector of float) +0:472 move second child to first child ( temp 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 'r06' ( temp float) +0:473 'r05' ( temp float) 0:473 dot-product ( temp float) -0:473 'inFV3' ( in 3-component vector of float) -0:473 'inFV3' ( in 3-component vector of float) +0:473 '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 3-component vector of float) -0:474 'r07' ( temp 3-component vector of float) -0:474 matrix-times-vector ( temp 3-component vector of float) -0:474 'inFM2x3' ( in 2X3 matrix of float) -0:474 'inFV2' ( in 2-component vector of float) +0:474 move second child to first child ( temp 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 2-component vector of float) -0:475 'r08' ( temp 2-component vector of float) -0:475 matrix-times-vector ( temp 2-component vector of float) -0:475 'inFM3x2' ( in 3X2 matrix of float) -0:475 'inFV3' ( in 3-component vector of float) +0:475 move second child to first child ( temp 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 'r09' ( temp 2-component vector of float) -0:476 vector-times-matrix ( 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:476 'inFM2x3' ( in 2X3 matrix of float) 0:477 Sequence -0:477 move second child to first child ( temp 3-component vector of float) -0:477 'r10' ( temp 3-component vector of float) -0:477 vector-times-matrix ( temp 3-component vector of float) -0:477 'inFV2' ( in 2-component vector of float) -0:477 'inFM3x2' ( in 3X2 matrix of float) +0: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 2X3 matrix of float) -0:478 'r11' ( temp 2X3 matrix of float) -0:478 matrix-scale ( temp 2X3 matrix of float) -0:478 'inF0' ( in float) -0:478 'inFM2x3' ( in 2X3 matrix of float) +0:478 move second child to first child ( temp 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 3X2 matrix of float) -0:479 'r12' ( temp 3X2 matrix of float) -0:479 matrix-scale ( temp 3X2 matrix of float) +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 'inFM3x2' ( in 3X2 matrix of float) +0:479 'inFM2x3' ( in 2X3 matrix of float) 0:480 Sequence -0:480 move second child to first child ( temp 2X2 matrix of float) -0:480 'r13' ( temp 2X2 matrix of float) -0:480 matrix-multiply ( temp 2X2 matrix of float) +0:480 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:480 'inFM2x3' ( in 2X3 matrix of float) 0:481 Sequence -0:481 move second child to first child ( temp 2X3 matrix of float) -0:481 'r14' ( temp 2X3 matrix of float) -0:481 matrix-multiply ( temp 2X3 matrix of float) -0:481 'inFM3x3' ( in 3X3 matrix of float) +0:481 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 2X4 matrix of float) -0:482 'r15' ( temp 2X4 matrix of float) -0:482 matrix-multiply ( temp 2X4 matrix of float) -0:482 'inFM3x4' ( in 3X4 matrix of float) +0:482 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 3X4 matrix of float) -0:483 'r16' ( temp 3X4 matrix of float) -0:483 matrix-multiply ( temp 3X4 matrix of float) -0:483 'inFM2x4' ( in 2X4 matrix of float) -0:483 'inFM3x2' ( in 3X2 matrix of float) -0:489 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) -0:489 Function Parameters: +0: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:491 move second child to first child ( temp 4-component vector of float) -0:491 color: direct index for structure ( temp 4-component vector of float) -0:491 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:491 Constant: -0:491 0 (const int) -0:491 Constant: -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:492 Branch: Return with expression -0:492 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:489 Function Definition: main( ( temp void) -0:489 Function Parameters: +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:489 Sequence -0:489 move second child to first child ( temp 4-component vector of float) +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:489 color: direct index for structure ( temp 4-component vector of float) -0:489 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) -0:489 Constant: -0:489 0 (const int) +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) @@ -3009,1073 +3016,1068 @@ gl_FragCoord origin is upper left 0:55 'inF1' ( in float) 0:56 Sequence 0:56 move second child to first child ( temp float) -0:56 'r034' ( temp float) -0:56 Fraction ( 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 'r036' ( temp float) -0:57 fwidth ( 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 bool) -0:58 'r037' ( temp bool) -0:58 isinf ( temp bool) +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 'r038' ( temp bool) -0:59 isnan ( 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 float) -0:60 'r039' ( temp float) -0:60 ldexp ( temp float) +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:60 'inF1' ( in float) 0:61 Sequence 0:61 move second child to first child ( temp float) -0:61 'r039a' ( temp float) -0:61 mix ( temp float) +0:61 'r039' ( temp float) +0:61 ldexp ( temp float) 0:61 'inF0' ( in float) 0:61 'inF1' ( in float) -0:61 'inF2' ( in float) 0:62 Sequence 0:62 move second child to first child ( temp float) -0:62 'r040' ( temp float) -0:62 log ( 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 'r041' ( temp float) -0:63 component-wise multiply ( temp float) -0:63 log2 ( temp float) -0:63 'inF0' ( in float) -0:63 Constant: -0:63 0.301030 +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 'r042' ( temp float) -0:64 log2 ( temp float) -0:64 'inF0' ( in 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 'r043' ( temp float) -0:65 max ( temp float) +0:65 'r042' ( temp float) +0:65 log2 ( temp float) 0:65 'inF0' ( in float) -0:65 'inF1' ( in float) 0:66 Sequence 0:66 move second child to first child ( temp float) -0:66 'r044' ( temp float) -0:66 min ( 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 'r045' ( temp float) -0:67 pow ( 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 'r046' ( temp float) -0:68 radians ( 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 'r047' ( temp float) -0:69 divide ( temp float) -0:69 Constant: -0:69 1.000000 +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 uint) -0:70 'r048' ( temp uint) -0:70 Convert int to uint ( temp uint) -0:70 bitFieldReverse ( temp int) -0:70 Constant: -0:70 2 (const int) +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 float) -0:71 'r049' ( temp float) -0:71 roundEven ( temp float) -0:71 'inF0' ( in float) +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 'r050' ( temp float) -0:72 inverse sqrt ( 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 'r051' ( temp float) -0:73 clamp ( temp float) +0:73 'r050' ( temp float) +0:73 inverse sqrt ( temp float) 0:73 'inF0' ( in float) -0:73 Constant: -0:73 0.000000 -0:73 Constant: -0:73 1.000000 0:74 Sequence 0:74 move second child to first child ( temp float) -0:74 'r052' ( temp float) -0:74 Sign ( 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 'r053' ( temp float) -0:75 sine ( 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 'inF1' ( in float) +0:76 'r053' ( temp float) 0:76 sine ( temp float) 0:76 'inF0' ( in float) -0:76 move second child to first child ( temp float) -0:76 'inF2' ( in float) -0:76 cosine ( temp float) -0:76 'inF0' ( in float) 0:77 Sequence 0:77 move second child to first child ( temp float) -0:77 'r055' ( temp float) -0:77 hyp. sine ( 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 'r056' ( temp float) -0:78 smoothstep ( temp float) +0:78 'r055' ( temp float) +0:78 hyp. sine ( temp float) 0:78 'inF0' ( in float) -0:78 'inF1' ( in float) -0:78 'inF2' ( in float) 0:79 Sequence 0:79 move second child to first child ( temp float) -0:79 'r057' ( temp float) -0:79 sqrt ( 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 'r058' ( temp float) -0:80 step ( temp float) +0:80 'r057' ( temp float) +0:80 sqrt ( temp float) 0:80 'inF0' ( in float) -0:80 'inF1' ( in float) 0:81 Sequence 0:81 move second child to first child ( temp float) -0:81 'r059' ( temp float) -0:81 tangent ( 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 'r060' ( temp float) -0:82 hyp. tangent ( temp float) +0:82 'r059' ( temp float) +0:82 tangent ( temp float) 0:82 'inF0' ( in float) -0:84 Sequence -0:84 move second child to first child ( temp float) -0:84 'r061' ( temp float) -0:84 trunc ( temp float) -0:84 'inF0' ( in float) -0:86 Branch: Return with expression -0:86 Constant: -0:86 0.000000 -0:90 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) -0:90 Function Parameters: -0:90 'inF0' ( in 1-component vector of float) -0:90 'inF1' ( in 1-component vector of float) -0:90 'inF2' ( in 1-component vector of 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:92 Branch: Return with expression -0:92 Constant: -0:92 0.000000 -0:96 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) -0:96 Function Parameters: -0:96 'inF0' ( in 2-component vector of float) -0:96 'inF1' ( in 2-component vector of float) -0:96 'inF2' ( in 2-component vector of float) -0:96 'inU0' ( in 2-component vector of uint) -0:96 'inU1' ( in 2-component vector of uint) +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:99 Sequence -0:99 move second child to first child ( temp bool) -0:99 'r000' ( temp bool) -0:99 all ( temp bool) -0:99 Convert float to bool ( temp 2-component vector of bool) -0:99 'inF0' ( in 2-component vector of float) 0:100 Sequence -0:100 move second child to first child ( temp 2-component vector of float) -0:100 'r001' ( temp 2-component vector of float) -0:100 Absolute value ( temp 2-component vector of float) -0:100 'inF0' ( in 2-component vector of float) +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 'r002' ( temp 2-component vector of float) -0:101 arc cosine ( 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 bool) -0:102 'r003' ( temp bool) -0:102 any ( temp bool) -0:102 Convert float to bool ( temp 2-component vector of bool) -0:102 'inF0' ( in 2-component vector of float) +0:102 move second child to first child ( temp 2-component vector of float) +0:102 '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 2-component vector of float) -0:103 'r004' ( temp 2-component vector of float) -0:103 arc sine ( temp 2-component vector of float) -0:103 'inF0' ( in 2-component vector of float) +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 int) -0:104 'r005' ( temp 2-component vector of int) -0:104 floatBitsToInt ( temp 2-component vector of int) +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 uint) -0:105 'r006' ( temp 2-component vector of uint) -0:105 floatBitsToUint ( temp 2-component vector of uint) +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 float) -0:106 'r007' ( temp 2-component vector of float) -0:106 intBitsToFloat ( temp 2-component vector of float) -0:106 'inU0' ( in 2-component vector of uint) -0:108 Sequence -0:108 move second child to first child ( temp 2-component vector of float) -0:108 'r009' ( temp 2-component vector of float) -0:108 arc tangent ( temp 2-component vector of float) -0:108 'inF0' ( in 2-component vector of float) +0: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 'r010' ( 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:109 'inF1' ( 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 'r011' ( temp 2-component vector of float) -0:110 Ceiling ( 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 'r012' ( temp 2-component vector of float) -0:111 clamp ( 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:111 'inF1' ( in 2-component vector of float) -0:111 'inF2' ( in 2-component vector of float) -0:112 Test condition and select ( temp void) -0:112 Condition -0:112 any ( temp bool) -0:112 Compare Less Than ( temp 2-component vector of bool) +0:112 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 Constant: -0:112 0.000000 -0:112 0.000000 -0:112 true case -0:112 Branch: Kill +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 'inU0' ( in 2-component vector of uint) +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 Sequence -0:114 move second child to first child ( temp 2-component vector of float) -0:114 'r013' ( temp 2-component vector of float) -0:114 cosine ( temp 2-component vector of float) -0:114 'inF0' ( in 2-component vector of float) +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 'r015' ( temp 2-component vector of float) -0:115 hyp. cosine ( 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 int) -0:116 'r016' ( temp 2-component vector of int) +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:117 Sequence -0:117 move second child to first child ( temp 2-component vector of float) -0:117 'r017' ( temp 2-component vector of float) -0:117 dPdx ( temp 2-component vector of float) -0:117 'inF0' ( in 2-component vector of float) 0:118 Sequence 0:118 move second child to first child ( temp 2-component vector of float) -0:118 'r018' ( temp 2-component vector of float) -0:118 dPdxCoarse ( 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 'r019' ( temp 2-component vector of float) -0:119 dPdxFine ( 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 'r020' ( temp 2-component vector of float) -0:120 dPdy ( 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 'r021' ( temp 2-component vector of float) -0:121 dPdyCoarse ( 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 'r022' ( temp 2-component vector of float) -0:122 dPdyFine ( 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 'r023' ( temp 2-component vector of float) -0:123 degrees ( 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:127 Sequence -0:127 move second child to first child ( temp float) -0:127 'r026' ( temp float) -0:127 distance ( temp float) -0:127 'inF0' ( in 2-component vector of float) -0:127 'inF1' ( 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 'r027' ( temp float) -0:128 dot-product ( 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:132 Sequence -0:132 move second child to first child ( temp 2-component vector of float) -0:132 'r028' ( temp 2-component vector of float) -0:132 exp ( temp 2-component vector of float) -0:132 'inF0' ( 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 'r029' ( temp 2-component vector of float) -0:133 exp2 ( 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 'r030' ( temp 2-component vector of float) -0:134 face-forward ( 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:134 'inF1' ( in 2-component vector of float) -0:134 'inF2' ( in 2-component vector of float) 0:135 Sequence -0:135 move second child to first child ( temp 2-component vector of uint) -0:135 'r031' ( temp 2-component vector of uint) +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:136 Sequence -0:136 move second child to first child ( temp 2-component vector of uint) -0:136 'r032' ( temp 2-component vector of 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:137 Sequence -0:137 move second child to first child ( temp 2-component vector of float) -0:137 'r033' ( temp 2-component vector of float) -0:137 Floor ( temp 2-component vector of float) -0:137 'inF0' ( in 2-component vector of float) -0:139 Sequence -0:139 move second child to first child ( temp 2-component vector of float) -0:139 'r035' ( temp 2-component vector of float) -0:139 mod ( temp 2-component vector of float) -0:139 'inF0' ( in 2-component vector of float) -0:139 'inF1' ( in 2-component vector of float) +0: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 'r036' ( temp 2-component vector of float) -0:140 Fraction ( 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 'r038' ( temp 2-component vector of float) -0:141 fwidth ( 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 bool) -0:142 'r039' ( temp 2-component vector of bool) -0:142 isinf ( temp 2-component vector of bool) +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 'r040' ( temp 2-component vector of bool) -0:143 isnan ( 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 float) -0:144 'r041' ( temp 2-component vector of float) -0:144 ldexp ( temp 2-component vector of float) +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:144 'inF1' ( 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 'r039a' ( temp 2-component vector of float) -0:145 mix ( 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:145 'inF2' ( in 2-component vector of float) 0:146 Sequence -0:146 move second child to first child ( temp float) -0:146 'r042' ( temp float) -0:146 length ( temp float) +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 2-component vector of float) -0:147 'r043' ( temp 2-component vector of float) -0:147 log ( temp 2-component vector of float) +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 'r044' ( temp 2-component vector of float) -0:148 vector-scale ( temp 2-component vector of float) -0:148 log2 ( temp 2-component vector of float) -0:148 'inF0' ( in 2-component vector of float) -0:148 Constant: -0:148 0.301030 +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 'r045' ( 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 '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 'r046' ( temp 2-component vector of float) -0:150 max ( 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:150 'inF1' ( in 2-component vector of float) 0:151 Sequence 0:151 move second child to first child ( temp 2-component vector of float) -0:151 'r047' ( temp 2-component vector of float) -0:151 min ( 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 'r048' ( temp 2-component vector of float) -0:152 normalize ( 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 'r049' ( temp 2-component vector of float) -0:153 pow ( 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:153 'inF1' ( 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 'r050' ( temp 2-component vector of float) -0:154 radians ( 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 'r051' ( temp 2-component vector of float) -0:155 divide ( temp 2-component vector of float) -0:155 Constant: -0:155 1.000000 +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 'r052' ( temp 2-component vector of float) -0:156 reflect ( 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:156 'inF1' ( 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 'r053' ( temp 2-component vector of float) -0:157 refract ( 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:157 Constant: -0:157 2.000000 0:158 Sequence -0:158 move second child to first child ( temp 2-component vector of uint) -0:158 'r054' ( temp 2-component vector of uint) +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:159 Sequence -0:159 move second child to first child ( temp 2-component vector of float) -0:159 'r055' ( temp 2-component vector of float) -0:159 roundEven ( temp 2-component vector of float) -0:159 'inF0' ( in 2-component vector of float) 0:160 Sequence 0:160 move second child to first child ( temp 2-component vector of float) -0:160 'r056' ( temp 2-component vector of float) -0:160 inverse sqrt ( 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 'r057' ( temp 2-component vector of float) -0:161 clamp ( 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:161 Constant: -0:161 0.000000 -0:161 Constant: -0:161 1.000000 0:162 Sequence 0:162 move second child to first child ( temp 2-component vector of float) -0:162 'r058' ( temp 2-component vector of float) -0:162 Sign ( 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 'r059' ( temp 2-component vector of float) -0:163 sine ( 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 'inF1' ( in 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:164 move second child to first child ( temp 2-component vector of float) -0:164 'inF2' ( in 2-component vector of float) -0:164 cosine ( 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 'r060' ( temp 2-component vector of float) -0:165 hyp. sine ( 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 'r061' ( temp 2-component vector of float) -0:166 smoothstep ( 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:166 'inF1' ( in 2-component vector of float) -0:166 'inF2' ( 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 'r062' ( temp 2-component vector of float) -0:167 sqrt ( 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 'r063' ( temp 2-component vector of float) -0:168 step ( 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:168 'inF1' ( 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 'r064' ( temp 2-component vector of float) -0:169 tangent ( 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 'r065' ( temp 2-component vector of float) -0:170 hyp. tangent ( 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:172 Sequence -0:172 move second child to first child ( temp 2-component vector of float) -0:172 'r066' ( temp 2-component vector of float) -0:172 trunc ( temp 2-component vector of float) -0:172 'inF0' ( in 2-component vector of float) -0:175 Branch: Return with expression +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:179 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) -0:179 Function Parameters: -0:179 'inF0' ( in 3-component vector of float) -0:179 'inF1' ( in 3-component vector of float) -0:179 'inF2' ( in 3-component vector of float) -0:179 'inU0' ( in 3-component vector of uint) -0:179 'inU1' ( in 3-component vector of uint) +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:182 Sequence -0:182 move second child to first child ( temp bool) -0:182 'r000' ( temp bool) -0:182 all ( temp bool) -0:182 Convert float to bool ( temp 3-component vector of bool) -0:182 'inF0' ( in 3-component vector of float) 0:183 Sequence -0:183 move second child to first child ( temp 3-component vector of float) -0:183 'r001' ( temp 3-component vector of float) -0:183 Absolute value ( temp 3-component vector of float) -0:183 'inF0' ( in 3-component vector of float) +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 'r002' ( temp 3-component vector of float) -0:184 arc cosine ( 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 bool) -0:185 'r003' ( temp bool) -0:185 any ( temp bool) -0:185 Convert float to bool ( temp 3-component vector of bool) -0:185 'inF0' ( in 3-component vector of float) +0:185 move second child to first child ( temp 3-component vector of float) +0:185 '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 3-component vector of float) -0:186 'r004' ( temp 3-component vector of float) -0:186 arc sine ( temp 3-component vector of float) -0:186 'inF0' ( in 3-component vector of float) +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 int) -0:187 'r005' ( temp 3-component vector of int) -0:187 floatBitsToInt ( temp 3-component vector of int) +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 uint) -0:188 'r006' ( temp 3-component vector of uint) -0:188 floatBitsToUint ( temp 3-component vector of uint) +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 float) -0:189 'r007' ( temp 3-component vector of float) -0:189 intBitsToFloat ( temp 3-component vector of float) -0:189 'inU0' ( in 3-component vector of uint) -0:191 Sequence -0:191 move second child to first child ( temp 3-component vector of float) -0:191 'r009' ( temp 3-component vector of float) -0:191 arc tangent ( temp 3-component vector of float) -0:191 'inF0' ( in 3-component vector of float) +0: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 'r010' ( 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:192 'inF1' ( 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 'r011' ( temp 3-component vector of float) -0:193 Ceiling ( 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 'r012' ( temp 3-component vector of float) -0:194 clamp ( 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:194 'inF1' ( in 3-component vector of float) -0:194 'inF2' ( in 3-component vector of float) -0:195 Test condition and select ( temp void) -0:195 Condition -0:195 any ( temp bool) -0:195 Compare Less Than ( temp 3-component vector of bool) +0:195 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 Constant: -0:195 0.000000 -0:195 0.000000 -0:195 0.000000 -0:195 true case -0:195 Branch: Kill +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 'inU0' ( in 3-component vector of uint) +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 Sequence -0:197 move second child to first child ( temp 3-component vector of float) -0:197 'r013' ( temp 3-component vector of float) -0:197 cosine ( temp 3-component vector of float) -0:197 'inF0' ( in 3-component vector of float) +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 'r014' ( temp 3-component vector of float) -0:198 hyp. cosine ( 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 uint) -0:199 'r015' ( temp 3-component vector of uint) +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:200 Sequence -0:200 move second child to first child ( temp 3-component vector of float) -0:200 'r016' ( temp 3-component vector of float) -0:200 cross-product ( temp 3-component vector of float) -0:200 'inF0' ( in 3-component vector of float) -0:200 'inF1' ( in 3-component vector of float) 0:201 Sequence 0:201 move second child to first child ( temp 3-component vector of float) -0:201 'r017' ( temp 3-component vector of float) -0:201 dPdx ( 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 'r018' ( temp 3-component vector of float) -0:202 dPdxCoarse ( 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 'r019' ( temp 3-component vector of float) -0:203 dPdxFine ( 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 'r020' ( temp 3-component vector of float) -0:204 dPdy ( 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 'r021' ( temp 3-component vector of float) -0:205 dPdyCoarse ( 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 'r022' ( temp 3-component vector of float) -0:206 dPdyFine ( 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 'r023' ( temp 3-component vector of float) -0:207 degrees ( 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 float) -0:208 'r024' ( temp float) -0:208 distance ( temp float) +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:208 'inF1' ( in 3-component vector of float) 0:209 Sequence 0:209 move second child to first child ( temp float) -0:209 'r025' ( temp float) -0:209 dot-product ( 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:213 Sequence -0:213 move second child to first child ( temp 3-component vector of float) -0:213 'r029' ( temp 3-component vector of float) -0:213 exp ( temp 3-component vector of float) -0:213 'inF0' ( 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 'r030' ( temp 3-component vector of float) -0:214 exp2 ( 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 'r031' ( temp 3-component vector of float) -0:215 face-forward ( 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:215 'inF1' ( in 3-component vector of float) -0:215 'inF2' ( in 3-component vector of float) 0:216 Sequence -0:216 move second child to first child ( temp 3-component vector of uint) -0:216 'r032' ( temp 3-component vector of uint) +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:217 Sequence -0:217 move second child to first child ( temp 3-component vector of uint) -0:217 'r033' ( temp 3-component vector of 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:218 Sequence -0:218 move second child to first child ( temp 3-component vector of float) -0:218 'r034' ( temp 3-component vector of float) -0:218 Floor ( temp 3-component vector of float) -0:218 'inF0' ( in 3-component vector of float) -0:220 Sequence -0:220 move second child to first child ( temp 3-component vector of float) -0:220 'r036' ( temp 3-component vector of float) -0:220 mod ( temp 3-component vector of float) -0:220 'inF0' ( in 3-component vector of float) -0:220 'inF1' ( in 3-component vector of float) +0: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 'r037' ( temp 3-component vector of float) -0:221 Fraction ( 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 'r039' ( temp 3-component vector of float) -0:222 fwidth ( 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 bool) -0:223 'r040' ( temp 3-component vector of bool) -0:223 isinf ( temp 3-component vector of bool) +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 'r041' ( temp 3-component vector of bool) -0:224 isnan ( 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 float) -0:225 'r042' ( temp 3-component vector of float) -0:225 ldexp ( temp 3-component vector of float) +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:225 'inF1' ( 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 'r039a' ( temp 3-component vector of float) -0:226 mix ( 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:226 'inF2' ( 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 'r039b' ( 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 Constant: -0:227 0.300000 +0:227 'inF2' ( in 3-component vector of float) 0:228 Sequence -0:228 move second child to first child ( temp float) -0:228 'r043' ( temp float) -0:228 length ( temp float) +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 3-component vector of float) -0:229 'r044' ( temp 3-component vector of float) -0:229 log ( temp 3-component vector of float) +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 'r045' ( temp 3-component vector of float) -0:230 vector-scale ( temp 3-component vector of float) -0:230 log2 ( temp 3-component vector of float) -0:230 'inF0' ( in 3-component vector of float) -0:230 Constant: -0:230 0.301030 +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 'r046' ( 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 '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 'r047' ( temp 3-component vector of float) -0:232 max ( 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:232 'inF1' ( in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child ( temp 3-component vector of float) -0:233 'r048' ( temp 3-component vector of float) -0:233 min ( 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 'r049' ( temp 3-component vector of float) -0:234 normalize ( 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 'r050' ( temp 3-component vector of float) -0:235 pow ( 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:235 'inF1' ( 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 'r051' ( temp 3-component vector of float) -0:236 radians ( 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 'r052' ( temp 3-component vector of float) -0:237 divide ( temp 3-component vector of float) -0:237 Constant: -0:237 1.000000 +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 'r053' ( temp 3-component vector of float) -0:238 reflect ( 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:238 'inF1' ( 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 'r054' ( temp 3-component vector of float) -0:239 refract ( 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:239 Constant: -0:239 2.000000 0:240 Sequence -0:240 move second child to first child ( temp 3-component vector of uint) -0:240 'r055' ( temp 3-component vector of uint) +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:241 Sequence -0:241 move second child to first child ( temp 3-component vector of float) -0:241 'r056' ( temp 3-component vector of float) -0:241 roundEven ( temp 3-component vector of float) -0:241 'inF0' ( in 3-component vector of float) 0:242 Sequence 0:242 move second child to first child ( temp 3-component vector of float) -0:242 'r057' ( temp 3-component vector of float) -0:242 inverse sqrt ( 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 'r058' ( temp 3-component vector of float) -0:243 clamp ( 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:243 Constant: -0:243 0.000000 -0:243 Constant: -0:243 1.000000 0:244 Sequence 0:244 move second child to first child ( temp 3-component vector of float) -0:244 'r059' ( temp 3-component vector of float) -0:244 Sign ( 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 'r060' ( temp 3-component vector of float) -0:245 sine ( 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 'inF1' ( in 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:246 move second child to first child ( temp 3-component vector of float) -0:246 'inF2' ( in 3-component vector of float) -0:246 cosine ( 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 'r061' ( temp 3-component vector of float) -0:247 hyp. sine ( 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 'r062' ( temp 3-component vector of float) -0:248 smoothstep ( 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:248 'inF1' ( in 3-component vector of float) -0:248 'inF2' ( 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 'r063' ( temp 3-component vector of float) -0:249 sqrt ( 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 'r064' ( temp 3-component vector of float) -0:250 step ( 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:250 'inF1' ( 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 'r065' ( temp 3-component vector of float) -0:251 tangent ( 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 'r066' ( temp 3-component vector of float) -0:252 hyp. tangent ( 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:254 Sequence -0:254 move second child to first child ( temp 3-component vector of float) -0:254 'r067' ( temp 3-component vector of float) -0:254 trunc ( temp 3-component vector of float) -0:254 'inF0' ( in 3-component vector of float) -0:257 Branch: Return with expression +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:261 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) -0:261 Function Parameters: -0:261 'inF0' ( in 4-component vector of float) -0:261 'inF1' ( in 4-component vector of float) -0:261 'inF2' ( in 4-component vector of float) -0:261 'inU0' ( in 4-component vector of uint) -0:261 'inU1' ( in 4-component vector of uint) +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:264 Sequence -0:264 move second child to first child ( temp bool) -0:264 'r000' ( temp bool) -0:264 all ( temp bool) -0:264 Convert float to bool ( temp 4-component vector of bool) -0:264 'inF0' ( in 4-component vector of float) 0:265 Sequence -0:265 move second child to first child ( temp 4-component vector of float) -0:265 'r001' ( temp 4-component vector of float) -0:265 Absolute value ( temp 4-component vector of float) -0:265 'inF0' ( in 4-component vector of float) +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 'r002' ( temp 4-component vector of float) -0:266 arc cosine ( 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 bool) -0:267 'r003' ( temp bool) -0:267 any ( temp bool) -0:267 Convert float to bool ( temp 4-component vector of bool) -0:267 'inF0' ( in 4-component vector of float) +0:267 move second child to first child ( temp 4-component vector of float) +0:267 '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 4-component vector of float) -0:268 'r004' ( temp 4-component vector of float) -0:268 arc sine ( temp 4-component vector of float) -0:268 'inF0' ( in 4-component vector of float) +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 int) -0:269 'r005' ( temp 4-component vector of int) -0:269 floatBitsToInt ( temp 4-component vector of int) +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 uint) -0:270 'r006' ( temp 4-component vector of uint) -0:270 floatBitsToUint ( temp 4-component vector of uint) +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 float) -0:271 'r007' ( temp 4-component vector of float) -0:271 intBitsToFloat ( temp 4-component vector of float) -0:271 'inU0' ( in 4-component vector of uint) -0:273 Sequence -0:273 move second child to first child ( temp 4-component vector of float) -0:273 'r009' ( temp 4-component vector of float) -0:273 arc tangent ( temp 4-component vector of float) -0:273 'inF0' ( in 4-component vector of float) +0: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 'r010' ( 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:274 'inF1' ( 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 'r011' ( temp 4-component vector of float) -0:275 Ceiling ( 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 'r012' ( temp 4-component vector of float) -0:276 clamp ( 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:276 'inF1' ( in 4-component vector of float) -0:276 'inF2' ( in 4-component vector of float) -0:277 Test condition and select ( temp void) -0:277 Condition -0:277 any ( temp bool) -0:277 Compare Less Than ( temp 4-component vector of bool) +0:277 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 Constant: -0:277 0.000000 -0:277 0.000000 -0:277 0.000000 -0:277 0.000000 -0:277 true case -0:277 Branch: Kill +0: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 'inU0' ( in 4-component vector of uint) +0:278 'inF0' ( in 4-component vector of float) 0:278 Constant: 0:278 0.000000 0:278 0.000000 @@ -4083,905 +4085,917 @@ gl_FragCoord origin is upper left 0:278 0.000000 0:278 true case 0:278 Branch: Kill -0:279 Sequence -0:279 move second child to first child ( temp 4-component vector of float) -0:279 'r013' ( temp 4-component vector of float) -0:279 cosine ( temp 4-component vector of float) -0:279 'inF0' ( in 4-component vector of float) +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 'r014' ( temp 4-component vector of float) -0:280 hyp. cosine ( 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 uint) -0:281 'r015' ( temp 4-component vector of uint) +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:282 Sequence -0:282 move second child to first child ( temp 4-component vector of float) -0:282 'r016' ( temp 4-component vector of float) -0:282 dPdx ( temp 4-component vector of float) -0:282 'inF0' ( in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child ( temp 4-component vector of float) -0:283 'r017' ( temp 4-component vector of float) -0:283 dPdxCoarse ( 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 'r018' ( temp 4-component vector of float) -0:284 dPdxFine ( 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 'r019' ( temp 4-component vector of float) -0:285 dPdy ( 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 'r020' ( temp 4-component vector of float) -0:286 dPdyCoarse ( 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 'r021' ( temp 4-component vector of float) -0:287 dPdyFine ( 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 'r022' ( temp 4-component vector of float) -0:288 degrees ( 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 float) -0:289 'r023' ( temp float) -0:289 distance ( temp float) +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:289 'inF1' ( in 4-component vector of float) 0:290 Sequence 0:290 move second child to first child ( temp float) -0:290 'r024' ( temp float) -0:290 dot-product ( 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 4-component vector of float) -0:291 'r025' ( temp 4-component vector of float) -0:291 Construct vec4 ( temp 4-component vector of float) -0:291 Constant: -0:291 1.000000 -0:291 component-wise multiply ( temp float) -0:291 direct index ( temp float) -0:291 'inF0' ( in 4-component vector of float) -0:291 Constant: -0:291 1 (const int) -0:291 direct index ( temp float) -0:291 'inF1' ( in 4-component vector of float) -0:291 Constant: -0:291 1 (const int) -0:291 direct index ( temp float) -0:291 'inF0' ( in 4-component vector of float) -0:291 Constant: -0:291 2 (const int) -0:291 direct index ( temp float) -0:291 'inF1' ( in 4-component vector of float) -0:291 Constant: -0:291 3 (const int) -0:295 Sequence -0:295 move second child to first child ( temp 4-component vector of float) -0:295 'r029' ( temp 4-component vector of float) -0:295 exp ( temp 4-component vector of float) -0:295 'inF0' ( in 4-component vector of float) +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 'r030' ( temp 4-component vector of float) -0:296 exp2 ( 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 'r031' ( temp 4-component vector of float) -0:297 face-forward ( 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:297 'inF1' ( in 4-component vector of float) -0:297 'inF2' ( in 4-component vector of float) 0:298 Sequence -0:298 move second child to first child ( temp 4-component vector of uint) -0:298 'r032' ( temp 4-component vector of uint) +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:299 Sequence -0:299 move second child to first child ( temp 4-component vector of uint) -0:299 'r033' ( temp 4-component vector of 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:300 Sequence -0:300 move second child to first child ( temp 4-component vector of float) -0:300 'r034' ( temp 4-component vector of float) -0:300 Floor ( temp 4-component vector of float) -0:300 'inF0' ( in 4-component vector of float) -0:302 Sequence -0:302 move second child to first child ( temp 4-component vector of float) -0:302 'r036' ( temp 4-component vector of float) -0:302 mod ( temp 4-component vector of float) -0:302 'inF0' ( in 4-component vector of float) -0:302 'inF1' ( in 4-component vector of float) +0: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 'r037' ( temp 4-component vector of float) -0:303 Fraction ( 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 'r039' ( temp 4-component vector of float) -0:304 fwidth ( 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 bool) -0:305 'r040' ( temp 4-component vector of bool) -0:305 isinf ( temp 4-component vector of bool) +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 'r041' ( temp 4-component vector of bool) -0:306 isnan ( 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 float) -0:307 'r042' ( temp 4-component vector of float) -0:307 ldexp ( temp 4-component vector of float) +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:307 'inF1' ( 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 'r039a' ( temp 4-component vector of float) -0:308 mix ( 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:308 'inF2' ( in 4-component vector of float) 0:309 Sequence -0:309 move second child to first child ( temp float) -0:309 'r043' ( temp float) -0:309 length ( temp float) +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 4-component vector of float) -0:310 'r044' ( temp 4-component vector of float) -0:310 log ( temp 4-component vector of float) +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 'r045' ( temp 4-component vector of float) -0:311 vector-scale ( temp 4-component vector of float) -0:311 log2 ( temp 4-component vector of float) -0:311 'inF0' ( in 4-component vector of float) -0:311 Constant: -0:311 0.301030 +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 'r046' ( 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 '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 'r047' ( temp 4-component vector of float) -0:313 max ( 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:313 'inF1' ( in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child ( temp 4-component vector of float) -0:314 'r048' ( temp 4-component vector of float) -0:314 min ( 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 'r049' ( temp 4-component vector of float) -0:315 normalize ( 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 'r050' ( temp 4-component vector of float) -0:316 pow ( 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:316 'inF1' ( 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 'r051' ( temp 4-component vector of float) -0:317 radians ( 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 'r052' ( temp 4-component vector of float) -0:318 divide ( temp 4-component vector of float) -0:318 Constant: -0:318 1.000000 +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 'r053' ( temp 4-component vector of float) -0:319 reflect ( 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:319 'inF1' ( 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 'r054' ( temp 4-component vector of float) -0:320 refract ( 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:320 Constant: -0:320 2.000000 0:321 Sequence -0:321 move second child to first child ( temp 4-component vector of uint) -0:321 'r055' ( temp 4-component vector of uint) +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:322 Sequence -0:322 move second child to first child ( temp 4-component vector of float) -0:322 'r056' ( temp 4-component vector of float) -0:322 roundEven ( temp 4-component vector of float) -0:322 'inF0' ( in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child ( temp 4-component vector of float) -0:323 'r057' ( temp 4-component vector of float) -0:323 inverse sqrt ( 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 'r058' ( temp 4-component vector of float) -0:324 clamp ( 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:324 Constant: -0:324 0.000000 -0:324 Constant: -0:324 1.000000 0:325 Sequence 0:325 move second child to first child ( temp 4-component vector of float) -0:325 'r059' ( temp 4-component vector of float) -0:325 Sign ( 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 'r060' ( temp 4-component vector of float) -0:326 sine ( 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 'inF1' ( in 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:327 move second child to first child ( temp 4-component vector of float) -0:327 'inF2' ( in 4-component vector of float) -0:327 cosine ( 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 'r061' ( temp 4-component vector of float) -0:328 hyp. sine ( 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 'r062' ( temp 4-component vector of float) -0:329 smoothstep ( 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:329 'inF1' ( in 4-component vector of float) -0:329 'inF2' ( 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 'r063' ( temp 4-component vector of float) -0:330 sqrt ( 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 'r064' ( temp 4-component vector of float) -0:331 step ( 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:331 'inF1' ( 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 'r065' ( temp 4-component vector of float) -0:332 tangent ( 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 'r066' ( temp 4-component vector of float) -0:333 hyp. tangent ( 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:335 Sequence -0:335 move second child to first child ( temp 4-component vector of float) -0:335 'r067' ( temp 4-component vector of float) -0:335 trunc ( temp 4-component vector of float) -0:335 'inF0' ( in 4-component vector of float) -0:338 Branch: Return with expression +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:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) -0:401 Function Parameters: -0:401 'inF0' ( in 2X2 matrix of float) -0:401 'inF1' ( in 2X2 matrix of float) -0:401 'inF2' ( in 2X2 matrix of float) +0: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:403 Sequence -0:403 move second child to first child ( temp bool) -0:403 'r000' ( temp bool) -0:403 all ( temp bool) -0:403 Convert float to bool ( temp 2X2 matrix of bool) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r001' ( temp 2X2 matrix of float) -0:403 Absolute value ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 arc cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp bool) -0:403 'r003' ( temp bool) -0:403 any ( temp bool) -0:403 Convert float to bool ( temp 2X2 matrix of bool) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r004' ( temp 2X2 matrix of float) -0:403 arc sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r005' ( temp 2X2 matrix of float) -0:403 arc tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r006' ( temp 2X2 matrix of float) -0:403 arc tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r007' ( temp 2X2 matrix of float) -0:403 Ceiling ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Test condition and select ( temp void) -0:403 Condition -0:403 any ( temp bool) -0:403 Compare Less Than ( temp 2X2 matrix of bool) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 true case -0:403 Branch: Kill -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r008' ( temp 2X2 matrix of float) -0:403 clamp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r009' ( temp 2X2 matrix of float) -0:403 cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r010' ( temp 2X2 matrix of float) -0:403 hyp. cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r011' ( temp 2X2 matrix of float) -0:403 dPdx ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r012' ( temp 2X2 matrix of float) -0:403 dPdxCoarse ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r013' ( temp 2X2 matrix of float) -0:403 dPdxFine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r014' ( temp 2X2 matrix of float) -0:403 dPdy ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r015' ( temp 2X2 matrix of float) -0:403 dPdyCoarse ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r016' ( temp 2X2 matrix of float) -0:403 dPdyFine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r017' ( temp 2X2 matrix of float) -0:403 degrees ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp float) -0:403 'r018' ( temp float) -0:403 determinant ( temp float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r019' ( temp 2X2 matrix of float) -0:403 exp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'R020' ( temp 2X2 matrix of float) -0:403 exp2 ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r021' ( temp 2X2 matrix of float) -0:403 Floor ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r022' ( temp 2X2 matrix of float) -0:403 mod ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r023' ( temp 2X2 matrix of float) -0:403 Fraction ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r025' ( temp 2X2 matrix of float) -0:403 fwidth ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r026' ( temp 2X2 matrix of float) -0:403 ldexp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r026a' ( temp 2X2 matrix of float) -0:403 mix ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r027' ( temp 2X2 matrix of float) -0:403 log ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r028' ( temp 2X2 matrix of float) -0:403 matrix-scale ( temp 2X2 matrix of float) -0:403 log2 ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Constant: -0:403 0.301030 -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r029' ( temp 2X2 matrix of float) -0:403 log2 ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r030' ( temp 2X2 matrix of float) -0:403 max ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r031' ( temp 2X2 matrix of float) -0:403 min ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r032' ( temp 2X2 matrix of float) -0:403 pow ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r033' ( temp 2X2 matrix of float) -0:403 radians ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r034' ( temp 2X2 matrix of float) -0:403 roundEven ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r035' ( temp 2X2 matrix of float) -0:403 inverse sqrt ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r036' ( temp 2X2 matrix of float) -0:403 clamp ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 Constant: -0:403 1.000000 -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r037' ( temp 2X2 matrix of float) -0:403 Sign ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r038' ( temp 2X2 matrix of float) -0:403 sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 cosine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r039' ( temp 2X2 matrix of float) -0:403 hyp. sine ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r049' ( temp 2X2 matrix of float) -0:403 smoothstep ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 'inF2' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r041' ( temp 2X2 matrix of float) -0:403 sqrt ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r042' ( temp 2X2 matrix of float) -0:403 step ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 'inF1' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r043' ( temp 2X2 matrix of float) -0:403 tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r044' ( temp 2X2 matrix of float) -0:403 hyp. tangent ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 transpose ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child ( temp 2X2 matrix of float) -0:403 'r046' ( temp 2X2 matrix of float) -0:403 trunc ( temp 2X2 matrix of float) -0:403 'inF0' ( in 2X2 matrix of float) -0:406 Branch: Return with expression +0: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:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) -0:410 Function Parameters: -0:410 'inF0' ( in 3X3 matrix of float) -0:410 'inF1' ( in 3X3 matrix of float) -0:410 'inF2' ( in 3X3 matrix of float) +0: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:412 Sequence -0:412 move second child to first child ( temp bool) -0:412 'r000' ( temp bool) -0:412 all ( temp bool) -0:412 Convert float to bool ( temp 3X3 matrix of bool) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r001' ( temp 3X3 matrix of float) -0:412 Absolute value ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 arc cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp bool) -0:412 'r003' ( temp bool) -0:412 any ( temp bool) -0:412 Convert float to bool ( temp 3X3 matrix of bool) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r004' ( temp 3X3 matrix of float) -0:412 arc sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r005' ( temp 3X3 matrix of float) -0:412 arc tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r006' ( temp 3X3 matrix of float) -0:412 arc tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r007' ( temp 3X3 matrix of float) -0:412 Ceiling ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Test condition and select ( temp void) -0:412 Condition -0:412 any ( temp bool) -0:412 Compare Less Than ( temp 3X3 matrix of bool) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 true case -0:412 Branch: Kill -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r008' ( temp 3X3 matrix of float) -0:412 clamp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r009' ( temp 3X3 matrix of float) -0:412 cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r010' ( temp 3X3 matrix of float) -0:412 hyp. cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r011' ( temp 3X3 matrix of float) -0:412 dPdx ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r012' ( temp 3X3 matrix of float) -0:412 dPdxCoarse ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r013' ( temp 3X3 matrix of float) -0:412 dPdxFine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r014' ( temp 3X3 matrix of float) -0:412 dPdy ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r015' ( temp 3X3 matrix of float) -0:412 dPdyCoarse ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r016' ( temp 3X3 matrix of float) -0:412 dPdyFine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r017' ( temp 3X3 matrix of float) -0:412 degrees ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp float) -0:412 'r018' ( temp float) -0:412 determinant ( temp float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r019' ( temp 3X3 matrix of float) -0:412 exp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'R020' ( temp 3X3 matrix of float) -0:412 exp2 ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r021' ( temp 3X3 matrix of float) -0:412 Floor ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r022' ( temp 3X3 matrix of float) -0:412 mod ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r023' ( temp 3X3 matrix of float) -0:412 Fraction ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r025' ( temp 3X3 matrix of float) -0:412 fwidth ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r026' ( temp 3X3 matrix of float) -0:412 ldexp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r026a' ( temp 3X3 matrix of float) -0:412 mix ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r027' ( temp 3X3 matrix of float) -0:412 log ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r028' ( temp 3X3 matrix of float) -0:412 matrix-scale ( temp 3X3 matrix of float) -0:412 log2 ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Constant: -0:412 0.301030 -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r029' ( temp 3X3 matrix of float) -0:412 log2 ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r030' ( temp 3X3 matrix of float) -0:412 max ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r031' ( temp 3X3 matrix of float) -0:412 min ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r032' ( temp 3X3 matrix of float) -0:412 pow ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r033' ( temp 3X3 matrix of float) -0:412 radians ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r034' ( temp 3X3 matrix of float) -0:412 roundEven ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r035' ( temp 3X3 matrix of float) -0:412 inverse sqrt ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r036' ( temp 3X3 matrix of float) -0:412 clamp ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 Constant: -0:412 1.000000 -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r037' ( temp 3X3 matrix of float) -0:412 Sign ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r038' ( temp 3X3 matrix of float) -0:412 sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 cosine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r039' ( temp 3X3 matrix of float) -0:412 hyp. sine ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r049' ( temp 3X3 matrix of float) -0:412 smoothstep ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 'inF2' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r041' ( temp 3X3 matrix of float) -0:412 sqrt ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r042' ( temp 3X3 matrix of float) -0:412 step ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 'inF1' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r043' ( temp 3X3 matrix of float) -0:412 tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r044' ( temp 3X3 matrix of float) -0:412 hyp. tangent ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 transpose ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child ( temp 3X3 matrix of float) -0:412 'r046' ( temp 3X3 matrix of float) -0:412 trunc ( temp 3X3 matrix of float) -0:412 'inF0' ( in 3X3 matrix of float) -0:415 Branch: Return with expression +0: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 @@ -4992,297 +5006,297 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) -0:419 Function Parameters: -0:419 'inF0' ( in 4X4 matrix of float) -0:419 'inF1' ( in 4X4 matrix of float) -0:419 'inF2' ( in 4X4 matrix of float) +0: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:421 Sequence -0:421 move second child to first child ( temp bool) -0:421 'r000' ( temp bool) -0:421 all ( temp bool) -0:421 Convert float to bool ( temp 4X4 matrix of bool) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r001' ( temp 4X4 matrix of float) -0:421 Absolute value ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 arc cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp bool) -0:421 'r003' ( temp bool) -0:421 any ( temp bool) -0:421 Convert float to bool ( temp 4X4 matrix of bool) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r004' ( temp 4X4 matrix of float) -0:421 arc sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r005' ( temp 4X4 matrix of float) -0:421 arc tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r006' ( temp 4X4 matrix of float) -0:421 arc tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r007' ( temp 4X4 matrix of float) -0:421 Ceiling ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Test condition and select ( temp void) -0:421 Condition -0:421 any ( temp bool) -0:421 Compare Less Than ( temp 4X4 matrix of bool) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 true case -0:421 Branch: Kill -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r008' ( temp 4X4 matrix of float) -0:421 clamp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r009' ( temp 4X4 matrix of float) -0:421 cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r010' ( temp 4X4 matrix of float) -0:421 hyp. cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r011' ( temp 4X4 matrix of float) -0:421 dPdx ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r012' ( temp 4X4 matrix of float) -0:421 dPdxCoarse ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r013' ( temp 4X4 matrix of float) -0:421 dPdxFine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r014' ( temp 4X4 matrix of float) -0:421 dPdy ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r015' ( temp 4X4 matrix of float) -0:421 dPdyCoarse ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r016' ( temp 4X4 matrix of float) -0:421 dPdyFine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r017' ( temp 4X4 matrix of float) -0:421 degrees ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp float) -0:421 'r018' ( temp float) -0:421 determinant ( temp float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r019' ( temp 4X4 matrix of float) -0:421 exp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'R020' ( temp 4X4 matrix of float) -0:421 exp2 ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r021' ( temp 4X4 matrix of float) -0:421 Floor ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r022' ( temp 4X4 matrix of float) -0:421 mod ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r023' ( temp 4X4 matrix of float) -0:421 Fraction ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r025' ( temp 4X4 matrix of float) -0:421 fwidth ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r026' ( temp 4X4 matrix of float) -0:421 ldexp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r026a' ( temp 4X4 matrix of float) -0:421 mix ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r027' ( temp 4X4 matrix of float) -0:421 log ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r028' ( temp 4X4 matrix of float) -0:421 matrix-scale ( temp 4X4 matrix of float) -0:421 log2 ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Constant: -0:421 0.301030 -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r029' ( temp 4X4 matrix of float) -0:421 log2 ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r030' ( temp 4X4 matrix of float) -0:421 max ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r031' ( temp 4X4 matrix of float) -0:421 min ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r032' ( temp 4X4 matrix of float) -0:421 pow ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r033' ( temp 4X4 matrix of float) -0:421 radians ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r034' ( temp 4X4 matrix of float) -0:421 roundEven ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r035' ( temp 4X4 matrix of float) -0:421 inverse sqrt ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r036' ( temp 4X4 matrix of float) -0:421 clamp ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 Constant: -0:421 1.000000 -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r037' ( temp 4X4 matrix of float) -0:421 Sign ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r038' ( temp 4X4 matrix of float) -0:421 sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 cosine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r039' ( temp 4X4 matrix of float) -0:421 hyp. sine ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r049' ( temp 4X4 matrix of float) -0:421 smoothstep ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 'inF2' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r041' ( temp 4X4 matrix of float) -0:421 sqrt ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r042' ( temp 4X4 matrix of float) -0:421 step ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 'inF1' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r043' ( temp 4X4 matrix of float) -0:421 tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r044' ( temp 4X4 matrix of float) -0:421 hyp. tangent ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 transpose ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child ( temp 4X4 matrix of float) -0:421 'r046' ( temp 4X4 matrix of float) -0:421 trunc ( temp 4X4 matrix of float) -0:421 'inF0' ( in 4X4 matrix of float) -0:424 Branch: Return with expression +0: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 @@ -5300,334 +5314,334 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp void) -0:442 Function Parameters: -0:442 'inF0' ( in float) -0:442 'inF1' ( in float) -0:442 'inFV0' ( in 2-component vector of float) -0:442 'inFV1' ( in 2-component vector of float) -0:442 'inFM0' ( in 2X2 matrix of float) -0:442 'inFM1' ( in 2X2 matrix of float) +0: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:443 Sequence -0:443 move second child to first child ( temp float) -0:443 'r0' ( temp float) -0:443 component-wise multiply ( temp float) -0:443 'inF1' ( in float) -0:443 'inF0' ( in float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r1' ( temp 2-component vector of float) -0:443 vector-scale ( temp 2-component vector of float) -0:443 'inF0' ( in float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r2' ( temp 2-component vector of float) -0:443 vector-scale ( temp 2-component vector of float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inF0' ( in float) -0:443 Sequence -0:443 move second child to first child ( temp float) -0:443 'r3' ( temp float) -0:443 dot-product ( temp float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inFV1' ( in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r4' ( temp 2-component vector of float) -0:443 vector-times-matrix ( temp 2-component vector of float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child ( temp 2-component vector of float) -0:443 'r5' ( temp 2-component vector of float) -0:443 matrix-times-vector ( temp 2-component vector of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 'inFV0' ( in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child ( temp 2X2 matrix of float) -0:443 'r6' ( temp 2X2 matrix of float) -0:443 matrix-scale ( temp 2X2 matrix of float) -0:443 'inF0' ( in float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child ( temp 2X2 matrix of float) -0:443 'r7' ( temp 2X2 matrix of float) -0:443 matrix-scale ( temp 2X2 matrix of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:443 'inF0' ( in float) -0:443 Sequence -0:443 move second child to first child ( temp 2X2 matrix of float) -0:443 'r8' ( temp 2X2 matrix of float) -0:443 matrix-multiply ( temp 2X2 matrix of float) -0:443 'inFM1' ( in 2X2 matrix of float) -0:443 'inFM0' ( in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp void) -0:449 Function Parameters: -0:449 'inF0' ( in float) -0:449 'inF1' ( in float) -0:449 'inFV0' ( in 3-component vector of float) -0:449 'inFV1' ( in 3-component vector of float) -0:449 'inFM0' ( in 3X3 matrix of float) -0:449 'inFM1' ( in 3X3 matrix of float) +0: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:450 Sequence -0:450 move second child to first child ( temp float) -0:450 'r0' ( temp float) -0:450 component-wise multiply ( temp float) -0:450 'inF1' ( in float) -0:450 'inF0' ( in float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r1' ( temp 3-component vector of float) -0:450 vector-scale ( temp 3-component vector of float) -0:450 'inF0' ( in float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r2' ( temp 3-component vector of float) -0:450 vector-scale ( temp 3-component vector of float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inF0' ( in float) -0:450 Sequence -0:450 move second child to first child ( temp float) -0:450 'r3' ( temp float) -0:450 dot-product ( temp float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inFV1' ( in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r4' ( temp 3-component vector of float) -0:450 vector-times-matrix ( temp 3-component vector of float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child ( temp 3-component vector of float) -0:450 'r5' ( temp 3-component vector of float) -0:450 matrix-times-vector ( temp 3-component vector of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 'inFV0' ( in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child ( temp 3X3 matrix of float) -0:450 'r6' ( temp 3X3 matrix of float) -0:450 matrix-scale ( temp 3X3 matrix of float) -0:450 'inF0' ( in float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child ( temp 3X3 matrix of float) -0:450 'r7' ( temp 3X3 matrix of float) -0:450 matrix-scale ( temp 3X3 matrix of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:450 'inF0' ( in float) -0:450 Sequence -0:450 move second child to first child ( temp 3X3 matrix of float) -0:450 'r8' ( temp 3X3 matrix of float) -0:450 matrix-multiply ( temp 3X3 matrix of float) -0:450 'inFM1' ( in 3X3 matrix of float) -0:450 'inFM0' ( in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp void) -0:456 Function Parameters: -0:456 'inF0' ( in float) -0:456 'inF1' ( in float) -0:456 'inFV0' ( in 4-component vector of float) -0:456 'inFV1' ( in 4-component vector of float) -0:456 'inFM0' ( in 4X4 matrix of float) -0:456 'inFM1' ( in 4X4 matrix of float) +0: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:457 Sequence -0:457 move second child to first child ( temp float) -0:457 'r0' ( temp float) -0:457 component-wise multiply ( temp float) -0:457 'inF1' ( in float) -0:457 'inF0' ( in float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r1' ( temp 4-component vector of float) -0:457 vector-scale ( temp 4-component vector of float) -0:457 'inF0' ( in float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r2' ( temp 4-component vector of float) -0:457 vector-scale ( temp 4-component vector of float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inF0' ( in float) -0:457 Sequence -0:457 move second child to first child ( temp float) -0:457 'r3' ( temp float) -0:457 dot-product ( temp float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inFV1' ( in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r4' ( temp 4-component vector of float) -0:457 vector-times-matrix ( temp 4-component vector of float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child ( temp 4-component vector of float) -0:457 'r5' ( temp 4-component vector of float) -0:457 matrix-times-vector ( temp 4-component vector of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 'inFV0' ( in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child ( temp 4X4 matrix of float) -0:457 'r6' ( temp 4X4 matrix of float) -0:457 matrix-scale ( temp 4X4 matrix of float) -0:457 'inF0' ( in float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child ( temp 4X4 matrix of float) -0:457 'r7' ( temp 4X4 matrix of float) -0:457 matrix-scale ( temp 4X4 matrix of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:457 'inF0' ( in float) -0:457 Sequence -0:457 move second child to first child ( temp 4X4 matrix of float) -0:457 'r8' ( temp 4X4 matrix of float) -0:457 matrix-multiply ( temp 4X4 matrix of float) -0:457 'inFM1' ( in 4X4 matrix of float) -0:457 'inFM0' ( in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) -0:466 Function Parameters: -0:466 'inF0' ( in float) -0:466 'inF1' ( in float) -0:466 'inFV2' ( in 2-component vector of float) -0:466 'inFV3' ( in 3-component vector of float) -0:466 'inFM2x3' ( in 2X3 matrix of float) -0:466 'inFM3x2' ( in 3X2 matrix of float) -0:466 'inFM3x3' ( in 3X3 matrix of float) -0:466 'inFM3x4' ( in 3X4 matrix of float) -0:466 'inFM2x4' ( in 2X4 matrix of float) +0: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:467 Sequence -0:467 move second child to first child ( temp float) -0:467 'r00' ( temp float) -0:467 component-wise multiply ( temp float) -0:467 'inF1' ( in float) -0:467 'inF0' ( in float) 0:468 Sequence -0:468 move second child to first child ( temp 2-component vector of float) -0:468 'r01' ( temp 2-component vector of float) -0:468 vector-scale ( temp 2-component vector of float) +0:468 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:468 'inFV2' ( in 2-component vector of float) 0:469 Sequence -0:469 move second child to first child ( temp 3-component vector of float) -0:469 'r02' ( temp 3-component vector of float) -0:469 vector-scale ( temp 3-component vector of float) +0:469 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 'inFV3' ( in 3-component vector of float) +0:469 'inFV2' ( in 2-component vector of float) 0:470 Sequence -0:470 move second child to first child ( temp 2-component vector of float) -0:470 'r03' ( temp 2-component vector of float) -0:470 vector-scale ( temp 2-component vector of float) -0:470 'inFV2' ( in 2-component vector of float) +0:470 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 3-component vector of float) -0:471 'r04' ( temp 3-component vector of float) -0:471 vector-scale ( temp 3-component vector of float) -0:471 'inFV3' ( in 3-component vector of float) +0:471 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 float) -0:472 'r05' ( temp float) -0:472 dot-product ( temp float) -0:472 'inFV2' ( in 2-component vector of float) -0:472 'inFV2' ( in 2-component vector of float) +0:472 move second child to first child ( temp 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 'r06' ( temp float) +0:473 'r05' ( temp float) 0:473 dot-product ( temp float) -0:473 'inFV3' ( in 3-component vector of float) -0:473 'inFV3' ( in 3-component vector of float) +0:473 '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 3-component vector of float) -0:474 'r07' ( temp 3-component vector of float) -0:474 matrix-times-vector ( temp 3-component vector of float) -0:474 'inFM2x3' ( in 2X3 matrix of float) -0:474 'inFV2' ( in 2-component vector of float) +0:474 move second child to first child ( temp 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 2-component vector of float) -0:475 'r08' ( temp 2-component vector of float) -0:475 matrix-times-vector ( temp 2-component vector of float) -0:475 'inFM3x2' ( in 3X2 matrix of float) -0:475 'inFV3' ( in 3-component vector of float) +0:475 move second child to first child ( temp 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 'r09' ( temp 2-component vector of float) -0:476 vector-times-matrix ( 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:476 'inFM2x3' ( in 2X3 matrix of float) 0:477 Sequence -0:477 move second child to first child ( temp 3-component vector of float) -0:477 'r10' ( temp 3-component vector of float) -0:477 vector-times-matrix ( temp 3-component vector of float) -0:477 'inFV2' ( in 2-component vector of float) -0:477 'inFM3x2' ( in 3X2 matrix of float) +0: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 2X3 matrix of float) -0:478 'r11' ( temp 2X3 matrix of float) -0:478 matrix-scale ( temp 2X3 matrix of float) -0:478 'inF0' ( in float) -0:478 'inFM2x3' ( in 2X3 matrix of float) +0:478 move second child to first child ( temp 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 3X2 matrix of float) -0:479 'r12' ( temp 3X2 matrix of float) -0:479 matrix-scale ( temp 3X2 matrix of float) +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 'inFM3x2' ( in 3X2 matrix of float) +0:479 'inFM2x3' ( in 2X3 matrix of float) 0:480 Sequence -0:480 move second child to first child ( temp 2X2 matrix of float) -0:480 'r13' ( temp 2X2 matrix of float) -0:480 matrix-multiply ( temp 2X2 matrix of float) +0:480 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:480 'inFM2x3' ( in 2X3 matrix of float) 0:481 Sequence -0:481 move second child to first child ( temp 2X3 matrix of float) -0:481 'r14' ( temp 2X3 matrix of float) -0:481 matrix-multiply ( temp 2X3 matrix of float) -0:481 'inFM3x3' ( in 3X3 matrix of float) +0:481 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 2X4 matrix of float) -0:482 'r15' ( temp 2X4 matrix of float) -0:482 matrix-multiply ( temp 2X4 matrix of float) -0:482 'inFM3x4' ( in 3X4 matrix of float) +0:482 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 3X4 matrix of float) -0:483 'r16' ( temp 3X4 matrix of float) -0:483 matrix-multiply ( temp 3X4 matrix of float) -0:483 'inFM2x4' ( in 2X4 matrix of float) -0:483 'inFM3x2' ( in 3X2 matrix of float) -0:489 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) -0:489 Function Parameters: +0: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:491 move second child to first child ( temp 4-component vector of float) -0:491 color: direct index for structure ( temp 4-component vector of float) -0:491 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:491 Constant: -0:491 0 (const int) -0:491 Constant: -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:492 Branch: Return with expression -0:492 'ps_output' ( temp structure{ temp 4-component vector of float color}) -0:489 Function Definition: main( ( temp void) -0:489 Function Parameters: +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:489 Sequence -0:489 move second child to first child ( temp 4-component vector of float) +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:489 color: direct index for structure ( temp 4-component vector of float) -0:489 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) -0:489 Constant: -0:489 0 (const int) +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) @@ -5645,14 +5659,14 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 1836 +// 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" 1817 + EntryPoint Fragment 4 "main" 1820 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -5759,416 +5773,417 @@ Validation failed Name 235 "r030" Name 238 "r031" Name 241 "r033" - Name 245 "r034" - Name 248 "r036" - Name 251 "r037" - Name 254 "r038" - Name 257 "r039" - Name 261 "r039a" - Name 266 "r040" - Name 269 "r041" - Name 274 "r042" - Name 277 "r043" - Name 281 "r044" - Name 285 "r045" - Name 289 "r046" - Name 292 "r047" - Name 296 "r048" - Name 300 "r049" - Name 303 "r050" - Name 306 "r051" - Name 309 "r052" - Name 312 "r053" - Name 319 "r055" - Name 322 "r056" - Name 327 "r057" - Name 330 "r058" - Name 334 "r059" - Name 337 "r060" - Name 340 "r061" - Name 347 "r000" - Name 353 "r001" - Name 356 "r002" - Name 359 "r003" - Name 363 "r004" - Name 368 "r005" - Name 371 "r006" - Name 374 "r007" - Name 377 "r009" - Name 380 "r010" - Name 384 "r011" - Name 387 "r012" - Name 406 "r013" - Name 409 "r015" - Name 412 "r016" - Name 416 "r017" - Name 419 "r018" - Name 422 "r019" - Name 425 "r020" - Name 428 "r021" - Name 431 "r022" - Name 434 "r023" - Name 437 "r026" - Name 441 "r027" - Name 445 "r028" - Name 448 "r029" - Name 451 "r030" - Name 456 "r031" - Name 461 "r032" - Name 463 "r033" - Name 466 "r035" - Name 470 "r036" - Name 473 "r038" - Name 477 "r039" - Name 480 "r040" - Name 483 "r041" - Name 487 "r039a" - Name 492 "r042" - Name 495 "r043" - Name 498 "r044" - Name 502 "r045" - Name 505 "r046" - Name 509 "r047" - Name 513 "r048" - Name 516 "r049" - Name 520 "r050" - Name 523 "r051" - Name 527 "r052" - Name 531 "r053" - Name 536 "r054" - Name 541 "r055" - Name 544 "r056" - Name 547 "r057" - Name 552 "r058" - Name 555 "r059" - Name 562 "r060" - Name 565 "r061" - Name 570 "r062" - Name 573 "r063" - Name 577 "r064" - Name 580 "r065" - Name 583 "r066" - Name 589 "r000" - Name 595 "r001" - Name 598 "r002" - Name 601 "r003" - Name 605 "r004" - Name 610 "r005" - Name 613 "r006" - Name 616 "r007" - Name 619 "r009" - Name 622 "r010" - Name 626 "r011" - Name 629 "r012" - Name 647 "r013" - Name 650 "r014" - Name 653 "r015" - Name 658 "r016" - Name 662 "r017" - Name 665 "r018" - Name 668 "r019" - Name 671 "r020" - Name 674 "r021" - Name 677 "r022" - Name 680 "r023" - Name 683 "r024" - Name 687 "r025" - Name 691 "r029" - Name 694 "r030" - Name 697 "r031" - Name 702 "r032" - Name 706 "r033" - Name 708 "r034" - Name 711 "r036" - Name 715 "r037" - Name 718 "r039" - Name 722 "r040" - Name 725 "r041" - Name 728 "r042" - Name 732 "r039a" - Name 737 "r039b" - Name 743 "r043" - Name 746 "r044" - Name 749 "r045" - Name 753 "r046" - Name 756 "r047" - Name 760 "r048" - Name 764 "r049" - Name 767 "r050" - Name 771 "r051" - Name 774 "r052" - Name 778 "r053" - Name 782 "r054" - Name 786 "r055" - Name 789 "r056" - Name 792 "r057" - Name 795 "r058" - Name 800 "r059" - Name 803 "r060" - Name 810 "r061" - Name 813 "r062" - Name 818 "r063" - Name 821 "r064" - Name 825 "r065" - Name 828 "r066" - Name 831 "r067" - Name 838 "r000" - Name 844 "r001" - Name 847 "r002" - Name 850 "r003" - Name 854 "r004" - Name 859 "r005" - Name 862 "r006" - Name 865 "r007" - Name 868 "r009" - Name 871 "r010" - Name 875 "r011" - Name 878 "r012" - Name 896 "r013" - Name 899 "r014" - Name 902 "r015" - Name 905 "r016" - Name 908 "r017" - Name 911 "r018" - Name 914 "r019" - Name 917 "r020" - Name 920 "r021" - Name 923 "r022" - Name 926 "r023" - Name 930 "r024" - Name 934 "r025" - Name 945 "r029" - Name 948 "r030" - Name 951 "r031" - Name 956 "r032" - Name 961 "r033" - Name 963 "r034" - Name 966 "r036" - Name 970 "r037" - Name 973 "r039" - Name 977 "r040" - Name 980 "r041" - Name 983 "r042" - Name 987 "r039a" - Name 992 "r043" - Name 995 "r044" - Name 998 "r045" - Name 1002 "r046" - Name 1005 "r047" - Name 1009 "r048" - Name 1013 "r049" - Name 1016 "r050" - Name 1020 "r051" - Name 1023 "r052" - Name 1027 "r053" - Name 1031 "r054" - Name 1035 "r055" - Name 1038 "r056" - Name 1041 "r057" - Name 1044 "r058" - Name 1049 "r059" - Name 1052 "r060" - Name 1059 "r061" - Name 1062 "r062" - Name 1067 "r063" - Name 1070 "r064" - Name 1074 "r065" - Name 1077 "r066" - Name 1080 "r067" - Name 1087 "r000" - Name 1092 "r001" - Name 1097 "r003" - Name 1101 "r004" - Name 1104 "r005" - Name 1107 "r006" - Name 1111 "r007" - Name 1121 "r008" - Name 1126 "r009" - Name 1129 "r010" - Name 1132 "r011" - Name 1135 "r012" - Name 1138 "r013" - Name 1141 "r014" - Name 1144 "r015" - Name 1147 "r016" - Name 1150 "r017" - Name 1153 "r018" - Name 1156 "r019" - Name 1159 "R020" - Name 1162 "r021" - Name 1165 "r022" - Name 1175 "r023" - Name 1178 "r025" - Name 1181 "r026" - Name 1185 "r026a" - Name 1190 "r027" - Name 1193 "r028" - Name 1197 "r029" - Name 1200 "r030" - Name 1204 "r031" - Name 1208 "r032" - Name 1212 "r033" - Name 1215 "r034" - Name 1218 "r035" - Name 1221 "r036" - Name 1226 "r037" - Name 1229 "r038" - Name 1236 "r039" - Name 1239 "r049" - Name 1244 "r041" - Name 1247 "r042" - Name 1251 "r043" - Name 1254 "r044" - Name 1259 "r046" - Name 1266 "r000" - Name 1271 "r001" - Name 1276 "r003" - Name 1280 "r004" - Name 1283 "r005" - Name 1286 "r006" - Name 1290 "r007" - Name 1300 "r008" - Name 1305 "r009" - Name 1308 "r010" - Name 1311 "r011" - Name 1314 "r012" - Name 1317 "r013" - Name 1320 "r014" - Name 1323 "r015" - Name 1326 "r016" - Name 1329 "r017" - Name 1332 "r018" - Name 1335 "r019" - Name 1338 "R020" - Name 1341 "r021" - Name 1344 "r022" - Name 1357 "r023" - Name 1360 "r025" - Name 1363 "r026" - Name 1367 "r026a" - Name 1372 "r027" - Name 1375 "r028" - Name 1379 "r029" - Name 1382 "r030" - Name 1386 "r031" - Name 1390 "r032" - Name 1394 "r033" - Name 1397 "r034" - Name 1400 "r035" - Name 1403 "r036" - Name 1408 "r037" - Name 1411 "r038" - Name 1418 "r039" - Name 1421 "r049" - Name 1426 "r041" - Name 1429 "r042" - Name 1433 "r043" - Name 1436 "r044" - Name 1441 "r046" - Name 1448 "r000" - Name 1453 "r001" - Name 1458 "r003" - Name 1462 "r004" - Name 1465 "r005" - Name 1468 "r006" - Name 1472 "r007" - Name 1482 "r008" - Name 1487 "r009" - Name 1490 "r010" - Name 1493 "r011" - Name 1496 "r012" - Name 1499 "r013" - Name 1502 "r014" - Name 1505 "r015" - Name 1508 "r016" - Name 1511 "r017" - Name 1514 "r018" - Name 1517 "r019" - Name 1520 "R020" - Name 1523 "r021" - Name 1526 "r022" - Name 1542 "r023" - Name 1545 "r025" - Name 1548 "r026" - Name 1552 "r026a" - Name 1557 "r027" - Name 1560 "r028" - Name 1564 "r029" - Name 1567 "r030" - Name 1571 "r031" - Name 1575 "r032" - Name 1579 "r033" - Name 1582 "r034" - Name 1585 "r035" - Name 1588 "r036" - Name 1593 "r037" - Name 1596 "r038" - Name 1603 "r039" - Name 1606 "r049" - Name 1611 "r041" - Name 1614 "r042" - Name 1618 "r043" - Name 1621 "r044" - Name 1626 "r046" - Name 1633 "r0" - Name 1637 "r1" - Name 1641 "r2" - Name 1645 "r3" - Name 1649 "r4" - Name 1653 "r5" - Name 1657 "r6" - Name 1661 "r7" - Name 1665 "r8" - Name 1669 "r0" - Name 1673 "r1" - Name 1677 "r2" - Name 1681 "r3" - Name 1685 "r4" - Name 1689 "r5" - Name 1693 "r6" - Name 1697 "r7" - Name 1701 "r8" - Name 1705 "r0" - Name 1709 "r1" - Name 1713 "r2" - Name 1717 "r3" - Name 1721 "r4" - Name 1725 "r5" - Name 1729 "r6" - Name 1733 "r7" - Name 1737 "r8" - Name 1741 "r00" - Name 1745 "r01" - Name 1749 "r02" - Name 1753 "r03" - Name 1757 "r04" - Name 1761 "r05" - Name 1765 "r06" - Name 1769 "r07" - Name 1773 "r08" - Name 1777 "r09" - Name 1781 "r10" - Name 1785 "r11" - Name 1789 "r12" - Name 1793 "r13" - Name 1797 "r14" - Name 1801 "r15" - Name 1805 "r16" - Name 1810 "ps_output" - Name 1817 "@entryPointOutput.color" - Name 1821 "gs_ua" - Name 1822 "gs_ub" - Name 1823 "gs_uc" - Name 1825 "gs_ua2" - Name 1826 "gs_ub2" - Name 1827 "gs_uc2" - Name 1829 "gs_ua3" - Name 1830 "gs_ub3" - Name 1831 "gs_uc3" - Name 1833 "gs_ua4" - Name 1834 "gs_ub4" - Name 1835 "gs_uc4" - Decorate 1817(@entryPointOutput.color) Location 0 + 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 @@ -6222,91 +6237,91 @@ Validation failed 141: 6(float) Constant 0 187: 10(int) Constant 0 199: 10(int) Constant 7 - 272: 6(float) Constant 1050288283 - 293: 6(float) Constant 1065353216 - 297: 10(int) Constant 2 - 349: TypeVector 137(bool) 2 - 350: 26(fvec2) ConstantComposite 141 141 - 366: TypeVector 10(int) 2 - 367: TypePointer Function 366(ivec2) - 399: 8(int) Constant 0 - 400: 28(ivec2) ConstantComposite 399 399 - 413: 10(int) Constant 3 - 414: 366(ivec2) ConstantComposite 199 413 - 457: 8(int) Constant 7 - 458: 8(int) Constant 8 - 459: 28(ivec2) ConstantComposite 457 458 - 476: TypePointer Function 349(bvec2) - 534: 6(float) Constant 1073741824 - 537: 8(int) Constant 1 - 538: 8(int) Constant 2 - 539: 28(ivec2) ConstantComposite 537 538 - 586: 26(fvec2) ConstantComposite 293 534 - 591: TypeVector 137(bool) 3 - 592: 38(fvec3) ConstantComposite 141 141 141 - 608: TypeVector 10(int) 3 - 609: TypePointer Function 608(ivec3) - 641: 40(ivec3) ConstantComposite 399 399 399 - 654: 8(int) Constant 3 - 655: 8(int) Constant 5 - 656: 40(ivec3) ConstantComposite 457 654 655 - 703: 8(int) Constant 4 - 704: 40(ivec3) ConstantComposite 538 654 703 - 721: TypePointer Function 591(bvec3) - 740: 6(float) Constant 1050253722 - 787: 40(ivec3) ConstantComposite 537 538 654 - 834: 6(float) Constant 1077936128 - 835: 38(fvec3) ConstantComposite 293 534 834 - 840: TypeVector 137(bool) 4 - 841: 50(fvec4) ConstantComposite 141 141 141 141 - 857: TypeVector 10(int) 4 - 858: TypePointer Function 857(ivec4) - 890: 52(ivec4) ConstantComposite 399 399 399 399 - 903: 52(ivec4) ConstantComposite 457 654 655 538 - 957: 8(int) Constant 9 - 958: 8(int) Constant 10 - 959: 52(ivec4) ConstantComposite 457 458 957 958 - 976: TypePointer Function 840(bvec4) - 1036: 52(ivec4) ConstantComposite 537 538 654 703 - 1083: 6(float) Constant 1082130432 - 1084: 50(fvec4) ConstantComposite 293 534 834 1083 - 1089: TypeMatrix 349(bvec2) 2 - 1115: 62 ConstantComposite 350 350 - 1262: 26(fvec2) ConstantComposite 534 534 - 1263: 62 ConstantComposite 1262 1262 - 1268: TypeMatrix 591(bvec3) 3 - 1294: 70 ConstantComposite 592 592 592 - 1444: 38(fvec3) ConstantComposite 834 834 834 - 1445: 70 ConstantComposite 1444 1444 1444 - 1450: TypeMatrix 840(bvec4) 4 - 1476: 78 ConstantComposite 841 841 841 841 - 1629: 50(fvec4) ConstantComposite 1083 1083 1083 1083 - 1630: 78 ConstantComposite 1629 1629 1629 1629 - 1809: TypePointer Function 133(PS_OUTPUT) - 1811: 50(fvec4) ConstantComposite 293 293 293 293 - 1816: TypePointer Output 50(fvec4) -1817(@entryPointOutput.color): 1816(ptr) Variable Output - 1820: TypePointer Workgroup 8(int) - 1821(gs_ua): 1820(ptr) Variable Workgroup - 1822(gs_ub): 1820(ptr) Variable Workgroup - 1823(gs_uc): 1820(ptr) Variable Workgroup - 1824: TypePointer Workgroup 28(ivec2) - 1825(gs_ua2): 1824(ptr) Variable Workgroup - 1826(gs_ub2): 1824(ptr) Variable Workgroup - 1827(gs_uc2): 1824(ptr) Variable Workgroup - 1828: TypePointer Workgroup 40(ivec3) - 1829(gs_ua3): 1828(ptr) Variable Workgroup - 1830(gs_ub3): 1828(ptr) Variable Workgroup - 1831(gs_uc3): 1828(ptr) Variable Workgroup - 1832: TypePointer Workgroup 52(ivec4) - 1833(gs_ua4): 1832(ptr) Variable Workgroup - 1834(gs_ub4): 1832(ptr) Variable Workgroup - 1835(gs_uc4): 1832(ptr) Variable Workgroup + 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 - 1818:133(PS_OUTPUT) FunctionCall 135(@main() - 1819: 50(fvec4) CompositeExtract 1818 0 - Store 1817(@entryPointOutput.color) 1819 + 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 @@ -6345,33 +6360,34 @@ Validation failed 235(r030): 9(ptr) Variable Function 238(r031): 7(ptr) Variable Function 241(r033): 7(ptr) Variable Function - 245(r034): 7(ptr) Variable Function - 248(r036): 7(ptr) Variable Function - 251(r037): 138(ptr) Variable Function - 254(r038): 138(ptr) Variable Function - 257(r039): 7(ptr) Variable Function - 261(r039a): 7(ptr) Variable Function - 266(r040): 7(ptr) Variable Function - 269(r041): 7(ptr) Variable Function - 274(r042): 7(ptr) Variable Function - 277(r043): 7(ptr) Variable Function - 281(r044): 7(ptr) Variable Function - 285(r045): 7(ptr) Variable Function - 289(r046): 7(ptr) Variable Function - 292(r047): 7(ptr) Variable Function - 296(r048): 9(ptr) Variable Function - 300(r049): 7(ptr) Variable Function - 303(r050): 7(ptr) Variable Function - 306(r051): 7(ptr) Variable Function - 309(r052): 7(ptr) Variable Function - 312(r053): 7(ptr) Variable Function - 319(r055): 7(ptr) Variable Function - 322(r056): 7(ptr) Variable Function - 327(r057): 7(ptr) Variable Function - 330(r058): 7(ptr) Variable Function - 334(r059): 7(ptr) Variable Function - 337(r060): 7(ptr) Variable Function - 340(r061): 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 @@ -6480,102 +6496,105 @@ Validation failed 244: 6(float) FMod 242 243 Store 241(r033) 244 246: 6(float) Load 13(inF0) - 247: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 246 - Store 245(r034) 247 - 249: 6(float) Load 13(inF0) - 250: 6(float) Fwidth 249 - Store 248(r036) 250 - 252: 6(float) Load 13(inF0) - 253: 137(bool) IsInf 252 - Store 251(r037) 253 - 255: 6(float) Load 13(inF0) - 256: 137(bool) IsNan 255 - Store 254(r038) 256 - 258: 6(float) Load 13(inF0) - 259: 6(float) Load 14(inF1) - 260: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 258 259 - Store 257(r039) 260 + 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) Load 15(inF2) - 265: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 262 263 264 - Store 261(r039a) 265 - 267: 6(float) Load 13(inF0) - 268: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 267 - Store 266(r040) 268 - 270: 6(float) Load 13(inF0) - 271: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 270 - 273: 6(float) FMul 271 272 - Store 269(r041) 273 - 275: 6(float) Load 13(inF0) - 276: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 275 - Store 274(r042) 276 - 278: 6(float) Load 13(inF0) - 279: 6(float) Load 14(inF1) - 280: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 278 279 - Store 277(r043) 280 + 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) 37(FMin) 282 283 - Store 281(r044) 284 + 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) 26(Pow) 286 287 - Store 285(r045) 288 + 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) ExtInst 1(GLSL.std.450) 11(Radians) 290 - Store 289(r046) 291 + 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) FDiv 293 294 - Store 292(r047) 295 - 298: 10(int) BitReverse 297 - 299: 8(int) Bitcast 298 - Store 296(r048) 299 - 301: 6(float) Load 13(inF0) - 302: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 301 - Store 300(r049) 302 - 304: 6(float) Load 13(inF0) - 305: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 304 - Store 303(r050) 305 - 307: 6(float) Load 13(inF0) - 308: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 307 141 293 - Store 306(r051) 308 - 310: 6(float) Load 13(inF0) - 311: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 310 - Store 309(r052) 311 - 313: 6(float) Load 13(inF0) - 314: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 313 - Store 312(r053) 314 - 315: 6(float) Load 13(inF0) - 316: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 315 - Store 14(inF1) 316 + 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) 14(Cos) 317 - Store 15(inF2) 318 - 320: 6(float) Load 13(inF0) - 321: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 320 - Store 319(r055) 321 - 323: 6(float) Load 13(inF0) - 324: 6(float) Load 14(inF1) - 325: 6(float) Load 15(inF2) - 326: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 323 324 325 - Store 322(r056) 326 - 328: 6(float) Load 13(inF0) - 329: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 328 - Store 327(r057) 329 - 331: 6(float) Load 13(inF0) - 332: 6(float) Load 14(inF1) - 333: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 331 332 - Store 330(r058) 333 + 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) ExtInst 1(GLSL.std.450) 15(Tan) 335 - Store 334(r059) 336 - 338: 6(float) Load 13(inF0) - 339: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 338 - Store 337(r060) 339 - 341: 6(float) Load 13(inF0) - 342: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 341 - Store 340(r061) 342 + 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 @@ -6592,298 +6611,298 @@ Validation failed 34(inU0): 29(ptr) FunctionParameter 35(inU1): 29(ptr) FunctionParameter 37: Label - 347(r000): 138(ptr) Variable Function - 353(r001): 27(ptr) Variable Function - 356(r002): 27(ptr) Variable Function - 359(r003): 138(ptr) Variable Function - 363(r004): 27(ptr) Variable Function - 368(r005): 367(ptr) Variable Function - 371(r006): 29(ptr) Variable Function - 374(r007): 27(ptr) Variable Function - 377(r009): 27(ptr) Variable Function - 380(r010): 27(ptr) Variable Function - 384(r011): 27(ptr) Variable Function - 387(r012): 27(ptr) Variable Function - 406(r013): 27(ptr) Variable Function - 409(r015): 27(ptr) Variable Function - 412(r016): 367(ptr) Variable Function - 416(r017): 27(ptr) Variable Function - 419(r018): 27(ptr) Variable Function - 422(r019): 27(ptr) Variable Function - 425(r020): 27(ptr) Variable Function - 428(r021): 27(ptr) Variable Function - 431(r022): 27(ptr) Variable Function - 434(r023): 27(ptr) Variable Function - 437(r026): 7(ptr) Variable Function - 441(r027): 7(ptr) Variable Function - 445(r028): 27(ptr) Variable Function - 448(r029): 27(ptr) Variable Function - 451(r030): 27(ptr) Variable Function - 456(r031): 29(ptr) Variable Function - 461(r032): 29(ptr) Variable Function - 463(r033): 27(ptr) Variable Function - 466(r035): 27(ptr) Variable Function - 470(r036): 27(ptr) Variable Function - 473(r038): 27(ptr) Variable Function - 477(r039): 476(ptr) Variable Function - 480(r040): 476(ptr) Variable Function - 483(r041): 27(ptr) Variable Function - 487(r039a): 27(ptr) Variable Function - 492(r042): 7(ptr) Variable Function - 495(r043): 27(ptr) Variable Function - 498(r044): 27(ptr) Variable Function - 502(r045): 27(ptr) Variable Function - 505(r046): 27(ptr) Variable Function - 509(r047): 27(ptr) Variable Function - 513(r048): 27(ptr) Variable Function - 516(r049): 27(ptr) Variable Function - 520(r050): 27(ptr) Variable Function - 523(r051): 27(ptr) Variable Function - 527(r052): 27(ptr) Variable Function - 531(r053): 27(ptr) Variable Function - 536(r054): 29(ptr) Variable Function - 541(r055): 27(ptr) Variable Function - 544(r056): 27(ptr) Variable Function - 547(r057): 27(ptr) Variable Function - 552(r058): 27(ptr) Variable Function - 555(r059): 27(ptr) Variable Function - 562(r060): 27(ptr) Variable Function - 565(r061): 27(ptr) Variable Function - 570(r062): 27(ptr) Variable Function - 573(r063): 27(ptr) Variable Function - 577(r064): 27(ptr) Variable Function - 580(r065): 27(ptr) Variable Function - 583(r066): 27(ptr) Variable Function - 348: 26(fvec2) Load 31(inF0) - 351: 349(bvec2) FOrdNotEqual 348 350 - 352: 137(bool) All 351 - Store 347(r000) 352 - 354: 26(fvec2) Load 31(inF0) - 355: 26(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 354 - Store 353(r001) 355 - 357: 26(fvec2) Load 31(inF0) - 358: 26(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 357 - Store 356(r002) 358 - 360: 26(fvec2) Load 31(inF0) - 361: 349(bvec2) FOrdNotEqual 360 350 - 362: 137(bool) Any 361 - Store 359(r003) 362 + 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: 26(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 364 - Store 363(r004) 365 - 369: 26(fvec2) Load 31(inF0) - 370: 366(ivec2) Bitcast 369 - Store 368(r005) 370 - 372: 26(fvec2) Load 31(inF0) - 373: 28(ivec2) Bitcast 372 - Store 371(r006) 373 - 375: 28(ivec2) Load 34(inU0) - 376: 26(fvec2) Bitcast 375 - Store 374(r007) 376 - 378: 26(fvec2) Load 31(inF0) - 379: 26(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 378 - Store 377(r009) 379 - 381: 26(fvec2) Load 31(inF0) - 382: 26(fvec2) Load 32(inF1) - 383: 26(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 381 382 - Store 380(r010) 383 + 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) ExtInst 1(GLSL.std.450) 9(Ceil) 385 - Store 384(r011) 386 - 388: 26(fvec2) Load 31(inF0) - 389: 26(fvec2) Load 32(inF1) - 390: 26(fvec2) Load 33(inF2) - 391: 26(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 388 389 390 - Store 387(r012) 391 + 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: 349(bvec2) FOrdLessThan 392 350 - 394: 137(bool) Any 393 - SelectionMerge 396 None - BranchConditional 394 395 396 - 395: Label + 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 - 396: Label - 398: 28(ivec2) Load 34(inU0) - 401: 349(bvec2) ULessThan 398 400 - 402: 137(bool) Any 401 - SelectionMerge 404 None - BranchConditional 402 403 404 - 403: Label + 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 - 404: Label - 407: 26(fvec2) Load 31(inF0) - 408: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 407 - Store 406(r013) 408 - 410: 26(fvec2) Load 31(inF0) - 411: 26(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 410 - Store 409(r015) 411 - 415: 366(ivec2) BitCount 414 - Store 412(r016) 415 - 417: 26(fvec2) Load 31(inF0) - 418: 26(fvec2) DPdx 417 - Store 416(r017) 418 - 420: 26(fvec2) Load 31(inF0) - 421: 26(fvec2) DPdxCoarse 420 - Store 419(r018) 421 - 423: 26(fvec2) Load 31(inF0) - 424: 26(fvec2) DPdxFine 423 - Store 422(r019) 424 - 426: 26(fvec2) Load 31(inF0) - 427: 26(fvec2) DPdy 426 - Store 425(r020) 427 - 429: 26(fvec2) Load 31(inF0) - 430: 26(fvec2) DPdyCoarse 429 - Store 428(r021) 430 - 432: 26(fvec2) Load 31(inF0) - 433: 26(fvec2) DPdyFine 432 - Store 431(r022) 433 - 435: 26(fvec2) Load 31(inF0) - 436: 26(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 435 - Store 434(r023) 436 - 438: 26(fvec2) Load 31(inF0) - 439: 26(fvec2) Load 32(inF1) - 440: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 438 439 - Store 437(r026) 440 + 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) Dot 442 443 - Store 441(r027) 444 + 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) ExtInst 1(GLSL.std.450) 27(Exp) 446 - Store 445(r028) 447 - 449: 26(fvec2) Load 31(inF0) - 450: 26(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 449 - Store 448(r029) 450 - 452: 26(fvec2) Load 31(inF0) - 453: 26(fvec2) Load 32(inF1) - 454: 26(fvec2) Load 33(inF2) - 455: 26(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 452 453 454 - Store 451(r030) 455 - 460: 28(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 459 - Store 456(r031) 460 - 462: 28(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 459 - Store 461(r032) 462 - 464: 26(fvec2) Load 31(inF0) - 465: 26(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 464 - Store 463(r033) 465 - 467: 26(fvec2) Load 31(inF0) - 468: 26(fvec2) Load 32(inF1) - 469: 26(fvec2) FMod 467 468 - Store 466(r035) 469 + 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) ExtInst 1(GLSL.std.450) 10(Fract) 471 - Store 470(r036) 472 - 474: 26(fvec2) Load 31(inF0) - 475: 26(fvec2) Fwidth 474 - Store 473(r038) 475 + 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: 349(bvec2) IsInf 478 - Store 477(r039) 479 - 481: 26(fvec2) Load 31(inF0) - 482: 349(bvec2) IsNan 481 - Store 480(r040) 482 - 484: 26(fvec2) Load 31(inF0) - 485: 26(fvec2) Load 32(inF1) - 486: 26(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 484 485 - Store 483(r041) 486 + 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) Load 33(inF2) - 491: 26(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 488 489 490 - Store 487(r039a) 491 - 493: 26(fvec2) Load 31(inF0) - 494: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 493 - Store 492(r042) 494 - 496: 26(fvec2) Load 31(inF0) - 497: 26(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 496 - Store 495(r043) 497 - 499: 26(fvec2) Load 31(inF0) - 500: 26(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 499 - 501: 26(fvec2) VectorTimesScalar 500 272 - Store 498(r044) 501 + 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 - Store 502(r045) 504 - 506: 26(fvec2) Load 31(inF0) - 507: 26(fvec2) Load 32(inF1) - 508: 26(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 506 507 - Store 505(r046) 508 + 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) 37(FMin) 510 511 - Store 509(r047) 512 + 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) ExtInst 1(GLSL.std.450) 69(Normalize) 514 - Store 513(r048) 515 - 517: 26(fvec2) Load 31(inF0) - 518: 26(fvec2) Load 32(inF1) - 519: 26(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 517 518 - Store 516(r049) 519 + 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) ExtInst 1(GLSL.std.450) 11(Radians) 521 - Store 520(r050) 522 - 524: 26(fvec2) Load 31(inF0) - 525: 26(fvec2) CompositeConstruct 293 293 - 526: 26(fvec2) FDiv 525 524 - Store 523(r051) 526 + 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) Load 32(inF1) - 530: 26(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 528 529 - Store 527(r052) 530 + 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) - 535: 26(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 532 533 534 - Store 531(r053) 535 - 540: 28(ivec2) BitReverse 539 - Store 536(r054) 540 - 542: 26(fvec2) Load 31(inF0) - 543: 26(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 542 - Store 541(r055) 543 + 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) 32(InverseSqrt) 545 - Store 544(r056) 546 + 546: 26(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 545 + Store 544(r055) 546 548: 26(fvec2) Load 31(inF0) - 549: 26(fvec2) CompositeConstruct 141 141 - 550: 26(fvec2) CompositeConstruct 293 293 - 551: 26(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 548 549 550 - Store 547(r057) 551 - 553: 26(fvec2) Load 31(inF0) - 554: 26(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 553 - Store 552(r058) 554 + 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) 13(Sin) 556 - Store 555(r059) 557 - 558: 26(fvec2) Load 31(inF0) - 559: 26(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 558 - Store 32(inF1) 559 - 560: 26(fvec2) Load 31(inF0) - 561: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 560 - Store 33(inF2) 561 + 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) 19(Sinh) 563 - Store 562(r060) 564 + 564: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 563 + Store 33(inF2) 564 566: 26(fvec2) Load 31(inF0) - 567: 26(fvec2) Load 32(inF1) - 568: 26(fvec2) Load 33(inF2) - 569: 26(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 566 567 568 - Store 565(r061) 569 - 571: 26(fvec2) Load 31(inF0) - 572: 26(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 571 - Store 570(r062) 572 + 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) Load 32(inF1) - 576: 26(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 574 575 - Store 573(r063) 576 - 578: 26(fvec2) Load 31(inF0) - 579: 26(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 578 - Store 577(r064) 579 + 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) 21(Tanh) 581 - Store 580(r065) 582 + 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) 3(Trunc) 584 - Store 583(r066) 585 - ReturnValue 586 + 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 @@ -6892,309 +6911,309 @@ Validation failed 46(inU0): 41(ptr) FunctionParameter 47(inU1): 41(ptr) FunctionParameter 49: Label - 589(r000): 138(ptr) Variable Function - 595(r001): 39(ptr) Variable Function - 598(r002): 39(ptr) Variable Function - 601(r003): 138(ptr) Variable Function - 605(r004): 39(ptr) Variable Function - 610(r005): 609(ptr) Variable Function - 613(r006): 41(ptr) Variable Function - 616(r007): 39(ptr) Variable Function - 619(r009): 39(ptr) Variable Function - 622(r010): 39(ptr) Variable Function - 626(r011): 39(ptr) Variable Function - 629(r012): 39(ptr) Variable Function - 647(r013): 39(ptr) Variable Function - 650(r014): 39(ptr) Variable Function - 653(r015): 41(ptr) Variable Function - 658(r016): 39(ptr) Variable Function - 662(r017): 39(ptr) Variable Function - 665(r018): 39(ptr) Variable Function - 668(r019): 39(ptr) Variable Function - 671(r020): 39(ptr) Variable Function - 674(r021): 39(ptr) Variable Function - 677(r022): 39(ptr) Variable Function - 680(r023): 39(ptr) Variable Function - 683(r024): 7(ptr) Variable Function - 687(r025): 7(ptr) Variable Function - 691(r029): 39(ptr) Variable Function - 694(r030): 39(ptr) Variable Function - 697(r031): 39(ptr) Variable Function - 702(r032): 41(ptr) Variable Function - 706(r033): 41(ptr) Variable Function - 708(r034): 39(ptr) Variable Function - 711(r036): 39(ptr) Variable Function - 715(r037): 39(ptr) Variable Function - 718(r039): 39(ptr) Variable Function - 722(r040): 721(ptr) Variable Function - 725(r041): 721(ptr) Variable Function - 728(r042): 39(ptr) Variable Function - 732(r039a): 39(ptr) Variable Function - 737(r039b): 39(ptr) Variable Function - 743(r043): 7(ptr) Variable Function - 746(r044): 39(ptr) Variable Function - 749(r045): 39(ptr) Variable Function - 753(r046): 39(ptr) Variable Function - 756(r047): 39(ptr) Variable Function - 760(r048): 39(ptr) Variable Function - 764(r049): 39(ptr) Variable Function - 767(r050): 39(ptr) Variable Function - 771(r051): 39(ptr) Variable Function - 774(r052): 39(ptr) Variable Function - 778(r053): 39(ptr) Variable Function - 782(r054): 39(ptr) Variable Function - 786(r055): 41(ptr) Variable Function - 789(r056): 39(ptr) Variable Function - 792(r057): 39(ptr) Variable Function - 795(r058): 39(ptr) Variable Function - 800(r059): 39(ptr) Variable Function - 803(r060): 39(ptr) Variable Function - 810(r061): 39(ptr) Variable Function - 813(r062): 39(ptr) Variable Function - 818(r063): 39(ptr) Variable Function - 821(r064): 39(ptr) Variable Function - 825(r065): 39(ptr) Variable Function - 828(r066): 39(ptr) Variable Function - 831(r067): 39(ptr) Variable Function - 590: 38(fvec3) Load 43(inF0) - 593: 591(bvec3) FOrdNotEqual 590 592 - 594: 137(bool) All 593 - Store 589(r000) 594 - 596: 38(fvec3) Load 43(inF0) - 597: 38(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 596 - Store 595(r001) 597 + 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) 17(Acos) 599 - Store 598(r002) 600 + 600: 38(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 599 + Store 598(r001) 600 602: 38(fvec3) Load 43(inF0) - 603: 591(bvec3) FOrdNotEqual 602 592 - 604: 137(bool) Any 603 - Store 601(r003) 604 - 606: 38(fvec3) Load 43(inF0) - 607: 38(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 606 - Store 605(r004) 607 - 611: 38(fvec3) Load 43(inF0) - 612: 608(ivec3) Bitcast 611 - Store 610(r005) 612 + 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: 40(ivec3) Bitcast 614 - Store 613(r006) 615 - 617: 40(ivec3) Load 46(inU0) - 618: 38(fvec3) Bitcast 617 - Store 616(r007) 618 - 620: 38(fvec3) Load 43(inF0) - 621: 38(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 620 - Store 619(r009) 621 + 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) Load 44(inF1) - 625: 38(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 623 624 - Store 622(r010) 625 - 627: 38(fvec3) Load 43(inF0) - 628: 38(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 627 - Store 626(r011) 628 + 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) Load 44(inF1) - 632: 38(fvec3) Load 45(inF2) - 633: 38(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 630 631 632 - Store 629(r012) 633 - 634: 38(fvec3) Load 43(inF0) - 635: 591(bvec3) FOrdLessThan 634 592 - 636: 137(bool) Any 635 - SelectionMerge 638 None - BranchConditional 636 637 638 - 637: Label + 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 - 638: Label - 640: 40(ivec3) Load 46(inU0) - 642: 591(bvec3) ULessThan 640 641 - 643: 137(bool) Any 642 - SelectionMerge 645 None - BranchConditional 643 644 645 - 644: Label + 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 - 645: Label - 648: 38(fvec3) Load 43(inF0) - 649: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 648 - Store 647(r013) 649 + 648: Label 651: 38(fvec3) Load 43(inF0) - 652: 38(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 651 - Store 650(r014) 652 - 657: 40(ivec3) BitCount 656 - Store 653(r015) 657 - 659: 38(fvec3) Load 43(inF0) - 660: 38(fvec3) Load 44(inF1) - 661: 38(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 659 660 - Store 658(r016) 661 - 663: 38(fvec3) Load 43(inF0) - 664: 38(fvec3) DPdx 663 - Store 662(r017) 664 + 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) DPdxCoarse 666 - Store 665(r018) 667 + 667: 38(fvec3) DPdx 666 + Store 665(r017) 667 669: 38(fvec3) Load 43(inF0) - 670: 38(fvec3) DPdxFine 669 - Store 668(r019) 670 + 670: 38(fvec3) DPdxCoarse 669 + Store 668(r018) 670 672: 38(fvec3) Load 43(inF0) - 673: 38(fvec3) DPdy 672 - Store 671(r020) 673 + 673: 38(fvec3) DPdxFine 672 + Store 671(r019) 673 675: 38(fvec3) Load 43(inF0) - 676: 38(fvec3) DPdyCoarse 675 - Store 674(r021) 676 + 676: 38(fvec3) DPdy 675 + Store 674(r020) 676 678: 38(fvec3) Load 43(inF0) - 679: 38(fvec3) DPdyFine 678 - Store 677(r022) 679 + 679: 38(fvec3) DPdyCoarse 678 + Store 677(r021) 679 681: 38(fvec3) Load 43(inF0) - 682: 38(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 681 - Store 680(r023) 682 + 682: 38(fvec3) DPdyFine 681 + Store 680(r022) 682 684: 38(fvec3) Load 43(inF0) - 685: 38(fvec3) Load 44(inF1) - 686: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 684 685 - Store 683(r024) 686 - 688: 38(fvec3) Load 43(inF0) - 689: 38(fvec3) Load 44(inF1) - 690: 6(float) Dot 688 689 - Store 687(r025) 690 - 692: 38(fvec3) Load 43(inF0) - 693: 38(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 692 - Store 691(r029) 693 + 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) 29(Exp2) 695 - Store 694(r030) 696 + 696: 38(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 695 + Store 694(r029) 696 698: 38(fvec3) Load 43(inF0) - 699: 38(fvec3) Load 44(inF1) - 700: 38(fvec3) Load 45(inF2) - 701: 38(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 698 699 700 - Store 697(r031) 701 - 705: 40(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 704 - Store 702(r032) 705 - 707: 40(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 704 - Store 706(r033) 707 - 709: 38(fvec3) Load 43(inF0) - 710: 38(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 709 - Store 708(r034) 710 + 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) Load 44(inF1) - 714: 38(fvec3) FMod 712 713 - Store 711(r036) 714 - 716: 38(fvec3) Load 43(inF0) - 717: 38(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 716 - Store 715(r037) 717 + 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) Fwidth 719 - Store 718(r039) 720 - 723: 38(fvec3) Load 43(inF0) - 724: 591(bvec3) IsInf 723 - Store 722(r040) 724 + 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: 591(bvec3) IsNan 726 - Store 725(r041) 727 + 727: 594(bvec3) IsInf 726 + Store 725(r040) 727 729: 38(fvec3) Load 43(inF0) - 730: 38(fvec3) Load 44(inF1) - 731: 38(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 729 730 - Store 728(r042) 731 - 733: 38(fvec3) Load 43(inF0) - 734: 38(fvec3) Load 44(inF1) - 735: 38(fvec3) Load 45(inF2) - 736: 38(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 733 734 735 - Store 732(r039a) 736 - 738: 38(fvec3) Load 43(inF0) - 739: 38(fvec3) Load 44(inF1) - 741: 38(fvec3) CompositeConstruct 740 740 740 - 742: 38(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 738 739 741 - Store 737(r039b) 742 - 744: 38(fvec3) Load 43(inF0) - 745: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 744 - Store 743(r043) 745 + 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: 38(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 747 - Store 746(r044) 748 + 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) 30(Log2) 750 - 752: 38(fvec3) VectorTimesScalar 751 272 - Store 749(r045) 752 - 754: 38(fvec3) Load 43(inF0) - 755: 38(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 754 - Store 753(r046) 755 + 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) Load 44(inF1) - 759: 38(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 757 758 - Store 756(r047) 759 - 761: 38(fvec3) Load 43(inF0) - 762: 38(fvec3) Load 44(inF1) - 763: 38(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 761 762 - Store 760(r048) 763 - 765: 38(fvec3) Load 43(inF0) - 766: 38(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 765 - Store 764(r049) 766 + 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) Load 44(inF1) - 770: 38(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 768 769 - Store 767(r050) 770 - 772: 38(fvec3) Load 43(inF0) - 773: 38(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 772 - Store 771(r051) 773 + 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) CompositeConstruct 293 293 293 - 777: 38(fvec3) FDiv 776 775 - Store 774(r052) 777 - 779: 38(fvec3) Load 43(inF0) - 780: 38(fvec3) Load 44(inF1) - 781: 38(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 779 780 - Store 778(r053) 781 - 783: 38(fvec3) Load 43(inF0) - 784: 38(fvec3) Load 44(inF1) - 785: 38(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 783 784 534 - Store 782(r054) 785 - 788: 40(ivec3) BitReverse 787 - Store 786(r055) 788 - 790: 38(fvec3) Load 43(inF0) - 791: 38(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 790 - Store 789(r056) 791 + 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) 32(InverseSqrt) 793 - Store 792(r057) 794 + 794: 38(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 793 + Store 792(r056) 794 796: 38(fvec3) Load 43(inF0) - 797: 38(fvec3) CompositeConstruct 141 141 141 - 798: 38(fvec3) CompositeConstruct 293 293 293 - 799: 38(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 796 797 798 - Store 795(r058) 799 - 801: 38(fvec3) Load 43(inF0) - 802: 38(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 801 - Store 800(r059) 802 + 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) 13(Sin) 804 - Store 803(r060) 805 - 806: 38(fvec3) Load 43(inF0) - 807: 38(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 806 - Store 44(inF1) 807 - 808: 38(fvec3) Load 43(inF0) - 809: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 808 - Store 45(inF2) 809 + 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) 19(Sinh) 811 - Store 810(r061) 812 + 812: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 811 + Store 45(inF2) 812 814: 38(fvec3) Load 43(inF0) - 815: 38(fvec3) Load 44(inF1) - 816: 38(fvec3) Load 45(inF2) - 817: 38(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 814 815 816 - Store 813(r062) 817 - 819: 38(fvec3) Load 43(inF0) - 820: 38(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 819 - Store 818(r063) 820 + 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) Load 44(inF1) - 824: 38(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 822 823 - Store 821(r064) 824 - 826: 38(fvec3) Load 43(inF0) - 827: 38(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 826 - Store 825(r065) 827 + 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) 21(Tanh) 829 - Store 828(r066) 830 + 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) 3(Trunc) 832 - Store 831(r067) 833 - ReturnValue 835 + 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 @@ -7203,1006 +7222,1006 @@ Validation failed 58(inU0): 53(ptr) FunctionParameter 59(inU1): 53(ptr) FunctionParameter 61: Label - 838(r000): 138(ptr) Variable Function - 844(r001): 51(ptr) Variable Function - 847(r002): 51(ptr) Variable Function - 850(r003): 138(ptr) Variable Function - 854(r004): 51(ptr) Variable Function - 859(r005): 858(ptr) Variable Function - 862(r006): 53(ptr) Variable Function - 865(r007): 51(ptr) Variable Function - 868(r009): 51(ptr) Variable Function - 871(r010): 51(ptr) Variable Function - 875(r011): 51(ptr) Variable Function - 878(r012): 51(ptr) Variable Function - 896(r013): 51(ptr) Variable Function - 899(r014): 51(ptr) Variable Function - 902(r015): 53(ptr) Variable Function - 905(r016): 51(ptr) Variable Function - 908(r017): 51(ptr) Variable Function - 911(r018): 51(ptr) Variable Function - 914(r019): 51(ptr) Variable Function - 917(r020): 51(ptr) Variable Function - 920(r021): 51(ptr) Variable Function - 923(r022): 51(ptr) Variable Function - 926(r023): 7(ptr) Variable Function - 930(r024): 7(ptr) Variable Function - 934(r025): 51(ptr) Variable Function - 945(r029): 51(ptr) Variable Function - 948(r030): 51(ptr) Variable Function - 951(r031): 51(ptr) Variable Function - 956(r032): 53(ptr) Variable Function - 961(r033): 53(ptr) Variable Function - 963(r034): 51(ptr) Variable Function - 966(r036): 51(ptr) Variable Function - 970(r037): 51(ptr) Variable Function - 973(r039): 51(ptr) Variable Function - 977(r040): 976(ptr) Variable Function - 980(r041): 976(ptr) Variable Function - 983(r042): 51(ptr) Variable Function - 987(r039a): 51(ptr) Variable Function - 992(r043): 7(ptr) Variable Function - 995(r044): 51(ptr) Variable Function - 998(r045): 51(ptr) Variable Function - 1002(r046): 51(ptr) Variable Function - 1005(r047): 51(ptr) Variable Function - 1009(r048): 51(ptr) Variable Function - 1013(r049): 51(ptr) Variable Function - 1016(r050): 51(ptr) Variable Function - 1020(r051): 51(ptr) Variable Function - 1023(r052): 51(ptr) Variable Function - 1027(r053): 51(ptr) Variable Function - 1031(r054): 51(ptr) Variable Function - 1035(r055): 53(ptr) Variable Function - 1038(r056): 51(ptr) Variable Function - 1041(r057): 51(ptr) Variable Function - 1044(r058): 51(ptr) Variable Function - 1049(r059): 51(ptr) Variable Function - 1052(r060): 51(ptr) Variable Function - 1059(r061): 51(ptr) Variable Function - 1062(r062): 51(ptr) Variable Function - 1067(r063): 51(ptr) Variable Function - 1070(r064): 51(ptr) Variable Function - 1074(r065): 51(ptr) Variable Function - 1077(r066): 51(ptr) Variable Function - 1080(r067): 51(ptr) Variable Function - 839: 50(fvec4) Load 55(inF0) - 842: 840(bvec4) FOrdNotEqual 839 841 - 843: 137(bool) All 842 - Store 838(r000) 843 - 845: 50(fvec4) Load 55(inF0) - 846: 50(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 845 - Store 844(r001) 846 + 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) 17(Acos) 848 - Store 847(r002) 849 + 849: 50(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 848 + Store 847(r001) 849 851: 50(fvec4) Load 55(inF0) - 852: 840(bvec4) FOrdNotEqual 851 841 - 853: 137(bool) Any 852 - Store 850(r003) 853 - 855: 50(fvec4) Load 55(inF0) - 856: 50(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 855 - Store 854(r004) 856 - 860: 50(fvec4) Load 55(inF0) - 861: 857(ivec4) Bitcast 860 - Store 859(r005) 861 + 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: 52(ivec4) Bitcast 863 - Store 862(r006) 864 - 866: 52(ivec4) Load 58(inU0) - 867: 50(fvec4) Bitcast 866 - Store 865(r007) 867 - 869: 50(fvec4) Load 55(inF0) - 870: 50(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 869 - Store 868(r009) 870 + 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) Load 56(inF1) - 874: 50(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 872 873 - Store 871(r010) 874 - 876: 50(fvec4) Load 55(inF0) - 877: 50(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 876 - Store 875(r011) 877 + 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) Load 56(inF1) - 881: 50(fvec4) Load 57(inF2) - 882: 50(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 879 880 881 - Store 878(r012) 882 - 883: 50(fvec4) Load 55(inF0) - 884: 840(bvec4) FOrdLessThan 883 841 - 885: 137(bool) Any 884 - SelectionMerge 887 None - BranchConditional 885 886 887 - 886: Label + 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 - 887: Label - 889: 52(ivec4) Load 58(inU0) - 891: 840(bvec4) ULessThan 889 890 - 892: 137(bool) Any 891 - SelectionMerge 894 None - BranchConditional 892 893 894 - 893: Label + 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 - 894: Label - 897: 50(fvec4) Load 55(inF0) - 898: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 897 - Store 896(r013) 898 + 897: Label 900: 50(fvec4) Load 55(inF0) - 901: 50(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 900 - Store 899(r014) 901 - 904: 52(ivec4) BitCount 903 - Store 902(r015) 904 - 906: 50(fvec4) Load 55(inF0) - 907: 50(fvec4) DPdx 906 - Store 905(r016) 907 + 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) DPdxCoarse 909 - Store 908(r017) 910 + 910: 50(fvec4) DPdx 909 + Store 908(r016) 910 912: 50(fvec4) Load 55(inF0) - 913: 50(fvec4) DPdxFine 912 - Store 911(r018) 913 + 913: 50(fvec4) DPdxCoarse 912 + Store 911(r017) 913 915: 50(fvec4) Load 55(inF0) - 916: 50(fvec4) DPdy 915 - Store 914(r019) 916 + 916: 50(fvec4) DPdxFine 915 + Store 914(r018) 916 918: 50(fvec4) Load 55(inF0) - 919: 50(fvec4) DPdyCoarse 918 - Store 917(r020) 919 + 919: 50(fvec4) DPdy 918 + Store 917(r019) 919 921: 50(fvec4) Load 55(inF0) - 922: 50(fvec4) DPdyFine 921 - Store 920(r021) 922 + 922: 50(fvec4) DPdyCoarse 921 + Store 920(r020) 922 924: 50(fvec4) Load 55(inF0) - 925: 50(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 924 - Store 923(r022) 925 + 925: 50(fvec4) DPdyFine 924 + Store 923(r021) 925 927: 50(fvec4) Load 55(inF0) - 928: 50(fvec4) Load 56(inF1) - 929: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 927 928 - Store 926(r023) 929 - 931: 50(fvec4) Load 55(inF0) - 932: 50(fvec4) Load 56(inF1) - 933: 6(float) Dot 931 932 - Store 930(r024) 933 - 935: 7(ptr) AccessChain 55(inF0) 537 - 936: 6(float) Load 935 - 937: 7(ptr) AccessChain 56(inF1) 537 - 938: 6(float) Load 937 - 939: 6(float) FMul 936 938 - 940: 7(ptr) AccessChain 55(inF0) 538 + 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: 7(ptr) AccessChain 56(inF1) 654 - 943: 6(float) Load 942 - 944: 50(fvec4) CompositeConstruct 293 939 941 943 - Store 934(r025) 944 - 946: 50(fvec4) Load 55(inF0) - 947: 50(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 946 - Store 945(r029) 947 + 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) 29(Exp2) 949 - Store 948(r030) 950 + 950: 50(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 949 + Store 948(r029) 950 952: 50(fvec4) Load 55(inF0) - 953: 50(fvec4) Load 56(inF1) - 954: 50(fvec4) Load 57(inF2) - 955: 50(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 952 953 954 - Store 951(r031) 955 - 960: 52(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 959 - Store 956(r032) 960 - 962: 52(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 959 - Store 961(r033) 962 - 964: 50(fvec4) Load 55(inF0) - 965: 50(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 964 - Store 963(r034) 965 + 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) Load 56(inF1) - 969: 50(fvec4) FMod 967 968 - Store 966(r036) 969 - 971: 50(fvec4) Load 55(inF0) - 972: 50(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 971 - Store 970(r037) 972 + 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) Fwidth 974 - Store 973(r039) 975 - 978: 50(fvec4) Load 55(inF0) - 979: 840(bvec4) IsInf 978 - Store 977(r040) 979 + 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: 840(bvec4) IsNan 981 - Store 980(r041) 982 + 982: 843(bvec4) IsInf 981 + Store 980(r040) 982 984: 50(fvec4) Load 55(inF0) - 985: 50(fvec4) Load 56(inF1) - 986: 50(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 984 985 - Store 983(r042) 986 - 988: 50(fvec4) Load 55(inF0) - 989: 50(fvec4) Load 56(inF1) - 990: 50(fvec4) Load 57(inF2) - 991: 50(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 988 989 990 - Store 987(r039a) 991 - 993: 50(fvec4) Load 55(inF0) - 994: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 993 - Store 992(r043) 994 + 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: 50(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 996 - Store 995(r044) 997 + 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) 30(Log2) 999 - 1001: 50(fvec4) VectorTimesScalar 1000 272 - Store 998(r045) 1001 - 1003: 50(fvec4) Load 55(inF0) - 1004: 50(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 1003 - Store 1002(r046) 1004 + 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) Load 56(inF1) - 1008: 50(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 1006 1007 - Store 1005(r047) 1008 - 1010: 50(fvec4) Load 55(inF0) - 1011: 50(fvec4) Load 56(inF1) - 1012: 50(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 1010 1011 - Store 1009(r048) 1012 - 1014: 50(fvec4) Load 55(inF0) - 1015: 50(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 1014 - Store 1013(r049) 1015 + 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) Load 56(inF1) - 1019: 50(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 1017 1018 - Store 1016(r050) 1019 - 1021: 50(fvec4) Load 55(inF0) - 1022: 50(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1021 - Store 1020(r051) 1022 + 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) CompositeConstruct 293 293 293 293 - 1026: 50(fvec4) FDiv 1025 1024 - Store 1023(r052) 1026 - 1028: 50(fvec4) Load 55(inF0) - 1029: 50(fvec4) Load 56(inF1) - 1030: 50(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1028 1029 - Store 1027(r053) 1030 - 1032: 50(fvec4) Load 55(inF0) - 1033: 50(fvec4) Load 56(inF1) - 1034: 50(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1032 1033 534 - Store 1031(r054) 1034 - 1037: 52(ivec4) BitReverse 1036 - Store 1035(r055) 1037 - 1039: 50(fvec4) Load 55(inF0) - 1040: 50(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1039 - Store 1038(r056) 1040 + 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) 32(InverseSqrt) 1042 - Store 1041(r057) 1043 + 1043: 50(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1042 + Store 1041(r056) 1043 1045: 50(fvec4) Load 55(inF0) - 1046: 50(fvec4) CompositeConstruct 141 141 141 141 - 1047: 50(fvec4) CompositeConstruct 293 293 293 293 - 1048: 50(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1045 1046 1047 - Store 1044(r058) 1048 - 1050: 50(fvec4) Load 55(inF0) - 1051: 50(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1050 - Store 1049(r059) 1051 + 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) 13(Sin) 1053 - Store 1052(r060) 1054 - 1055: 50(fvec4) Load 55(inF0) - 1056: 50(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1055 - Store 56(inF1) 1056 - 1057: 50(fvec4) Load 55(inF0) - 1058: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1057 - Store 57(inF2) 1058 + 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) 19(Sinh) 1060 - Store 1059(r061) 1061 + 1061: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1060 + Store 57(inF2) 1061 1063: 50(fvec4) Load 55(inF0) - 1064: 50(fvec4) Load 56(inF1) - 1065: 50(fvec4) Load 57(inF2) - 1066: 50(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1063 1064 1065 - Store 1062(r062) 1066 - 1068: 50(fvec4) Load 55(inF0) - 1069: 50(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1068 - Store 1067(r063) 1069 + 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) Load 56(inF1) - 1073: 50(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1071 1072 - Store 1070(r064) 1073 - 1075: 50(fvec4) Load 55(inF0) - 1076: 50(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1075 - Store 1074(r065) 1076 + 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) 21(Tanh) 1078 - Store 1077(r066) 1079 + 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) 3(Trunc) 1081 - Store 1080(r067) 1082 - ReturnValue 1084 + 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 - 1087(r000): 138(ptr) Variable Function - 1092(r001): 63(ptr) Variable Function - 1097(r003): 138(ptr) Variable Function - 1101(r004): 63(ptr) Variable Function - 1104(r005): 63(ptr) Variable Function - 1107(r006): 63(ptr) Variable Function - 1111(r007): 63(ptr) Variable Function - 1121(r008): 63(ptr) Variable Function - 1126(r009): 63(ptr) Variable Function - 1129(r010): 63(ptr) Variable Function - 1132(r011): 63(ptr) Variable Function - 1135(r012): 63(ptr) Variable Function - 1138(r013): 63(ptr) Variable Function - 1141(r014): 63(ptr) Variable Function - 1144(r015): 63(ptr) Variable Function - 1147(r016): 63(ptr) Variable Function - 1150(r017): 63(ptr) Variable Function - 1153(r018): 7(ptr) Variable Function - 1156(r019): 63(ptr) Variable Function - 1159(R020): 63(ptr) Variable Function - 1162(r021): 63(ptr) Variable Function - 1165(r022): 63(ptr) Variable Function - 1175(r023): 63(ptr) Variable Function - 1178(r025): 63(ptr) Variable Function - 1181(r026): 63(ptr) Variable Function - 1185(r026a): 63(ptr) Variable Function - 1190(r027): 63(ptr) Variable Function - 1193(r028): 63(ptr) Variable Function - 1197(r029): 63(ptr) Variable Function - 1200(r030): 63(ptr) Variable Function - 1204(r031): 63(ptr) Variable Function - 1208(r032): 63(ptr) Variable Function - 1212(r033): 63(ptr) Variable Function - 1215(r034): 63(ptr) Variable Function - 1218(r035): 63(ptr) Variable Function - 1221(r036): 63(ptr) Variable Function - 1226(r037): 63(ptr) Variable Function - 1229(r038): 63(ptr) Variable Function - 1236(r039): 63(ptr) Variable Function - 1239(r049): 63(ptr) Variable Function - 1244(r041): 63(ptr) Variable Function - 1247(r042): 63(ptr) Variable Function - 1251(r043): 63(ptr) Variable Function - 1254(r044): 63(ptr) Variable Function - 1259(r046): 63(ptr) Variable Function - 1088: 62 Load 65(inF0) - 1090: 1089 FOrdNotEqual 1088 141 - 1091: 137(bool) All 1090 - Store 1087(r000) 1091 - 1093: 62 Load 65(inF0) - 1094: 62 ExtInst 1(GLSL.std.450) 4(FAbs) 1093 - Store 1092(r001) 1094 - 1095: 62 Load 65(inF0) - 1096: 62 ExtInst 1(GLSL.std.450) 17(Acos) 1095 + 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: 1089 FOrdNotEqual 1098 141 - 1100: 137(bool) Any 1099 - Store 1097(r003) 1100 - 1102: 62 Load 65(inF0) - 1103: 62 ExtInst 1(GLSL.std.450) 16(Asin) 1102 - Store 1101(r004) 1103 + 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) 18(Atan) 1105 - Store 1104(r005) 1106 + 1106: 62 ExtInst 1(GLSL.std.450) 16(Asin) 1105 + Store 1104(r004) 1106 1108: 62 Load 65(inF0) - 1109: 62 Load 66(inF1) - 1110: 62 ExtInst 1(GLSL.std.450) 25(Atan2) 1108 1109 - Store 1107(r006) 1110 - 1112: 62 Load 65(inF0) - 1113: 62 ExtInst 1(GLSL.std.450) 9(Ceil) 1112 - Store 1111(r007) 1113 - 1114: 62 Load 65(inF0) - 1116: 1089 FOrdLessThan 1114 1115 - 1117: 137(bool) Any 1116 - SelectionMerge 1119 None - BranchConditional 1117 1118 1119 - 1118: Label + 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 - 1119: Label - 1122: 62 Load 65(inF0) - 1123: 62 Load 66(inF1) - 1124: 62 Load 67(inF2) - 1125: 62 ExtInst 1(GLSL.std.450) 43(FClamp) 1122 1123 1124 - Store 1121(r008) 1125 - 1127: 62 Load 65(inF0) - 1128: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1127 - Store 1126(r009) 1128 + 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) 20(Cosh) 1130 - Store 1129(r010) 1131 + 1131: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1130 + Store 1129(r009) 1131 1133: 62 Load 65(inF0) - 1134: 62 DPdx 1133 - Store 1132(r011) 1134 + 1134: 62 ExtInst 1(GLSL.std.450) 20(Cosh) 1133 + Store 1132(r010) 1134 1136: 62 Load 65(inF0) - 1137: 62 DPdxCoarse 1136 - Store 1135(r012) 1137 + 1137: 62 DPdx 1136 + Store 1135(r011) 1137 1139: 62 Load 65(inF0) - 1140: 62 DPdxFine 1139 - Store 1138(r013) 1140 + 1140: 62 DPdxCoarse 1139 + Store 1138(r012) 1140 1142: 62 Load 65(inF0) - 1143: 62 DPdy 1142 - Store 1141(r014) 1143 + 1143: 62 DPdxFine 1142 + Store 1141(r013) 1143 1145: 62 Load 65(inF0) - 1146: 62 DPdyCoarse 1145 - Store 1144(r015) 1146 + 1146: 62 DPdy 1145 + Store 1144(r014) 1146 1148: 62 Load 65(inF0) - 1149: 62 DPdyFine 1148 - Store 1147(r016) 1149 + 1149: 62 DPdyCoarse 1148 + Store 1147(r015) 1149 1151: 62 Load 65(inF0) - 1152: 62 ExtInst 1(GLSL.std.450) 12(Degrees) 1151 - Store 1150(r017) 1152 + 1152: 62 DPdyFine 1151 + Store 1150(r016) 1152 1154: 62 Load 65(inF0) - 1155: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1154 - Store 1153(r018) 1155 + 1155: 62 ExtInst 1(GLSL.std.450) 12(Degrees) 1154 + Store 1153(r017) 1155 1157: 62 Load 65(inF0) - 1158: 62 ExtInst 1(GLSL.std.450) 27(Exp) 1157 - Store 1156(r019) 1158 + 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) 29(Exp2) 1160 - Store 1159(R020) 1161 + 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) 8(Floor) 1163 - Store 1162(r021) 1164 + 1164: 62 ExtInst 1(GLSL.std.450) 29(Exp2) 1163 + Store 1162(R020) 1164 1166: 62 Load 65(inF0) - 1167: 62 Load 66(inF1) - 1168: 26(fvec2) CompositeExtract 1166 0 - 1169: 26(fvec2) CompositeExtract 1167 0 - 1170: 26(fvec2) FMod 1168 1169 - 1171: 26(fvec2) CompositeExtract 1166 1 - 1172: 26(fvec2) CompositeExtract 1167 1 + 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: 62 CompositeConstruct 1170 1173 - Store 1165(r022) 1174 - 1176: 62 Load 65(inF0) - 1177: 62 ExtInst 1(GLSL.std.450) 10(Fract) 1176 - Store 1175(r023) 1177 + 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 Fwidth 1179 - Store 1178(r025) 1180 + 1180: 62 ExtInst 1(GLSL.std.450) 10(Fract) 1179 + Store 1178(r023) 1180 1182: 62 Load 65(inF0) - 1183: 62 Load 66(inF1) - 1184: 62 ExtInst 1(GLSL.std.450) 53(Ldexp) 1182 1183 - Store 1181(r026) 1184 - 1186: 62 Load 65(inF0) - 1187: 62 Load 66(inF1) - 1188: 62 Load 67(inF2) - 1189: 62 ExtInst 1(GLSL.std.450) 46(FMix) 1186 1187 1188 - Store 1185(r026a) 1189 - 1191: 62 Load 65(inF0) - 1192: 62 ExtInst 1(GLSL.std.450) 28(Log) 1191 - Store 1190(r027) 1192 + 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) 30(Log2) 1194 - 1196: 62 MatrixTimesScalar 1195 272 - Store 1193(r028) 1196 - 1198: 62 Load 65(inF0) - 1199: 62 ExtInst 1(GLSL.std.450) 30(Log2) 1198 - Store 1197(r029) 1199 + 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 Load 66(inF1) - 1203: 62 ExtInst 1(GLSL.std.450) 40(FMax) 1201 1202 - Store 1200(r030) 1203 - 1205: 62 Load 65(inF0) - 1206: 62 Load 66(inF1) - 1207: 62 ExtInst 1(GLSL.std.450) 37(FMin) 1205 1206 - Store 1204(r031) 1207 - 1209: 62 Load 65(inF0) - 1210: 62 Load 66(inF1) - 1211: 62 ExtInst 1(GLSL.std.450) 26(Pow) 1209 1210 - Store 1208(r032) 1211 - 1213: 62 Load 65(inF0) - 1214: 62 ExtInst 1(GLSL.std.450) 11(Radians) 1213 - Store 1212(r033) 1214 + 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) 2(RoundEven) 1216 - Store 1215(r034) 1217 + 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) 32(InverseSqrt) 1219 - Store 1218(r035) 1220 + 1220: 62 ExtInst 1(GLSL.std.450) 2(RoundEven) 1219 + Store 1218(r034) 1220 1222: 62 Load 65(inF0) - 1223: 26(fvec2) CompositeConstruct 141 141 - 1224: 26(fvec2) CompositeConstruct 293 293 - 1225: 62 ExtInst 1(GLSL.std.450) 43(FClamp) 1222 1223 1224 - Store 1221(r036) 1225 - 1227: 62 Load 65(inF0) - 1228: 62 ExtInst 1(GLSL.std.450) 6(FSign) 1227 - Store 1226(r037) 1228 + 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) 13(Sin) 1230 - Store 1229(r038) 1231 - 1232: 62 Load 65(inF0) - 1233: 62 ExtInst 1(GLSL.std.450) 13(Sin) 1232 - Store 66(inF1) 1233 - 1234: 62 Load 65(inF0) - 1235: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1234 - Store 67(inF2) 1235 + 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) 19(Sinh) 1237 - Store 1236(r039) 1238 + 1238: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1237 + Store 67(inF2) 1238 1240: 62 Load 65(inF0) - 1241: 62 Load 66(inF1) - 1242: 62 Load 67(inF2) - 1243: 62 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1240 1241 1242 - Store 1239(r049) 1243 - 1245: 62 Load 65(inF0) - 1246: 62 ExtInst 1(GLSL.std.450) 31(Sqrt) 1245 - Store 1244(r041) 1246 + 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 Load 66(inF1) - 1250: 62 ExtInst 1(GLSL.std.450) 48(Step) 1248 1249 - Store 1247(r042) 1250 - 1252: 62 Load 65(inF0) - 1253: 62 ExtInst 1(GLSL.std.450) 15(Tan) 1252 - Store 1251(r043) 1253 + 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) 21(Tanh) 1255 - Store 1254(r044) 1256 - 1257: 62 Load 65(inF0) - 1258: 62 Transpose 1257 + 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 ExtInst 1(GLSL.std.450) 3(Trunc) 1260 - Store 1259(r046) 1261 - ReturnValue 1263 + 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 - 1266(r000): 138(ptr) Variable Function - 1271(r001): 71(ptr) Variable Function - 1276(r003): 138(ptr) Variable Function - 1280(r004): 71(ptr) Variable Function - 1283(r005): 71(ptr) Variable Function - 1286(r006): 71(ptr) Variable Function - 1290(r007): 71(ptr) Variable Function - 1300(r008): 71(ptr) Variable Function - 1305(r009): 71(ptr) Variable Function - 1308(r010): 71(ptr) Variable Function - 1311(r011): 71(ptr) Variable Function - 1314(r012): 71(ptr) Variable Function - 1317(r013): 71(ptr) Variable Function - 1320(r014): 71(ptr) Variable Function - 1323(r015): 71(ptr) Variable Function - 1326(r016): 71(ptr) Variable Function - 1329(r017): 71(ptr) Variable Function - 1332(r018): 7(ptr) Variable Function - 1335(r019): 71(ptr) Variable Function - 1338(R020): 71(ptr) Variable Function - 1341(r021): 71(ptr) Variable Function - 1344(r022): 71(ptr) Variable Function - 1357(r023): 71(ptr) Variable Function - 1360(r025): 71(ptr) Variable Function - 1363(r026): 71(ptr) Variable Function - 1367(r026a): 71(ptr) Variable Function - 1372(r027): 71(ptr) Variable Function - 1375(r028): 71(ptr) Variable Function - 1379(r029): 71(ptr) Variable Function - 1382(r030): 71(ptr) Variable Function - 1386(r031): 71(ptr) Variable Function - 1390(r032): 71(ptr) Variable Function - 1394(r033): 71(ptr) Variable Function - 1397(r034): 71(ptr) Variable Function - 1400(r035): 71(ptr) Variable Function - 1403(r036): 71(ptr) Variable Function - 1408(r037): 71(ptr) Variable Function - 1411(r038): 71(ptr) Variable Function - 1418(r039): 71(ptr) Variable Function - 1421(r049): 71(ptr) Variable Function - 1426(r041): 71(ptr) Variable Function - 1429(r042): 71(ptr) Variable Function - 1433(r043): 71(ptr) Variable Function - 1436(r044): 71(ptr) Variable Function - 1441(r046): 71(ptr) Variable Function - 1267: 70 Load 73(inF0) - 1269: 1268 FOrdNotEqual 1267 141 - 1270: 137(bool) All 1269 - Store 1266(r000) 1270 - 1272: 70 Load 73(inF0) - 1273: 70 ExtInst 1(GLSL.std.450) 4(FAbs) 1272 - Store 1271(r001) 1273 - 1274: 70 Load 73(inF0) - 1275: 70 ExtInst 1(GLSL.std.450) 17(Acos) 1274 + 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: 1268 FOrdNotEqual 1277 141 - 1279: 137(bool) Any 1278 - Store 1276(r003) 1279 - 1281: 70 Load 73(inF0) - 1282: 70 ExtInst 1(GLSL.std.450) 16(Asin) 1281 - Store 1280(r004) 1282 + 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) 18(Atan) 1284 - Store 1283(r005) 1285 + 1285: 70 ExtInst 1(GLSL.std.450) 16(Asin) 1284 + Store 1283(r004) 1285 1287: 70 Load 73(inF0) - 1288: 70 Load 74(inF1) - 1289: 70 ExtInst 1(GLSL.std.450) 25(Atan2) 1287 1288 - Store 1286(r006) 1289 - 1291: 70 Load 73(inF0) - 1292: 70 ExtInst 1(GLSL.std.450) 9(Ceil) 1291 - Store 1290(r007) 1292 - 1293: 70 Load 73(inF0) - 1295: 1268 FOrdLessThan 1293 1294 - 1296: 137(bool) Any 1295 - SelectionMerge 1298 None - BranchConditional 1296 1297 1298 - 1297: Label + 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 - 1298: Label - 1301: 70 Load 73(inF0) - 1302: 70 Load 74(inF1) - 1303: 70 Load 75(inF2) - 1304: 70 ExtInst 1(GLSL.std.450) 43(FClamp) 1301 1302 1303 - Store 1300(r008) 1304 - 1306: 70 Load 73(inF0) - 1307: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1306 - Store 1305(r009) 1307 + 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) 20(Cosh) 1309 - Store 1308(r010) 1310 + 1310: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1309 + Store 1308(r009) 1310 1312: 70 Load 73(inF0) - 1313: 70 DPdx 1312 - Store 1311(r011) 1313 + 1313: 70 ExtInst 1(GLSL.std.450) 20(Cosh) 1312 + Store 1311(r010) 1313 1315: 70 Load 73(inF0) - 1316: 70 DPdxCoarse 1315 - Store 1314(r012) 1316 + 1316: 70 DPdx 1315 + Store 1314(r011) 1316 1318: 70 Load 73(inF0) - 1319: 70 DPdxFine 1318 - Store 1317(r013) 1319 + 1319: 70 DPdxCoarse 1318 + Store 1317(r012) 1319 1321: 70 Load 73(inF0) - 1322: 70 DPdy 1321 - Store 1320(r014) 1322 + 1322: 70 DPdxFine 1321 + Store 1320(r013) 1322 1324: 70 Load 73(inF0) - 1325: 70 DPdyCoarse 1324 - Store 1323(r015) 1325 + 1325: 70 DPdy 1324 + Store 1323(r014) 1325 1327: 70 Load 73(inF0) - 1328: 70 DPdyFine 1327 - Store 1326(r016) 1328 + 1328: 70 DPdyCoarse 1327 + Store 1326(r015) 1328 1330: 70 Load 73(inF0) - 1331: 70 ExtInst 1(GLSL.std.450) 12(Degrees) 1330 - Store 1329(r017) 1331 + 1331: 70 DPdyFine 1330 + Store 1329(r016) 1331 1333: 70 Load 73(inF0) - 1334: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1333 - Store 1332(r018) 1334 + 1334: 70 ExtInst 1(GLSL.std.450) 12(Degrees) 1333 + Store 1332(r017) 1334 1336: 70 Load 73(inF0) - 1337: 70 ExtInst 1(GLSL.std.450) 27(Exp) 1336 - Store 1335(r019) 1337 + 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) 29(Exp2) 1339 - Store 1338(R020) 1340 + 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) 8(Floor) 1342 - Store 1341(r021) 1343 + 1343: 70 ExtInst 1(GLSL.std.450) 29(Exp2) 1342 + Store 1341(R020) 1343 1345: 70 Load 73(inF0) - 1346: 70 Load 74(inF1) - 1347: 38(fvec3) CompositeExtract 1345 0 - 1348: 38(fvec3) CompositeExtract 1346 0 - 1349: 38(fvec3) FMod 1347 1348 - 1350: 38(fvec3) CompositeExtract 1345 1 - 1351: 38(fvec3) CompositeExtract 1346 1 + 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 1345 2 - 1354: 38(fvec3) CompositeExtract 1346 2 + 1353: 38(fvec3) CompositeExtract 1348 1 + 1354: 38(fvec3) CompositeExtract 1349 1 1355: 38(fvec3) FMod 1353 1354 - 1356: 70 CompositeConstruct 1349 1352 1355 - Store 1344(r022) 1356 - 1358: 70 Load 73(inF0) - 1359: 70 ExtInst 1(GLSL.std.450) 10(Fract) 1358 - Store 1357(r023) 1359 + 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 Fwidth 1361 - Store 1360(r025) 1362 + 1362: 70 ExtInst 1(GLSL.std.450) 10(Fract) 1361 + Store 1360(r023) 1362 1364: 70 Load 73(inF0) - 1365: 70 Load 74(inF1) - 1366: 70 ExtInst 1(GLSL.std.450) 53(Ldexp) 1364 1365 - Store 1363(r026) 1366 - 1368: 70 Load 73(inF0) - 1369: 70 Load 74(inF1) - 1370: 70 Load 75(inF2) - 1371: 70 ExtInst 1(GLSL.std.450) 46(FMix) 1368 1369 1370 - Store 1367(r026a) 1371 - 1373: 70 Load 73(inF0) - 1374: 70 ExtInst 1(GLSL.std.450) 28(Log) 1373 - Store 1372(r027) 1374 + 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) 30(Log2) 1376 - 1378: 70 MatrixTimesScalar 1377 272 - Store 1375(r028) 1378 - 1380: 70 Load 73(inF0) - 1381: 70 ExtInst 1(GLSL.std.450) 30(Log2) 1380 - Store 1379(r029) 1381 + 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 Load 74(inF1) - 1385: 70 ExtInst 1(GLSL.std.450) 40(FMax) 1383 1384 - Store 1382(r030) 1385 - 1387: 70 Load 73(inF0) - 1388: 70 Load 74(inF1) - 1389: 70 ExtInst 1(GLSL.std.450) 37(FMin) 1387 1388 - Store 1386(r031) 1389 - 1391: 70 Load 73(inF0) - 1392: 70 Load 74(inF1) - 1393: 70 ExtInst 1(GLSL.std.450) 26(Pow) 1391 1392 - Store 1390(r032) 1393 - 1395: 70 Load 73(inF0) - 1396: 70 ExtInst 1(GLSL.std.450) 11(Radians) 1395 - Store 1394(r033) 1396 + 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) 2(RoundEven) 1398 - Store 1397(r034) 1399 + 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) 32(InverseSqrt) 1401 - Store 1400(r035) 1402 + 1402: 70 ExtInst 1(GLSL.std.450) 2(RoundEven) 1401 + Store 1400(r034) 1402 1404: 70 Load 73(inF0) - 1405: 38(fvec3) CompositeConstruct 141 141 141 - 1406: 38(fvec3) CompositeConstruct 293 293 293 - 1407: 70 ExtInst 1(GLSL.std.450) 43(FClamp) 1404 1405 1406 - Store 1403(r036) 1407 - 1409: 70 Load 73(inF0) - 1410: 70 ExtInst 1(GLSL.std.450) 6(FSign) 1409 - Store 1408(r037) 1410 + 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) 13(Sin) 1412 - Store 1411(r038) 1413 - 1414: 70 Load 73(inF0) - 1415: 70 ExtInst 1(GLSL.std.450) 13(Sin) 1414 - Store 74(inF1) 1415 - 1416: 70 Load 73(inF0) - 1417: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1416 - Store 75(inF2) 1417 + 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) 19(Sinh) 1419 - Store 1418(r039) 1420 + 1420: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1419 + Store 75(inF2) 1420 1422: 70 Load 73(inF0) - 1423: 70 Load 74(inF1) - 1424: 70 Load 75(inF2) - 1425: 70 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1422 1423 1424 - Store 1421(r049) 1425 - 1427: 70 Load 73(inF0) - 1428: 70 ExtInst 1(GLSL.std.450) 31(Sqrt) 1427 - Store 1426(r041) 1428 + 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 Load 74(inF1) - 1432: 70 ExtInst 1(GLSL.std.450) 48(Step) 1430 1431 - Store 1429(r042) 1432 - 1434: 70 Load 73(inF0) - 1435: 70 ExtInst 1(GLSL.std.450) 15(Tan) 1434 - Store 1433(r043) 1435 + 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) 21(Tanh) 1437 - Store 1436(r044) 1438 - 1439: 70 Load 73(inF0) - 1440: 70 Transpose 1439 + 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 ExtInst 1(GLSL.std.450) 3(Trunc) 1442 - Store 1441(r046) 1443 - ReturnValue 1445 + 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 - 1448(r000): 138(ptr) Variable Function - 1453(r001): 79(ptr) Variable Function - 1458(r003): 138(ptr) Variable Function - 1462(r004): 79(ptr) Variable Function - 1465(r005): 79(ptr) Variable Function - 1468(r006): 79(ptr) Variable Function - 1472(r007): 79(ptr) Variable Function - 1482(r008): 79(ptr) Variable Function - 1487(r009): 79(ptr) Variable Function - 1490(r010): 79(ptr) Variable Function - 1493(r011): 79(ptr) Variable Function - 1496(r012): 79(ptr) Variable Function - 1499(r013): 79(ptr) Variable Function - 1502(r014): 79(ptr) Variable Function - 1505(r015): 79(ptr) Variable Function - 1508(r016): 79(ptr) Variable Function - 1511(r017): 79(ptr) Variable Function - 1514(r018): 7(ptr) Variable Function - 1517(r019): 79(ptr) Variable Function - 1520(R020): 79(ptr) Variable Function - 1523(r021): 79(ptr) Variable Function - 1526(r022): 79(ptr) Variable Function - 1542(r023): 79(ptr) Variable Function - 1545(r025): 79(ptr) Variable Function - 1548(r026): 79(ptr) Variable Function - 1552(r026a): 79(ptr) Variable Function - 1557(r027): 79(ptr) Variable Function - 1560(r028): 79(ptr) Variable Function - 1564(r029): 79(ptr) Variable Function - 1567(r030): 79(ptr) Variable Function - 1571(r031): 79(ptr) Variable Function - 1575(r032): 79(ptr) Variable Function - 1579(r033): 79(ptr) Variable Function - 1582(r034): 79(ptr) Variable Function - 1585(r035): 79(ptr) Variable Function - 1588(r036): 79(ptr) Variable Function - 1593(r037): 79(ptr) Variable Function - 1596(r038): 79(ptr) Variable Function - 1603(r039): 79(ptr) Variable Function - 1606(r049): 79(ptr) Variable Function - 1611(r041): 79(ptr) Variable Function - 1614(r042): 79(ptr) Variable Function - 1618(r043): 79(ptr) Variable Function - 1621(r044): 79(ptr) Variable Function - 1626(r046): 79(ptr) Variable Function - 1449: 78 Load 81(inF0) - 1451: 1450 FOrdNotEqual 1449 141 - 1452: 137(bool) All 1451 - Store 1448(r000) 1452 - 1454: 78 Load 81(inF0) - 1455: 78 ExtInst 1(GLSL.std.450) 4(FAbs) 1454 - Store 1453(r001) 1455 - 1456: 78 Load 81(inF0) - 1457: 78 ExtInst 1(GLSL.std.450) 17(Acos) 1456 + 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: 1450 FOrdNotEqual 1459 141 - 1461: 137(bool) Any 1460 - Store 1458(r003) 1461 - 1463: 78 Load 81(inF0) - 1464: 78 ExtInst 1(GLSL.std.450) 16(Asin) 1463 - Store 1462(r004) 1464 + 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) 18(Atan) 1466 - Store 1465(r005) 1467 + 1467: 78 ExtInst 1(GLSL.std.450) 16(Asin) 1466 + Store 1465(r004) 1467 1469: 78 Load 81(inF0) - 1470: 78 Load 82(inF1) - 1471: 78 ExtInst 1(GLSL.std.450) 25(Atan2) 1469 1470 - Store 1468(r006) 1471 - 1473: 78 Load 81(inF0) - 1474: 78 ExtInst 1(GLSL.std.450) 9(Ceil) 1473 - Store 1472(r007) 1474 - 1475: 78 Load 81(inF0) - 1477: 1450 FOrdLessThan 1475 1476 - 1478: 137(bool) Any 1477 - SelectionMerge 1480 None - BranchConditional 1478 1479 1480 - 1479: Label + 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 - 1480: Label - 1483: 78 Load 81(inF0) - 1484: 78 Load 82(inF1) - 1485: 78 Load 83(inF2) - 1486: 78 ExtInst 1(GLSL.std.450) 43(FClamp) 1483 1484 1485 - Store 1482(r008) 1486 - 1488: 78 Load 81(inF0) - 1489: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1488 - Store 1487(r009) 1489 + 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) 20(Cosh) 1491 - Store 1490(r010) 1492 + 1492: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1491 + Store 1490(r009) 1492 1494: 78 Load 81(inF0) - 1495: 78 DPdx 1494 - Store 1493(r011) 1495 + 1495: 78 ExtInst 1(GLSL.std.450) 20(Cosh) 1494 + Store 1493(r010) 1495 1497: 78 Load 81(inF0) - 1498: 78 DPdxCoarse 1497 - Store 1496(r012) 1498 + 1498: 78 DPdx 1497 + Store 1496(r011) 1498 1500: 78 Load 81(inF0) - 1501: 78 DPdxFine 1500 - Store 1499(r013) 1501 + 1501: 78 DPdxCoarse 1500 + Store 1499(r012) 1501 1503: 78 Load 81(inF0) - 1504: 78 DPdy 1503 - Store 1502(r014) 1504 + 1504: 78 DPdxFine 1503 + Store 1502(r013) 1504 1506: 78 Load 81(inF0) - 1507: 78 DPdyCoarse 1506 - Store 1505(r015) 1507 + 1507: 78 DPdy 1506 + Store 1505(r014) 1507 1509: 78 Load 81(inF0) - 1510: 78 DPdyFine 1509 - Store 1508(r016) 1510 + 1510: 78 DPdyCoarse 1509 + Store 1508(r015) 1510 1512: 78 Load 81(inF0) - 1513: 78 ExtInst 1(GLSL.std.450) 12(Degrees) 1512 - Store 1511(r017) 1513 + 1513: 78 DPdyFine 1512 + Store 1511(r016) 1513 1515: 78 Load 81(inF0) - 1516: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1515 - Store 1514(r018) 1516 + 1516: 78 ExtInst 1(GLSL.std.450) 12(Degrees) 1515 + Store 1514(r017) 1516 1518: 78 Load 81(inF0) - 1519: 78 ExtInst 1(GLSL.std.450) 27(Exp) 1518 - Store 1517(r019) 1519 + 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) 29(Exp2) 1521 - Store 1520(R020) 1522 + 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) 8(Floor) 1524 - Store 1523(r021) 1525 + 1525: 78 ExtInst 1(GLSL.std.450) 29(Exp2) 1524 + Store 1523(R020) 1525 1527: 78 Load 81(inF0) - 1528: 78 Load 82(inF1) - 1529: 50(fvec4) CompositeExtract 1527 0 - 1530: 50(fvec4) CompositeExtract 1528 0 - 1531: 50(fvec4) FMod 1529 1530 - 1532: 50(fvec4) CompositeExtract 1527 1 - 1533: 50(fvec4) CompositeExtract 1528 1 + 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 1527 2 - 1536: 50(fvec4) CompositeExtract 1528 2 + 1535: 50(fvec4) CompositeExtract 1530 1 + 1536: 50(fvec4) CompositeExtract 1531 1 1537: 50(fvec4) FMod 1535 1536 - 1538: 50(fvec4) CompositeExtract 1527 3 - 1539: 50(fvec4) CompositeExtract 1528 3 + 1538: 50(fvec4) CompositeExtract 1530 2 + 1539: 50(fvec4) CompositeExtract 1531 2 1540: 50(fvec4) FMod 1538 1539 - 1541: 78 CompositeConstruct 1531 1534 1537 1540 - Store 1526(r022) 1541 - 1543: 78 Load 81(inF0) - 1544: 78 ExtInst 1(GLSL.std.450) 10(Fract) 1543 - Store 1542(r023) 1544 + 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 Fwidth 1546 - Store 1545(r025) 1547 + 1547: 78 ExtInst 1(GLSL.std.450) 10(Fract) 1546 + Store 1545(r023) 1547 1549: 78 Load 81(inF0) - 1550: 78 Load 82(inF1) - 1551: 78 ExtInst 1(GLSL.std.450) 53(Ldexp) 1549 1550 - Store 1548(r026) 1551 - 1553: 78 Load 81(inF0) - 1554: 78 Load 82(inF1) - 1555: 78 Load 83(inF2) - 1556: 78 ExtInst 1(GLSL.std.450) 46(FMix) 1553 1554 1555 - Store 1552(r026a) 1556 - 1558: 78 Load 81(inF0) - 1559: 78 ExtInst 1(GLSL.std.450) 28(Log) 1558 - Store 1557(r027) 1559 + 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) 30(Log2) 1561 - 1563: 78 MatrixTimesScalar 1562 272 - Store 1560(r028) 1563 - 1565: 78 Load 81(inF0) - 1566: 78 ExtInst 1(GLSL.std.450) 30(Log2) 1565 - Store 1564(r029) 1566 + 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 Load 82(inF1) - 1570: 78 ExtInst 1(GLSL.std.450) 40(FMax) 1568 1569 - Store 1567(r030) 1570 - 1572: 78 Load 81(inF0) - 1573: 78 Load 82(inF1) - 1574: 78 ExtInst 1(GLSL.std.450) 37(FMin) 1572 1573 - Store 1571(r031) 1574 - 1576: 78 Load 81(inF0) - 1577: 78 Load 82(inF1) - 1578: 78 ExtInst 1(GLSL.std.450) 26(Pow) 1576 1577 - Store 1575(r032) 1578 - 1580: 78 Load 81(inF0) - 1581: 78 ExtInst 1(GLSL.std.450) 11(Radians) 1580 - Store 1579(r033) 1581 + 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) 2(RoundEven) 1583 - Store 1582(r034) 1584 + 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) 32(InverseSqrt) 1586 - Store 1585(r035) 1587 + 1587: 78 ExtInst 1(GLSL.std.450) 2(RoundEven) 1586 + Store 1585(r034) 1587 1589: 78 Load 81(inF0) - 1590: 50(fvec4) CompositeConstruct 141 141 141 141 - 1591: 50(fvec4) CompositeConstruct 293 293 293 293 - 1592: 78 ExtInst 1(GLSL.std.450) 43(FClamp) 1589 1590 1591 - Store 1588(r036) 1592 - 1594: 78 Load 81(inF0) - 1595: 78 ExtInst 1(GLSL.std.450) 6(FSign) 1594 - Store 1593(r037) 1595 + 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) 13(Sin) 1597 - Store 1596(r038) 1598 - 1599: 78 Load 81(inF0) - 1600: 78 ExtInst 1(GLSL.std.450) 13(Sin) 1599 - Store 82(inF1) 1600 - 1601: 78 Load 81(inF0) - 1602: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1601 - Store 83(inF2) 1602 + 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) 19(Sinh) 1604 - Store 1603(r039) 1605 + 1605: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1604 + Store 83(inF2) 1605 1607: 78 Load 81(inF0) - 1608: 78 Load 82(inF1) - 1609: 78 Load 83(inF2) - 1610: 78 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1607 1608 1609 - Store 1606(r049) 1610 - 1612: 78 Load 81(inF0) - 1613: 78 ExtInst 1(GLSL.std.450) 31(Sqrt) 1612 - Store 1611(r041) 1613 + 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 Load 82(inF1) - 1617: 78 ExtInst 1(GLSL.std.450) 48(Step) 1615 1616 - Store 1614(r042) 1617 - 1619: 78 Load 81(inF0) - 1620: 78 ExtInst 1(GLSL.std.450) 15(Tan) 1619 - Store 1618(r043) 1620 + 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) 21(Tanh) 1622 - Store 1621(r044) 1623 - 1624: 78 Load 81(inF0) - 1625: 78 Transpose 1624 + 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 ExtInst 1(GLSL.std.450) 3(Trunc) 1627 - Store 1626(r046) 1628 - ReturnValue 1630 + 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 @@ -8212,51 +8231,51 @@ Validation failed 91(inFM0): 63(ptr) FunctionParameter 92(inFM1): 63(ptr) FunctionParameter 94: Label - 1633(r0): 7(ptr) Variable Function - 1637(r1): 27(ptr) Variable Function - 1641(r2): 27(ptr) Variable Function - 1645(r3): 7(ptr) Variable Function - 1649(r4): 27(ptr) Variable Function - 1653(r5): 27(ptr) Variable Function - 1657(r6): 63(ptr) Variable Function - 1661(r7): 63(ptr) Variable Function - 1665(r8): 63(ptr) Variable Function - 1634: 6(float) Load 88(inF1) - 1635: 6(float) Load 87(inF0) - 1636: 6(float) FMul 1634 1635 - Store 1633(r0) 1636 + 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: 26(fvec2) Load 89(inFV0) - 1640: 26(fvec2) VectorTimesScalar 1639 1638 - Store 1637(r1) 1640 + 1639: 6(float) FMul 1637 1638 + Store 1636(r0) 1639 + 1641: 6(float) Load 87(inF0) 1642: 26(fvec2) Load 89(inFV0) - 1643: 6(float) Load 87(inF0) - 1644: 26(fvec2) VectorTimesScalar 1642 1643 - Store 1641(r2) 1644 - 1646: 26(fvec2) Load 89(inFV0) - 1647: 26(fvec2) Load 90(inFV1) - 1648: 6(float) Dot 1646 1647 - Store 1645(r3) 1648 - 1650: 26(fvec2) Load 89(inFV0) - 1651: 62 Load 91(inFM0) - 1652: 26(fvec2) VectorTimesMatrix 1650 1651 - Store 1649(r4) 1652 + 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) Load 89(inFV0) - 1656: 26(fvec2) MatrixTimesVector 1654 1655 - Store 1653(r5) 1656 - 1658: 6(float) Load 87(inF0) - 1659: 62 Load 91(inFM0) - 1660: 62 MatrixTimesScalar 1659 1658 - Store 1657(r6) 1660 + 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: 6(float) Load 87(inF0) - 1664: 62 MatrixTimesScalar 1662 1663 - Store 1661(r7) 1664 - 1666: 62 Load 92(inFM1) - 1667: 62 Load 91(inFM0) - 1668: 62 MatrixTimesMatrix 1666 1667 - Store 1665(r8) 1668 + 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 @@ -8267,51 +8286,51 @@ Validation failed 100(inFM0): 71(ptr) FunctionParameter 101(inFM1): 71(ptr) FunctionParameter 103: Label - 1669(r0): 7(ptr) Variable Function - 1673(r1): 39(ptr) Variable Function - 1677(r2): 39(ptr) Variable Function - 1681(r3): 7(ptr) Variable Function - 1685(r4): 39(ptr) Variable Function - 1689(r5): 39(ptr) Variable Function - 1693(r6): 71(ptr) Variable Function - 1697(r7): 71(ptr) Variable Function - 1701(r8): 71(ptr) Variable Function - 1670: 6(float) Load 97(inF1) - 1671: 6(float) Load 96(inF0) - 1672: 6(float) FMul 1670 1671 - Store 1669(r0) 1672 + 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: 38(fvec3) Load 98(inFV0) - 1676: 38(fvec3) VectorTimesScalar 1675 1674 - Store 1673(r1) 1676 + 1675: 6(float) FMul 1673 1674 + Store 1672(r0) 1675 + 1677: 6(float) Load 96(inF0) 1678: 38(fvec3) Load 98(inFV0) - 1679: 6(float) Load 96(inF0) - 1680: 38(fvec3) VectorTimesScalar 1678 1679 - Store 1677(r2) 1680 - 1682: 38(fvec3) Load 98(inFV0) - 1683: 38(fvec3) Load 99(inFV1) - 1684: 6(float) Dot 1682 1683 - Store 1681(r3) 1684 - 1686: 38(fvec3) Load 98(inFV0) - 1687: 70 Load 100(inFM0) - 1688: 38(fvec3) VectorTimesMatrix 1686 1687 - Store 1685(r4) 1688 + 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) Load 98(inFV0) - 1692: 38(fvec3) MatrixTimesVector 1690 1691 - Store 1689(r5) 1692 - 1694: 6(float) Load 96(inF0) - 1695: 70 Load 100(inFM0) - 1696: 70 MatrixTimesScalar 1695 1694 - Store 1693(r6) 1696 + 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: 6(float) Load 96(inF0) - 1700: 70 MatrixTimesScalar 1698 1699 - Store 1697(r7) 1700 - 1702: 70 Load 101(inFM1) - 1703: 70 Load 100(inFM0) - 1704: 70 MatrixTimesMatrix 1702 1703 - Store 1701(r8) 1704 + 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 @@ -8322,51 +8341,51 @@ Validation failed 109(inFM0): 79(ptr) FunctionParameter 110(inFM1): 79(ptr) FunctionParameter 112: Label - 1705(r0): 7(ptr) Variable Function - 1709(r1): 51(ptr) Variable Function - 1713(r2): 51(ptr) Variable Function - 1717(r3): 7(ptr) Variable Function - 1721(r4): 51(ptr) Variable Function - 1725(r5): 51(ptr) Variable Function - 1729(r6): 79(ptr) Variable Function - 1733(r7): 79(ptr) Variable Function - 1737(r8): 79(ptr) Variable Function - 1706: 6(float) Load 106(inF1) - 1707: 6(float) Load 105(inF0) - 1708: 6(float) FMul 1706 1707 - Store 1705(r0) 1708 + 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: 50(fvec4) Load 107(inFV0) - 1712: 50(fvec4) VectorTimesScalar 1711 1710 - Store 1709(r1) 1712 + 1711: 6(float) FMul 1709 1710 + Store 1708(r0) 1711 + 1713: 6(float) Load 105(inF0) 1714: 50(fvec4) Load 107(inFV0) - 1715: 6(float) Load 105(inF0) - 1716: 50(fvec4) VectorTimesScalar 1714 1715 - Store 1713(r2) 1716 - 1718: 50(fvec4) Load 107(inFV0) - 1719: 50(fvec4) Load 108(inFV1) - 1720: 6(float) Dot 1718 1719 - Store 1717(r3) 1720 - 1722: 50(fvec4) Load 107(inFV0) - 1723: 78 Load 109(inFM0) - 1724: 50(fvec4) VectorTimesMatrix 1722 1723 - Store 1721(r4) 1724 + 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) Load 107(inFV0) - 1728: 50(fvec4) MatrixTimesVector 1726 1727 - Store 1725(r5) 1728 - 1730: 6(float) Load 105(inF0) - 1731: 78 Load 109(inFM0) - 1732: 78 MatrixTimesScalar 1731 1730 - Store 1729(r6) 1732 + 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: 6(float) Load 105(inF0) - 1736: 78 MatrixTimesScalar 1734 1735 - Store 1733(r7) 1736 - 1738: 78 Load 110(inFM1) - 1739: 78 Load 109(inFM0) - 1740: 78 MatrixTimesMatrix 1738 1739 - Store 1737(r8) 1740 + 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 @@ -8380,98 +8399,98 @@ Validation failed 129(inFM3x4): 118(ptr) FunctionParameter 130(inFM2x4): 120(ptr) FunctionParameter 132: Label - 1741(r00): 7(ptr) Variable Function - 1745(r01): 27(ptr) Variable Function - 1749(r02): 39(ptr) Variable Function - 1753(r03): 27(ptr) Variable Function - 1757(r04): 39(ptr) Variable Function - 1761(r05): 7(ptr) Variable Function - 1765(r06): 7(ptr) Variable Function - 1769(r07): 39(ptr) Variable Function - 1773(r08): 27(ptr) Variable Function - 1777(r09): 27(ptr) Variable Function - 1781(r10): 39(ptr) Variable Function - 1785(r11): 114(ptr) Variable Function - 1789(r12): 116(ptr) Variable Function - 1793(r13): 63(ptr) Variable Function - 1797(r14): 114(ptr) Variable Function - 1801(r15): 120(ptr) Variable Function - 1805(r16): 118(ptr) Variable Function - 1742: 6(float) Load 123(inF1) - 1743: 6(float) Load 122(inF0) - 1744: 6(float) FMul 1742 1743 - Store 1741(r00) 1744 + 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: 26(fvec2) Load 124(inFV2) - 1748: 26(fvec2) VectorTimesScalar 1747 1746 - Store 1745(r01) 1748 - 1750: 6(float) Load 122(inF0) - 1751: 38(fvec3) Load 125(inFV3) - 1752: 38(fvec3) VectorTimesScalar 1751 1750 - Store 1749(r02) 1752 - 1754: 26(fvec2) Load 124(inFV2) - 1755: 6(float) Load 122(inF0) - 1756: 26(fvec2) VectorTimesScalar 1754 1755 - Store 1753(r03) 1756 - 1758: 38(fvec3) Load 125(inFV3) - 1759: 6(float) Load 122(inF0) - 1760: 38(fvec3) VectorTimesScalar 1758 1759 - Store 1757(r04) 1760 - 1762: 26(fvec2) Load 124(inFV2) - 1763: 26(fvec2) Load 124(inFV2) - 1764: 6(float) Dot 1762 1763 - Store 1761(r05) 1764 - 1766: 38(fvec3) Load 125(inFV3) - 1767: 38(fvec3) Load 125(inFV3) - 1768: 6(float) Dot 1766 1767 - Store 1765(r06) 1768 - 1770: 113 Load 126(inFM2x3) - 1771: 26(fvec2) Load 124(inFV2) - 1772: 38(fvec3) MatrixTimesVector 1770 1771 - Store 1769(r07) 1772 - 1774: 115 Load 127(inFM3x2) - 1775: 38(fvec3) Load 125(inFV3) - 1776: 26(fvec2) MatrixTimesVector 1774 1775 - Store 1773(r08) 1776 + 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: 113 Load 126(inFM2x3) - 1780: 26(fvec2) VectorTimesMatrix 1778 1779 - Store 1777(r09) 1780 - 1782: 26(fvec2) Load 124(inFV2) - 1783: 115 Load 127(inFM3x2) - 1784: 38(fvec3) VectorTimesMatrix 1782 1783 - Store 1781(r10) 1784 - 1786: 6(float) Load 122(inF0) - 1787: 113 Load 126(inFM2x3) - 1788: 113 MatrixTimesScalar 1787 1786 - Store 1785(r11) 1788 - 1790: 6(float) Load 122(inF0) - 1791: 115 Load 127(inFM3x2) - 1792: 115 MatrixTimesScalar 1791 1790 - Store 1789(r12) 1792 + 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: 113 Load 126(inFM2x3) - 1796: 62 MatrixTimesMatrix 1794 1795 - Store 1793(r13) 1796 - 1798: 70 Load 128(inFM3x3) - 1799: 113 Load 126(inFM2x3) - 1800: 113 MatrixTimesMatrix 1798 1799 - Store 1797(r14) 1800 - 1802: 117 Load 129(inFM3x4) - 1803: 113 Load 126(inFM2x3) - 1804: 119 MatrixTimesMatrix 1802 1803 - Store 1801(r15) 1804 - 1806: 119 Load 130(inFM2x4) - 1807: 115 Load 127(inFM3x2) - 1808: 117 MatrixTimesMatrix 1806 1807 - Store 1805(r16) 1808 + 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 - 1810(ps_output): 1809(ptr) Variable Function - 1812: 51(ptr) AccessChain 1810(ps_output) 187 - Store 1812 1811 - 1813:133(PS_OUTPUT) Load 1810(ps_output) - ReturnValue 1813 + 1813(ps_output): 1812(ptr) Variable Function + 1815: 51(ptr) AccessChain 1813(ps_output) 187 + Store 1815 1814 + 1816:133(PS_OUTPUT) Load 1813(ps_output) + ReturnValue 1816 FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index 8b1454b8..9a8cb292 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -118,7 +118,7 @@ gl_FragCoord origin is upper left 0:? 'm' (layout( location=2) in float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 48 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 97d67198..920038f2 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -180,7 +180,7 @@ local_size = (1, 1, 1) 0:? 'inI0' (layout( location=3) in 4-component vector of int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 99 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index c2711c65..3b1bac8d 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -308,7 +308,7 @@ Shader version: 500 0:? 'inI0' (layout( location=3) in 4-component vector of int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 155 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out index 84ea6f49..21716984 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out index 988432e8..41b1c68c 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -888,7 +888,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 322 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out index 9f8ecf27..143fa728 100644 --- a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out +++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 80 Capability Shader diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 460785e7..28e8e41d 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -2780,7 +2780,7 @@ Shader version: 500 Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 1225 Capability Shader diff --git a/Test/baseResults/hlsl.isfinite.frag.out b/Test/baseResults/hlsl.isfinite.frag.out index 7b8287fc..a68bd1b9 100644 --- a/Test/baseResults/hlsl.isfinite.frag.out +++ b/Test/baseResults/hlsl.isfinite.frag.out @@ -172,7 +172,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 85 Capability Shader diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 6a3eb04f..1e4f171d 100644 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -88,7 +88,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 44 Capability Shader diff --git a/Test/baseResults/hlsl.layoutOverride.vert.out b/Test/baseResults/hlsl.layoutOverride.vert.out index 31593aa9..cc09653b 100644 --- a/Test/baseResults/hlsl.layoutOverride.vert.out +++ b/Test/baseResults/hlsl.layoutOverride.vert.out @@ -52,7 +52,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 8d7f70f3..95977621 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -358,7 +358,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 130 Capability Shader diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index e5c0f6e1..f26d7dfb 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -388,7 +388,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 159 Capability Shader diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index b47e037c..895a1096 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -490,7 +490,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 179 Capability Shader diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 99f36673..99a57a74 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -452,7 +452,7 @@ Shader version: 500 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 171 Capability Shader diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 969a99f6..2255cf56 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -166,7 +166,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Shader diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out index d404b27e..08a1c564 100644 --- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -172,7 +172,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 75 Capability Shader diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 089329e0..ebf1bd3b 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -562,7 +562,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 201 Capability Shader diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 7df846be..297c7377 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -436,7 +436,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 174 Capability Shader diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out index 62009e17..7ad197c8 100644 --- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -110,7 +110,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 57 Capability Shader diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out index f05b335f..77344ac2 100644 --- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -208,7 +208,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 119 Capability Shader diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out index c6e00ffd..bf9ea2de 100644 --- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -244,7 +244,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 132 Capability Shader diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out index 5b23a625..1df39664 100644 --- a/Test/baseResults/hlsl.logical.binary.frag.out +++ b/Test/baseResults/hlsl.logical.binary.frag.out @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 56 Capability Shader diff --git a/Test/baseResults/hlsl.logical.binary.vec.frag.out b/Test/baseResults/hlsl.logical.binary.vec.frag.out index 0e4f852a..bc469dc5 100644 --- a/Test/baseResults/hlsl.logical.binary.vec.frag.out +++ b/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 115 Capability Shader diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out index b342c349..57247c60 100644 --- a/Test/baseResults/hlsl.logical.unary.frag.out +++ b/Test/baseResults/hlsl.logical.unary.frag.out @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader diff --git a/Test/baseResults/hlsl.logicalConvert.frag.out b/Test/baseResults/hlsl.logicalConvert.frag.out index 6c595f8e..4757f331 100644 --- a/Test/baseResults/hlsl.logicalConvert.frag.out +++ b/Test/baseResults/hlsl.logicalConvert.frag.out @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/hlsl.loopattr.frag.out b/Test/baseResults/hlsl.loopattr.frag.out index cc0073ac..c6130f71 100644 --- a/Test/baseResults/hlsl.loopattr.frag.out +++ b/Test/baseResults/hlsl.loopattr.frag.out @@ -136,7 +136,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/hlsl.matNx1.frag.out b/Test/baseResults/hlsl.matNx1.frag.out index e8e0a7b3..1d92d5f3 100644 --- a/Test/baseResults/hlsl.matNx1.frag.out +++ b/Test/baseResults/hlsl.matNx1.frag.out @@ -153,7 +153,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 77 Capability Shader diff --git a/Test/baseResults/hlsl.matType.bool.frag.out b/Test/baseResults/hlsl.matType.bool.frag.out index b5543d8f..1362ee75 100644 --- a/Test/baseResults/hlsl.matType.bool.frag.out +++ b/Test/baseResults/hlsl.matType.bool.frag.out @@ -233,7 +233,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 130 Capability Shader diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 80bb2167..ed089833 100644 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader diff --git a/Test/baseResults/hlsl.matType.int.frag.out b/Test/baseResults/hlsl.matType.int.frag.out index a1854aa2..ad0c3142 100644 --- a/Test/baseResults/hlsl.matType.int.frag.out +++ b/Test/baseResults/hlsl.matType.int.frag.out @@ -399,7 +399,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 232 Capability Shader diff --git a/Test/baseResults/hlsl.matpack-1.frag.out b/Test/baseResults/hlsl.matpack-1.frag.out index c0225875..829d0b11 100644 --- a/Test/baseResults/hlsl.matpack-1.frag.out +++ b/Test/baseResults/hlsl.matpack-1.frag.out @@ -100,7 +100,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/hlsl.matpack-pragma.frag.out b/Test/baseResults/hlsl.matpack-pragma.frag.out index 86e945ec..a5e351e1 100644 --- a/Test/baseResults/hlsl.matpack-pragma.frag.out +++ b/Test/baseResults/hlsl.matpack-pragma.frag.out @@ -170,7 +170,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 44 Capability Shader diff --git a/Test/baseResults/hlsl.matrixSwizzle.vert.out b/Test/baseResults/hlsl.matrixSwizzle.vert.out index 237ce5d4..7bc0c178 100644 --- a/Test/baseResults/hlsl.matrixSwizzle.vert.out +++ b/Test/baseResults/hlsl.matrixSwizzle.vert.out @@ -677,7 +677,7 @@ Shader version: 500 Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 118 Capability Shader diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 63ddc4df..1e5fbb96 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 83 Capability Shader diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index db215a2c..14cd8bf0 100644 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:? 'input2' (layout( location=1) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/hlsl.memberFunCall.frag.out b/Test/baseResults/hlsl.memberFunCall.frag.out index 01cb99ad..83dc86f5 100644 --- a/Test/baseResults/hlsl.memberFunCall.frag.out +++ b/Test/baseResults/hlsl.memberFunCall.frag.out @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 73 Capability Shader diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out index 4824bcbe..2ce899ba 100644 --- a/Test/baseResults/hlsl.mintypes.frag.out +++ b/Test/baseResults/hlsl.mintypes.frag.out @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/hlsl.mip.operator.frag.out b/Test/baseResults/hlsl.mip.operator.frag.out index 478e808f..4123d238 100644 --- a/Test/baseResults/hlsl.mip.operator.frag.out +++ b/Test/baseResults/hlsl.mip.operator.frag.out @@ -128,7 +128,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 61 Capability Shader diff --git a/Test/baseResults/hlsl.mul-truncate.frag.out b/Test/baseResults/hlsl.mul-truncate.frag.out index a7de28c7..c337ed4b 100644 --- a/Test/baseResults/hlsl.mul-truncate.frag.out +++ b/Test/baseResults/hlsl.mul-truncate.frag.out @@ -383,7 +383,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 190 Capability Shader diff --git a/Test/baseResults/hlsl.multiDescriptorSet.frag.out b/Test/baseResults/hlsl.multiDescriptorSet.frag.out index 8bd1ad85..fa480922 100644 --- a/Test/baseResults/hlsl.multiDescriptorSet.frag.out +++ b/Test/baseResults/hlsl.multiDescriptorSet.frag.out @@ -1,6 +1,6 @@ hlsl.multiDescriptorSet.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 92 Capability Shader diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index c051591c..d6415122 100644 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -70,7 +70,7 @@ Shader version: 500 0:? 'Index' ( in uint VertexIndex) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 41 Capability Shader diff --git a/Test/baseResults/hlsl.multiReturn.frag.out b/Test/baseResults/hlsl.multiReturn.frag.out index 6c41c77b..54b5107b 100644 --- a/Test/baseResults/hlsl.multiReturn.frag.out +++ b/Test/baseResults/hlsl.multiReturn.frag.out @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/hlsl.namespace.frag.out b/Test/baseResults/hlsl.namespace.frag.out index 8df43ad7..9431f66d 100644 --- a/Test/baseResults/hlsl.namespace.frag.out +++ b/Test/baseResults/hlsl.namespace.frag.out @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/hlsl.noSemantic.functionality1.comp.out b/Test/baseResults/hlsl.noSemantic.functionality1.comp.out index 3ede90e6..fc51e9c3 100644 --- a/Test/baseResults/hlsl.noSemantic.functionality1.comp.out +++ b/Test/baseResults/hlsl.noSemantic.functionality1.comp.out @@ -1,6 +1,6 @@ hlsl.noSemantic.functionality1.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader diff --git a/Test/baseResults/hlsl.nonint-index.frag.out b/Test/baseResults/hlsl.nonint-index.frag.out index 131c1ec0..0b6bdbcd 100644 --- a/Test/baseResults/hlsl.nonint-index.frag.out +++ b/Test/baseResults/hlsl.nonint-index.frag.out @@ -88,7 +88,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out b/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out index 1927a4cf..268e5637 100644 --- a/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out +++ b/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out @@ -268,7 +268,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 111 Capability Shader diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index b1fa856f..b4332667 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -192,7 +192,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/hlsl.numthreads.comp.out b/Test/baseResults/hlsl.numthreads.comp.out index fd7de34b..95cf29fd 100644 --- a/Test/baseResults/hlsl.numthreads.comp.out +++ b/Test/baseResults/hlsl.numthreads.comp.out @@ -44,7 +44,7 @@ local_size = (1, 4, 8) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 23 Capability Shader diff --git a/Test/baseResults/hlsl.opaque-type-bug.frag.out b/Test/baseResults/hlsl.opaque-type-bug.frag.out index 918b462f..4ac7a91f 100644 --- a/Test/baseResults/hlsl.opaque-type-bug.frag.out +++ b/Test/baseResults/hlsl.opaque-type-bug.frag.out @@ -58,7 +58,7 @@ gl_FragCoord origin is upper left 0:? 'MyTexture' (layout( binding=0) uniform texture2D) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 5960d3d5..d93c3053 100644 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -734,7 +734,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 520 Capability Shader diff --git a/Test/baseResults/hlsl.params.default.frag.out b/Test/baseResults/hlsl.params.default.frag.out index d1ecfa61..5d054bf2 100644 --- a/Test/baseResults/hlsl.params.default.frag.out +++ b/Test/baseResults/hlsl.params.default.frag.out @@ -376,7 +376,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 178 Capability Shader diff --git a/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/Test/baseResults/hlsl.partialFlattenLocal.vert.out index 46df2061..c3ed3a23 100644 --- a/Test/baseResults/hlsl.partialFlattenLocal.vert.out +++ b/Test/baseResults/hlsl.partialFlattenLocal.vert.out @@ -237,7 +237,7 @@ Shader version: 500 0:? 'pos' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 90 Capability Shader diff --git a/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/Test/baseResults/hlsl.partialFlattenMixed.vert.out index da832b4b..520a0fb2 100644 --- a/Test/baseResults/hlsl.partialFlattenMixed.vert.out +++ b/Test/baseResults/hlsl.partialFlattenMixed.vert.out @@ -91,7 +91,7 @@ Shader version: 500 0:? 'pos' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader diff --git a/Test/baseResults/hlsl.partialInit.frag.out b/Test/baseResults/hlsl.partialInit.frag.out index 6881671e..551c579e 100644 --- a/Test/baseResults/hlsl.partialInit.frag.out +++ b/Test/baseResults/hlsl.partialInit.frag.out @@ -400,7 +400,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 104 Capability Shader diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 2c06fe91..0416cf40 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -120,7 +120,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/hlsl.pp.line2.frag.out b/Test/baseResults/hlsl.pp.line2.frag.out index 10bbf6ad..338884a5 100644 --- a/Test/baseResults/hlsl.pp.line2.frag.out +++ b/Test/baseResults/hlsl.pp.line2.frag.out @@ -1,6 +1,6 @@ hlsl.pp.line2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 80 Capability Shader diff --git a/Test/baseResults/hlsl.pp.line3.frag.out b/Test/baseResults/hlsl.pp.line3.frag.out index 33e5d55a..e94547cc 100644 --- a/Test/baseResults/hlsl.pp.line3.frag.out +++ b/Test/baseResults/hlsl.pp.line3.frag.out @@ -1,6 +1,6 @@ hlsl.pp.line3.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 78 Capability Shader diff --git a/Test/baseResults/hlsl.pp.line4.frag.out b/Test/baseResults/hlsl.pp.line4.frag.out index ff92b520..1ddb98bc 100644 --- a/Test/baseResults/hlsl.pp.line4.frag.out +++ b/Test/baseResults/hlsl.pp.line4.frag.out @@ -1,6 +1,6 @@ hlsl.pp.line4.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 115 Capability Shader diff --git a/Test/baseResults/hlsl.pp.vert.out b/Test/baseResults/hlsl.pp.vert.out index 24ddfd1d..5d4e9434 100644 --- a/Test/baseResults/hlsl.pp.vert.out +++ b/Test/baseResults/hlsl.pp.vert.out @@ -26,7 +26,7 @@ Shader version: 500 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 13 Capability Shader diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index f4c53389..b51be0dd 100644 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -148,7 +148,7 @@ gl_FragCoord origin is upper left 0:? 'a4' (layout( location=3) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 9ce674d6..7dd21a62 100644 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:? 'a4' (layout( location=3) flat in int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 56 Capability Shader diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index dd450690..84b26481 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 37 Capability Shader diff --git a/Test/baseResults/hlsl.preprocessor.frag.out b/Test/baseResults/hlsl.preprocessor.frag.out index 3c36530e..11ec1ad2 100644 --- a/Test/baseResults/hlsl.preprocessor.frag.out +++ b/Test/baseResults/hlsl.preprocessor.frag.out @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/hlsl.promote.atomic.frag.out b/Test/baseResults/hlsl.promote.atomic.frag.out index bd781bdb..4d56fbab 100644 --- a/Test/baseResults/hlsl.promote.atomic.frag.out +++ b/Test/baseResults/hlsl.promote.atomic.frag.out @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 36 Capability Shader diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out index 624a5062..f63fc3eb 100644 --- a/Test/baseResults/hlsl.promote.binary.frag.out +++ b/Test/baseResults/hlsl.promote.binary.frag.out @@ -172,7 +172,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 83 Capability Shader diff --git a/Test/baseResults/hlsl.promote.vec1.frag.out b/Test/baseResults/hlsl.promote.vec1.frag.out index b92d7409..a6ad7ca9 100644 --- a/Test/baseResults/hlsl.promote.vec1.frag.out +++ b/Test/baseResults/hlsl.promote.vec1.frag.out @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index cb799831..0a17395f 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -1582,7 +1582,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 596 Capability Shader diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out index 02aa00ca..77b140b4 100644 --- a/Test/baseResults/hlsl.rw.atomics.frag.out +++ b/Test/baseResults/hlsl.rw.atomics.frag.out @@ -3946,7 +3946,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 1147 Capability Shader diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out index dc60a297..70f8bbe4 100644 --- a/Test/baseResults/hlsl.rw.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.bracket.frag.out @@ -1744,7 +1744,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 607 Capability Shader diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out index 01f6c89c..6004512b 100644 --- a/Test/baseResults/hlsl.rw.register.frag.out +++ b/Test/baseResults/hlsl.rw.register.frag.out @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out index aabee593..a8e33ddc 100644 --- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -1690,7 +1690,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 571 Capability Shader diff --git a/Test/baseResults/hlsl.rw.swizzle.frag.out b/Test/baseResults/hlsl.rw.swizzle.frag.out index 089c6037..267d7339 100644 --- a/Test/baseResults/hlsl.rw.swizzle.frag.out +++ b/Test/baseResults/hlsl.rw.swizzle.frag.out @@ -202,7 +202,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 63 Capability Shader diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out index a3b52379..06c24e75 100644 --- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -1708,7 +1708,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 605 Capability Shader diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 9066a1d7..2d005310 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -322,7 +322,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 146 Capability Shader diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 0940e101..17609029 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -550,7 +550,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 198 Capability Shader diff --git a/Test/baseResults/hlsl.sample.dx9.frag.out b/Test/baseResults/hlsl.sample.dx9.frag.out index 7b3432af..ce6d5464 100644 --- a/Test/baseResults/hlsl.sample.dx9.frag.out +++ b/Test/baseResults/hlsl.sample.dx9.frag.out @@ -378,7 +378,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 135 Capability Shader diff --git a/Test/baseResults/hlsl.sample.dx9.vert.out b/Test/baseResults/hlsl.sample.dx9.vert.out index 732b0439..2b29c0c4 100644 --- a/Test/baseResults/hlsl.sample.dx9.vert.out +++ b/Test/baseResults/hlsl.sample.dx9.vert.out @@ -154,7 +154,7 @@ Shader version: 500 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 64 Capability Shader diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 5eadb4a6..b641ad24 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -364,7 +364,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 161 Capability Shader diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index edc5d314..54dc4679 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -274,7 +274,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 118 Capability Shader diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out index cc44567a..8aa0e7fe 100644 --- a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Shader diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index c229502d..aec493db 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -358,7 +358,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 146 Capability Shader diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index c840fa4e..9a29c6d8 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -424,7 +424,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 170 Capability Shader diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index be4b4f82..fb78b6c0 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -401,7 +401,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 161 Capability Shader diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index ae33f407..8b7bd373 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -299,7 +299,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 118 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 54cbc047..8d0ff463 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -399,7 +399,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 209 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 90e11731..c44f16bf 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -381,7 +381,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 198 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/Test/baseResults/hlsl.samplecmp.dualmode.frag.out index 7bcf0852..fd5dd3e1 100644 --- a/Test/baseResults/hlsl.samplecmp.dualmode.frag.out +++ b/Test/baseResults/hlsl.samplecmp.dualmode.frag.out @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex' (layout( binding=3) uniform texture1D) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 29d02dab..ca0fb8ca 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -327,7 +327,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 167 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index bf7b6f02..3d0b8fd6 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -339,7 +339,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 178 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 5b21f702..ce13388e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -435,7 +435,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 210 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index fae6899e..4bf15ece 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -417,7 +417,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 199 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 0987ea83..b85daf03 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -351,7 +351,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 168 Capability Shader diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 74345146..6f460d0c 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -363,7 +363,7 @@ using depth_any Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 179 Capability Shader diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 67b5692d..b2922a1a 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -430,7 +430,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 140 Capability Shader diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 7edb8dad..161821ee 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -532,7 +532,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 175 Capability Shader diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 979d48f5..b683d98e 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -494,7 +494,7 @@ Shader version: 500 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 166 Capability Shader diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 2620a67c..81fbc0bd 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -472,7 +472,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 166 Capability Shader diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 87ad78be..01ca547f 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -340,7 +340,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 120 Capability Shader diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 4f079507..a5ff45a8 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -358,7 +358,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 147 Capability Shader diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index ee982cc2..6b91c173 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -426,7 +426,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 172 Capability Shader diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 0a8ae49a..8f395ed5 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -386,7 +386,7 @@ Shader version: 500 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 162 Capability Shader diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index b007ee10..10b48ecc 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -400,7 +400,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 162 Capability Shader diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 302bc81e..5fb25a00 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -298,7 +298,7 @@ using depth_any 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 119 Capability Shader diff --git a/Test/baseResults/hlsl.scalar-length.frag.out b/Test/baseResults/hlsl.scalar-length.frag.out index aa11af55..ec808973 100644 --- a/Test/baseResults/hlsl.scalar-length.frag.out +++ b/Test/baseResults/hlsl.scalar-length.frag.out @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader diff --git a/Test/baseResults/hlsl.scalar2matrix.frag.out b/Test/baseResults/hlsl.scalar2matrix.frag.out index 57d250eb..cb996f6a 100644 --- a/Test/baseResults/hlsl.scalar2matrix.frag.out +++ b/Test/baseResults/hlsl.scalar2matrix.frag.out @@ -374,7 +374,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 96 Capability Shader diff --git a/Test/baseResults/hlsl.scalarCast.vert.out b/Test/baseResults/hlsl.scalarCast.vert.out index 0e07c9f6..40f0f204 100644 --- a/Test/baseResults/hlsl.scalarCast.vert.out +++ b/Test/baseResults/hlsl.scalarCast.vert.out @@ -322,7 +322,7 @@ Shader version: 500 0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 120 Capability Shader diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index b563380e..882158e0 100644 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -102,7 +102,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 49 Capability Shader diff --git a/Test/baseResults/hlsl.self_cast.frag.out b/Test/baseResults/hlsl.self_cast.frag.out index 9d398ed9..6f0e1dd6 100644 --- a/Test/baseResults/hlsl.self_cast.frag.out +++ b/Test/baseResults/hlsl.self_cast.frag.out @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader diff --git a/Test/baseResults/hlsl.semantic-1.vert.out b/Test/baseResults/hlsl.semantic-1.vert.out index b5e40913..96c14a98 100644 --- a/Test/baseResults/hlsl.semantic-1.vert.out +++ b/Test/baseResults/hlsl.semantic-1.vert.out @@ -242,7 +242,7 @@ Shader version: 500 0:? 'v' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader diff --git a/Test/baseResults/hlsl.semantic.geom.out b/Test/baseResults/hlsl.semantic.geom.out index 773c8aa3..daf4eed2 100644 --- a/Test/baseResults/hlsl.semantic.geom.out +++ b/Test/baseResults/hlsl.semantic.geom.out @@ -157,7 +157,7 @@ output primitive = line_strip Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Geometry diff --git a/Test/baseResults/hlsl.semantic.vert.out b/Test/baseResults/hlsl.semantic.vert.out index 2dbcd57f..144df05e 100644 --- a/Test/baseResults/hlsl.semantic.vert.out +++ b/Test/baseResults/hlsl.semantic.vert.out @@ -210,7 +210,7 @@ Shader version: 500 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 94307a6a..b45f59de 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index d2838099..8da8d48a 100644 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -319,7 +319,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 127 Capability Shader diff --git a/Test/baseResults/hlsl.shapeConvRet.frag.out b/Test/baseResults/hlsl.shapeConvRet.frag.out index fc12f7f0..efcbe04d 100644 --- a/Test/baseResults/hlsl.shapeConvRet.frag.out +++ b/Test/baseResults/hlsl.shapeConvRet.frag.out @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:? 'f' (layout( location=0) in float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index b92085e4..3128cec7 100644 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -52,7 +52,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Shader diff --git a/Test/baseResults/hlsl.snorm.uav.comp.out b/Test/baseResults/hlsl.snorm.uav.comp.out index 4c5e6039..739d77d8 100644 --- a/Test/baseResults/hlsl.snorm.uav.comp.out +++ b/Test/baseResults/hlsl.snorm.uav.comp.out @@ -112,7 +112,7 @@ local_size = (16, 16, 1) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/hlsl.specConstant.frag.out b/Test/baseResults/hlsl.specConstant.frag.out index c2942e34..fdcc2a01 100755 --- a/Test/baseResults/hlsl.specConstant.frag.out +++ b/Test/baseResults/hlsl.specConstant.frag.out @@ -136,7 +136,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 61 Capability Shader diff --git a/Test/baseResults/hlsl.staticFuncInit.frag.out b/Test/baseResults/hlsl.staticFuncInit.frag.out index d468cec3..04924ed4 100644 --- a/Test/baseResults/hlsl.staticFuncInit.frag.out +++ b/Test/baseResults/hlsl.staticFuncInit.frag.out @@ -130,7 +130,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 57 Capability Shader diff --git a/Test/baseResults/hlsl.staticMemberFunction.frag.out b/Test/baseResults/hlsl.staticMemberFunction.frag.out index 2c7e4180..5ae189d7 100644 --- a/Test/baseResults/hlsl.staticMemberFunction.frag.out +++ b/Test/baseResults/hlsl.staticMemberFunction.frag.out @@ -118,7 +118,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out index 29a14c48..f5e004d2 100644 --- a/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out +++ b/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out @@ -96,7 +96,7 @@ local_size = (64, 1, 1) 0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/hlsl.string.frag.out b/Test/baseResults/hlsl.string.frag.out index 9181b933..6ee1945a 100644 --- a/Test/baseResults/hlsl.string.frag.out +++ b/Test/baseResults/hlsl.string.frag.out @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:? 'f' (layout( location=0) in float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 15263c58..1b6e0a8c 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 192041fa..a255b367 100644 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -213,7 +213,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 102 Capability Shader diff --git a/Test/baseResults/hlsl.struct.split-1.vert.out b/Test/baseResults/hlsl.struct.split-1.vert.out index d7d6e92b..8c25ca26 100644 --- a/Test/baseResults/hlsl.struct.split-1.vert.out +++ b/Test/baseResults/hlsl.struct.split-1.vert.out @@ -196,7 +196,7 @@ Shader version: 500 0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/hlsl.struct.split.array.geom.out b/Test/baseResults/hlsl.struct.split.array.geom.out index 081b05cb..c489ffb1 100644 --- a/Test/baseResults/hlsl.struct.split.array.geom.out +++ b/Test/baseResults/hlsl.struct.split.array.geom.out @@ -160,7 +160,7 @@ output primitive = triangle_strip 0:? 'OutputStream.VertexID' (layout( location=2) out uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 82 Capability Geometry diff --git a/Test/baseResults/hlsl.struct.split.assign.frag.out b/Test/baseResults/hlsl.struct.split.assign.frag.out index 24c88795..3209ab76 100644 --- a/Test/baseResults/hlsl.struct.split.assign.frag.out +++ b/Test/baseResults/hlsl.struct.split.assign.frag.out @@ -209,7 +209,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader diff --git a/Test/baseResults/hlsl.struct.split.call.vert.out b/Test/baseResults/hlsl.struct.split.call.vert.out index 50d1d2b1..7c65c065 100644 --- a/Test/baseResults/hlsl.struct.split.call.vert.out +++ b/Test/baseResults/hlsl.struct.split.call.vert.out @@ -214,7 +214,7 @@ Shader version: 500 0:? 'vsin.x1_in' (layout( location=2) in int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 77 Capability Shader diff --git a/Test/baseResults/hlsl.struct.split.nested.geom.out b/Test/baseResults/hlsl.struct.split.nested.geom.out index 7a72a3f8..75b5003d 100644 --- a/Test/baseResults/hlsl.struct.split.nested.geom.out +++ b/Test/baseResults/hlsl.struct.split.nested.geom.out @@ -448,7 +448,7 @@ output primitive = triangle_strip 0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 100 Capability Geometry diff --git a/Test/baseResults/hlsl.struct.split.trivial.geom.out b/Test/baseResults/hlsl.struct.split.trivial.geom.out index 477fbd20..ecb929e3 100644 --- a/Test/baseResults/hlsl.struct.split.trivial.geom.out +++ b/Test/baseResults/hlsl.struct.split.trivial.geom.out @@ -192,7 +192,7 @@ output primitive = triangle_strip 0:? 'ts.pos' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 67 Capability Geometry diff --git a/Test/baseResults/hlsl.struct.split.trivial.vert.out b/Test/baseResults/hlsl.struct.split.trivial.vert.out index 8bf477e6..f516ea09 100644 --- a/Test/baseResults/hlsl.struct.split.trivial.vert.out +++ b/Test/baseResults/hlsl.struct.split.trivial.vert.out @@ -98,7 +98,7 @@ Shader version: 500 0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 45 Capability Shader diff --git a/Test/baseResults/hlsl.structIoFourWay.frag.out b/Test/baseResults/hlsl.structIoFourWay.frag.out index 9938be8b..ae470376 100644 --- a/Test/baseResults/hlsl.structIoFourWay.frag.out +++ b/Test/baseResults/hlsl.structIoFourWay.frag.out @@ -162,7 +162,7 @@ using depth_greater 0:? 't.normal' (layout( location=3) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/hlsl.structStructName.frag.out b/Test/baseResults/hlsl.structStructName.frag.out index 183dcf63..6e767e48 100644 --- a/Test/baseResults/hlsl.structStructName.frag.out +++ b/Test/baseResults/hlsl.structStructName.frag.out @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/hlsl.structarray.flatten.frag.out b/Test/baseResults/hlsl.structarray.flatten.frag.out index 5d34aece..b654c32e 100644 --- a/Test/baseResults/hlsl.structarray.flatten.frag.out +++ b/Test/baseResults/hlsl.structarray.flatten.frag.out @@ -157,7 +157,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 80 Capability Shader diff --git a/Test/baseResults/hlsl.structarray.flatten.geom.out b/Test/baseResults/hlsl.structarray.flatten.geom.out index f88118d6..426214be 100644 --- a/Test/baseResults/hlsl.structarray.flatten.geom.out +++ b/Test/baseResults/hlsl.structarray.flatten.geom.out @@ -170,7 +170,7 @@ output primitive = triangle_strip 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 58 Capability Geometry diff --git a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out index 36050fb3..c61b1d85 100644 --- a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out +++ b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.append.frag.out b/Test/baseResults/hlsl.structbuffer.append.frag.out index 2e5c5641..e213b4b4 100644 --- a/Test/baseResults/hlsl.structbuffer.append.frag.out +++ b/Test/baseResults/hlsl.structbuffer.append.frag.out @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 56 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/Test/baseResults/hlsl.structbuffer.atomics.frag.out index e242cf6f..d038fbd8 100644 --- a/Test/baseResults/hlsl.structbuffer.atomics.frag.out +++ b/Test/baseResults/hlsl.structbuffer.atomics.frag.out @@ -475,7 +475,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 87 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.byte.frag.out b/Test/baseResults/hlsl.structbuffer.byte.frag.out index 26c7a060..e0f11319 100644 --- a/Test/baseResults/hlsl.structbuffer.byte.frag.out +++ b/Test/baseResults/hlsl.structbuffer.byte.frag.out @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 114 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/Test/baseResults/hlsl.structbuffer.coherent.frag.out index b33b44d2..34b029b8 100644 --- a/Test/baseResults/hlsl.structbuffer.coherent.frag.out +++ b/Test/baseResults/hlsl.structbuffer.coherent.frag.out @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 78 Capability Shader @@ -305,6 +305,5 @@ gl_FragCoord origin is upper left 66: 9(fvec4) CompositeConstruct 65 65 65 65 ReturnValue 66 45: Label - 68: 9(fvec4) Undef - ReturnValue 68 + Unreachable FunctionEnd diff --git a/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/Test/baseResults/hlsl.structbuffer.floatidx.comp.out index fbb07c29..e1c5466a 100644 --- a/Test/baseResults/hlsl.structbuffer.floatidx.comp.out +++ b/Test/baseResults/hlsl.structbuffer.floatidx.comp.out @@ -180,7 +180,7 @@ local_size = (1, 1, 1) 0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 85 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.fn.frag.out b/Test/baseResults/hlsl.structbuffer.fn.frag.out index 085d9dd0..1df58802 100644 --- a/Test/baseResults/hlsl.structbuffer.fn.frag.out +++ b/Test/baseResults/hlsl.structbuffer.fn.frag.out @@ -139,7 +139,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 78 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/Test/baseResults/hlsl.structbuffer.fn2.comp.out index 517b48c8..d25446b3 100644 --- a/Test/baseResults/hlsl.structbuffer.fn2.comp.out +++ b/Test/baseResults/hlsl.structbuffer.fn2.comp.out @@ -136,7 +136,7 @@ local_size = (256, 1, 1) 0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 63 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.frag.out b/Test/baseResults/hlsl.structbuffer.frag.out index 9a67fd76..38e915d9 100644 --- a/Test/baseResults/hlsl.structbuffer.frag.out +++ b/Test/baseResults/hlsl.structbuffer.frag.out @@ -188,7 +188,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 96 Capability Shader @@ -344,6 +344,5 @@ gl_FragCoord origin is upper left 84: 9(fvec4) CompositeConstruct 83 83 83 83 ReturnValue 84 53: Label - 86: 9(fvec4) Undef - ReturnValue 86 + Unreachable FunctionEnd diff --git a/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out b/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out index 5c73619f..57f387c3 100644 --- a/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out +++ b/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out @@ -1,6 +1,6 @@ hlsl.structbuffer.incdec.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/Test/baseResults/hlsl.structbuffer.incdec.frag.out index 452e9eeb..b9c16304 100644 --- a/Test/baseResults/hlsl.structbuffer.incdec.frag.out +++ b/Test/baseResults/hlsl.structbuffer.incdec.frag.out @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/hlsl.structbuffer.rw.frag.out b/Test/baseResults/hlsl.structbuffer.rw.frag.out index ceccd5bb..fbd48a27 100644 --- a/Test/baseResults/hlsl.structbuffer.rw.frag.out +++ b/Test/baseResults/hlsl.structbuffer.rw.frag.out @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 78 Capability Shader @@ -303,6 +303,5 @@ gl_FragCoord origin is upper left 66: 9(fvec4) CompositeConstruct 65 65 65 65 ReturnValue 66 45: Label - 68: 9(fvec4) Undef - ReturnValue 68 + Unreachable FunctionEnd diff --git a/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out index 00a055e0..a061eace 100644 --- a/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out +++ b/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out @@ -1004,7 +1004,7 @@ gl_FragCoord origin is upper left 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 239 Capability Shader diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index d7f539d0..ad9c0d42 100644 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -340,7 +340,7 @@ Shader version: 500 0:? 'e' (layout( location=5) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 94 Capability Shader diff --git a/Test/baseResults/hlsl.subpass.frag.out b/Test/baseResults/hlsl.subpass.frag.out index ad5a0132..8d480281 100644 --- a/Test/baseResults/hlsl.subpass.frag.out +++ b/Test/baseResults/hlsl.subpass.frag.out @@ -430,7 +430,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 204 Capability Shader diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index b72891ea..b94187d7 100644 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -296,7 +296,7 @@ gl_FragCoord origin is upper left 0:? 'd' (layout( location=2) flat in int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 106 Capability Shader diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index c734d509..87ccdc7b 100644 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:? 'AmbientColor' ( global 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader diff --git a/Test/baseResults/hlsl.synthesizeInput.frag.out b/Test/baseResults/hlsl.synthesizeInput.frag.out index bbe97434..31f7b7a0 100644 --- a/Test/baseResults/hlsl.synthesizeInput.frag.out +++ b/Test/baseResults/hlsl.synthesizeInput.frag.out @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:? 'input.no_interp' (layout( location=1) flat in uint) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 44 Capability Shader diff --git a/Test/baseResults/hlsl.target.frag.out b/Test/baseResults/hlsl.target.frag.out index 00017968..0ab23e8e 100644 --- a/Test/baseResults/hlsl.target.frag.out +++ b/Test/baseResults/hlsl.target.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:? 'out2' (layout( location=3) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/hlsl.targetStruct1.frag.out b/Test/baseResults/hlsl.targetStruct1.frag.out index 371ce2a1..93d787c1 100644 --- a/Test/baseResults/hlsl.targetStruct1.frag.out +++ b/Test/baseResults/hlsl.targetStruct1.frag.out @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:? 'po' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/hlsl.targetStruct2.frag.out b/Test/baseResults/hlsl.targetStruct2.frag.out index e6099c9e..0fae66fa 100644 --- a/Test/baseResults/hlsl.targetStruct2.frag.out +++ b/Test/baseResults/hlsl.targetStruct2.frag.out @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:? 'po' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 3fc5846a..1dcfc46f 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -508,7 +508,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 153 Capability Shader diff --git a/Test/baseResults/hlsl.texture.struct.frag.out b/Test/baseResults/hlsl.texture.struct.frag.out index 6fc54285..7835d322 100644 --- a/Test/baseResults/hlsl.texture.struct.frag.out +++ b/Test/baseResults/hlsl.texture.struct.frag.out @@ -839,7 +839,7 @@ gl_FragCoord origin is upper left Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 240 Capability Shader diff --git a/Test/baseResults/hlsl.texture.subvec4.frag.out b/Test/baseResults/hlsl.texture.subvec4.frag.out index 1beb027d..01f32da6 100644 --- a/Test/baseResults/hlsl.texture.subvec4.frag.out +++ b/Test/baseResults/hlsl.texture.subvec4.frag.out @@ -356,7 +356,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 130 Capability Shader diff --git a/Test/baseResults/hlsl.texturebuffer.frag.out b/Test/baseResults/hlsl.texturebuffer.frag.out index 0f761af0..1aa9dbc3 100644 --- a/Test/baseResults/hlsl.texturebuffer.frag.out +++ b/Test/baseResults/hlsl.texturebuffer.frag.out @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:? 'pos' ( in 4-component vector of float FragCoord) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/hlsl.this.frag.out b/Test/baseResults/hlsl.this.frag.out index ac5fde8b..f32f109e 100644 --- a/Test/baseResults/hlsl.this.frag.out +++ b/Test/baseResults/hlsl.this.frag.out @@ -240,7 +240,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 98 Capability Shader diff --git a/Test/baseResults/hlsl.tristream-append.geom.out b/Test/baseResults/hlsl.tristream-append.geom.out index 94344cdd..514ce168 100644 --- a/Test/baseResults/hlsl.tristream-append.geom.out +++ b/Test/baseResults/hlsl.tristream-append.geom.out @@ -107,7 +107,7 @@ output primitive = triangle_strip Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 57 Capability Geometry diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out index f5c82880..0e8fb5c3 100644 --- a/Test/baseResults/hlsl.tx.bracket.frag.out +++ b/Test/baseResults/hlsl.tx.bracket.frag.out @@ -422,7 +422,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 188 Capability Shader diff --git a/Test/baseResults/hlsl.tx.overload.frag.out b/Test/baseResults/hlsl.tx.overload.frag.out index 32779544..8556b9e6 100644 --- a/Test/baseResults/hlsl.tx.overload.frag.out +++ b/Test/baseResults/hlsl.tx.overload.frag.out @@ -134,7 +134,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 73 Capability Shader diff --git a/Test/baseResults/hlsl.type.half.frag.out b/Test/baseResults/hlsl.type.half.frag.out index 6b5a945b..719b1396 100644 --- a/Test/baseResults/hlsl.type.half.frag.out +++ b/Test/baseResults/hlsl.type.half.frag.out @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader diff --git a/Test/baseResults/hlsl.type.identifier.frag.out b/Test/baseResults/hlsl.type.identifier.frag.out index 2eaa2ae4..adec4a3f 100644 --- a/Test/baseResults/hlsl.type.identifier.frag.out +++ b/Test/baseResults/hlsl.type.identifier.frag.out @@ -266,7 +266,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 105 Capability Shader diff --git a/Test/baseResults/hlsl.type.type.conversion.valid.frag.out b/Test/baseResults/hlsl.type.type.conversion.valid.frag.out index fc672001..3e511ff4 100644 --- a/Test/baseResults/hlsl.type.type.conversion.valid.frag.out +++ b/Test/baseResults/hlsl.type.type.conversion.valid.frag.out @@ -1364,7 +1364,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 122 Capability Shader diff --git a/Test/baseResults/hlsl.typeGraphCopy.vert.out b/Test/baseResults/hlsl.typeGraphCopy.vert.out index 8509cc4b..1ca93bbe 100644 --- a/Test/baseResults/hlsl.typeGraphCopy.vert.out +++ b/Test/baseResults/hlsl.typeGraphCopy.vert.out @@ -62,7 +62,7 @@ Shader version: 500 0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 28 Capability Shader diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index 11fd1074..d4ab66e5 100644 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -79,7 +79,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index 30edd633..99de9d9e 100644 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/hlsl.wavebroadcast.comp.out b/Test/baseResults/hlsl.wavebroadcast.comp.out index f1c9679b..a9fc9b4c 100644 --- a/Test/baseResults/hlsl.wavebroadcast.comp.out +++ b/Test/baseResults/hlsl.wavebroadcast.comp.out @@ -2298,7 +2298,7 @@ local_size = (32, 16, 1) 0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 359 Capability Shader diff --git a/Test/baseResults/hlsl.waveprefix.comp.out b/Test/baseResults/hlsl.waveprefix.comp.out index a9a4b759..3fc84973 100644 --- a/Test/baseResults/hlsl.waveprefix.comp.out +++ b/Test/baseResults/hlsl.waveprefix.comp.out @@ -2322,7 +2322,7 @@ local_size = (32, 16, 1) 0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 369 Capability Shader diff --git a/Test/baseResults/hlsl.wavequad.comp.out b/Test/baseResults/hlsl.wavequad.comp.out index e7e10f19..e237e15a 100644 --- a/Test/baseResults/hlsl.wavequad.comp.out +++ b/Test/baseResults/hlsl.wavequad.comp.out @@ -8026,7 +8026,7 @@ local_size = (32, 16, 1) 0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 1120 Capability Shader diff --git a/Test/baseResults/hlsl.wavequery.comp.out b/Test/baseResults/hlsl.wavequery.comp.out index 67da71d6..09cba4d2 100644 --- a/Test/baseResults/hlsl.wavequery.comp.out +++ b/Test/baseResults/hlsl.wavequery.comp.out @@ -60,7 +60,7 @@ local_size = (32, 16, 1) 0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 28 Capability Shader diff --git a/Test/baseResults/hlsl.wavequery.frag.out b/Test/baseResults/hlsl.wavequery.frag.out index 52304a6c..8848a159 100644 --- a/Test/baseResults/hlsl.wavequery.frag.out +++ b/Test/baseResults/hlsl.wavequery.frag.out @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader @@ -118,6 +118,5 @@ gl_FragCoord origin is upper left 23: Label ReturnValue 24 16: Label - 26: 7(fvec4) Undef - ReturnValue 26 + Unreachable FunctionEnd diff --git a/Test/baseResults/hlsl.wavereduction.comp.out b/Test/baseResults/hlsl.wavereduction.comp.out index 3e0d3fb5..c31f7f5f 100644 --- a/Test/baseResults/hlsl.wavereduction.comp.out +++ b/Test/baseResults/hlsl.wavereduction.comp.out @@ -6186,7 +6186,7 @@ local_size = (32, 16, 1) 0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 901 Capability Shader diff --git a/Test/baseResults/hlsl.wavevote.comp.out b/Test/baseResults/hlsl.wavevote.comp.out index 7b671bf9..b5c095db 100644 --- a/Test/baseResults/hlsl.wavevote.comp.out +++ b/Test/baseResults/hlsl.wavevote.comp.out @@ -204,7 +204,7 @@ local_size = (32, 16, 1) 0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 75 Capability Shader diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index babc77df..a63d006e 100644 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -96,7 +96,7 @@ gl_FragCoord origin is upper left 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 52 Capability Shader diff --git a/Test/baseResults/hlsl.y-negate-1.vert.out b/Test/baseResults/hlsl.y-negate-1.vert.out index c086cc07..08413d22 100644 --- a/Test/baseResults/hlsl.y-negate-1.vert.out +++ b/Test/baseResults/hlsl.y-negate-1.vert.out @@ -72,7 +72,7 @@ Shader version: 500 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader diff --git a/Test/baseResults/hlsl.y-negate-2.vert.out b/Test/baseResults/hlsl.y-negate-2.vert.out index 4e6f189a..9e90d3b4 100644 --- a/Test/baseResults/hlsl.y-negate-2.vert.out +++ b/Test/baseResults/hlsl.y-negate-2.vert.out @@ -80,7 +80,7 @@ Shader version: 500 0:? 'position' ( out 4-component vector of float Position) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 37 Capability Shader diff --git a/Test/baseResults/hlsl.y-negate-3.vert.out b/Test/baseResults/hlsl.y-negate-3.vert.out index 63745519..29f63f12 100644 --- a/Test/baseResults/hlsl.y-negate-3.vert.out +++ b/Test/baseResults/hlsl.y-negate-3.vert.out @@ -126,7 +126,7 @@ Shader version: 500 0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/link1.vk.frag.out b/Test/baseResults/link1.vk.frag.out index 094a50d8..94debe14 100644 --- a/Test/baseResults/link1.vk.frag.out +++ b/Test/baseResults/link1.vk.frag.out @@ -197,7 +197,7 @@ gl_FragCoord origin is upper left 0:? 's2D' (layout( binding=1) uniform highp sampler2D) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/nonuniform.frag.out b/Test/baseResults/nonuniform.frag.out index 0df8cfc3..9054c2ca 100644 --- a/Test/baseResults/nonuniform.frag.out +++ b/Test/baseResults/nonuniform.frag.out @@ -40,6 +40,13 @@ ERROR: node is still EOpNull! 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) @@ -83,6 +90,13 @@ ERROR: node is still EOpNull! 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) diff --git a/Test/baseResults/remap.basic.dcefunc.frag.out b/Test/baseResults/remap.basic.dcefunc.frag.out index 33ec069d..e985def6 100644 --- a/Test/baseResults/remap.basic.dcefunc.frag.out +++ b/Test/baseResults/remap.basic.dcefunc.frag.out @@ -1,6 +1,6 @@ remap.basic.dcefunc.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/remap.basic.everything.frag.out b/Test/baseResults/remap.basic.everything.frag.out index 858d629e..0f7034a8 100644 --- a/Test/baseResults/remap.basic.everything.frag.out +++ b/Test/baseResults/remap.basic.everything.frag.out @@ -1,6 +1,6 @@ remap.basic.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24969 Capability Shader diff --git a/Test/baseResults/remap.basic.none.frag.out b/Test/baseResults/remap.basic.none.frag.out index 1ad1d74c..44790dd4 100644 --- a/Test/baseResults/remap.basic.none.frag.out +++ b/Test/baseResults/remap.basic.none.frag.out @@ -1,6 +1,6 @@ remap.basic.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/remap.basic.strip.frag.out b/Test/baseResults/remap.basic.strip.frag.out index 3d876d0d..05f16bad 100644 --- a/Test/baseResults/remap.basic.strip.frag.out +++ b/Test/baseResults/remap.basic.strip.frag.out @@ -1,6 +1,6 @@ remap.basic.strip.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 7f180a9f..b9ce55e4 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -2,7 +2,7 @@ remap.hlsl.sample.basic.everything.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24878 Capability Shader diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index 577a1350..71b7de01 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -2,7 +2,7 @@ remap.hlsl.sample.basic.none.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 198 Capability Shader diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index d7aea9f9..c65d237e 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -2,7 +2,7 @@ remap.hlsl.sample.basic.strip.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 198 Capability Shader diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out index aff0998c..ea390b50 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -1,6 +1,6 @@ remap.hlsl.templatetypes.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24954 Capability Shader diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out index 282fd2a2..32b4e7ba 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -1,6 +1,6 @@ remap.hlsl.templatetypes.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 160 Capability Shader diff --git a/Test/baseResults/remap.if.everything.frag.out b/Test/baseResults/remap.if.everything.frag.out index cdb007b3..26cc3dca 100644 --- a/Test/baseResults/remap.if.everything.frag.out +++ b/Test/baseResults/remap.if.everything.frag.out @@ -1,6 +1,6 @@ remap.if.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22855 Capability Shader diff --git a/Test/baseResults/remap.if.none.frag.out b/Test/baseResults/remap.if.none.frag.out index 0c8d2783..48e85874 100644 --- a/Test/baseResults/remap.if.none.frag.out +++ b/Test/baseResults/remap.if.none.frag.out @@ -1,6 +1,6 @@ remap.if.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 25 Capability Shader diff --git a/Test/baseResults/remap.similar_1a.everything.frag.out b/Test/baseResults/remap.similar_1a.everything.frag.out index 2f8f1c73..6d5ce1c0 100644 --- a/Test/baseResults/remap.similar_1a.everything.frag.out +++ b/Test/baseResults/remap.similar_1a.everything.frag.out @@ -1,6 +1,6 @@ remap.similar_1a.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24916 Capability Shader @@ -88,7 +88,7 @@ remap.similar_1a.everything.frag 22102: 649(ptr) Variable Function 24151: 12(int) Load 4408 13868: 9(bool) SGreaterThan 24151 2577 - SelectionMerge 22309 None + SelectionMerge 14966 None BranchConditional 13868 9492 17416 9492: Label 15624: 12(int) Load 4408 @@ -109,7 +109,6 @@ remap.similar_1a.everything.frag 10505: 12(int) IAdd 11462 21176 14626: 13(float) ConvertSToF 10505 ReturnValue 14626 - 22309: Label - 6429: 13(float) Undef - ReturnValue 6429 + 14966: Label + Unreachable FunctionEnd diff --git a/Test/baseResults/remap.similar_1a.none.frag.out b/Test/baseResults/remap.similar_1a.none.frag.out index 80d35c3f..457f1bef 100644 --- a/Test/baseResults/remap.similar_1a.none.frag.out +++ b/Test/baseResults/remap.similar_1a.none.frag.out @@ -1,6 +1,6 @@ remap.similar_1a.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 86 Capability Shader @@ -124,6 +124,5 @@ remap.similar_1a.none.frag 68: 8(float) ConvertSToF 67 ReturnValue 68 43: Label - 70: 8(float) Undef - ReturnValue 70 + Unreachable FunctionEnd diff --git a/Test/baseResults/remap.similar_1b.everything.frag.out b/Test/baseResults/remap.similar_1b.everything.frag.out index c76c4bfa..67425c67 100644 --- a/Test/baseResults/remap.similar_1b.everything.frag.out +++ b/Test/baseResults/remap.similar_1b.everything.frag.out @@ -1,6 +1,6 @@ remap.similar_1b.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24916 Capability Shader @@ -93,7 +93,7 @@ remap.similar_1b.everything.frag 22102: 649(ptr) Variable Function 24151: 12(int) Load 4408 13868: 9(bool) SGreaterThan 24151 2577 - SelectionMerge 22309 None + SelectionMerge 14966 None BranchConditional 13868 10822 17416 10822: Label 22680: 12(int) Load 4408 @@ -115,7 +115,6 @@ remap.similar_1b.everything.frag 10505: 12(int) IAdd 11462 21176 14626: 13(float) ConvertSToF 10505 ReturnValue 14626 - 22309: Label - 6429: 13(float) Undef - ReturnValue 6429 + 14966: Label + Unreachable FunctionEnd diff --git a/Test/baseResults/remap.similar_1b.none.frag.out b/Test/baseResults/remap.similar_1b.none.frag.out index 0a854d6e..fe021e02 100644 --- a/Test/baseResults/remap.similar_1b.none.frag.out +++ b/Test/baseResults/remap.similar_1b.none.frag.out @@ -1,6 +1,6 @@ remap.similar_1b.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 91 Capability Shader @@ -130,6 +130,5 @@ remap.similar_1b.none.frag 73: 8(float) ConvertSToF 72 ReturnValue 73 46: Label - 75: 8(float) Undef - ReturnValue 75 + Unreachable FunctionEnd diff --git a/Test/baseResults/remap.specconst.comp.out b/Test/baseResults/remap.specconst.comp.out index ee049f43..80d13b29 100644 --- a/Test/baseResults/remap.specconst.comp.out +++ b/Test/baseResults/remap.specconst.comp.out @@ -1,6 +1,6 @@ remap.specconst.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 16104 Capability Shader diff --git a/Test/baseResults/remap.switch.everything.frag.out b/Test/baseResults/remap.switch.everything.frag.out index ffd64d4f..2362f671 100644 --- a/Test/baseResults/remap.switch.everything.frag.out +++ b/Test/baseResults/remap.switch.everything.frag.out @@ -3,7 +3,7 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 23990 Capability Shader diff --git a/Test/baseResults/remap.switch.none.frag.out b/Test/baseResults/remap.switch.none.frag.out index 4dd78977..f8737b94 100644 --- a/Test/baseResults/remap.switch.none.frag.out +++ b/Test/baseResults/remap.switch.none.frag.out @@ -3,7 +3,7 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 48 Capability Shader diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out index c1f306e1..40429f24 100644 --- a/Test/baseResults/remap.uniformarray.everything.frag.out +++ b/Test/baseResults/remap.uniformarray.everything.frag.out @@ -1,6 +1,6 @@ remap.uniformarray.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 25030 Capability Shader diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out index 1087e5e7..42d55b97 100644 --- a/Test/baseResults/remap.uniformarray.none.frag.out +++ b/Test/baseResults/remap.uniformarray.none.frag.out @@ -1,6 +1,6 @@ remap.uniformarray.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader diff --git a/Test/baseResults/size b/Test/baseResults/size index 48487765..47364a58 100644 --- a/Test/baseResults/size +++ b/Test/baseResults/size @@ -1 +1 @@ -388096 ../build/install/bin/glslangValidator.exe +396288 ../build/install/bin/glslangValidator.exe diff --git a/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out b/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out index cffc3a4f..105bbdb8 100644 --- a/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out +++ b/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out @@ -1,6 +1,6 @@ spv.1.3.8bitstorage-ssbo.vert // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 28 Capability Shader diff --git a/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out b/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out index 7bdda4af..77c15658 100644 --- a/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out +++ b/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out @@ -1,6 +1,6 @@ spv.1.3.8bitstorage-ubo.vert // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/spv.1.3.coopmat.comp.out b/Test/baseResults/spv.1.3.coopmat.comp.out index c1838479..29d914ff 100644 --- a/Test/baseResults/spv.1.3.coopmat.comp.out +++ b/Test/baseResults/spv.1.3.coopmat.comp.out @@ -1,6 +1,6 @@ spv.1.3.coopmat.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 52 Capability Shader diff --git a/Test/baseResults/spv.1.4.LoopControl.frag.out b/Test/baseResults/spv.1.4.LoopControl.frag.out index c9a605b9..008ef470 100644 --- a/Test/baseResults/spv.1.4.LoopControl.frag.out +++ b/Test/baseResults/spv.1.4.LoopControl.frag.out @@ -3,7 +3,7 @@ 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): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader diff --git a/Test/baseResults/spv.1.4.NonWritable.frag.out b/Test/baseResults/spv.1.4.NonWritable.frag.out index 3f54661d..0207ed22 100755 --- a/Test/baseResults/spv.1.4.NonWritable.frag.out +++ b/Test/baseResults/spv.1.4.NonWritable.frag.out @@ -1,6 +1,6 @@ spv.1.4.NonWritable.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/spv.1.4.OpCopyLogical.comp.out b/Test/baseResults/spv.1.4.OpCopyLogical.comp.out index d80bfee7..53e672fa 100644 --- a/Test/baseResults/spv.1.4.OpCopyLogical.comp.out +++ b/Test/baseResults/spv.1.4.OpCopyLogical.comp.out @@ -1,6 +1,6 @@ spv.1.4.OpCopyLogical.comp // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out b/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out index 85bfdb26..d7509b15 100644 --- a/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out +++ b/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out @@ -1,6 +1,6 @@ spv.1.4.OpCopyLogical.funcall.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader diff --git a/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out b/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out index f2f85c10..2b60625f 100644 --- a/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out +++ b/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out @@ -1,6 +1,6 @@ spv.1.4.OpCopyLogicalBool.comp // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 135 Capability Shader diff --git a/Test/baseResults/spv.1.4.OpEntryPoint.frag.out b/Test/baseResults/spv.1.4.OpEntryPoint.frag.out index 694cff04..f06960c8 100644 --- a/Test/baseResults/spv.1.4.OpEntryPoint.frag.out +++ b/Test/baseResults/spv.1.4.OpEntryPoint.frag.out @@ -1,6 +1,6 @@ spv.1.4.OpEntryPoint.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 64 Capability Shader diff --git a/Test/baseResults/spv.1.4.OpSelect.frag.out b/Test/baseResults/spv.1.4.OpSelect.frag.out index 31797170..6ba00a4a 100755 --- a/Test/baseResults/spv.1.4.OpSelect.frag.out +++ b/Test/baseResults/spv.1.4.OpSelect.frag.out @@ -1,6 +1,6 @@ spv.1.4.OpSelect.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 98 Capability Shader diff --git a/Test/baseResults/spv.1.4.constructComposite.comp.out b/Test/baseResults/spv.1.4.constructComposite.comp.out index 5c0f5cfa..e5142869 100644 --- a/Test/baseResults/spv.1.4.constructComposite.comp.out +++ b/Test/baseResults/spv.1.4.constructComposite.comp.out @@ -1,6 +1,6 @@ spv.1.4.constructComposite.comp // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.1.4.image.frag.out b/Test/baseResults/spv.1.4.image.frag.out index 4adfd4bd..98ffdcbc 100755 --- a/Test/baseResults/spv.1.4.image.frag.out +++ b/Test/baseResults/spv.1.4.image.frag.out @@ -1,6 +1,6 @@ spv.1.4.image.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 104 Capability Shader diff --git a/Test/baseResults/spv.1.4.sparseTexture.frag.out b/Test/baseResults/spv.1.4.sparseTexture.frag.out index 292335ed..3b566c7c 100755 --- a/Test/baseResults/spv.1.4.sparseTexture.frag.out +++ b/Test/baseResults/spv.1.4.sparseTexture.frag.out @@ -1,6 +1,6 @@ spv.1.4.sparseTexture.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 213 Capability Shader diff --git a/Test/baseResults/spv.1.4.texture.frag.out b/Test/baseResults/spv.1.4.texture.frag.out index 7c2de0bb..da3a24f5 100755 --- a/Test/baseResults/spv.1.4.texture.frag.out +++ b/Test/baseResults/spv.1.4.texture.frag.out @@ -1,6 +1,6 @@ spv.1.4.texture.frag // Module Version 10400 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 79 Capability Shader diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out index 8f656ebb..d2b8f3e8 100644 --- a/Test/baseResults/spv.100ops.frag.out +++ b/Test/baseResults/spv.100ops.frag.out @@ -1,6 +1,6 @@ spv.100ops.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 49 Capability Shader diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out index 67e2b824..ca1f9e38 100644 --- a/Test/baseResults/spv.130.frag.out +++ b/Test/baseResults/spv.130.frag.out @@ -3,7 +3,7 @@ WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_ Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 205 Capability Shader diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out index abfd13a9..45b75106 100644 --- a/Test/baseResults/spv.140.frag.out +++ b/Test/baseResults/spv.140.frag.out @@ -1,7 +1,7 @@ spv.140.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 96 Capability Shader diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out index 19bd7253..ab058462 100644 --- a/Test/baseResults/spv.150.geom.out +++ b/Test/baseResults/spv.150.geom.out @@ -1,6 +1,6 @@ spv.150.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 71 Capability Geometry diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out index db058fa3..9e1c9f49 100644 --- a/Test/baseResults/spv.150.vert.out +++ b/Test/baseResults/spv.150.vert.out @@ -1,6 +1,6 @@ spv.150.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 63 Capability Shader diff --git a/Test/baseResults/spv.16bitstorage-int.frag.out b/Test/baseResults/spv.16bitstorage-int.frag.out index c1aacb8e..80733cec 100644 --- a/Test/baseResults/spv.16bitstorage-int.frag.out +++ b/Test/baseResults/spv.16bitstorage-int.frag.out @@ -1,6 +1,6 @@ spv.16bitstorage-int.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 171 Capability Shader diff --git a/Test/baseResults/spv.16bitstorage-uint.frag.out b/Test/baseResults/spv.16bitstorage-uint.frag.out index ba2e0c6e..d4b1b759 100644 --- a/Test/baseResults/spv.16bitstorage-uint.frag.out +++ b/Test/baseResults/spv.16bitstorage-uint.frag.out @@ -1,6 +1,6 @@ spv.16bitstorage-uint.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 173 Capability Shader diff --git a/Test/baseResults/spv.16bitstorage.frag.out b/Test/baseResults/spv.16bitstorage.frag.out index 5530cf46..c73eb599 100644 --- a/Test/baseResults/spv.16bitstorage.frag.out +++ b/Test/baseResults/spv.16bitstorage.frag.out @@ -1,6 +1,6 @@ spv.16bitstorage.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 173 Capability Shader diff --git a/Test/baseResults/spv.16bitxfb.vert.out b/Test/baseResults/spv.16bitxfb.vert.out index 7d989c57..96cff799 100644 --- a/Test/baseResults/spv.16bitxfb.vert.out +++ b/Test/baseResults/spv.16bitxfb.vert.out @@ -1,6 +1,6 @@ spv.16bitxfb.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 59 Capability Shader diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out index ee2c236e..2633645c 100644 --- a/Test/baseResults/spv.300BuiltIns.vert.out +++ b/Test/baseResults/spv.300BuiltIns.vert.out @@ -1,6 +1,6 @@ spv.300BuiltIns.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out index 10a6d00e..db069558 100644 --- a/Test/baseResults/spv.300layout.frag.out +++ b/Test/baseResults/spv.300layout.frag.out @@ -1,6 +1,6 @@ spv.300layout.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 37 Capability Shader diff --git a/Test/baseResults/spv.300layout.vert.out b/Test/baseResults/spv.300layout.vert.out index 4d4d7ea4..c97d217a 100644 --- a/Test/baseResults/spv.300layout.vert.out +++ b/Test/baseResults/spv.300layout.vert.out @@ -1,6 +1,6 @@ spv.300layout.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 163 Capability Shader diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out index e12041fc..2b1ef83e 100644 --- a/Test/baseResults/spv.300layoutp.vert.out +++ b/Test/baseResults/spv.300layoutp.vert.out @@ -1,6 +1,6 @@ spv.300layoutp.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 115 Capability Shader diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out index d7a244f8..e4f62b49 100644 --- a/Test/baseResults/spv.310.bitcast.frag.out +++ b/Test/baseResults/spv.310.bitcast.frag.out @@ -1,6 +1,6 @@ spv.310.bitcast.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 153 Capability Shader diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out index bb8e6a7b..3b90d419 100644 --- a/Test/baseResults/spv.310.comp.out +++ b/Test/baseResults/spv.310.comp.out @@ -1,6 +1,6 @@ spv.310.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Shader diff --git a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out index 20b6fa24..6881084a 100644 --- a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out +++ b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out @@ -1,6 +1,6 @@ spv.320.meshShaderUserDefined.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 140 Capability MeshShadingNV diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out index 1ccbfb6c..79e03b6f 100644 --- a/Test/baseResults/spv.330.geom.out +++ b/Test/baseResults/spv.330.geom.out @@ -1,6 +1,6 @@ spv.330.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 32 Capability Geometry diff --git a/Test/baseResults/spv.400.frag.nanclamp.out b/Test/baseResults/spv.400.frag.nanclamp.out index 5305ee4c..448aa5ef 100644 --- a/Test/baseResults/spv.400.frag.nanclamp.out +++ b/Test/baseResults/spv.400.frag.nanclamp.out @@ -1,6 +1,6 @@ spv.400.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 1118 Capability Shader diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out index 5433e4d3..b2f4a167 100644 --- a/Test/baseResults/spv.400.frag.out +++ b/Test/baseResults/spv.400.frag.out @@ -1,7 +1,7 @@ spv.400.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 1118 Capability Shader diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out index ce7c3afa..e84b420e 100644 --- a/Test/baseResults/spv.400.tesc.out +++ b/Test/baseResults/spv.400.tesc.out @@ -1,6 +1,6 @@ spv.400.tesc // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 92 Capability Tessellation diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out index 43b6a915..5705fbd3 100644 --- a/Test/baseResults/spv.400.tese.out +++ b/Test/baseResults/spv.400.tese.out @@ -1,6 +1,6 @@ spv.400.tese // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 96 Capability Tessellation diff --git a/Test/baseResults/spv.420.geom.out b/Test/baseResults/spv.420.geom.out index fa91dd81..c75ae5d6 100644 --- a/Test/baseResults/spv.420.geom.out +++ b/Test/baseResults/spv.420.geom.out @@ -1,6 +1,6 @@ spv.420.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Geometry diff --git a/Test/baseResults/spv.430.frag.out b/Test/baseResults/spv.430.frag.out index 330489f2..96ab1e96 100644 --- a/Test/baseResults/spv.430.frag.out +++ b/Test/baseResults/spv.430.frag.out @@ -1,6 +1,6 @@ spv.430.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index 1cd9e619..89e5b16e 100644 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -1,6 +1,6 @@ spv.430.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader diff --git a/Test/baseResults/spv.450.geom.out b/Test/baseResults/spv.450.geom.out index 7713e54e..1e7e8c50 100644 --- a/Test/baseResults/spv.450.geom.out +++ b/Test/baseResults/spv.450.geom.out @@ -1,6 +1,6 @@ spv.450.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Geometry diff --git a/Test/baseResults/spv.450.noRedecl.tesc.out b/Test/baseResults/spv.450.noRedecl.tesc.out index b23061da..31c7b4da 100644 --- a/Test/baseResults/spv.450.noRedecl.tesc.out +++ b/Test/baseResults/spv.450.noRedecl.tesc.out @@ -1,6 +1,6 @@ spv.450.noRedecl.tesc // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 21 Capability Tessellation diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out index 35653fde..0c22d9a7 100644 --- a/Test/baseResults/spv.450.tesc.out +++ b/Test/baseResults/spv.450.tesc.out @@ -1,6 +1,6 @@ spv.450.tesc // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 45 Capability Tessellation diff --git a/Test/baseResults/spv.460.comp.out b/Test/baseResults/spv.460.comp.out index 6ebf49fa..09256746 100644 --- a/Test/baseResults/spv.460.comp.out +++ b/Test/baseResults/spv.460.comp.out @@ -1,6 +1,6 @@ spv.460.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 15 Capability Shader diff --git a/Test/baseResults/spv.460.frag.out b/Test/baseResults/spv.460.frag.out index 04393fbe..067bd43c 100644 --- a/Test/baseResults/spv.460.frag.out +++ b/Test/baseResults/spv.460.frag.out @@ -1,6 +1,6 @@ spv.460.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader diff --git a/Test/baseResults/spv.460.vert.out b/Test/baseResults/spv.460.vert.out index c2ef3024..a73b7e1d 100644 --- a/Test/baseResults/spv.460.vert.out +++ b/Test/baseResults/spv.460.vert.out @@ -1,6 +1,6 @@ spv.460.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/spv.8bit-16bit-construction.frag.out b/Test/baseResults/spv.8bit-16bit-construction.frag.out new file mode 100644 index 00000000..6cb9dc16 --- /dev/null +++ b/Test/baseResults/spv.8bit-16bit-construction.frag.out @@ -0,0 +1,82 @@ +spv.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 diff --git a/Test/baseResults/spv.8bitstorage-int.frag.out b/Test/baseResults/spv.8bitstorage-int.frag.out index 47e854f2..54a47afa 100644 --- a/Test/baseResults/spv.8bitstorage-int.frag.out +++ b/Test/baseResults/spv.8bitstorage-int.frag.out @@ -1,6 +1,6 @@ spv.8bitstorage-int.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 171 Capability Shader diff --git a/Test/baseResults/spv.8bitstorage-ssbo.vert.out b/Test/baseResults/spv.8bitstorage-ssbo.vert.out index d0379fa5..274639b1 100644 --- a/Test/baseResults/spv.8bitstorage-ssbo.vert.out +++ b/Test/baseResults/spv.8bitstorage-ssbo.vert.out @@ -1,6 +1,6 @@ spv.8bitstorage-ssbo.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 28 Capability Shader diff --git a/Test/baseResults/spv.8bitstorage-ubo.vert.out b/Test/baseResults/spv.8bitstorage-ubo.vert.out index c5ec89d4..af95a763 100644 --- a/Test/baseResults/spv.8bitstorage-ubo.vert.out +++ b/Test/baseResults/spv.8bitstorage-ubo.vert.out @@ -1,6 +1,6 @@ spv.8bitstorage-ubo.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/spv.8bitstorage-uint.frag.out b/Test/baseResults/spv.8bitstorage-uint.frag.out index a66c6a3b..65658825 100644 --- a/Test/baseResults/spv.8bitstorage-uint.frag.out +++ b/Test/baseResults/spv.8bitstorage-uint.frag.out @@ -1,6 +1,6 @@ spv.8bitstorage-uint.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 173 Capability Shader diff --git a/Test/baseResults/spv.AnyHitShader.rahit.out b/Test/baseResults/spv.AnyHitShader.rahit.out index 92b31d08..d044b973 100644 --- a/Test/baseResults/spv.AnyHitShader.rahit.out +++ b/Test/baseResults/spv.AnyHitShader.rahit.out @@ -1,6 +1,6 @@ spv.AnyHitShader.rahit // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 81 Capability RayTracingNV diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out index 7433f177..c9f8b469 100644 --- a/Test/baseResults/spv.AofA.frag.out +++ b/Test/baseResults/spv.AofA.frag.out @@ -3,7 +3,7 @@ WARNING: 0:6: '[][]' : Generating SPIR-V array-of-arrays, but Vulkan only suppor Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 104 Capability Shader diff --git a/Test/baseResults/spv.ClosestHitShader.rchit.out b/Test/baseResults/spv.ClosestHitShader.rchit.out index b461462e..482008dc 100644 --- a/Test/baseResults/spv.ClosestHitShader.rchit.out +++ b/Test/baseResults/spv.ClosestHitShader.rchit.out @@ -1,6 +1,6 @@ spv.ClosestHitShader.rchit // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 88 Capability RayTracingNV diff --git a/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/Test/baseResults/spv.GeometryShaderPassthrough.geom.out index 5db845e5..7e62c575 100644 --- a/Test/baseResults/spv.GeometryShaderPassthrough.geom.out +++ b/Test/baseResults/spv.GeometryShaderPassthrough.geom.out @@ -1,6 +1,6 @@ spv.GeometryShaderPassthrough.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 15 Capability Geometry diff --git a/Test/baseResults/spv.IntersectShader.rint.out b/Test/baseResults/spv.IntersectShader.rint.out index cbb70cd6..4fe4edf0 100644 --- a/Test/baseResults/spv.IntersectShader.rint.out +++ b/Test/baseResults/spv.IntersectShader.rint.out @@ -1,6 +1,6 @@ spv.IntersectShader.rint // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 71 Capability RayTracingNV diff --git a/Test/baseResults/spv.MissShader.rmiss.out b/Test/baseResults/spv.MissShader.rmiss.out index 0ad3341a..37fd3bda 100644 --- a/Test/baseResults/spv.MissShader.rmiss.out +++ b/Test/baseResults/spv.MissShader.rmiss.out @@ -1,6 +1,6 @@ spv.MissShader.rmiss // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability RayTracingNV diff --git a/Test/baseResults/spv.OVR_multiview.vert.out b/Test/baseResults/spv.OVR_multiview.vert.out index 7013cedd..66168dce 100644 --- a/Test/baseResults/spv.OVR_multiview.vert.out +++ b/Test/baseResults/spv.OVR_multiview.vert.out @@ -1,6 +1,6 @@ spv.OVR_multiview.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out index 4113ddf1..22aeecd9 100644 --- a/Test/baseResults/spv.Operations.frag.out +++ b/Test/baseResults/spv.Operations.frag.out @@ -1,6 +1,6 @@ spv.Operations.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 532 Capability Shader diff --git a/Test/baseResults/spv.RayCallable.rcall.out b/Test/baseResults/spv.RayCallable.rcall.out index e399e634..31df5d1b 100644 --- a/Test/baseResults/spv.RayCallable.rcall.out +++ b/Test/baseResults/spv.RayCallable.rcall.out @@ -1,6 +1,6 @@ spv.RayCallable.rcall // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability RayTracingNV diff --git a/Test/baseResults/spv.RayConstants.rgen.out b/Test/baseResults/spv.RayConstants.rgen.out index d939acfb..033e5455 100644 --- a/Test/baseResults/spv.RayConstants.rgen.out +++ b/Test/baseResults/spv.RayConstants.rgen.out @@ -1,6 +1,6 @@ spv.RayConstants.rgen // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability RayTracingNV diff --git a/Test/baseResults/spv.RayGenShader.rgen.out b/Test/baseResults/spv.RayGenShader.rgen.out index 91f37e5c..59eabd0d 100644 --- a/Test/baseResults/spv.RayGenShader.rgen.out +++ b/Test/baseResults/spv.RayGenShader.rgen.out @@ -1,6 +1,6 @@ spv.RayGenShader.rgen // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 54 Capability RayTracingNV diff --git a/Test/baseResults/spv.RayGenShader11.rgen.out b/Test/baseResults/spv.RayGenShader11.rgen.out index 8f2c52b0..2d49b0fc 100755 --- a/Test/baseResults/spv.RayGenShader11.rgen.out +++ b/Test/baseResults/spv.RayGenShader11.rgen.out @@ -1,6 +1,6 @@ spv.RayGenShader11.rgen // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability RayTracingNV diff --git a/Test/baseResults/spv.RayGenShaderArray.rgen.out b/Test/baseResults/spv.RayGenShaderArray.rgen.out index 74307569..e9143049 100644 --- a/Test/baseResults/spv.RayGenShaderArray.rgen.out +++ b/Test/baseResults/spv.RayGenShaderArray.rgen.out @@ -1,6 +1,6 @@ spv.RayGenShaderArray.rgen // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 89 Capability ShaderNonUniformEXT diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out index bf878292..c5c71a5c 100644 --- a/Test/baseResults/spv.accessChain.frag.out +++ b/Test/baseResults/spv.accessChain.frag.out @@ -1,6 +1,6 @@ spv.accessChain.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 222 Capability Shader diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out index f388e8ea..976c747a 100644 --- a/Test/baseResults/spv.aggOps.frag.out +++ b/Test/baseResults/spv.aggOps.frag.out @@ -3,7 +3,7 @@ WARNING: 0:4: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 215 Capability Shader diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out index 8074cf82..fb4529e6 100644 --- a/Test/baseResults/spv.always-discard.frag.out +++ b/Test/baseResults/spv.always-discard.frag.out @@ -1,6 +1,6 @@ spv.always-discard.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out index e3fa43a3..2d8f66ef 100644 --- a/Test/baseResults/spv.always-discard2.frag.out +++ b/Test/baseResults/spv.always-discard2.frag.out @@ -1,6 +1,6 @@ spv.always-discard2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/spv.arbPostDepthCoverage.frag.out b/Test/baseResults/spv.arbPostDepthCoverage.frag.out index f41c0121..d62c6775 100644 --- a/Test/baseResults/spv.arbPostDepthCoverage.frag.out +++ b/Test/baseResults/spv.arbPostDepthCoverage.frag.out @@ -1,6 +1,6 @@ spv.arbPostDepthCoverage.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out index 3dd88f39..08bd8302 100644 --- a/Test/baseResults/spv.atomic.comp.out +++ b/Test/baseResults/spv.atomic.comp.out @@ -1,6 +1,6 @@ spv.atomic.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 74 Capability Shader diff --git a/Test/baseResults/spv.atomicInt64.comp.out b/Test/baseResults/spv.atomicInt64.comp.out index 9c66aecc..5ac910e3 100644 --- a/Test/baseResults/spv.atomicInt64.comp.out +++ b/Test/baseResults/spv.atomicInt64.comp.out @@ -1,6 +1,6 @@ spv.atomicInt64.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 149 Capability Shader diff --git a/Test/baseResults/spv.barrier.vert.out b/Test/baseResults/spv.barrier.vert.out index b9369f27..ffc2eaac 100644 --- a/Test/baseResults/spv.barrier.vert.out +++ b/Test/baseResults/spv.barrier.vert.out @@ -1,6 +1,6 @@ spv.barrier.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out index a687b8da..f590ec7d 100644 --- a/Test/baseResults/spv.bitCast.frag.out +++ b/Test/baseResults/spv.bitCast.frag.out @@ -1,6 +1,6 @@ spv.bitCast.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 172 Capability Shader diff --git a/Test/baseResults/spv.bool.vert.out b/Test/baseResults/spv.bool.vert.out index 31eb54cf..3e5a1905 100644 --- a/Test/baseResults/spv.bool.vert.out +++ b/Test/baseResults/spv.bool.vert.out @@ -1,6 +1,6 @@ spv.bool.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 46 Capability Shader diff --git a/Test/baseResults/spv.boolInBlock.frag.out b/Test/baseResults/spv.boolInBlock.frag.out index e86ca6b3..b0a4023a 100644 --- a/Test/baseResults/spv.boolInBlock.frag.out +++ b/Test/baseResults/spv.boolInBlock.frag.out @@ -1,6 +1,6 @@ spv.boolInBlock.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 102 Capability Shader diff --git a/Test/baseResults/spv.branch-return.vert.out b/Test/baseResults/spv.branch-return.vert.out index ca447245..3aacca7e 100644 --- a/Test/baseResults/spv.branch-return.vert.out +++ b/Test/baseResults/spv.branch-return.vert.out @@ -1,6 +1,6 @@ spv.branch-return.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out index 507318f7..e526adaf 100644 --- a/Test/baseResults/spv.buffer.autoassign.frag.out +++ b/Test/baseResults/spv.buffer.autoassign.frag.out @@ -1,6 +1,6 @@ spv.buffer.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle1.frag.out b/Test/baseResults/spv.bufferhandle1.frag.out index 6e50c705..9d181882 100644 --- a/Test/baseResults/spv.bufferhandle1.frag.out +++ b/Test/baseResults/spv.bufferhandle1.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle1.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 52 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle10.frag.out b/Test/baseResults/spv.bufferhandle10.frag.out index a95dc719..5064c7e7 100644 --- a/Test/baseResults/spv.bufferhandle10.frag.out +++ b/Test/baseResults/spv.bufferhandle10.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle10.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle11.frag.out b/Test/baseResults/spv.bufferhandle11.frag.out index 3469715b..783577c9 100644 --- a/Test/baseResults/spv.bufferhandle11.frag.out +++ b/Test/baseResults/spv.bufferhandle11.frag.out @@ -3,7 +3,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 61 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle12.frag.out b/Test/baseResults/spv.bufferhandle12.frag.out index 6c20f02c..9f0f4fb7 100644 --- a/Test/baseResults/spv.bufferhandle12.frag.out +++ b/Test/baseResults/spv.bufferhandle12.frag.out @@ -3,7 +3,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 183 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle13.frag.out b/Test/baseResults/spv.bufferhandle13.frag.out index 1231cf67..516b9fc4 100644 --- a/Test/baseResults/spv.bufferhandle13.frag.out +++ b/Test/baseResults/spv.bufferhandle13.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle13.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 58 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle14.frag.out b/Test/baseResults/spv.bufferhandle14.frag.out index 940793d3..440a0329 100644 --- a/Test/baseResults/spv.bufferhandle14.frag.out +++ b/Test/baseResults/spv.bufferhandle14.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle14.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 46 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle15.frag.out b/Test/baseResults/spv.bufferhandle15.frag.out index ec7064d9..f018e21c 100644 --- a/Test/baseResults/spv.bufferhandle15.frag.out +++ b/Test/baseResults/spv.bufferhandle15.frag.out @@ -3,7 +3,7 @@ WARNING: 0:16: '' : all default precisions are highp; use precision statements t "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle16.frag.out b/Test/baseResults/spv.bufferhandle16.frag.out index 16e69d1d..cfc6f051 100644 --- a/Test/baseResults/spv.bufferhandle16.frag.out +++ b/Test/baseResults/spv.bufferhandle16.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle16.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 48 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle18.frag.out b/Test/baseResults/spv.bufferhandle18.frag.out index 567295d3..0a5f6fb5 100644 --- a/Test/baseResults/spv.bufferhandle18.frag.out +++ b/Test/baseResults/spv.bufferhandle18.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle18.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 196 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle2.frag.out b/Test/baseResults/spv.bufferhandle2.frag.out index 8fee6db6..6c43fbe7 100644 --- a/Test/baseResults/spv.bufferhandle2.frag.out +++ b/Test/baseResults/spv.bufferhandle2.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 45 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle3.frag.out b/Test/baseResults/spv.bufferhandle3.frag.out index c02c34cf..ba50eb1a 100644 --- a/Test/baseResults/spv.bufferhandle3.frag.out +++ b/Test/baseResults/spv.bufferhandle3.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle3.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle4.frag.out b/Test/baseResults/spv.bufferhandle4.frag.out index 3f568b0f..7dff09cb 100644 --- a/Test/baseResults/spv.bufferhandle4.frag.out +++ b/Test/baseResults/spv.bufferhandle4.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle4.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 61 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle5.frag.out b/Test/baseResults/spv.bufferhandle5.frag.out index 3f1d2141..209459b9 100644 --- a/Test/baseResults/spv.bufferhandle5.frag.out +++ b/Test/baseResults/spv.bufferhandle5.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle5.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle6.frag.out b/Test/baseResults/spv.bufferhandle6.frag.out index 866741f9..b373a2f1 100644 --- a/Test/baseResults/spv.bufferhandle6.frag.out +++ b/Test/baseResults/spv.bufferhandle6.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle6.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 165 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle7.frag.out b/Test/baseResults/spv.bufferhandle7.frag.out index d09eded3..9beaee18 100644 --- a/Test/baseResults/spv.bufferhandle7.frag.out +++ b/Test/baseResults/spv.bufferhandle7.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle7.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle8.frag.out b/Test/baseResults/spv.bufferhandle8.frag.out index c37fa3fe..95abfd94 100644 --- a/Test/baseResults/spv.bufferhandle8.frag.out +++ b/Test/baseResults/spv.bufferhandle8.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle8.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.bufferhandle9.frag.out b/Test/baseResults/spv.bufferhandle9.frag.out index 5b91eda9..b452acc2 100644 --- a/Test/baseResults/spv.bufferhandle9.frag.out +++ b/Test/baseResults/spv.bufferhandle9.frag.out @@ -1,6 +1,6 @@ spv.bufferhandle9.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 56 Capability Shader diff --git a/Test/baseResults/spv.bufferhandleUvec2.frag.out b/Test/baseResults/spv.bufferhandleUvec2.frag.out new file mode 100755 index 00000000..b1944cf0 --- /dev/null +++ b/Test/baseResults/spv.bufferhandleUvec2.frag.out @@ -0,0 +1,133 @@ +spv.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 diff --git a/Test/baseResults/spv.builtInXFB.vert.out b/Test/baseResults/spv.builtInXFB.vert.out index 556a698c..7a8b17ae 100644 --- a/Test/baseResults/spv.builtInXFB.vert.out +++ b/Test/baseResults/spv.builtInXFB.vert.out @@ -1,6 +1,6 @@ spv.builtInXFB.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 21 Capability Shader diff --git a/Test/baseResults/spv.computeShaderDerivatives.comp.out b/Test/baseResults/spv.computeShaderDerivatives.comp.out index d332f352..052ac06c 100644 --- a/Test/baseResults/spv.computeShaderDerivatives.comp.out +++ b/Test/baseResults/spv.computeShaderDerivatives.comp.out @@ -1,6 +1,6 @@ spv.computeShaderDerivatives.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 212 Capability Shader diff --git a/Test/baseResults/spv.computeShaderDerivatives2.comp.out b/Test/baseResults/spv.computeShaderDerivatives2.comp.out index be1919bd..3ef5ee48 100644 --- a/Test/baseResults/spv.computeShaderDerivatives2.comp.out +++ b/Test/baseResults/spv.computeShaderDerivatives2.comp.out @@ -1,6 +1,6 @@ spv.computeShaderDerivatives2.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 212 Capability Shader diff --git a/Test/baseResults/spv.conditionalDemote.frag.out b/Test/baseResults/spv.conditionalDemote.frag.out index 10f2c23e..f2551760 100644 --- a/Test/baseResults/spv.conditionalDemote.frag.out +++ b/Test/baseResults/spv.conditionalDemote.frag.out @@ -1,6 +1,6 @@ spv.conditionalDemote.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out index 2f2dcf26..a05afb93 100644 --- a/Test/baseResults/spv.conditionalDiscard.frag.out +++ b/Test/baseResults/spv.conditionalDiscard.frag.out @@ -1,6 +1,6 @@ spv.conditionalDiscard.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 36 Capability Shader diff --git a/Test/baseResults/spv.constConstruct.vert.out b/Test/baseResults/spv.constConstruct.vert.out index 5922b34a..d3250a1a 100644 --- a/Test/baseResults/spv.constConstruct.vert.out +++ b/Test/baseResults/spv.constConstruct.vert.out @@ -1,7 +1,7 @@ spv.constConstruct.vert Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 150 Capability Shader diff --git a/Test/baseResults/spv.constStruct.vert.out b/Test/baseResults/spv.constStruct.vert.out index d04f33d1..1fce7289 100644 --- a/Test/baseResults/spv.constStruct.vert.out +++ b/Test/baseResults/spv.constStruct.vert.out @@ -1,6 +1,6 @@ spv.constStruct.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 23 Capability Shader diff --git a/Test/baseResults/spv.constructComposite.comp.out b/Test/baseResults/spv.constructComposite.comp.out index 6a23ecb2..f1179d47 100644 --- a/Test/baseResults/spv.constructComposite.comp.out +++ b/Test/baseResults/spv.constructComposite.comp.out @@ -1,6 +1,6 @@ spv.constructComposite.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/spv.controlFlowAttributes.frag.out b/Test/baseResults/spv.controlFlowAttributes.frag.out index c7082326..c222f25c 100644 --- a/Test/baseResults/spv.controlFlowAttributes.frag.out +++ b/Test/baseResults/spv.controlFlowAttributes.frag.out @@ -1,16 +1,16 @@ spv.controlFlowAttributes.frag -WARNING: 0:20: 'unroll' : expected no arguments -WARNING: 0:21: 'dont_unroll' : expected no arguments -WARNING: 0:22: 'dependency_infinite' : expected no arguments -WARNING: 0:23: 'dependency_length' : expected a single integer argument -WARNING: 0:24: '' : attribute with arguments not recognized, skipping -WARNING: 0:25: '' : attribute with arguments not recognized, skipping -WARNING: 0:26: '' : attribute with arguments not recognized, skipping +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): 80007 -// Id's are bound by 118 +// Generated by (magic number): 80008 +// Id's are bound by 123 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -20,220 +20,231 @@ Validation failed Source GLSL 450 SourceExtension "GL_EXT_control_flow_attributes" Name 4 "main" - Name 8 "i" - Name 36 "i" - Name 47 "cond" - Name 60 "i" - Name 79 "i" + 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 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16: 6(int) Constant 8 - 17: TypeBool - 20: 6(int) Constant 1 - 31: 17(bool) ConstantTrue - 46: TypePointer Private 17(bool) - 47(cond): 46(ptr) Variable Private - 54: 17(bool) ConstantFalse - 55: 6(int) Constant 3 + 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 - 8(i): 7(ptr) Variable Function - 36(i): 7(ptr) Variable Function - 60(i): 7(ptr) Variable Function - 79(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - LoopMerge 12 13 Unroll - Branch 14 - 14: Label - 15: 6(int) Load 8(i) - 18: 17(bool) SLessThan 15 16 - BranchConditional 18 11 12 - 11: Label - Branch 13 - 13: Label - 19: 6(int) Load 8(i) - 21: 6(int) IAdd 19 20 - Store 8(i) 21 - Branch 10 - 12: Label - Branch 22 - 22: Label - LoopMerge 24 25 DontUnroll - Branch 23 - 23: Label + 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 - Branch 22 - 24: Label - Branch 26 - 26: Label - LoopMerge 28 29 DontUnroll - Branch 30 - 30: Label - BranchConditional 31 27 28 - 27: Label - Branch 29 - 29: Label - Branch 26 - 28: Label - Branch 32 - 32: Label - LoopMerge 34 35 DependencyInfinite - Branch 33 - 33: Label - Branch 35 - 35: Label - BranchConditional 31 32 34 - 34: Label - Store 36(i) 9 + 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 DependencyLength 4 - Branch 41 - 41: Label - 42: 6(int) Load 36(i) - 43: 17(bool) SLessThan 42 16 - BranchConditional 43 38 39 - 38: Label - Branch 40 - 40: Label - 44: 6(int) Load 36(i) - 45: 6(int) IAdd 44 20 - Store 36(i) 45 - Branch 37 + LoopMerge 39 40 DependencyInfinite + Branch 38 + 38: Label + Branch 40 + 40: Label + BranchConditional 20 37 39 39: Label - 48: 17(bool) Load 47(cond) - SelectionMerge 50 Flatten - BranchConditional 48 49 50 - 49: Label - Branch 50 - 50: Label - 51: 17(bool) Load 47(cond) - SelectionMerge 53 DontFlatten - BranchConditional 51 52 53 - 52: Label - Store 47(cond) 54 - Branch 53 - 53: Label - SelectionMerge 57 DontFlatten - Switch 55 57 - case 3: 56 - 56: Label - Branch 57 - 57: Label - Store 60(i) 9 - Branch 61 - 61: Label - LoopMerge 63 64 None - Branch 65 - 65: Label - 66: 6(int) Load 60(i) - 67: 17(bool) SLessThan 66 16 - BranchConditional 67 62 63 - 62: Label - Branch 64 - 64: Label - 68: 6(int) Load 60(i) - 69: 6(int) IAdd 68 20 - Store 60(i) 69 - Branch 61 - 63: Label + 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 - LoopMerge 72 73 None - Branch 74 - 74: Label - BranchConditional 31 71 72 - 71: Label - Branch 73 - 73: Label - Branch 70 - 72: 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 76 - 76: Label - Branch 78 - 78: Label - BranchConditional 31 75 77 + Branch 79 + 79: Label + BranchConditional 20 76 77 + 76: Label + Branch 78 + 78: Label + Branch 75 77: Label - Store 79(i) 9 Branch 80 80: Label LoopMerge 82 83 None - Branch 84 - 84: Label - 85: 6(int) Load 79(i) - 86: 17(bool) SLessThan 85 16 - BranchConditional 86 81 82 - 81: Label - Branch 83 - 83: Label - 87: 6(int) Load 79(i) - 88: 6(int) IAdd 87 20 - Store 79(i) 88 - Branch 80 + Branch 81 + 81: Label + Branch 83 + 83: Label + BranchConditional 20 80 82 82: Label - 89: 17(bool) Load 47(cond) - SelectionMerge 91 None - BranchConditional 89 90 91 - 90: Label - Branch 91 - 91: Label - 92: 17(bool) Load 47(cond) - SelectionMerge 94 None - BranchConditional 92 93 94 - 93: Label - Store 47(cond) 54 - Branch 94 - 94: Label + 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 - Switch 55 96 - case 3: 95 + BranchConditional 94 95 96 95: Label Branch 96 96: Label - Branch 99 - 99: Label - LoopMerge 101 102 Unroll DontUnroll DependencyLength 2 - Branch 103 - 103: Label - 104: 17(bool) Load 47(cond) - BranchConditional 104 100 101 - 100: Label - Branch 102 - 102: Label + 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 - SelectionMerge 106 DontFlatten - Switch 55 106 - case 3: 105 + 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 106 + Branch 107 + 107: Label + Branch 104 106: Label - 109: 17(bool) Load 47(cond) - SelectionMerge 111 Flatten - BranchConditional 109 110 111 + SelectionMerge 111 DontFlatten + Switch 60 111 + case 3: 110 110: Label Branch 111 111: Label - Branch 112 - 112: Label - LoopMerge 114 115 DependencyInfinite - Branch 116 - 116: Label - 117: 17(bool) Load 47(cond) - BranchConditional 117 113 114 - 113: Label - Branch 115 + 114: 19(bool) Load 52(cond) + SelectionMerge 116 Flatten + BranchConditional 114 115 116 115: Label - Branch 112 - 114: Label + Branch 116 + 116: Label + Branch 117 + 117: Label + LoopMerge 119 120 DependencyInfinite + Branch 121 + 121: Label + 122: 19(bool) Load 52(cond) + BranchConditional 122 118 119 + 118: Label + Branch 120 + 120: Label + Branch 117 + 119: Label + Return + FunctionEnd + 6(f0(): 2 Function None 3 + 7: Label + Branch 10 + 10: Label + LoopMerge 12 13 DontUnroll + Branch 11 + 11: Label + Branch 13 + 13: Label + Branch 10 + 12: Label + Unreachable + FunctionEnd + 8(f1(): 2 Function None 3 + 9: Label + Branch 14 + 14: Label + LoopMerge 16 17 DontUnroll + Branch 18 + 18: Label + BranchConditional 20 15 16 + 15: Label + Branch 17 + 17: Label + Branch 14 + 16: Label Return FunctionEnd diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out index a3215324..60129dd2 100644 --- a/Test/baseResults/spv.conversion.frag.out +++ b/Test/baseResults/spv.conversion.frag.out @@ -1,6 +1,6 @@ spv.conversion.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 455 Capability Shader diff --git a/Test/baseResults/spv.coopmat.comp.out b/Test/baseResults/spv.coopmat.comp.out index acdcbc4f..4ef70280 100644 --- a/Test/baseResults/spv.coopmat.comp.out +++ b/Test/baseResults/spv.coopmat.comp.out @@ -1,6 +1,6 @@ spv.coopmat.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 228 Capability Shader diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out index f3847213..5dc14ceb 100644 --- a/Test/baseResults/spv.dataOut.frag.out +++ b/Test/baseResults/spv.dataOut.frag.out @@ -1,6 +1,6 @@ spv.dataOut.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out index f3716010..fa6a0daa 100644 --- a/Test/baseResults/spv.dataOutIndirect.frag.out +++ b/Test/baseResults/spv.dataOutIndirect.frag.out @@ -1,6 +1,6 @@ spv.dataOutIndirect.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Shader diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out index 9ba988c6..fab5e586 100644 --- a/Test/baseResults/spv.dataOutIndirect.vert.out +++ b/Test/baseResults/spv.dataOutIndirect.vert.out @@ -2,7 +2,7 @@ spv.dataOutIndirect.vert WARNING: 0:3: attribute deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/spv.dead-after-continue.vert.out b/Test/baseResults/spv.dead-after-continue.vert.out new file mode 100644 index 00000000..f3b8792a --- /dev/null +++ b/Test/baseResults/spv.dead-after-continue.vert.out @@ -0,0 +1,54 @@ +spv.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 diff --git a/Test/baseResults/spv.dead-after-discard.frag.out b/Test/baseResults/spv.dead-after-discard.frag.out new file mode 100644 index 00000000..f378d04d --- /dev/null +++ b/Test/baseResults/spv.dead-after-discard.frag.out @@ -0,0 +1,31 @@ +spv.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 diff --git a/Test/baseResults/spv.dead-after-loop-break.vert.out b/Test/baseResults/spv.dead-after-loop-break.vert.out new file mode 100644 index 00000000..b653e399 --- /dev/null +++ b/Test/baseResults/spv.dead-after-loop-break.vert.out @@ -0,0 +1,67 @@ +spv.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 diff --git a/Test/baseResults/spv.dead-after-return.vert.out b/Test/baseResults/spv.dead-after-return.vert.out new file mode 100644 index 00000000..d963f9ff --- /dev/null +++ b/Test/baseResults/spv.dead-after-return.vert.out @@ -0,0 +1,29 @@ +spv.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 diff --git a/Test/baseResults/spv.dead-after-switch-break.vert.out b/Test/baseResults/spv.dead-after-switch-break.vert.out new file mode 100644 index 00000000..a5060128 --- /dev/null +++ b/Test/baseResults/spv.dead-after-switch-break.vert.out @@ -0,0 +1,40 @@ +spv.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 diff --git a/Test/baseResults/spv.dead-complex-continue-after-return.vert.out b/Test/baseResults/spv.dead-complex-continue-after-return.vert.out new file mode 100644 index 00000000..60e81bd6 --- /dev/null +++ b/Test/baseResults/spv.dead-complex-continue-after-return.vert.out @@ -0,0 +1,55 @@ +spv.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 diff --git a/Test/baseResults/spv.dead-complex-merge-after-return.vert.out b/Test/baseResults/spv.dead-complex-merge-after-return.vert.out new file mode 100644 index 00000000..609a3ceb --- /dev/null +++ b/Test/baseResults/spv.dead-complex-merge-after-return.vert.out @@ -0,0 +1,51 @@ +spv.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 diff --git a/Test/baseResults/spv.debugInfo.1.1.frag.out b/Test/baseResults/spv.debugInfo.1.1.frag.out index e2120892..b68de49e 100644 --- a/Test/baseResults/spv.debugInfo.1.1.frag.out +++ b/Test/baseResults/spv.debugInfo.1.1.frag.out @@ -2,7 +2,7 @@ spv.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): 80007 +// Generated by (magic number): 80008 // Id's are bound by 124 Capability Shader diff --git a/Test/baseResults/spv.debugInfo.frag.out b/Test/baseResults/spv.debugInfo.frag.out index aaa988d4..f27aac01 100644 --- a/Test/baseResults/spv.debugInfo.frag.out +++ b/Test/baseResults/spv.debugInfo.frag.out @@ -1,6 +1,6 @@ spv.debugInfo.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 124 Capability Shader diff --git a/Test/baseResults/spv.deepRvalue.frag.out b/Test/baseResults/spv.deepRvalue.frag.out index 1869d76e..776fdf8d 100644 --- a/Test/baseResults/spv.deepRvalue.frag.out +++ b/Test/baseResults/spv.deepRvalue.frag.out @@ -1,6 +1,6 @@ spv.deepRvalue.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 152 Capability Shader diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out index 59afd3e1..d212c897 100644 --- a/Test/baseResults/spv.depthOut.frag.out +++ b/Test/baseResults/spv.depthOut.frag.out @@ -1,6 +1,6 @@ spv.depthOut.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 15 Capability Shader diff --git a/Test/baseResults/spv.deviceGroup.frag.out b/Test/baseResults/spv.deviceGroup.frag.out index 6710b77f..2d16272c 100644 --- a/Test/baseResults/spv.deviceGroup.frag.out +++ b/Test/baseResults/spv.deviceGroup.frag.out @@ -1,6 +1,6 @@ spv.deviceGroup.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 17 Capability Shader diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out index 9d138f29..c4a5cb21 100644 --- a/Test/baseResults/spv.discard-dce.frag.out +++ b/Test/baseResults/spv.discard-dce.frag.out @@ -1,6 +1,6 @@ spv.discard-dce.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out index 6014dfec..826cc1ca 100644 --- a/Test/baseResults/spv.do-simple.vert.out +++ b/Test/baseResults/spv.do-simple.vert.out @@ -1,6 +1,6 @@ spv.do-simple.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 21 Capability Shader diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out index 28388800..36315a2f 100644 --- a/Test/baseResults/spv.do-while-continue-break.vert.out +++ b/Test/baseResults/spv.do-while-continue-break.vert.out @@ -1,6 +1,6 @@ spv.do-while-continue-break.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out index 808466eb..945f0d7c 100644 --- a/Test/baseResults/spv.doWhileLoop.frag.out +++ b/Test/baseResults/spv.doWhileLoop.frag.out @@ -1,6 +1,6 @@ spv.doWhileLoop.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out index e9470ac6..7961fc62 100644 --- a/Test/baseResults/spv.double.comp.out +++ b/Test/baseResults/spv.double.comp.out @@ -1,6 +1,6 @@ spv.double.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader diff --git a/Test/baseResults/spv.drawParams.vert.out b/Test/baseResults/spv.drawParams.vert.out index 8f3e2c0a..e9d49703 100644 --- a/Test/baseResults/spv.drawParams.vert.out +++ b/Test/baseResults/spv.drawParams.vert.out @@ -1,6 +1,6 @@ spv.drawParams.vert // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out index c44b722f..a4eb8cab 100644 --- a/Test/baseResults/spv.earlyReturnDiscard.frag.out +++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out @@ -1,6 +1,6 @@ spv.earlyReturnDiscard.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 110 Capability Shader @@ -160,7 +160,7 @@ spv.earlyReturnDiscard.frag 102: Label Return 100: Label - Branch 67 + Unreachable 67: Label 106: 7(fvec4) Load 9(color) 107: 7(fvec4) Load 13(color2) diff --git a/Test/baseResults/spv.explicittypes.frag.out b/Test/baseResults/spv.explicittypes.frag.out index c07f66d5..93189135 100644 --- a/Test/baseResults/spv.explicittypes.frag.out +++ b/Test/baseResults/spv.explicittypes.frag.out @@ -1,6 +1,6 @@ spv.explicittypes.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 576 Capability Shader diff --git a/Test/baseResults/spv.extPostDepthCoverage.frag.out b/Test/baseResults/spv.extPostDepthCoverage.frag.out index 85a23593..28d207b7 100644 --- a/Test/baseResults/spv.extPostDepthCoverage.frag.out +++ b/Test/baseResults/spv.extPostDepthCoverage.frag.out @@ -1,6 +1,6 @@ spv.extPostDepthCoverage.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 6 Capability Shader diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out index 1f955c22..ca1bca15 100644 --- a/Test/baseResults/spv.float16.frag.out +++ b/Test/baseResults/spv.float16.frag.out @@ -1,7 +1,7 @@ spv.float16.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 534 Capability Shader diff --git a/Test/baseResults/spv.float16Fetch.frag.out b/Test/baseResults/spv.float16Fetch.frag.out index 45c80fec..92ff6313 100644 --- a/Test/baseResults/spv.float16Fetch.frag.out +++ b/Test/baseResults/spv.float16Fetch.frag.out @@ -1,7 +1,7 @@ spv.float16Fetch.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 5923 Capability Shader diff --git a/Test/baseResults/spv.float16convertonlyarith.comp.out b/Test/baseResults/spv.float16convertonlyarith.comp.out index 6abf0d4a..5c8c2928 100644 --- a/Test/baseResults/spv.float16convertonlyarith.comp.out +++ b/Test/baseResults/spv.float16convertonlyarith.comp.out @@ -1,6 +1,6 @@ spv.float16convertonlyarith.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/spv.float16convertonlystorage.comp.out b/Test/baseResults/spv.float16convertonlystorage.comp.out index a2ff1d09..b37bb6b4 100644 --- a/Test/baseResults/spv.float16convertonlystorage.comp.out +++ b/Test/baseResults/spv.float16convertonlystorage.comp.out @@ -1,6 +1,6 @@ spv.float16convertonlystorage.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/spv.float32.frag.out b/Test/baseResults/spv.float32.frag.out index f1b0d029..db413c43 100644 --- a/Test/baseResults/spv.float32.frag.out +++ b/Test/baseResults/spv.float32.frag.out @@ -1,6 +1,6 @@ spv.float32.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 533 Capability Shader diff --git a/Test/baseResults/spv.float64.frag.out b/Test/baseResults/spv.float64.frag.out index 231f0707..b98c8704 100644 --- a/Test/baseResults/spv.float64.frag.out +++ b/Test/baseResults/spv.float64.frag.out @@ -1,7 +1,7 @@ spv.float64.frag Validation failed // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 524 Capability Shader diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out index 30c2a4b6..fc68306d 100644 --- a/Test/baseResults/spv.flowControl.frag.out +++ b/Test/baseResults/spv.flowControl.frag.out @@ -1,6 +1,6 @@ spv.flowControl.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/spv.for-complex-condition.vert.out b/Test/baseResults/spv.for-complex-condition.vert.out index 41275a45..78252ee9 100644 --- a/Test/baseResults/spv.for-complex-condition.vert.out +++ b/Test/baseResults/spv.for-complex-condition.vert.out @@ -1,6 +1,6 @@ spv.for-complex-condition.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out index ff94a931..50c034e6 100644 --- a/Test/baseResults/spv.for-continue-break.vert.out +++ b/Test/baseResults/spv.for-continue-break.vert.out @@ -1,6 +1,6 @@ spv.for-continue-break.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 45 Capability Shader diff --git a/Test/baseResults/spv.for-nobody.vert.out b/Test/baseResults/spv.for-nobody.vert.out index 2a3bcf40..26844c2f 100644 --- a/Test/baseResults/spv.for-nobody.vert.out +++ b/Test/baseResults/spv.for-nobody.vert.out @@ -1,6 +1,6 @@ spv.for-nobody.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 25 Capability Shader diff --git a/Test/baseResults/spv.for-notest.vert.out b/Test/baseResults/spv.for-notest.vert.out index 36c4a96a..ff85cb42 100644 --- a/Test/baseResults/spv.for-notest.vert.out +++ b/Test/baseResults/spv.for-notest.vert.out @@ -1,6 +1,6 @@ spv.for-notest.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader @@ -38,5 +38,5 @@ spv.for-notest.vert Store 8(i) 19 Branch 10 12: Label - Return + Unreachable FunctionEnd diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out index ecb539f9..a3e5d867 100644 --- a/Test/baseResults/spv.for-simple.vert.out +++ b/Test/baseResults/spv.for-simple.vert.out @@ -1,6 +1,6 @@ spv.for-simple.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out index a07921ce..b4b0f5d4 100644 --- a/Test/baseResults/spv.forLoop.frag.out +++ b/Test/baseResults/spv.forLoop.frag.out @@ -1,6 +1,6 @@ spv.forLoop.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 131 Capability Shader diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out index 32875b2c..26140aff 100644 --- a/Test/baseResults/spv.forwardFun.frag.out +++ b/Test/baseResults/spv.forwardFun.frag.out @@ -1,6 +1,6 @@ spv.forwardFun.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader @@ -99,8 +99,7 @@ spv.forwardFun.frag 45: Label ReturnValue 46 42: Label - 48: 8(float) Undef - ReturnValue 48 + Unreachable FunctionEnd 16(foo(vf4;): 8(float) Function None 14 15(bar): 13(ptr) FunctionParameter diff --git a/Test/baseResults/spv.fragmentDensity-es.frag.out b/Test/baseResults/spv.fragmentDensity-es.frag.out index 01ac3833..69f92c8a 100644 --- a/Test/baseResults/spv.fragmentDensity-es.frag.out +++ b/Test/baseResults/spv.fragmentDensity-es.frag.out @@ -1,6 +1,6 @@ spv.fragmentDensity-es.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader diff --git a/Test/baseResults/spv.fragmentDensity.frag.out b/Test/baseResults/spv.fragmentDensity.frag.out index 8bbc37cc..5bdb43a7 100644 --- a/Test/baseResults/spv.fragmentDensity.frag.out +++ b/Test/baseResults/spv.fragmentDensity.frag.out @@ -1,6 +1,6 @@ spv.fragmentDensity.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 21 Capability Shader diff --git a/Test/baseResults/spv.fragmentShaderBarycentric.frag.out b/Test/baseResults/spv.fragmentShaderBarycentric.frag.out index ffb3527c..fbded6e4 100644 --- a/Test/baseResults/spv.fragmentShaderBarycentric.frag.out +++ b/Test/baseResults/spv.fragmentShaderBarycentric.frag.out @@ -1,6 +1,6 @@ spv.fragmentShaderBarycentric.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader diff --git a/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out b/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out index 05dce7a7..22b84ba8 100644 --- a/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out +++ b/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out @@ -1,6 +1,6 @@ spv.fragmentShaderBarycentric2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/spv.fsi.frag.out b/Test/baseResults/spv.fsi.frag.out index 51fb0688..b0c97134 100644 --- a/Test/baseResults/spv.fsi.frag.out +++ b/Test/baseResults/spv.fsi.frag.out @@ -1,6 +1,6 @@ spv.fsi.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.fullyCovered.frag.out b/Test/baseResults/spv.fullyCovered.frag.out index 76c8e44d..4dbea15f 100644 --- a/Test/baseResults/spv.fullyCovered.frag.out +++ b/Test/baseResults/spv.fullyCovered.frag.out @@ -1,6 +1,6 @@ spv.fullyCovered.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out index 269b74e6..4fa7863b 100644 --- a/Test/baseResults/spv.functionCall.frag.out +++ b/Test/baseResults/spv.functionCall.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas WARNING: 0:5: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 76 Capability Shader @@ -105,8 +105,7 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas 44: Label ReturnValue 45 41: Label - 47: 6(float) Undef - ReturnValue 47 + Unreachable FunctionEnd 18(missingReturn(): 6(float) Function None 15 19: Label diff --git a/Test/baseResults/spv.functionNestedOpaque.vert.out b/Test/baseResults/spv.functionNestedOpaque.vert.out index df590c19..4543895e 100644 --- a/Test/baseResults/spv.functionNestedOpaque.vert.out +++ b/Test/baseResults/spv.functionNestedOpaque.vert.out @@ -1,7 +1,7 @@ spv.functionNestedOpaque.vert Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/spv.functionParameterTypes.frag.out b/Test/baseResults/spv.functionParameterTypes.frag.out index 24e780e2..decc1904 100644 --- a/Test/baseResults/spv.functionParameterTypes.frag.out +++ b/Test/baseResults/spv.functionParameterTypes.frag.out @@ -1,6 +1,6 @@ spv.functionParameterTypes.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out index 49bdf7cd..000a7bc9 100644 --- a/Test/baseResults/spv.functionSemantics.frag.out +++ b/Test/baseResults/spv.functionSemantics.frag.out @@ -1,6 +1,6 @@ spv.functionSemantics.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 156 Capability Shader diff --git a/Test/baseResults/spv.glFragColor.frag.out b/Test/baseResults/spv.glFragColor.frag.out index 55fb24f1..af252804 100644 --- a/Test/baseResults/spv.glFragColor.frag.out +++ b/Test/baseResults/spv.glFragColor.frag.out @@ -1,6 +1,6 @@ spv.glFragColor.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 12 Capability Shader diff --git a/Test/baseResults/spv.glsl.register.autoassign.frag.out b/Test/baseResults/spv.glsl.register.autoassign.frag.out index 9c8ccb50..9872f4a4 100644 --- a/Test/baseResults/spv.glsl.register.autoassign.frag.out +++ b/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -1,6 +1,6 @@ spv.glsl.register.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 142 Capability Shader diff --git a/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/Test/baseResults/spv.glsl.register.noautoassign.frag.out index 44d63ed1..b52e2201 100644 --- a/Test/baseResults/spv.glsl.register.noautoassign.frag.out +++ b/Test/baseResults/spv.glsl.register.noautoassign.frag.out @@ -1,6 +1,6 @@ spv.glsl.register.noautoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 142 Capability Shader diff --git a/Test/baseResults/spv.hlslDebugInfo.frag.out b/Test/baseResults/spv.hlslDebugInfo.frag.out index 35a6a4d9..1d2e6b49 100644 --- a/Test/baseResults/spv.hlslDebugInfo.frag.out +++ b/Test/baseResults/spv.hlslDebugInfo.frag.out @@ -1,6 +1,6 @@ spv.hlslDebugInfo.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 19 Capability Shader diff --git a/Test/baseResults/spv.hlslOffsets.vert.out b/Test/baseResults/spv.hlslOffsets.vert.out index 72367546..b1cdb6b5 100644 --- a/Test/baseResults/spv.hlslOffsets.vert.out +++ b/Test/baseResults/spv.hlslOffsets.vert.out @@ -18,7 +18,7 @@ Shader version: 450 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): 80007 +// Generated by (magic number): 80008 // Id's are bound by 14 Capability Shader diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out index 0fefd01a..63d26d8d 100644 --- a/Test/baseResults/spv.image.frag.out +++ b/Test/baseResults/spv.image.frag.out @@ -1,7 +1,7 @@ spv.image.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 395 Capability Shader diff --git a/Test/baseResults/spv.imageLoadStoreLod.frag.out b/Test/baseResults/spv.imageLoadStoreLod.frag.out index 28cd4f96..526d7392 100644 --- a/Test/baseResults/spv.imageLoadStoreLod.frag.out +++ b/Test/baseResults/spv.imageLoadStoreLod.frag.out @@ -1,7 +1,7 @@ spv.imageLoadStoreLod.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 82 Capability Shader diff --git a/Test/baseResults/spv.int16.amd.frag.out b/Test/baseResults/spv.int16.amd.frag.out index 26c701db..3f6179b9 100644 --- a/Test/baseResults/spv.int16.amd.frag.out +++ b/Test/baseResults/spv.int16.amd.frag.out @@ -1,6 +1,6 @@ spv.int16.amd.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 560 Capability Shader diff --git a/Test/baseResults/spv.int16.frag.out b/Test/baseResults/spv.int16.frag.out index a7b9bfe6..ff8a4462 100644 --- a/Test/baseResults/spv.int16.frag.out +++ b/Test/baseResults/spv.int16.frag.out @@ -1,6 +1,6 @@ spv.int16.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 523 Capability Shader diff --git a/Test/baseResults/spv.int32.frag.out b/Test/baseResults/spv.int32.frag.out index e5c78894..1e8cd702 100644 --- a/Test/baseResults/spv.int32.frag.out +++ b/Test/baseResults/spv.int32.frag.out @@ -1,6 +1,6 @@ spv.int32.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 493 Capability Shader diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out index b1375a66..4510134d 100644 --- a/Test/baseResults/spv.int64.frag.out +++ b/Test/baseResults/spv.int64.frag.out @@ -1,7 +1,7 @@ spv.int64.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 489 Capability Shader diff --git a/Test/baseResults/spv.int8.frag.out b/Test/baseResults/spv.int8.frag.out index 0a4740d3..c84ca7e0 100644 --- a/Test/baseResults/spv.int8.frag.out +++ b/Test/baseResults/spv.int8.frag.out @@ -1,6 +1,6 @@ spv.int8.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 518 Capability Shader diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out index 2a637832..272233ec 100644 --- a/Test/baseResults/spv.intOps.vert.out +++ b/Test/baseResults/spv.intOps.vert.out @@ -1,6 +1,6 @@ spv.intOps.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 268 Capability Shader diff --git a/Test/baseResults/spv.intcoopmat.comp.out b/Test/baseResults/spv.intcoopmat.comp.out index 06f5623d..940ba331 100644 --- a/Test/baseResults/spv.intcoopmat.comp.out +++ b/Test/baseResults/spv.intcoopmat.comp.out @@ -1,6 +1,6 @@ spv.intcoopmat.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 262 Capability Shader diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out index 699524dd..7ec4f9f4 100644 --- a/Test/baseResults/spv.interpOps.frag.out +++ b/Test/baseResults/spv.interpOps.frag.out @@ -1,6 +1,6 @@ spv.interpOps.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 100 Capability Shader diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out index b5ef8834..44d58abf 100644 --- a/Test/baseResults/spv.layoutNested.vert.out +++ b/Test/baseResults/spv.layoutNested.vert.out @@ -1,6 +1,6 @@ spv.layoutNested.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out index 8e799fbb..de391bc5 100644 --- a/Test/baseResults/spv.length.frag.out +++ b/Test/baseResults/spv.length.frag.out @@ -1,6 +1,6 @@ spv.length.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out index f5fad547..adfa0fd1 100644 --- a/Test/baseResults/spv.localAggregates.frag.out +++ b/Test/baseResults/spv.localAggregates.frag.out @@ -1,6 +1,6 @@ spv.localAggregates.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 136 Capability Shader diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out index 046360f6..a3a34238 100644 --- a/Test/baseResults/spv.loops.frag.out +++ b/Test/baseResults/spv.loops.frag.out @@ -1,6 +1,6 @@ spv.loops.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 725 Capability Shader diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out index d0d60542..65329d4c 100644 --- a/Test/baseResults/spv.loopsArtificial.frag.out +++ b/Test/baseResults/spv.loopsArtificial.frag.out @@ -1,6 +1,6 @@ spv.loopsArtificial.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 158 Capability Shader diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out index 8ed378f8..d39160d0 100644 --- a/Test/baseResults/spv.matFun.vert.out +++ b/Test/baseResults/spv.matFun.vert.out @@ -1,6 +1,6 @@ spv.matFun.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 103 Capability Shader diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out index c2b4a1f6..f7b6ce30 100644 --- a/Test/baseResults/spv.matrix.frag.out +++ b/Test/baseResults/spv.matrix.frag.out @@ -1,6 +1,6 @@ spv.matrix.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 286 Capability Shader diff --git a/Test/baseResults/spv.matrix2.frag.out b/Test/baseResults/spv.matrix2.frag.out index dc574a40..77a098a8 100644 --- a/Test/baseResults/spv.matrix2.frag.out +++ b/Test/baseResults/spv.matrix2.frag.out @@ -1,6 +1,6 @@ spv.matrix2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 221 Capability Shader diff --git a/Test/baseResults/spv.memoryQualifier.frag.out b/Test/baseResults/spv.memoryQualifier.frag.out index 93c6b2db..737e862a 100644 --- a/Test/baseResults/spv.memoryQualifier.frag.out +++ b/Test/baseResults/spv.memoryQualifier.frag.out @@ -1,7 +1,7 @@ spv.memoryQualifier.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 97 Capability Shader diff --git a/Test/baseResults/spv.memoryScopeSemantics.comp.out b/Test/baseResults/spv.memoryScopeSemantics.comp.out index 8c4e5763..29675915 100644 --- a/Test/baseResults/spv.memoryScopeSemantics.comp.out +++ b/Test/baseResults/spv.memoryScopeSemantics.comp.out @@ -1,6 +1,6 @@ spv.memoryScopeSemantics.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 163 Capability Shader diff --git a/Test/baseResults/spv.merge-unreachable.frag.out b/Test/baseResults/spv.merge-unreachable.frag.out index 7ec0f33d..3eab4ec9 100644 --- a/Test/baseResults/spv.merge-unreachable.frag.out +++ b/Test/baseResults/spv.merge-unreachable.frag.out @@ -1,6 +1,6 @@ spv.merge-unreachable.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 25 Capability Shader @@ -37,5 +37,5 @@ spv.merge-unreachable.frag 23: Label Return 21: Label - Return + Unreachable FunctionEnd diff --git a/Test/baseResults/spv.meshShaderBuiltins.mesh.out b/Test/baseResults/spv.meshShaderBuiltins.mesh.out index 38d363bb..cea7e4d7 100644 --- a/Test/baseResults/spv.meshShaderBuiltins.mesh.out +++ b/Test/baseResults/spv.meshShaderBuiltins.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderBuiltins.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 148 Capability ClipDistance diff --git a/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out b/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out index b912acaf..75f8c63a 100644 --- a/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out +++ b/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderPerViewBuiltins.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 126 Capability MultiViewport diff --git a/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out b/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out index 266f662d..de019a2b 100644 --- a/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out +++ b/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderPerViewUserDefined.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 108 Capability MeshShadingNV diff --git a/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out b/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out index 4afbef9f..e9ebd44c 100644 --- a/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out +++ b/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderRedeclBuiltins.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 129 Capability ClipDistance diff --git a/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out b/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out index 6672dc24..38542d5c 100644 --- a/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out +++ b/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderRedeclPerViewBuiltins.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 120 Capability PerViewAttributesNV diff --git a/Test/baseResults/spv.meshShaderSharedMem.mesh.out b/Test/baseResults/spv.meshShaderSharedMem.mesh.out index dd0003dd..adac07ff 100644 --- a/Test/baseResults/spv.meshShaderSharedMem.mesh.out +++ b/Test/baseResults/spv.meshShaderSharedMem.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderSharedMem.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 77 Capability StorageImageWriteWithoutFormat diff --git a/Test/baseResults/spv.meshShaderTaskMem.mesh.out b/Test/baseResults/spv.meshShaderTaskMem.mesh.out index e14f7a85..057e0fdd 100644 --- a/Test/baseResults/spv.meshShaderTaskMem.mesh.out +++ b/Test/baseResults/spv.meshShaderTaskMem.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderTaskMem.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 58 Capability MeshShadingNV diff --git a/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.meshShaderUserDefined.mesh.out index c3ec9150..43579bb4 100644 --- a/Test/baseResults/spv.meshShaderUserDefined.mesh.out +++ b/Test/baseResults/spv.meshShaderUserDefined.mesh.out @@ -1,6 +1,6 @@ spv.meshShaderUserDefined.mesh // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 138 Capability MeshShadingNV diff --git a/Test/baseResults/spv.meshTaskShader.task.out b/Test/baseResults/spv.meshTaskShader.task.out index a835d7fe..96d37c4a 100644 --- a/Test/baseResults/spv.meshTaskShader.task.out +++ b/Test/baseResults/spv.meshTaskShader.task.out @@ -1,6 +1,6 @@ spv.meshTaskShader.task // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 116 Capability StorageImageWriteWithoutFormat diff --git a/Test/baseResults/spv.multiStruct.comp.out b/Test/baseResults/spv.multiStruct.comp.out index 7e88a590..679a4bd7 100644 --- a/Test/baseResults/spv.multiStruct.comp.out +++ b/Test/baseResults/spv.multiStruct.comp.out @@ -1,6 +1,6 @@ spv.multiStruct.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 161 Capability Shader diff --git a/Test/baseResults/spv.multiStructFuncall.frag.out b/Test/baseResults/spv.multiStructFuncall.frag.out index a3a4480a..9312fe92 100644 --- a/Test/baseResults/spv.multiStructFuncall.frag.out +++ b/Test/baseResults/spv.multiStructFuncall.frag.out @@ -1,6 +1,6 @@ spv.multiStructFuncall.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader diff --git a/Test/baseResults/spv.multiView.frag.out b/Test/baseResults/spv.multiView.frag.out index 9dbd36b9..53633525 100644 --- a/Test/baseResults/spv.multiView.frag.out +++ b/Test/baseResults/spv.multiView.frag.out @@ -1,6 +1,6 @@ spv.multiView.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 17 Capability Shader diff --git a/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out b/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out index c06a890b..16e81a1e 100644 --- a/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out +++ b/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out @@ -1,6 +1,6 @@ spv.multiviewPerViewAttributes.tesc // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 41 Capability Tessellation diff --git a/Test/baseResults/spv.multiviewPerViewAttributes.vert.out b/Test/baseResults/spv.multiviewPerViewAttributes.vert.out index c8377cfa..acca44ee 100644 --- a/Test/baseResults/spv.multiviewPerViewAttributes.vert.out +++ b/Test/baseResults/spv.multiviewPerViewAttributes.vert.out @@ -1,6 +1,6 @@ spv.multiviewPerViewAttributes.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index 1bad3fa7..6bbb0328 100644 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -1,7 +1,7 @@ spv.newTexture.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 284 Capability Shader diff --git a/Test/baseResults/spv.noBuiltInLoc.vert.out b/Test/baseResults/spv.noBuiltInLoc.vert.out index 066f81f7..7a45e727 100644 --- a/Test/baseResults/spv.noBuiltInLoc.vert.out +++ b/Test/baseResults/spv.noBuiltInLoc.vert.out @@ -1,6 +1,6 @@ spv.noBuiltInLoc.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader diff --git a/Test/baseResults/spv.noDeadDecorations.vert.out b/Test/baseResults/spv.noDeadDecorations.vert.out index d7e37027..a555ba25 100644 --- a/Test/baseResults/spv.noDeadDecorations.vert.out +++ b/Test/baseResults/spv.noDeadDecorations.vert.out @@ -1,6 +1,6 @@ spv.noDeadDecorations.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader diff --git a/Test/baseResults/spv.noWorkgroup.comp.out b/Test/baseResults/spv.noWorkgroup.comp.out index 2624fdcd..92ae6706 100644 --- a/Test/baseResults/spv.noWorkgroup.comp.out +++ b/Test/baseResults/spv.noWorkgroup.comp.out @@ -1,6 +1,6 @@ spv.noWorkgroup.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 12 Capability Shader diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out index 679a5f0f..9746fe01 100644 --- a/Test/baseResults/spv.nonSquare.vert.out +++ b/Test/baseResults/spv.nonSquare.vert.out @@ -1,6 +1,6 @@ spv.nonSquare.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 90 Capability Shader diff --git a/Test/baseResults/spv.nonuniform.frag.out b/Test/baseResults/spv.nonuniform.frag.out index 3aaa8733..32b64662 100644 --- a/Test/baseResults/spv.nonuniform.frag.out +++ b/Test/baseResults/spv.nonuniform.frag.out @@ -1,6 +1,6 @@ spv.nonuniform.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 212 Capability Shader diff --git a/Test/baseResults/spv.nonuniform2.frag.out b/Test/baseResults/spv.nonuniform2.frag.out index 3f101fe1..db24f417 100644 --- a/Test/baseResults/spv.nonuniform2.frag.out +++ b/Test/baseResults/spv.nonuniform2.frag.out @@ -1,6 +1,6 @@ spv.nonuniform2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.offsets.frag.out b/Test/baseResults/spv.offsets.frag.out index 17d7b86e..08a75e94 100644 --- a/Test/baseResults/spv.offsets.frag.out +++ b/Test/baseResults/spv.offsets.frag.out @@ -1,6 +1,6 @@ spv.offsets.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 15 Capability Shader diff --git a/Test/baseResults/spv.paramMemory.frag.out b/Test/baseResults/spv.paramMemory.frag.out index cba2fbd0..df13c65f 100644 --- a/Test/baseResults/spv.paramMemory.frag.out +++ b/Test/baseResults/spv.paramMemory.frag.out @@ -1,7 +1,7 @@ spv.paramMemory.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 64 Capability Shader diff --git a/Test/baseResults/spv.perprimitiveNV.frag.out b/Test/baseResults/spv.perprimitiveNV.frag.out index eaff400c..9943ee9e 100644 --- a/Test/baseResults/spv.perprimitiveNV.frag.out +++ b/Test/baseResults/spv.perprimitiveNV.frag.out @@ -1,6 +1,6 @@ spv.perprimitiveNV.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 23 Capability Shader diff --git a/Test/baseResults/spv.pp.line.frag.out b/Test/baseResults/spv.pp.line.frag.out index 5794177f..12c5fa5f 100644 --- a/Test/baseResults/spv.pp.line.frag.out +++ b/Test/baseResults/spv.pp.line.frag.out @@ -3,7 +3,7 @@ WARNING: spv.pp.line.frag:6: varying deprecated in version 130; may be removed i WARNING: spv.pp.line.frag:7: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 65 Capability Shader diff --git a/Test/baseResults/spv.precise.tesc.out b/Test/baseResults/spv.precise.tesc.out index 95a048fc..840e7b3b 100644 --- a/Test/baseResults/spv.precise.tesc.out +++ b/Test/baseResults/spv.precise.tesc.out @@ -1,6 +1,6 @@ spv.precise.tesc // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 72 Capability Tessellation diff --git a/Test/baseResults/spv.precise.tese.out b/Test/baseResults/spv.precise.tese.out index a73cbd83..b59ac0ec 100644 --- a/Test/baseResults/spv.precise.tese.out +++ b/Test/baseResults/spv.precise.tese.out @@ -1,6 +1,6 @@ spv.precise.tese // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 119 Capability Tessellation diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out index 5ddb4927..ac4c0aa5 100644 --- a/Test/baseResults/spv.precision.frag.out +++ b/Test/baseResults/spv.precision.frag.out @@ -1,6 +1,6 @@ spv.precision.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 127 Capability Shader diff --git a/Test/baseResults/spv.precisionNonESSamp.frag.out b/Test/baseResults/spv.precisionNonESSamp.frag.out index 0620c41e..97681f36 100644 --- a/Test/baseResults/spv.precisionNonESSamp.frag.out +++ b/Test/baseResults/spv.precisionNonESSamp.frag.out @@ -1,6 +1,6 @@ spv.precisionNonESSamp.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 47 Capability Shader diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out index 3b4bfd8a..a0dbbd46 100644 --- a/Test/baseResults/spv.prepost.frag.out +++ b/Test/baseResults/spv.prepost.frag.out @@ -1,6 +1,6 @@ spv.prepost.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 94 Capability Shader diff --git a/Test/baseResults/spv.privateVariableTypes.frag.out b/Test/baseResults/spv.privateVariableTypes.frag.out index 9b4063ed..1b8e1a5c 100644 --- a/Test/baseResults/spv.privateVariableTypes.frag.out +++ b/Test/baseResults/spv.privateVariableTypes.frag.out @@ -1,6 +1,6 @@ spv.privateVariableTypes.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.pushConstant.vert.out b/Test/baseResults/spv.pushConstant.vert.out index 40ee3284..5348edb4 100644 --- a/Test/baseResults/spv.pushConstant.vert.out +++ b/Test/baseResults/spv.pushConstant.vert.out @@ -1,6 +1,6 @@ spv.pushConstant.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader diff --git a/Test/baseResults/spv.pushConstantAnon.vert.out b/Test/baseResults/spv.pushConstantAnon.vert.out index b03855da..3932b42e 100644 --- a/Test/baseResults/spv.pushConstantAnon.vert.out +++ b/Test/baseResults/spv.pushConstantAnon.vert.out @@ -1,6 +1,6 @@ spv.pushConstantAnon.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out index ffdc6f80..47f73a0a 100644 --- a/Test/baseResults/spv.qualifiers.vert.out +++ b/Test/baseResults/spv.qualifiers.vert.out @@ -1,6 +1,6 @@ spv.qualifiers.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 21 Capability Shader diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out index 87dbb8c1..97d845a1 100644 --- a/Test/baseResults/spv.queryL.frag.out +++ b/Test/baseResults/spv.queryL.frag.out @@ -1,7 +1,7 @@ spv.queryL.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 224 Capability Shader diff --git a/Test/baseResults/spv.rankShift.comp.out b/Test/baseResults/spv.rankShift.comp.out index 3ca75145..e0fba776 100644 --- a/Test/baseResults/spv.rankShift.comp.out +++ b/Test/baseResults/spv.rankShift.comp.out @@ -1,6 +1,6 @@ spv.rankShift.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/spv.register.autoassign-2.frag.out b/Test/baseResults/spv.register.autoassign-2.frag.out index 533e3880..9fd317ef 100644 --- a/Test/baseResults/spv.register.autoassign-2.frag.out +++ b/Test/baseResults/spv.register.autoassign-2.frag.out @@ -1,6 +1,6 @@ spv.register.autoassign-2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 47 Capability Shader diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out index 123ea356..74118efc 100644 --- a/Test/baseResults/spv.register.autoassign.frag.out +++ b/Test/baseResults/spv.register.autoassign.frag.out @@ -1,6 +1,6 @@ spv.register.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 155 Capability Shader diff --git a/Test/baseResults/spv.register.noautoassign.frag.out b/Test/baseResults/spv.register.noautoassign.frag.out index 3259f41f..1292b0b2 100644 --- a/Test/baseResults/spv.register.noautoassign.frag.out +++ b/Test/baseResults/spv.register.noautoassign.frag.out @@ -1,6 +1,6 @@ spv.register.noautoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 155 Capability Shader diff --git a/Test/baseResults/spv.register.subpass.frag.out b/Test/baseResults/spv.register.subpass.frag.out index c42832a9..21f79558 100644 --- a/Test/baseResults/spv.register.subpass.frag.out +++ b/Test/baseResults/spv.register.subpass.frag.out @@ -1,6 +1,6 @@ spv.register.subpass.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out index 2ee30bc5..a575e786 100644 --- a/Test/baseResults/spv.rw.autoassign.frag.out +++ b/Test/baseResults/spv.rw.autoassign.frag.out @@ -1,6 +1,6 @@ spv.rw.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/spv.sample.frag.out b/Test/baseResults/spv.sample.frag.out index e4d38f35..57fbf31d 100644 --- a/Test/baseResults/spv.sample.frag.out +++ b/Test/baseResults/spv.sample.frag.out @@ -1,6 +1,6 @@ spv.sample.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 13 Capability Shader diff --git a/Test/baseResults/spv.sampleId.frag.out b/Test/baseResults/spv.sampleId.frag.out index 894d8db8..1412da26 100644 --- a/Test/baseResults/spv.sampleId.frag.out +++ b/Test/baseResults/spv.sampleId.frag.out @@ -1,6 +1,6 @@ spv.sampleId.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Shader diff --git a/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out index 3a9872e3..28923255 100644 --- a/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out +++ b/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out @@ -1,6 +1,6 @@ spv.sampleMaskOverrideCoverage.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/spv.samplePosition.frag.out b/Test/baseResults/spv.samplePosition.frag.out index 882423ee..b06c7685 100644 --- a/Test/baseResults/spv.samplePosition.frag.out +++ b/Test/baseResults/spv.samplePosition.frag.out @@ -1,6 +1,6 @@ spv.samplePosition.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 30 Capability Shader diff --git a/Test/baseResults/spv.samplerlessTextureFunctions.frag.out b/Test/baseResults/spv.samplerlessTextureFunctions.frag.out index 0f09b43e..c12201e3 100644 --- a/Test/baseResults/spv.samplerlessTextureFunctions.frag.out +++ b/Test/baseResults/spv.samplerlessTextureFunctions.frag.out @@ -1,6 +1,6 @@ spv.samplerlessTextureFunctions.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 51 Capability Shader diff --git a/Test/baseResults/spv.scalarlayout.frag.out b/Test/baseResults/spv.scalarlayout.frag.out index 0168bc3e..1b26242d 100644 --- a/Test/baseResults/spv.scalarlayout.frag.out +++ b/Test/baseResults/spv.scalarlayout.frag.out @@ -1,7 +1,7 @@ spv.scalarlayout.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/spv.scalarlayoutfloat16.frag.out b/Test/baseResults/spv.scalarlayoutfloat16.frag.out index dac7e3a3..c88fa7f2 100644 --- a/Test/baseResults/spv.scalarlayoutfloat16.frag.out +++ b/Test/baseResults/spv.scalarlayoutfloat16.frag.out @@ -1,7 +1,7 @@ spv.scalarlayoutfloat16.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader diff --git a/Test/baseResults/spv.separate.frag.out b/Test/baseResults/spv.separate.frag.out index 27cd3be0..690ab2f6 100644 --- a/Test/baseResults/spv.separate.frag.out +++ b/Test/baseResults/spv.separate.frag.out @@ -1,7 +1,7 @@ spv.separate.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 319 Capability Shader diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out index 16d771fc..fe4326f2 100644 --- a/Test/baseResults/spv.set.vert.out +++ b/Test/baseResults/spv.set.vert.out @@ -1,6 +1,6 @@ spv.set.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out index 1c616ee5..3ddee0f2 100644 --- a/Test/baseResults/spv.shaderBallot.comp.out +++ b/Test/baseResults/spv.shaderBallot.comp.out @@ -1,6 +1,6 @@ spv.shaderBallot.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 318 Capability Shader diff --git a/Test/baseResults/spv.shaderBallotAMD.comp.out b/Test/baseResults/spv.shaderBallotAMD.comp.out index 62ce6f27..eb8f404f 100644 --- a/Test/baseResults/spv.shaderBallotAMD.comp.out +++ b/Test/baseResults/spv.shaderBallotAMD.comp.out @@ -1,6 +1,6 @@ spv.shaderBallotAMD.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 1343 Capability Shader diff --git a/Test/baseResults/spv.shaderDrawParams.vert.out b/Test/baseResults/spv.shaderDrawParams.vert.out index d6b43e8f..ad51de19 100644 --- a/Test/baseResults/spv.shaderDrawParams.vert.out +++ b/Test/baseResults/spv.shaderDrawParams.vert.out @@ -1,6 +1,6 @@ spv.shaderDrawParams.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader diff --git a/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/Test/baseResults/spv.shaderFragMaskAMD.frag.out index 788d3ee6..b1e5c0d6 100644 --- a/Test/baseResults/spv.shaderFragMaskAMD.frag.out +++ b/Test/baseResults/spv.shaderFragMaskAMD.frag.out @@ -1,6 +1,6 @@ spv.shaderFragMaskAMD.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 80 Capability Shader diff --git a/Test/baseResults/spv.shaderGroupVote.comp.out b/Test/baseResults/spv.shaderGroupVote.comp.out index e45f5858..a09e798d 100644 --- a/Test/baseResults/spv.shaderGroupVote.comp.out +++ b/Test/baseResults/spv.shaderGroupVote.comp.out @@ -1,6 +1,6 @@ spv.shaderGroupVote.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/spv.shaderImageFootprint.frag.out b/Test/baseResults/spv.shaderImageFootprint.frag.out index 8218ee42..75595648 100644 --- a/Test/baseResults/spv.shaderImageFootprint.frag.out +++ b/Test/baseResults/spv.shaderImageFootprint.frag.out @@ -1,6 +1,6 @@ spv.shaderImageFootprint.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 622 Capability Shader diff --git a/Test/baseResults/spv.shaderStencilExport.frag.out b/Test/baseResults/spv.shaderStencilExport.frag.out index 8fc691ee..37fce5fc 100644 --- a/Test/baseResults/spv.shaderStencilExport.frag.out +++ b/Test/baseResults/spv.shaderStencilExport.frag.out @@ -1,6 +1,6 @@ spv.shaderStencilExport.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 10 Capability Shader diff --git a/Test/baseResults/spv.shadingRate.frag.out b/Test/baseResults/spv.shadingRate.frag.out index 11477769..ce561132 100644 --- a/Test/baseResults/spv.shadingRate.frag.out +++ b/Test/baseResults/spv.shadingRate.frag.out @@ -1,6 +1,6 @@ spv.shadingRate.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 21 Capability Shader diff --git a/Test/baseResults/spv.shiftOps.frag.out b/Test/baseResults/spv.shiftOps.frag.out index 3085a55d..15df2365 100644 --- a/Test/baseResults/spv.shiftOps.frag.out +++ b/Test/baseResults/spv.shiftOps.frag.out @@ -1,6 +1,6 @@ spv.shiftOps.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader diff --git a/Test/baseResults/spv.shortCircuit.frag.out b/Test/baseResults/spv.shortCircuit.frag.out index d6518245..6104b04c 100644 --- a/Test/baseResults/spv.shortCircuit.frag.out +++ b/Test/baseResults/spv.shortCircuit.frag.out @@ -1,6 +1,6 @@ spv.shortCircuit.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 147 Capability Shader diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out index 627b31c1..8e666a60 100644 --- a/Test/baseResults/spv.simpleFunctionCall.frag.out +++ b/Test/baseResults/spv.simpleFunctionCall.frag.out @@ -1,6 +1,6 @@ spv.simpleFunctionCall.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 19 Capability Shader diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out index 85574585..ff51dc0d 100644 --- a/Test/baseResults/spv.simpleMat.vert.out +++ b/Test/baseResults/spv.simpleMat.vert.out @@ -2,7 +2,7 @@ spv.simpleMat.vert WARNING: 0:3: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/spv.smBuiltins.frag.out b/Test/baseResults/spv.smBuiltins.frag.out index fda06eb5..9f4cc60f 100644 --- a/Test/baseResults/spv.smBuiltins.frag.out +++ b/Test/baseResults/spv.smBuiltins.frag.out @@ -1,6 +1,6 @@ spv.smBuiltins.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/spv.smBuiltins.vert.out b/Test/baseResults/spv.smBuiltins.vert.out index 8423e5b8..0453b0cf 100644 --- a/Test/baseResults/spv.smBuiltins.vert.out +++ b/Test/baseResults/spv.smBuiltins.vert.out @@ -1,6 +1,6 @@ spv.smBuiltins.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out index 7fdea0c4..34142008 100644 --- a/Test/baseResults/spv.sparseTexture.frag.out +++ b/Test/baseResults/spv.sparseTexture.frag.out @@ -1,7 +1,7 @@ spv.sparseTexture.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 438 Capability Shader diff --git a/Test/baseResults/spv.sparseTextureClamp.frag.out b/Test/baseResults/spv.sparseTextureClamp.frag.out index ff7dce56..fedd64aa 100644 --- a/Test/baseResults/spv.sparseTextureClamp.frag.out +++ b/Test/baseResults/spv.sparseTextureClamp.frag.out @@ -1,7 +1,7 @@ spv.sparseTextureClamp.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 360 Capability Shader diff --git a/Test/baseResults/spv.specConst.vert.out b/Test/baseResults/spv.specConst.vert.out index 70fbd09e..116c136f 100644 --- a/Test/baseResults/spv.specConst.vert.out +++ b/Test/baseResults/spv.specConst.vert.out @@ -1,6 +1,6 @@ spv.specConst.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.specConstant.comp.out b/Test/baseResults/spv.specConstant.comp.out index 2f641501..e0ad6991 100644 --- a/Test/baseResults/spv.specConstant.comp.out +++ b/Test/baseResults/spv.specConstant.comp.out @@ -1,6 +1,6 @@ spv.specConstant.comp // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out index 931ba8d8..3b04e7cc 100644 --- a/Test/baseResults/spv.specConstant.vert.out +++ b/Test/baseResults/spv.specConstant.vert.out @@ -1,6 +1,6 @@ spv.specConstant.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 81 Capability Shader @@ -11,7 +11,7 @@ spv.specConstant.vert Source GLSL 400 Name 4 "main" Name 9 "arraySize" - Name 14 "foo(vf4[s2769];" + Name 14 "foo(vf4[s4529];" Name 13 "p" Name 17 "builtin_spec_constant(" Name 20 "color" @@ -102,10 +102,10 @@ spv.specConstant.vert Store 20(color) 46 48: 10 Load 22(ucol) Store 47(param) 48 - 49: 2 FunctionCall 14(foo(vf4[s2769];) 47(param) + 49: 2 FunctionCall 14(foo(vf4[s4529];) 47(param) Return FunctionEnd -14(foo(vf4[s2769];): 2 Function None 12 +14(foo(vf4[s4529];): 2 Function None 12 13(p): 11(ptr) FunctionParameter 15: Label 54: 24(ptr) AccessChain 53(dupUcol) 23 diff --git a/Test/baseResults/spv.specConstantComposite.vert.out b/Test/baseResults/spv.specConstantComposite.vert.out index 58d4b6a3..20a071b1 100644 --- a/Test/baseResults/spv.specConstantComposite.vert.out +++ b/Test/baseResults/spv.specConstantComposite.vert.out @@ -1,6 +1,6 @@ spv.specConstantComposite.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader diff --git a/Test/baseResults/spv.specConstantOperations.vert.out b/Test/baseResults/spv.specConstantOperations.vert.out index 0f141e38..747d50b5 100644 --- a/Test/baseResults/spv.specConstantOperations.vert.out +++ b/Test/baseResults/spv.specConstantOperations.vert.out @@ -1,6 +1,6 @@ spv.specConstantOperations.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 162 Capability Shader diff --git a/Test/baseResults/spv.ssbo.autoassign.frag.out b/Test/baseResults/spv.ssbo.autoassign.frag.out index 40afa15f..7d648479 100644 --- a/Test/baseResults/spv.ssbo.autoassign.frag.out +++ b/Test/baseResults/spv.ssbo.autoassign.frag.out @@ -1,6 +1,6 @@ spv.ssbo.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 99 Capability Shader diff --git a/Test/baseResults/spv.ssboAlias.frag.out b/Test/baseResults/spv.ssboAlias.frag.out index f03d2ca9..1711d9d9 100644 --- a/Test/baseResults/spv.ssboAlias.frag.out +++ b/Test/baseResults/spv.ssboAlias.frag.out @@ -1,6 +1,6 @@ spv.ssboAlias.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 44 Capability Shader diff --git a/Test/baseResults/spv.stereoViewRendering.tesc.out b/Test/baseResults/spv.stereoViewRendering.tesc.out index 43afff97..2cab0640 100644 --- a/Test/baseResults/spv.stereoViewRendering.tesc.out +++ b/Test/baseResults/spv.stereoViewRendering.tesc.out @@ -1,6 +1,6 @@ spv.stereoViewRendering.tesc // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Geometry diff --git a/Test/baseResults/spv.stereoViewRendering.vert.out b/Test/baseResults/spv.stereoViewRendering.vert.out index afd8c75a..acb8338c 100644 --- a/Test/baseResults/spv.stereoViewRendering.vert.out +++ b/Test/baseResults/spv.stereoViewRendering.vert.out @@ -1,6 +1,6 @@ spv.stereoViewRendering.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader diff --git a/Test/baseResults/spv.storageBuffer.vert.out b/Test/baseResults/spv.storageBuffer.vert.out index 5006e4cc..79cf9f19 100644 --- a/Test/baseResults/spv.storageBuffer.vert.out +++ b/Test/baseResults/spv.storageBuffer.vert.out @@ -1,6 +1,6 @@ spv.storageBuffer.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out index 4b357da8..d61c0e49 100644 --- a/Test/baseResults/spv.structAssignment.frag.out +++ b/Test/baseResults/spv.structAssignment.frag.out @@ -3,7 +3,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out index 6888a850..2a114d72 100644 --- a/Test/baseResults/spv.structDeref.frag.out +++ b/Test/baseResults/spv.structDeref.frag.out @@ -1,6 +1,6 @@ spv.structDeref.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 123 Capability Shader diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out index f1da59fa..e8f8b394 100644 --- a/Test/baseResults/spv.structure.frag.out +++ b/Test/baseResults/spv.structure.frag.out @@ -1,6 +1,6 @@ spv.structure.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader diff --git a/Test/baseResults/spv.subgroup.frag.out b/Test/baseResults/spv.subgroup.frag.out index 4dd636e5..ee932bfc 100644 --- a/Test/baseResults/spv.subgroup.frag.out +++ b/Test/baseResults/spv.subgroup.frag.out @@ -1,6 +1,6 @@ spv.subgroup.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 17 Capability Shader diff --git a/Test/baseResults/spv.subgroup.geom.out b/Test/baseResults/spv.subgroup.geom.out index a68343af..279e6466 100644 --- a/Test/baseResults/spv.subgroup.geom.out +++ b/Test/baseResults/spv.subgroup.geom.out @@ -1,6 +1,6 @@ spv.subgroup.geom // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Geometry diff --git a/Test/baseResults/spv.subgroup.tesc.out b/Test/baseResults/spv.subgroup.tesc.out index 4e362e2d..bc55b4e7 100644 --- a/Test/baseResults/spv.subgroup.tesc.out +++ b/Test/baseResults/spv.subgroup.tesc.out @@ -1,6 +1,6 @@ spv.subgroup.tesc // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Tessellation diff --git a/Test/baseResults/spv.subgroup.tese.out b/Test/baseResults/spv.subgroup.tese.out index e09f558d..6b0a5ce7 100644 --- a/Test/baseResults/spv.subgroup.tese.out +++ b/Test/baseResults/spv.subgroup.tese.out @@ -1,6 +1,6 @@ spv.subgroup.tese // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Tessellation diff --git a/Test/baseResults/spv.subgroup.vert.out b/Test/baseResults/spv.subgroup.vert.out index 2fbc92ba..6deaf552 100644 --- a/Test/baseResults/spv.subgroup.vert.out +++ b/Test/baseResults/spv.subgroup.vert.out @@ -1,6 +1,6 @@ spv.subgroup.vert // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 26 Capability Shader diff --git a/Test/baseResults/spv.subgroupArithmetic.comp.out b/Test/baseResults/spv.subgroupArithmetic.comp.out index f4e251a0..29ea9ece 100644 --- a/Test/baseResults/spv.subgroupArithmetic.comp.out +++ b/Test/baseResults/spv.subgroupArithmetic.comp.out @@ -1,6 +1,6 @@ spv.subgroupArithmetic.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 2085 Capability Shader diff --git a/Test/baseResults/spv.subgroupBallot.comp.out b/Test/baseResults/spv.subgroupBallot.comp.out index ea152d9a..9fe19648 100644 --- a/Test/baseResults/spv.subgroupBallot.comp.out +++ b/Test/baseResults/spv.subgroupBallot.comp.out @@ -1,6 +1,6 @@ spv.subgroupBallot.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 397 Capability Shader diff --git a/Test/baseResults/spv.subgroupBasic.comp.out b/Test/baseResults/spv.subgroupBasic.comp.out index 641534d5..2f6571b4 100644 --- a/Test/baseResults/spv.subgroupBasic.comp.out +++ b/Test/baseResults/spv.subgroupBasic.comp.out @@ -1,6 +1,6 @@ spv.subgroupBasic.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/spv.subgroupClustered.comp.out b/Test/baseResults/spv.subgroupClustered.comp.out index 150eb8aa..39712813 100644 --- a/Test/baseResults/spv.subgroupClustered.comp.out +++ b/Test/baseResults/spv.subgroupClustered.comp.out @@ -1,6 +1,6 @@ spv.subgroupClustered.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 737 Capability Shader diff --git a/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out b/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out new file mode 100644 index 00000000..263f48d0 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out @@ -0,0 +1,4280 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out new file mode 100644 index 00000000..47505596 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out @@ -0,0 +1,557 @@ +spv.subgroupExtendedTypesArithmeticNeg.comp +ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:61: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:62: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:63: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:66: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:67: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:68: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:71: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:72: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:73: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:76: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:77: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:78: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:81: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:82: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:83: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:86: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:87: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:88: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:91: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:92: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:93: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:96: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:97: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:98: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:101: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:102: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:103: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:106: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:107: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:108: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:111: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:112: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:113: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:116: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:117: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:118: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:121: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:122: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:123: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:126: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:127: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:128: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:131: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:132: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:133: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:136: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:137: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:138: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:141: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:142: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:143: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:146: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:147: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:148: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:151: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:152: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:153: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:156: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:157: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:158: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:161: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:162: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:163: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:166: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:167: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:168: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:171: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:172: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:173: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:176: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:177: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:178: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:181: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:182: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:183: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:186: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:187: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:188: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:191: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:192: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:193: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:196: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:197: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:198: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:201: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:202: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:203: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:206: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:207: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:208: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:211: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:212: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:213: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:216: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:217: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:218: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:221: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:222: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:223: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:226: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:227: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:228: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:231: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:232: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:233: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:236: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:237: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:238: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:241: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:242: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:243: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:246: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:247: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:248: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:251: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:252: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:253: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:256: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:257: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:258: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:259: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:261: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:262: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:263: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:264: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:266: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:267: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:268: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:269: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:271: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:272: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:273: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:274: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:276: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:277: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:278: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:279: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:281: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:282: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:283: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:284: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:286: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:287: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:288: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:289: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:291: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:292: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:293: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:294: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:296: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:297: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:298: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:299: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:301: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:302: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:303: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:304: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:306: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:307: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:308: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:309: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:311: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:312: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:313: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:314: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:316: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:317: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:318: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:319: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:321: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:322: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:323: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:324: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:326: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:327: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:328: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:329: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:331: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:332: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:333: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:334: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:336: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:337: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:338: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:339: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:341: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:342: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:343: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:344: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:346: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:347: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:348: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:349: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:351: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:352: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:353: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:354: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:356: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:357: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:358: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:359: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:361: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:362: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:363: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:364: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:366: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:367: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:368: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:369: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:371: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:372: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:373: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:374: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:376: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:377: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:378: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:379: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:381: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:382: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:383: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:384: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:386: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:387: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:388: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:389: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:391: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:392: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:393: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:394: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:396: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:397: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:398: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:399: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:401: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:402: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:403: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:404: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:406: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:407: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:408: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:409: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:411: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:412: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:413: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:414: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:416: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:417: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:418: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:419: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:421: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:422: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:423: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:424: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:426: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:427: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:428: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:429: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:431: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:432: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:433: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:434: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:436: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:437: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:438: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:439: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:441: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:442: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:443: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:444: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:446: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:447: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:448: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:449: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:451: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:452: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:453: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:454: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:456: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:457: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:458: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:459: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:461: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:462: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:463: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:464: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:466: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:467: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:468: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:469: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:471: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:472: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:473: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:474: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:476: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:477: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:478: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:479: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:481: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:482: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:483: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:484: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:486: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:487: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:488: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:489: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:491: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:492: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:493: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:494: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:496: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:497: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:498: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:499: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:501: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:502: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:503: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:504: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:506: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:507: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:508: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:509: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:511: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:512: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:513: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:514: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:516: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:517: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:518: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:519: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:521: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:522: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:523: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:524: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:526: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:527: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:528: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:529: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:531: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:532: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:533: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:534: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:536: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:537: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:538: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:539: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:541: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:542: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:543: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:544: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:546: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:547: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:548: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:549: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:551: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:552: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:553: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:554: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:556: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:557: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:558: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:559: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:561: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:562: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:563: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:564: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:566: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:567: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:568: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:569: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:571: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:572: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:573: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:574: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:576: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:577: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:578: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:579: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:581: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:582: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:583: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:584: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:586: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:587: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:588: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:589: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:591: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:592: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:593: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:594: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:596: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:597: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:598: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:599: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:601: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:602: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:603: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:604: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:606: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:607: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:608: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:609: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:611: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:612: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:613: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:614: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:616: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:617: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:618: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:619: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:621: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:622: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:623: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:624: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:626: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:627: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:628: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:629: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:631: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:632: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:633: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:634: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:636: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:637: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:638: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:639: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:641: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:642: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:643: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:644: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:646: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:647: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:648: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:649: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:651: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:652: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:653: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:654: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:656: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:657: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:658: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:659: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:661: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:662: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:663: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:664: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:666: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:667: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:668: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:669: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:671: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:672: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:673: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:674: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:676: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:677: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:678: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:679: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:681: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:682: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:683: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:684: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:686: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:687: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:688: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:689: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:691: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:692: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:693: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:694: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:696: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:697: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:698: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:699: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:701: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:702: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:703: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:704: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:706: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:707: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:708: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:709: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:711: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:712: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:713: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:714: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 552 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out b/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out new file mode 100644 index 00000000..9f6a8c0f --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out @@ -0,0 +1,560 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out new file mode 100644 index 00000000..534560d8 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out @@ -0,0 +1,61 @@ +spv.subgroupExtendedTypesBallotNeg.comp +ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:30: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:35: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:38: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:40: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:41: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:44: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:45: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:46: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:48: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:49: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:50: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:51: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:53: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:54: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:55: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:56: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:57: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:58: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:59: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:62: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:63: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:64: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:71: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:72: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:73: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:75: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:76: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:77: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:78: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:80: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:81: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:82: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:83: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:84: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:85: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:86: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:87: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 56 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out b/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out new file mode 100644 index 00000000..63196977 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out @@ -0,0 +1,9 @@ +spv.subgroupExtendedTypesBasic.comp +ERROR: #version: compute shaders require es profile with version 310 or above, or non-es profile with version 420 or above +ERROR: #version: statement must appear first in es-profile shader; before comments or newlines +ERROR: 1 compilation errors. No code generated. + + +ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out b/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out new file mode 100644 index 00000000..af3385ef --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out @@ -0,0 +1,1520 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out new file mode 100644 index 00000000..fd01ef39 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out @@ -0,0 +1,189 @@ +spv.subgroupExtendedTypesClusteredNeg.comp +ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:66: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:67: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:68: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:71: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:72: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:73: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:76: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:77: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:78: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:81: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:82: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:83: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:86: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:87: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:88: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:91: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:92: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:93: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:96: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:97: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:98: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:101: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:102: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:103: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:106: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:107: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:108: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:111: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:112: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:113: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:116: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:117: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:118: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:121: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:122: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:123: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:126: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:127: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:128: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:131: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:132: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:133: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:136: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:137: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:138: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:141: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:142: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:143: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:146: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:147: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:148: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:151: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:152: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:153: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:156: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:157: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:158: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:161: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:162: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:163: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:166: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:167: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:168: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:171: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:172: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:173: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:176: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:177: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:178: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:181: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:182: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:183: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:186: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:187: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:188: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:191: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:192: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:193: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:196: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:197: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:198: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:201: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:202: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:203: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:206: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:207: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:208: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:211: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:212: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:213: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:216: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:217: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:218: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:221: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:222: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:223: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:226: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:227: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:228: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:231: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:232: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:233: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:236: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:237: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:238: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:241: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:242: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:243: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:246: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:247: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:248: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:251: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:252: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:253: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 184 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out b/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out new file mode 100644 index 00000000..9de4b981 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out @@ -0,0 +1,1835 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out new file mode 100644 index 00000000..c029617f --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out @@ -0,0 +1,217 @@ +spv.subgroupExtendedTypesPartitionedNeg.comp +ERROR: 0:27: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:30: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:35: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:38: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:39: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:40: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:42: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:43: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:44: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:45: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:47: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:48: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:49: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:50: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:52: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:53: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:54: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:55: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:57: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:58: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:59: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:62: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:63: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:64: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:67: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:68: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:69: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:70: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:72: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:73: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:74: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:75: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:77: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:78: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:79: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:80: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:82: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:83: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:84: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:85: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:87: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:88: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:89: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:90: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:92: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:93: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:94: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:95: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:97: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:98: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:99: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:100: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:102: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:103: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:104: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:105: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:107: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:108: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:109: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:110: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:112: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:113: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:114: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:115: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:117: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:118: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:119: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:120: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:122: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:123: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:124: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:125: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:127: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:128: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:129: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:130: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:132: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:133: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:134: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:135: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:137: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:138: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:139: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:140: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:142: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:143: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:144: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:145: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:147: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:148: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:149: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:150: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:152: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:153: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:154: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:155: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:157: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:158: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:159: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:160: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:162: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:163: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:164: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:165: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:167: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:168: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:169: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:170: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:172: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:173: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:174: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:175: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:177: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:178: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:179: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:180: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:182: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:183: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:184: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:185: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:187: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:188: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:189: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:190: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:192: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:193: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:194: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:195: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:197: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:198: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:199: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:200: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:202: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:203: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:204: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:205: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:207: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:208: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:209: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:210: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:212: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:213: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:214: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:215: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:217: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:218: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:219: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:220: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:222: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:223: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:224: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:225: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:227: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:228: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:229: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:230: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:232: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:233: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:234: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:235: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:237: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:238: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:239: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:240: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:242: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:243: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:244: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:245: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:247: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:248: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:249: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:250: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:252: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:253: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:254: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:255: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:257: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:258: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:259: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:260: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:262: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:263: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:264: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:265: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:267: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:268: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:269: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:270: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:272: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:273: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:274: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:275: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:277: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:278: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:279: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:280: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:282: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:283: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:284: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:285: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:287: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:288: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:289: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:290: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 212 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out b/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out new file mode 100644 index 00000000..ebd6132e --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out @@ -0,0 +1,981 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out new file mode 100644 index 00000000..73b1597e --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out @@ -0,0 +1,117 @@ +spv.subgroupExtendedTypesQuadNeg.comp +ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:46: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:47: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:48: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:51: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:52: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:53: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:56: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:57: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:58: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:66: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:67: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:68: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:71: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:72: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:73: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:76: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:77: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:78: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:81: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:82: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:83: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:86: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:87: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:88: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:91: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:92: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:93: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:96: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:97: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:98: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:101: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:102: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:103: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:106: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:107: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:108: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:111: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:112: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:113: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:116: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:117: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:118: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:121: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:122: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:123: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:126: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:127: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:128: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:131: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:132: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:133: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:136: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:137: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:138: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:141: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:142: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:143: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:146: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:147: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:148: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:151: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:152: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:153: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:156: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:157: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:158: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:161: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:162: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:163: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 112 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out new file mode 100644 index 00000000..f2413892 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out @@ -0,0 +1,616 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out new file mode 100644 index 00000000..df1234b0 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out @@ -0,0 +1,61 @@ +spv.subgroupExtendedTypesShuffleNeg.comp +ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 56 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out new file mode 100644 index 00000000..06150b03 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out @@ -0,0 +1,616 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out new file mode 100644 index 00000000..a0437157 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out @@ -0,0 +1,61 @@ +spv.subgroupExtendedTypesShuffleRelativeNeg.comp +ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 56 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out b/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out new file mode 100644 index 00000000..63cc844d --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out @@ -0,0 +1,377 @@ +spv.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 diff --git a/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out new file mode 100644 index 00000000..2197d417 --- /dev/null +++ b/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out @@ -0,0 +1,33 @@ +spv.subgroupExtendedTypesVoteNeg.comp +ERROR: 0:29: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:30: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:31: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:32: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:34: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:35: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:36: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:37: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8 +ERROR: 0:39: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:40: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:41: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:44: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:45: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:46: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16 +ERROR: 0:51: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:52: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:53: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:56: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:57: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:58: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64 +ERROR: 0:61: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:62: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:63: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16 +ERROR: 28 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.subgroupPartitioned.comp.out b/Test/baseResults/spv.subgroupPartitioned.comp.out index 742e5bc4..e16e3091 100644 --- a/Test/baseResults/spv.subgroupPartitioned.comp.out +++ b/Test/baseResults/spv.subgroupPartitioned.comp.out @@ -1,6 +1,6 @@ spv.subgroupPartitioned.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 2506 Capability Shader diff --git a/Test/baseResults/spv.subgroupQuad.comp.out b/Test/baseResults/spv.subgroupQuad.comp.out index 435c490f..1c5e9634 100644 --- a/Test/baseResults/spv.subgroupQuad.comp.out +++ b/Test/baseResults/spv.subgroupQuad.comp.out @@ -1,6 +1,6 @@ spv.subgroupQuad.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 616 Capability Shader diff --git a/Test/baseResults/spv.subgroupShuffle.comp.out b/Test/baseResults/spv.subgroupShuffle.comp.out index 991c6fa7..532b0d28 100644 --- a/Test/baseResults/spv.subgroupShuffle.comp.out +++ b/Test/baseResults/spv.subgroupShuffle.comp.out @@ -1,6 +1,6 @@ spv.subgroupShuffle.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 379 Capability Shader diff --git a/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/Test/baseResults/spv.subgroupShuffleRelative.comp.out index 3aad7605..ae5589af 100644 --- a/Test/baseResults/spv.subgroupShuffleRelative.comp.out +++ b/Test/baseResults/spv.subgroupShuffleRelative.comp.out @@ -1,6 +1,6 @@ spv.subgroupShuffleRelative.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 379 Capability Shader diff --git a/Test/baseResults/spv.subgroupVote.comp.out b/Test/baseResults/spv.subgroupVote.comp.out index 4fdbb0be..6f6f8cfe 100644 --- a/Test/baseResults/spv.subgroupVote.comp.out +++ b/Test/baseResults/spv.subgroupVote.comp.out @@ -1,6 +1,6 @@ spv.subgroupVote.comp // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 216 Capability Shader diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out index 706624df..4bc556ad 100644 --- a/Test/baseResults/spv.subpass.frag.out +++ b/Test/baseResults/spv.subpass.frag.out @@ -1,6 +1,6 @@ spv.subpass.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 67 Capability Shader diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out index 47cc5d4c..729257c5 100644 --- a/Test/baseResults/spv.switch.frag.out +++ b/Test/baseResults/spv.switch.frag.out @@ -4,7 +4,7 @@ WARNING: 0:134: 'switch' : last case/default label not followed by statements WARNING: 0:139: 'switch' : last case/default label not followed by statements // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 269 Capability Shader diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out index 2a132d58..9b31a268 100644 --- a/Test/baseResults/spv.swizzle.frag.out +++ b/Test/baseResults/spv.swizzle.frag.out @@ -1,6 +1,6 @@ spv.swizzle.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 108 Capability Shader diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out index 0aee7ae7..79643607 100644 --- a/Test/baseResults/spv.swizzleInversion.frag.out +++ b/Test/baseResults/spv.swizzleInversion.frag.out @@ -1,6 +1,6 @@ spv.swizzleInversion.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 46 Capability Shader diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out index 02e4f669..db77cbbc 100644 --- a/Test/baseResults/spv.test.frag.out +++ b/Test/baseResults/spv.test.frag.out @@ -1,6 +1,6 @@ spv.test.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 55 Capability Shader diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out index 3303c88b..3b06c666 100644 --- a/Test/baseResults/spv.test.vert.out +++ b/Test/baseResults/spv.test.vert.out @@ -2,7 +2,7 @@ spv.test.vert WARNING: 0:5: attribute deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out index d518ad7b..3ea73382 100644 --- a/Test/baseResults/spv.texture.frag.out +++ b/Test/baseResults/spv.texture.frag.out @@ -4,7 +4,7 @@ WARNING: 0:11: varying deprecated in version 130; may be removed in future relea WARNING: 0:12: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 305 Capability Shader diff --git a/Test/baseResults/spv.texture.sampler.transform.frag.out b/Test/baseResults/spv.texture.sampler.transform.frag.out index 612f2a90..f2306e73 100644 --- a/Test/baseResults/spv.texture.sampler.transform.frag.out +++ b/Test/baseResults/spv.texture.sampler.transform.frag.out @@ -1,6 +1,6 @@ spv.texture.sampler.transform.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out index f3f979c9..3f9336ba 100644 --- a/Test/baseResults/spv.texture.vert.out +++ b/Test/baseResults/spv.texture.vert.out @@ -1,6 +1,6 @@ spv.texture.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 150 Capability Shader diff --git a/Test/baseResults/spv.textureBuffer.vert.out b/Test/baseResults/spv.textureBuffer.vert.out index 252a9c82..46312902 100644 --- a/Test/baseResults/spv.textureBuffer.vert.out +++ b/Test/baseResults/spv.textureBuffer.vert.out @@ -1,6 +1,6 @@ spv.textureBuffer.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader diff --git a/Test/baseResults/spv.textureGatherBiasLod.frag.out b/Test/baseResults/spv.textureGatherBiasLod.frag.out index cd18688f..aada70db 100644 --- a/Test/baseResults/spv.textureGatherBiasLod.frag.out +++ b/Test/baseResults/spv.textureGatherBiasLod.frag.out @@ -1,7 +1,7 @@ spv.textureGatherBiasLod.frag Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 298 Capability Shader diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out index e6fd3e0c..3f7fd127 100644 --- a/Test/baseResults/spv.types.frag.out +++ b/Test/baseResults/spv.types.frag.out @@ -1,6 +1,6 @@ spv.types.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 260 Capability Shader diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out index e6fe5e4d..612b323f 100644 --- a/Test/baseResults/spv.uint.frag.out +++ b/Test/baseResults/spv.uint.frag.out @@ -1,6 +1,6 @@ spv.uint.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 213 Capability Shader diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out index 0f9883e4..339d1dec 100644 --- a/Test/baseResults/spv.uniformArray.frag.out +++ b/Test/baseResults/spv.uniformArray.frag.out @@ -1,6 +1,6 @@ spv.uniformArray.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader diff --git a/Test/baseResults/spv.unit1.frag.out b/Test/baseResults/spv.unit1.frag.out index d64d437f..b2ec724b 100644 --- a/Test/baseResults/spv.unit1.frag.out +++ b/Test/baseResults/spv.unit1.frag.out @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:? 'h3' ( global highp float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 69 Capability Shader diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out index 87d934ec..cc6d96b3 100644 --- a/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/Test/baseResults/spv.variableArrayIndex.frag.out @@ -1,6 +1,6 @@ spv.variableArrayIndex.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 93 Capability Shader diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out index 2628f829..d5a59aea 100644 --- a/Test/baseResults/spv.varyingArray.frag.out +++ b/Test/baseResults/spv.varyingArray.frag.out @@ -1,6 +1,6 @@ spv.varyingArray.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 61 Capability Shader diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out index 60e9857b..799def9e 100644 --- a/Test/baseResults/spv.varyingArrayIndirect.frag.out +++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out @@ -1,6 +1,6 @@ spv.varyingArrayIndirect.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 70 Capability Shader diff --git a/Test/baseResults/spv.vecMatConstruct.frag.out b/Test/baseResults/spv.vecMatConstruct.frag.out index 57ecd67e..004b2bc6 100644 --- a/Test/baseResults/spv.vecMatConstruct.frag.out +++ b/Test/baseResults/spv.vecMatConstruct.frag.out @@ -1,6 +1,6 @@ spv.vecMatConstruct.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 62 Capability Shader diff --git a/Test/baseResults/spv.viewportArray2.tesc.out b/Test/baseResults/spv.viewportArray2.tesc.out index a4016d40..78ee00df 100644 --- a/Test/baseResults/spv.viewportArray2.tesc.out +++ b/Test/baseResults/spv.viewportArray2.tesc.out @@ -1,7 +1,7 @@ spv.viewportArray2.tesc Validation failed // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 25 Capability Geometry diff --git a/Test/baseResults/spv.viewportArray2.vert.out b/Test/baseResults/spv.viewportArray2.vert.out index df116cfc..6d419a62 100644 --- a/Test/baseResults/spv.viewportArray2.vert.out +++ b/Test/baseResults/spv.viewportArray2.vert.out @@ -1,6 +1,6 @@ spv.viewportArray2.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 19 Capability Shader diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out index fbaee878..804b32ca 100644 --- a/Test/baseResults/spv.voidFunction.frag.out +++ b/Test/baseResults/spv.voidFunction.frag.out @@ -1,6 +1,6 @@ spv.voidFunction.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader diff --git a/Test/baseResults/spv.volatileAtomic.comp.out b/Test/baseResults/spv.volatileAtomic.comp.out new file mode 100644 index 00000000..8326374d --- /dev/null +++ b/Test/baseResults/spv.volatileAtomic.comp.out @@ -0,0 +1,40 @@ +spv.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 diff --git a/Test/baseResults/spv.vulkan110.int16.frag.out b/Test/baseResults/spv.vulkan110.int16.frag.out index 11f1cd3e..b94593c8 100644 --- a/Test/baseResults/spv.vulkan110.int16.frag.out +++ b/Test/baseResults/spv.vulkan110.int16.frag.out @@ -1,6 +1,6 @@ spv.vulkan110.int16.frag // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 523 Capability Shader diff --git a/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/Test/baseResults/spv.vulkan110.storageBuffer.vert.out index a0194713..7592cf71 100644 --- a/Test/baseResults/spv.vulkan110.storageBuffer.vert.out +++ b/Test/baseResults/spv.vulkan110.storageBuffer.vert.out @@ -1,6 +1,6 @@ spv.vulkan110.storageBuffer.vert // Module Version 10300 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 31 Capability Shader diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out index d49bca09..132f5030 100644 --- a/Test/baseResults/spv.while-continue-break.vert.out +++ b/Test/baseResults/spv.while-continue-break.vert.out @@ -1,6 +1,6 @@ spv.while-continue-break.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 41 Capability Shader diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out index b507da3e..ea9a9801 100644 --- a/Test/baseResults/spv.while-simple.vert.out +++ b/Test/baseResults/spv.while-simple.vert.out @@ -1,6 +1,6 @@ spv.while-simple.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out index e2949723..67d44f4e 100644 --- a/Test/baseResults/spv.whileLoop.frag.out +++ b/Test/baseResults/spv.whileLoop.frag.out @@ -1,6 +1,6 @@ spv.whileLoop.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader diff --git a/Test/baseResults/spv.xfb.vert.out b/Test/baseResults/spv.xfb.vert.out index 3cd93d50..7eb38b39 100644 --- a/Test/baseResults/spv.xfb.vert.out +++ b/Test/baseResults/spv.xfb.vert.out @@ -1,6 +1,6 @@ spv.xfb.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 16 Capability Shader diff --git a/Test/baseResults/spv.xfb2.vert.out b/Test/baseResults/spv.xfb2.vert.out index a8551a1a..0f593dae 100644 --- a/Test/baseResults/spv.xfb2.vert.out +++ b/Test/baseResults/spv.xfb2.vert.out @@ -1,6 +1,6 @@ spv.xfb2.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader diff --git a/Test/baseResults/spv.xfb3.vert.out b/Test/baseResults/spv.xfb3.vert.out index 0218847e..77894b49 100644 --- a/Test/baseResults/spv.xfb3.vert.out +++ b/Test/baseResults/spv.xfb3.vert.out @@ -1,6 +1,6 @@ spv.xfb3.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader diff --git a/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out b/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out index 066aa3a0..52ce9652 100644 --- a/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out +++ b/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out @@ -1,6 +1,6 @@ spv.xfbOffsetOnBlockMembersAssignment.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out b/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out index 668d24a5..13be843b 100644 --- a/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out +++ b/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out @@ -1,6 +1,6 @@ spv.xfbOffsetOnStructMembersAssignment.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader diff --git a/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out b/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out index ebc49629..7159f4a8 100644 --- a/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out +++ b/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out @@ -1,6 +1,6 @@ spv.xfbOverlapOffsetCheckWithBlockAndMember.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader diff --git a/Test/baseResults/spv.xfbStrideJustOnce.vert.out b/Test/baseResults/spv.xfbStrideJustOnce.vert.out index 9b459b50..270d17a1 100644 --- a/Test/baseResults/spv.xfbStrideJustOnce.vert.out +++ b/Test/baseResults/spv.xfbStrideJustOnce.vert.out @@ -1,6 +1,6 @@ spv.xfbStrideJustOnce.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader diff --git a/Test/baseResults/vulkan.ast.vert.out b/Test/baseResults/vulkan.ast.vert.out index 72a45705..2bf2065a 100644 --- a/Test/baseResults/vulkan.ast.vert.out +++ b/Test/baseResults/vulkan.ast.vert.out @@ -258,7 +258,7 @@ Shader version: 450 0:? 2 (const int) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader diff --git a/Test/baseResults/web.array.frag.out b/Test/baseResults/web.array.frag.out index df70be12..61c9db99 100644 --- a/Test/baseResults/web.array.frag.out +++ b/Test/baseResults/web.array.frag.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 74 ; Schema: 0 OpCapability Shader diff --git a/Test/baseResults/web.basic.vert.out b/Test/baseResults/web.basic.vert.out index cd9805bd..46c147fa 100644 --- a/Test/baseResults/web.basic.vert.out +++ b/Test/baseResults/web.basic.vert.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 38 ; Schema: 0 OpCapability Shader diff --git a/Test/baseResults/web.builtins.frag.out b/Test/baseResults/web.builtins.frag.out index 2862dc15..ecf03047 100644 --- a/Test/baseResults/web.builtins.frag.out +++ b/Test/baseResults/web.builtins.frag.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 69 ; Schema: 0 OpCapability Shader diff --git a/Test/baseResults/web.builtins.vert.out b/Test/baseResults/web.builtins.vert.out index 9ea66726..597e7310 100644 --- a/Test/baseResults/web.builtins.vert.out +++ b/Test/baseResults/web.builtins.vert.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 33 ; Schema: 0 OpCapability Shader diff --git a/Test/baseResults/web.comp.out b/Test/baseResults/web.comp.out new file mode 100644 index 00000000..d0a911e2 --- /dev/null +++ b/Test/baseResults/web.comp.out @@ -0,0 +1,157 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 8 +; Bound: 108 +; Schema: 0 + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" %gl_NumWorkGroups %gl_WorkGroupID %gl_LocalInvocationID %gl_GlobalInvocationID %gl_LocalInvocationIndex + OpExecutionMode %main LocalSize 2 5 7 + OpSource ESSL 310 + OpName %main "main" + OpName %bName "bName" + OpMemberName %bName 0 "size" + OpMemberName %bName 1 "count" + OpMemberName %bName 2 "data" + OpName %bInst "bInst" + OpName %s "s" + OpName %arrX "arrX" + OpName %arrY "arrY" + OpName %arrZ "arrZ" + OpName %gl_NumWorkGroups "gl_NumWorkGroups" + OpName %gl_WorkGroupID "gl_WorkGroupID" + OpName %gl_LocalInvocationID "gl_LocalInvocationID" + OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" + OpName %gl_LocalInvocationIndex "gl_LocalInvocationIndex" + OpDecorate %_runtimearr_v4float ArrayStride 16 + OpMemberDecorate %bName 0 Offset 0 + OpMemberDecorate %bName 1 Offset 16 + OpMemberDecorate %bName 2 Offset 32 + OpDecorate %bName BufferBlock + OpDecorate %bInst DescriptorSet 0 + OpDecorate %bInst Binding 0 + OpDecorate %39 SpecId 18 + OpDecorate %41 SpecId 19 + OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize + OpDecorate %gl_NumWorkGroups BuiltIn NumWorkgroups + OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId + OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_LocalInvocationIndex BuiltIn LocalInvocationIndex + %void = OpTypeVoid + %3 = OpTypeFunction %void + %uint = OpTypeInt 32 0 + %uint_2 = OpConstant %uint 2 + %uint_264 = OpConstant %uint 264 + %int = OpTypeInt 32 1 + %v3uint = OpTypeVector %uint 3 + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_runtimearr_v4float = OpTypeRuntimeArray %v4float + %bName = OpTypeStruct %int %v3uint %_runtimearr_v4float +%_ptr_Uniform_bName = OpTypePointer Uniform %bName + %bInst = OpVariable %_ptr_Uniform_bName Uniform + %int_2 = OpConstant %int 2 + %int_0 = OpConstant %int 0 +%_ptr_Uniform_int = OpTypePointer Uniform %int + %float_7 = OpConstant %float 7 + %24 = OpConstantComposite %v4float %float_7 %float_7 %float_7 %float_7 +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %uint_1 = OpConstant %uint 1 + %uint_3400 = OpConstant %uint 3400 + %uint_72 = OpConstant %uint 72 +%uint_197645 = OpConstant %uint 197645 +%_arr_v4float_uint_197645 = OpTypeArray %v4float %uint_197645 +%_ptr_Workgroup__arr_v4float_uint_197645 = OpTypePointer Workgroup %_arr_v4float_uint_197645 + %s = OpVariable %_ptr_Workgroup__arr_v4float_uint_197645 Workgroup + %int_3 = OpConstant %int 3 + %float_0 = OpConstant %float 0 + %39 = OpSpecConstant %uint 2 + %uint_5 = OpConstant %uint 5 + %41 = OpSpecConstant %uint 7 +%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %39 %uint_5 %41 + %uint_0 = OpConstant %uint 0 +%_arr_int_44 = OpTypeArray %int %44 +%_ptr_Private__arr_int_44 = OpTypePointer Private %_arr_int_44 + %arrX = OpVariable %_ptr_Private__arr_int_44 Private +%_ptr_Private_int = OpTypePointer Private %int +%_arr_int_52 = OpTypeArray %int %52 +%_ptr_Private__arr_int_52 = OpTypePointer Private %_arr_int_52 + %arrY = OpVariable %_ptr_Private__arr_int_52 Private +%_arr_int_59 = OpTypeArray %int %59 +%_ptr_Private__arr_int_59 = OpTypePointer Private %_arr_int_59 + %arrZ = OpVariable %_ptr_Private__arr_int_59 Private +%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float + %int_1 = OpConstant %int 1 +%_ptr_Input_v3uint = OpTypePointer Input %v3uint +%gl_NumWorkGroups = OpVariable %_ptr_Input_v3uint Input +%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input +%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input +%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input +%_ptr_Input_uint = OpTypePointer Input %uint +%gl_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input +%_ptr_Uniform_v3uint = OpTypePointer Uniform %v3uint + %int_5 = OpConstant %int 5 + %int_197645 = OpConstant %int 197645 + %main = OpFunction %void None %3 + %5 = OpLabel + OpControlBarrier %uint_2 %uint_2 %uint_264 + %20 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %21 = OpLoad %int %20 + %22 = OpSDiv %int %21 %int_2 + %26 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22 + %27 = OpLoad %v4float %26 + %28 = OpFMul %v4float %27 %24 + %29 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22 + OpStore %29 %28 + OpMemoryBarrier %uint_1 %uint_3400 + OpMemoryBarrier %uint_2 %uint_3400 + OpMemoryBarrier %uint_1 %uint_264 + OpMemoryBarrier %uint_1 %uint_72 + %44 = OpCompositeExtract %uint %gl_WorkGroupSize 0 + %49 = OpAccessChain %_ptr_Private_int %arrX %int_0 + %50 = OpLoad %int %49 + %51 = OpConvertSToF %float %50 + %52 = OpCompositeExtract %uint %gl_WorkGroupSize 1 + %56 = OpAccessChain %_ptr_Private_int %arrY %int_0 + %57 = OpLoad %int %56 + %58 = OpConvertSToF %float %57 + %59 = OpCompositeExtract %uint %gl_WorkGroupSize 2 + %63 = OpAccessChain %_ptr_Private_int %arrZ %int_0 + %64 = OpLoad %int %63 + %65 = OpConvertSToF %float %64 + %66 = OpCompositeConstruct %v4float %float_0 %51 %58 %65 + %68 = OpAccessChain %_ptr_Workgroup_v4float %s %int_3 + OpStore %68 %66 + %72 = OpLoad %v3uint %gl_NumWorkGroups + %73 = OpIAdd %v3uint %72 %gl_WorkGroupSize + %75 = OpLoad %v3uint %gl_WorkGroupID + %76 = OpIAdd %v3uint %73 %75 + %78 = OpLoad %v3uint %gl_LocalInvocationID + %79 = OpIAdd %v3uint %76 %78 + %81 = OpLoad %v3uint %gl_GlobalInvocationID + %84 = OpLoad %uint %gl_LocalInvocationIndex + %85 = OpCompositeConstruct %v3uint %84 %84 %84 + %86 = OpIMul %v3uint %81 %85 + %87 = OpIAdd %v3uint %79 %86 + %89 = OpAccessChain %_ptr_Uniform_v3uint %bInst %int_1 + OpStore %89 %87 + %90 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %91 = OpAtomicIAdd %int %90 %uint_1 %uint_0 %int_2 + %92 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %93 = OpAtomicSMin %int %92 %uint_1 %uint_0 %int_2 + %94 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %95 = OpAtomicSMax %int %94 %uint_1 %uint_0 %int_2 + %96 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %97 = OpAtomicAnd %int %96 %uint_1 %uint_0 %int_2 + %98 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %99 = OpAtomicOr %int %98 %uint_1 %uint_0 %int_2 + %100 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %101 = OpAtomicXor %int %100 %uint_1 %uint_0 %int_2 + %102 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %103 = OpAtomicExchange %int %102 %uint_1 %uint_0 %int_2 + %104 = OpAccessChain %_ptr_Uniform_int %bInst %int_0 + %106 = OpAtomicCompareExchange %int %104 %uint_1 %uint_0 %uint_0 %int_2 %int_5 + OpReturn + OpFunctionEnd diff --git a/Test/baseResults/web.controlFlow.frag.out b/Test/baseResults/web.controlFlow.frag.out index ebfa5be6..57199898 100644 --- a/Test/baseResults/web.controlFlow.frag.out +++ b/Test/baseResults/web.controlFlow.frag.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 193 ; Schema: 0 OpCapability Shader diff --git a/Test/baseResults/web.operations.frag.out b/Test/baseResults/web.operations.frag.out index eb016246..d7e4d6e9 100644 --- a/Test/baseResults/web.operations.frag.out +++ b/Test/baseResults/web.operations.frag.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 207 ; Schema: 0 OpCapability Shader diff --git a/Test/baseResults/web.separate.frag.out b/Test/baseResults/web.separate.frag.out new file mode 100644 index 00000000..5a99298e --- /dev/null +++ b/Test/baseResults/web.separate.frag.out @@ -0,0 +1,178 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 8 +; Bound: 99 +; Schema: 0 + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Fragment %main "main" %color %i + OpExecutionMode %main OriginUpperLeft + OpSource ESSL 310 + OpName %main "main" + OpName %color "color" + OpName %t2d "t2d" + OpName %s "s" + OpName %t3d "t3d" + OpName %sA "sA" + OpName %sShadow "sShadow" + OpName %i "i" + OpName %tex2D "tex2D" + OpName %texCube "texCube" + OpName %tex2DArray "tex2DArray" + OpName %itex2D "itex2D" + OpName %itex3D "itex3D" + OpName %itexCube "itexCube" + OpName %itex2DArray "itex2DArray" + OpName %utex2D "utex2D" + OpName %utex3D "utex3D" + OpName %utexCube "utexCube" + OpName %utex2DArray "utex2DArray" + OpName %tex3D "tex3D" + OpDecorate %color Location 0 + OpDecorate %t2d RelaxedPrecision + OpDecorate %t2d DescriptorSet 0 + OpDecorate %t2d Binding 3 + OpDecorate %14 RelaxedPrecision + OpDecorate %s DescriptorSet 0 + OpDecorate %s Binding 0 + OpDecorate %23 RelaxedPrecision + OpDecorate %t3d DescriptorSet 0 + OpDecorate %t3d Binding 4 + OpDecorate %sA DescriptorSet 0 + OpDecorate %sA Binding 2 + OpDecorate %48 RelaxedPrecision + OpDecorate %51 RelaxedPrecision + OpDecorate %sShadow DescriptorSet 0 + OpDecorate %sShadow Binding 1 + OpDecorate %i RelaxedPrecision + OpDecorate %i Flat + OpDecorate %i Location 0 + OpDecorate %tex2D RelaxedPrecision + OpDecorate %tex2D DescriptorSet 0 + OpDecorate %tex2D Binding 5 + OpDecorate %texCube RelaxedPrecision + OpDecorate %texCube DescriptorSet 0 + OpDecorate %texCube Binding 6 + OpDecorate %tex2DArray DescriptorSet 0 + OpDecorate %tex2DArray Binding 15 + OpDecorate %itex2D DescriptorSet 0 + OpDecorate %itex2D Binding 16 + OpDecorate %itex3D DescriptorSet 0 + OpDecorate %itex3D Binding 17 + OpDecorate %itexCube DescriptorSet 0 + OpDecorate %itexCube Binding 18 + OpDecorate %itex2DArray DescriptorSet 0 + OpDecorate %itex2DArray Binding 19 + OpDecorate %utex2D DescriptorSet 0 + OpDecorate %utex2D Binding 20 + OpDecorate %utex3D DescriptorSet 0 + OpDecorate %utex3D Binding 21 + OpDecorate %utexCube DescriptorSet 0 + OpDecorate %utexCube Binding 22 + OpDecorate %utex2DArray DescriptorSet 0 + OpDecorate %utex2DArray Binding 23 + OpDecorate %tex3D DescriptorSet 0 + OpDecorate %tex3D Binding 36 + %void = OpTypeVoid + %3 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %color = OpVariable %_ptr_Output_v4float Output + %10 = OpTypeImage %float 2D 0 0 0 1 Unknown + %11 = OpTypeSampledImage %10 +%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 + %t2d = OpVariable %_ptr_UniformConstant_11 UniformConstant + %15 = OpTypeSampler +%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15 + %s = OpVariable %_ptr_UniformConstant_15 UniformConstant + %v2float = OpTypeVector %float 2 + %float_0_5 = OpConstant %float 0.5 + %22 = OpConstantComposite %v2float %float_0_5 %float_0_5 + %24 = OpTypeImage %float 3D 0 0 0 1 Unknown + %25 = OpTypeSampledImage %24 + %uint = OpTypeInt 32 0 + %uint_4 = OpConstant %uint 4 +%_arr_25_uint_4 = OpTypeArray %25 %uint_4 +%_ptr_UniformConstant__arr_25_uint_4 = OpTypePointer UniformConstant %_arr_25_uint_4 + %t3d = OpVariable %_ptr_UniformConstant__arr_25_uint_4 UniformConstant + %int = OpTypeInt 32 1 + %int_1 = OpConstant %int 1 +%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25 +%_arr_15_uint_4 = OpTypeArray %15 %uint_4 +%_ptr_UniformConstant__arr_15_uint_4 = OpTypePointer UniformConstant %_arr_15_uint_4 + %sA = OpVariable %_ptr_UniformConstant__arr_15_uint_4 UniformConstant + %int_2 = OpConstant %int 2 + %v3float = OpTypeVector %float 3 + %44 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 + %sShadow = OpVariable %_ptr_UniformConstant_15 UniformConstant +%_ptr_Input_int = OpTypePointer Input %int + %i = OpVariable %_ptr_Input_int Input + %tex2D = OpVariable %_ptr_UniformConstant_11 UniformConstant + %58 = OpTypeImage %float Cube 0 0 0 1 Unknown + %59 = OpTypeSampledImage %58 +%_ptr_UniformConstant_59 = OpTypePointer UniformConstant %59 + %texCube = OpVariable %_ptr_UniformConstant_59 UniformConstant + %62 = OpTypeImage %float 2D 0 1 0 1 Unknown + %63 = OpTypeSampledImage %62 +%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63 + %tex2DArray = OpVariable %_ptr_UniformConstant_63 UniformConstant + %66 = OpTypeImage %int 2D 0 0 0 1 Unknown + %67 = OpTypeSampledImage %66 +%_ptr_UniformConstant_67 = OpTypePointer UniformConstant %67 + %itex2D = OpVariable %_ptr_UniformConstant_67 UniformConstant + %70 = OpTypeImage %int 3D 0 0 0 1 Unknown + %71 = OpTypeSampledImage %70 +%_ptr_UniformConstant_71 = OpTypePointer UniformConstant %71 + %itex3D = OpVariable %_ptr_UniformConstant_71 UniformConstant + %74 = OpTypeImage %int Cube 0 0 0 1 Unknown + %75 = OpTypeSampledImage %74 +%_ptr_UniformConstant_75 = OpTypePointer UniformConstant %75 + %itexCube = OpVariable %_ptr_UniformConstant_75 UniformConstant + %78 = OpTypeImage %int 2D 0 1 0 1 Unknown + %79 = OpTypeSampledImage %78 +%_ptr_UniformConstant_79 = OpTypePointer UniformConstant %79 +%itex2DArray = OpVariable %_ptr_UniformConstant_79 UniformConstant + %82 = OpTypeImage %uint 2D 0 0 0 1 Unknown + %83 = OpTypeSampledImage %82 +%_ptr_UniformConstant_83 = OpTypePointer UniformConstant %83 + %utex2D = OpVariable %_ptr_UniformConstant_83 UniformConstant + %86 = OpTypeImage %uint 3D 0 0 0 1 Unknown + %87 = OpTypeSampledImage %86 +%_ptr_UniformConstant_87 = OpTypePointer UniformConstant %87 + %utex3D = OpVariable %_ptr_UniformConstant_87 UniformConstant + %90 = OpTypeImage %uint Cube 0 0 0 1 Unknown + %91 = OpTypeSampledImage %90 +%_ptr_UniformConstant_91 = OpTypePointer UniformConstant %91 + %utexCube = OpVariable %_ptr_UniformConstant_91 UniformConstant + %94 = OpTypeImage %uint 2D 0 1 0 1 Unknown + %95 = OpTypeSampledImage %94 +%_ptr_UniformConstant_95 = OpTypePointer UniformConstant %95 +%utex2DArray = OpVariable %_ptr_UniformConstant_95 UniformConstant + %tex3D = OpVariable %_ptr_UniformConstant_25 UniformConstant + %main = OpFunction %void None %3 + %5 = OpLabel + %14 = OpLoad %11 %t2d + %18 = OpLoad %15 %s + %19 = OpSampledImage %11 %14 %18 + %23 = OpImageSampleImplicitLod %v4float %19 %22 + OpStore %color %23 + %34 = OpAccessChain %_ptr_UniformConstant_25 %t3d %int_1 + %35 = OpLoad %25 %34 + %40 = OpAccessChain %_ptr_UniformConstant_15 %sA %int_2 + %41 = OpLoad %15 %40 + %42 = OpSampledImage %25 %35 %41 + %45 = OpImageSampleImplicitLod %v4float %42 %44 + %46 = OpLoad %v4float %color + %47 = OpFAdd %v4float %46 %45 + OpStore %color %47 + %48 = OpLoad %11 %t2d + %49 = OpLoad %15 %s + %50 = OpSampledImage %11 %48 %49 + %51 = OpImageSampleImplicitLod %v4float %50 %22 + %52 = OpLoad %v4float %color + %53 = OpFAdd %v4float %52 %51 + OpStore %color %53 + OpReturn + OpFunctionEnd diff --git a/Test/baseResults/web.texture.frag.out b/Test/baseResults/web.texture.frag.out index 6fbebb4d..baad5644 100644 --- a/Test/baseResults/web.texture.frag.out +++ b/Test/baseResults/web.texture.frag.out @@ -1,6 +1,6 @@ ; SPIR-V ; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 +; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 189 ; Schema: 0 OpCapability Shader diff --git a/Test/glsl.450.subgroup.frag b/Test/glsl.450.subgroup.frag index 61cfc8fb..d0b95737 100644 --- a/Test/glsl.450.subgroup.frag +++ b/Test/glsl.450.subgroup.frag @@ -114,12 +114,14 @@ void main (void) #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)); @@ -192,7 +194,9 @@ void clustered_works(vec4 f4) #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); diff --git a/Test/hlsl.doLoop.frag b/Test/hlsl.doLoop.frag index 0318dc8f..8f4bfdce 100644 --- a/Test/hlsl.doLoop.frag +++ b/Test/hlsl.doLoop.frag @@ -1,9 +1,29 @@ +void f0() { + [unroll] do {} while (false); +} + +void f1() { + [unroll] do {;} while (false); +} + +float f2(float input) { + do { return (float4)input; } while (input > 2.0); +} + +void f3(float input) { + do ++input; while (input < 10.0); +} + +void f4(float input) { + do while (++input < 10.0); while (++input < 10.0); // nest while inside do-while +} + float4 PixelShaderFunction(float input) : COLOR0 { - [unroll] do {} while (false); - [unroll] do {;} while (false); - do { return (float4)input; } while (input > 2.0); - do ++input; while (input < 10.0); - do while (++input < 10.0); while (++input < 10.0); // nest while inside do-while + f0(); + f1(); + f2(input); + f3(input); + f4(input); return (float4)input; } diff --git a/Test/hlsl.forLoop.frag b/Test/hlsl.forLoop.frag index 9cf60ee4..c0783dbd 100644 --- a/Test/hlsl.forLoop.frag +++ b/Test/hlsl.forLoop.frag @@ -1,17 +1,59 @@ +void f0() { + for (;;) ; +} + +void f1(float4 input) { + for (++input; ; ) ; +} + +void f2(float4 input) { + [unroll] for (; any(input != input); ) {} +} + +float f3(float4 input) { + for (; any(input != input); ) { return -input; } +} + +float f4(float4 input) { + for (--input; any(input != input); input += 2) { return -input; } +} + +void f5(float4 input) { + for (;;) if (input.x > 2.0) break; +} + +void f6(float4 input) { + for (;;) if (input.x > 2.0) continue; +} + +void f99() { + for (int first = 0, second = 1; ;) first + second; +} + +void f100(float ii) { + for (--ii, --ii, --ii;;) ii; +} + float4 PixelShaderFunction(float4 input) : COLOR0 { - for (;;) ; - for (++input; ; ) ; - [unroll] for (; any(input != input); ) {} - for (; any(input != input); ) { return -input; } - for (--input; any(input != input); input += 2) { return -input; } - for (;;) if (input.x > 2.0) break; - for (;;) if (input.x > 2.0) continue; + 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; - for (int first = 0, second = 1; ;) first + second; + + 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; - for (--ii, --ii, --ii;;) ii; + + f100(ii); + + return input; } diff --git a/Test/hlsl.format.rwtexture.frag b/Test/hlsl.format.rwtexture.frag new file mode 100644 index 00000000..87ee7de7 --- /dev/null +++ b/Test/hlsl.format.rwtexture.frag @@ -0,0 +1,63 @@ +SamplerState g_sSamp : register(s0); + +[[spv::format_rgba32f]] RWTexture1D g_tTex1df4 : register(t0); +[[spv::format_rg32f]] RWTexture1D g_tTex1di4; +[[spv::format_rgba8snorm]] RWTexture1D g_tTex1du4; + +[[spv::format_rgba8i]] RWTexture2D g_tTex2df4; +[[spv::format_r11fg11fb10f]] RWTexture2D g_tTex2di4; +[[spv::format_r8snorm]] RWTexture2D g_tTex2du4; + +[[spv::format_rg8]] [[spv::nonwritable]] RWTexture3D g_tTex3df4; +[[spv::format_rgba16i]] [[spv::nonreadable]] RWTexture3D g_tTex3di4; +[[spv::format_r8i]] [[spv::nonwritable]] [[spv::nonreadable]] RWTexture3D g_tTex3du4; + +[[spv::format_rgba8ui]] RWTexture1DArray g_tTex1df4a; +[[spv::format_rg32ui]] RWTexture1DArray g_tTex1di4a; +[[spv::format_r16ui]] RWTexture1DArray g_tTex1du4a; + +[[spv::format_rgb10a2ui]] RWTexture2DArray g_tTex2df4a; +[[spv::format_r8ui]] RWTexture2DArray g_tTex2di4a; +[[spv::format_rgba16f]] RWTexture2DArray g_tTex2du4a; + +[[spv::format_rgba8 ]] RWTexture2DArray g_tTex01; +[[spv::format_rg16f ]] RWTexture2DArray g_tTex02; +[[spv::format_r16f ]] RWTexture2DArray g_tTex03; +[[spv::format_rgb10a2 ]] RWTexture2DArray g_tTex04; +[[spv::format_rg16 ]] RWTexture2DArray g_tTex05; +[[spv::format_r32f ]] RWTexture2DArray g_tTex06; +[[spv::format_rgba16 ]] RWTexture2DArray g_tTex07; +[[spv::format_r16 ]] RWTexture2DArray g_tTex08; +[[spv::format_r8 ]] RWTexture2DArray g_tTex09; +[[spv::format_rgba16snorm ]] RWTexture2DArray g_tTex10; +[[spv::format_rg16snorm ]] RWTexture2DArray g_tTex11; +[[spv::format_r16snorm ]] RWTexture2DArray g_tTex12; +[[spv::format_r8snorm ]] RWTexture2DArray g_tTex13; +[[spv::format_rgba32i ]] RWTexture2DArray g_tTex14; +[[spv::format_r32i ]] RWTexture2DArray g_tTex15; +[[spv::format_r32ui ]] RWTexture2DArray g_tTex16; +[[spv::format_rg16i ]] RWTexture2DArray g_tTex17; +[[spv::format_r16i ]] RWTexture2DArray g_tTex18; +[[spv::format_rg32i ]] RWTexture2DArray g_tTex19; +[[spv::format_rg8i ]] RWTexture2DArray g_tTex20; +[[spv::format_rg8ui ]] RWTexture2DArray g_tTex21; +[[spv::format_rgba32ui ]] RWTexture2DArray g_tTex22; +[[spv::format_rgba16ui ]] RWTexture2DArray g_tTex23; +[[spv::format_rg32ui ]] RWTexture2DArray g_tTex24; +[[spv::format_rg16ui ]] RWTexture2DArray g_tTex25; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.if.frag b/Test/hlsl.if.frag index b62eda15..a2e47f6a 100644 --- a/Test/hlsl.if.frag +++ b/Test/hlsl.if.frag @@ -1,12 +1,24 @@ +float4 f0(float4 input) { + if (all(input == input)) + return input; + else + return -input; +} + +float4 f1(float4 input) { + if (all(input == input)) { + return input; + } else { + return -input; + } +} + float4 PixelShaderFunction(float4 input) : COLOR0 { if (all(input == input)) return input; - if (all(input == input)) - return input; - else - return -input; + f0(input); if (all(input == input)) ; @@ -20,11 +32,7 @@ float4 PixelShaderFunction(float4 input) : COLOR0 return input; } - if (all(input == input)) { - return input; - } else { - return -input; - } + f1(input); int ii; if (float ii = input.z) diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag old mode 100644 new mode 100755 index ffa3c254..280e2312 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -53,6 +53,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int in 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); diff --git a/Test/nonuniform.frag b/Test/nonuniform.frag index 3f3dd67a..e98aacc3 100644 --- a/Test/nonuniform.frag +++ b/Test/nonuniform.frag @@ -22,12 +22,12 @@ void main() nonuniformEXT const int nu_ci = 2; // ERROR, const foo(nu_li, nu_li); - + int table[5]; int a; nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2); nu_li = nonuniformEXT(a, a); // ERROR, too many arguments nu_li = nonuniformEXT(); // ERROR, no arguments + nu_li = table[nonuniformEXT(3)]; } - layout(location=1) in struct S { float a; nonuniformEXT float b; } ins; // ERROR, not on member layout(location=3) in inbName { float a; nonuniformEXT float b; } inb; // ERROR, not on member diff --git a/Test/runtests b/Test/runtests index 8e31c069..23406dc3 100755 --- a/Test/runtests +++ b/Test/runtests @@ -1,11 +1,16 @@ #!/usr/bin/env bash -TARGETDIR=localResults +# 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=../build/install/bin/glslangValidator -REMAPEXE=../build/install/bin/spirv-remap +EXE=${2:-../build/install/bin/glslangValidator} +REMAPEXE=${3:-../build/install/bin/spirv-remap} HASERROR=0 -mkdir -p localResults +mkdir -p $TARGETDIR if [ -a localtestlist ] then @@ -55,13 +60,13 @@ diff -b $BASEDIR/hlsl.automap.frag.out $TARGETDIR/hlsl.automap.frag.out || HASER # multi-threaded test # echo Comparing single thread to multithread for all tests in current directory... -$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > singleThread.out -$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > multiThread.out -diff singleThread.out multiThread.out || HASERROR=1 +$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 singleThread.out - rm multiThread.out + rm $TARGETDIR/singleThread.out + rm $TARGETDIR/multiThread.out fi # diff --git a/Test/spv.8bit-16bit-construction.frag b/Test/spv.8bit-16bit-construction.frag new file mode 100644 index 00000000..573fa548 --- /dev/null +++ b/Test/spv.8bit-16bit-construction.frag @@ -0,0 +1,22 @@ +#version 450 core + +#extension GL_EXT_shader_8bit_storage : enable +#extension GL_EXT_shader_16bit_storage : enable + +buffer B +{ + int8_t i8_from_i16; + int16_t i16_from_i8; + uint8_t u8_from_u16; + uint16_t u16_from_u8; + float16_t f16_from_i8; +}; + +void main() +{ + i8_from_i16 = int8_t(int16_t(1)); + i16_from_i8 = int16_t(int8_t(1)); + u8_from_u16 = uint8_t(uint16_t(1)); + u16_from_u8 = uint16_t(uint8_t(1)); + f16_from_i8 = float16_t(int8_t(1)); +} diff --git a/Test/spv.bufferhandleUvec2.frag b/Test/spv.bufferhandleUvec2.frag new file mode 100644 index 00000000..bc86822b --- /dev/null +++ b/Test/spv.bufferhandleUvec2.frag @@ -0,0 +1,32 @@ +#version 450 + +#extension GL_EXT_buffer_reference_uvec2 : enable + +layout(buffer_reference, std430) buffer blockType { + layout(offset = 0) int a; + layout(offset = 4) int b; + layout(offset = 8) int c; + layout(offset = 12) int d; + layout(offset = 16) int e; +}; + +layout(std430) buffer t2 { + blockType f; + blockType g; +} t; + +flat in uvec2 h, i; + +void main() { + + blockType b1[2] = blockType[2](blockType(h), blockType(i)); + b1[0].a = b1[1].b; + blockType b2 = blockType(h); + blockType b3 = blockType(i); + b2.a = b3.b; + uvec2 j = uvec2(b2); + uint carry; + j.x = uaddCarry(j.x, 256, carry); + j.y += carry; + b2 = blockType(j); +} diff --git a/Test/spv.controlFlowAttributes.frag b/Test/spv.controlFlowAttributes.frag index 6d90c0db..cedd6022 100644 --- a/Test/spv.controlFlowAttributes.frag +++ b/Test/spv.controlFlowAttributes.frag @@ -4,11 +4,18 @@ bool cond; +void f0() { + [[loop]] for (;;) { } +} + +void f1() { + [[dont_unroll]] while(true) { } +} + void main() { [[unroll]] for (int i = 0; i < 8; ++i) { } - [[loop]] for (;;) { } - [[dont_unroll]] while(true) { } + f0(); [[dependency_infinite]] do { } while(true); [[dependency_length(1+3)]] for (int i = 0; i < 8; ++i) { } [[flatten]] if (cond) { } else { } diff --git a/Test/spv.dead-after-continue.vert b/Test/spv.dead-after-continue.vert new file mode 100644 index 00000000..86e8eea8 --- /dev/null +++ b/Test/spv.dead-after-continue.vert @@ -0,0 +1,14 @@ +#version 450 + +layout(location =0 ) in int c; +layout(location =0 ) out int o; + +void main() { + int i; + for (i=0; i < 5; i++) { + o = 1; + continue; + o = 2; + } + o = 3; +} diff --git a/Test/spv.dead-after-discard.frag b/Test/spv.dead-after-discard.frag new file mode 100644 index 00000000..769592bd --- /dev/null +++ b/Test/spv.dead-after-discard.frag @@ -0,0 +1,10 @@ +#version 450 + +layout(location =0 ) in float c; +layout(location =0 ) out int o; + +void main() { + o = 1; + discard; + o = 3; +} diff --git a/Test/spv.dead-after-loop-break.vert b/Test/spv.dead-after-loop-break.vert new file mode 100644 index 00000000..5498497c --- /dev/null +++ b/Test/spv.dead-after-loop-break.vert @@ -0,0 +1,19 @@ +#version 450 + +layout(location =0 ) in int c; +layout(location =0 ) out int o; + +void main() { + int i; + o = 1; + for (i=0; i < 5; i++) { + o = 2; + if (i==c) { + o = 3; + break; + o = 4; + } + o = 5; + } + o = 6; +} diff --git a/Test/spv.dead-after-return.vert b/Test/spv.dead-after-return.vert new file mode 100644 index 00000000..71726963 --- /dev/null +++ b/Test/spv.dead-after-return.vert @@ -0,0 +1,10 @@ +#version 450 + +layout(location =0 ) in int c; +layout(location =0 ) out int o; + +void main() { + o = 1; + return; + o = 3; +} diff --git a/Test/spv.dead-after-switch-break.vert b/Test/spv.dead-after-switch-break.vert new file mode 100644 index 00000000..b1483e8d --- /dev/null +++ b/Test/spv.dead-after-switch-break.vert @@ -0,0 +1,15 @@ +#version 450 + +layout(location =0 ) in int c; +layout(location =0 ) out int o; + +void main() { + int i; + switch(c) { + case 0: o=1; + break; + o=2; + default: break; + } + o = 3; +} diff --git a/Test/spv.dead-complex-continue-after-return.vert b/Test/spv.dead-complex-continue-after-return.vert new file mode 100644 index 00000000..85932a36 --- /dev/null +++ b/Test/spv.dead-complex-continue-after-return.vert @@ -0,0 +1,19 @@ +#version 450 + +layout(location =0 ) in int c; +layout(location =0 ) out int o; + +void main() { + int i = 0; + o = 1; + // This has non-trivial continue target. + for (i=0; i < 5; ++i, o=99) { + o = 2; + return; + o = 3; + } + // This is considered reachable since Glslang codegen will + // create a conditional branch in the header, and one arm + // of that branch reaches this merge block. + o = 4; +} diff --git a/Test/spv.dead-complex-merge-after-return.vert b/Test/spv.dead-complex-merge-after-return.vert new file mode 100644 index 00000000..2fff1a29 --- /dev/null +++ b/Test/spv.dead-complex-merge-after-return.vert @@ -0,0 +1,23 @@ +#version 450 + +layout(location =0 ) in int c; +layout(location =0 ) out int o; + +void main() { + int i = 0; + o = 1; + do { + o = 2; + return; + o = 3; + } while(i++ < 5); + + // All this is a dead merge block. + o = 4; + if (c==4) { + o = 100; + } else { + o = 200; + } + o = 300; +} diff --git a/Test/spv.subgroupExtendedTypesArithmetic.comp b/Test/spv.subgroupExtendedTypesArithmetic.comp new file mode 100644 index 00000000..f58268f5 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesArithmetic.comp @@ -0,0 +1,715 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_arithmetic: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupAdd(data[0].i8.x); + data[invocation].i8.xy = subgroupAdd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz); + data[invocation].i8 = subgroupAdd(data[3].i8); + + data[invocation].i8.x = subgroupMul(data[0].i8.x); + data[invocation].i8.xy = subgroupMul(data[1].i8.xy); + data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz); + data[invocation].i8 = subgroupMul(data[3].i8); + + data[invocation].i8.x = subgroupMin(data[0].i8.x); + data[invocation].i8.xy = subgroupMin(data[1].i8.xy); + data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz); + data[invocation].i8 = subgroupMin(data[3].i8); + + data[invocation].i8.x = subgroupMax(data[0].i8.x); + data[invocation].i8.xy = subgroupMax(data[1].i8.xy); + data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz); + data[invocation].i8 = subgroupMax(data[3].i8); + + data[invocation].i8.x = subgroupAnd(data[0].i8.x); + data[invocation].i8.xy = subgroupAnd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz); + data[invocation].i8 = subgroupAnd(data[3].i8); + + data[invocation].i8.x = subgroupOr(data[0].i8.x); + data[invocation].i8.xy = subgroupOr(data[1].i8.xy); + data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz); + data[invocation].i8 = subgroupOr(data[3].i8); + + data[invocation].i8.x = subgroupXor(data[0].i8.x); + data[invocation].i8.xy = subgroupXor(data[1].i8.xy); + data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz); + data[invocation].i8 = subgroupXor(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveAdd(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveMul(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveMin(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveMax(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveAnd(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveOr(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveXor(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveAdd(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveMul(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveMin(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveMax(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveAnd(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveOr(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveXor(data[3].i8); + + data[invocation].u8.x = subgroupAdd(data[0].u8.x); + data[invocation].u8.xy = subgroupAdd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz); + data[invocation].u8 = subgroupAdd(data[3].u8); + + data[invocation].u8.x = subgroupMul(data[0].u8.x); + data[invocation].u8.xy = subgroupMul(data[1].u8.xy); + data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz); + data[invocation].u8 = subgroupMul(data[3].u8); + + data[invocation].u8.x = subgroupMin(data[0].u8.x); + data[invocation].u8.xy = subgroupMin(data[1].u8.xy); + data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz); + data[invocation].u8 = subgroupMin(data[3].u8); + + data[invocation].u8.x = subgroupMax(data[0].u8.x); + data[invocation].u8.xy = subgroupMax(data[1].u8.xy); + data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz); + data[invocation].u8 = subgroupMax(data[3].u8); + + data[invocation].u8.x = subgroupAnd(data[0].u8.x); + data[invocation].u8.xy = subgroupAnd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz); + data[invocation].u8 = subgroupAnd(data[3].u8); + + data[invocation].u8.x = subgroupOr(data[0].u8.x); + data[invocation].u8.xy = subgroupOr(data[1].u8.xy); + data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz); + data[invocation].u8 = subgroupOr(data[3].u8); + + data[invocation].u8.x = subgroupXor(data[0].u8.x); + data[invocation].u8.xy = subgroupXor(data[1].u8.xy); + data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz); + data[invocation].u8 = subgroupXor(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveAdd(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveMul(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveMin(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveMax(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveAnd(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveOr(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveXor(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveAdd(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveMul(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveMin(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveMax(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveAnd(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveOr(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveXor(data[3].u8); + + data[invocation].i16.x = subgroupAdd(data[0].i16.x); + data[invocation].i16.xy = subgroupAdd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz); + data[invocation].i16 = subgroupAdd(data[3].i16); + + data[invocation].i16.x = subgroupMul(data[0].i16.x); + data[invocation].i16.xy = subgroupMul(data[1].i16.xy); + data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz); + data[invocation].i16 = subgroupMul(data[3].i16); + + data[invocation].i16.x = subgroupMin(data[0].i16.x); + data[invocation].i16.xy = subgroupMin(data[1].i16.xy); + data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz); + data[invocation].i16 = subgroupMin(data[3].i16); + + data[invocation].i16.x = subgroupMax(data[0].i16.x); + data[invocation].i16.xy = subgroupMax(data[1].i16.xy); + data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz); + data[invocation].i16 = subgroupMax(data[3].i16); + + data[invocation].i16.x = subgroupAnd(data[0].i16.x); + data[invocation].i16.xy = subgroupAnd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz); + data[invocation].i16 = subgroupAnd(data[3].i16); + + data[invocation].i16.x = subgroupOr(data[0].i16.x); + data[invocation].i16.xy = subgroupOr(data[1].i16.xy); + data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz); + data[invocation].i16 = subgroupOr(data[3].i16); + + data[invocation].i16.x = subgroupXor(data[0].i16.x); + data[invocation].i16.xy = subgroupXor(data[1].i16.xy); + data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz); + data[invocation].i16 = subgroupXor(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveAdd(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveMul(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveMin(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveMax(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveAnd(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveOr(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveXor(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveAdd(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveMul(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveMin(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveMax(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveAnd(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveOr(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveXor(data[3].i16); + + data[invocation].u16.x = subgroupAdd(data[0].u16.x); + data[invocation].u16.xy = subgroupAdd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz); + data[invocation].u16 = subgroupAdd(data[3].u16); + + data[invocation].u16.x = subgroupMul(data[0].u16.x); + data[invocation].u16.xy = subgroupMul(data[1].u16.xy); + data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz); + data[invocation].u16 = subgroupMul(data[3].u16); + + data[invocation].u16.x = subgroupMin(data[0].u16.x); + data[invocation].u16.xy = subgroupMin(data[1].u16.xy); + data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz); + data[invocation].u16 = subgroupMin(data[3].u16); + + data[invocation].u16.x = subgroupMax(data[0].u16.x); + data[invocation].u16.xy = subgroupMax(data[1].u16.xy); + data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz); + data[invocation].u16 = subgroupMax(data[3].u16); + + data[invocation].u16.x = subgroupAnd(data[0].u16.x); + data[invocation].u16.xy = subgroupAnd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz); + data[invocation].u16 = subgroupAnd(data[3].u16); + + data[invocation].u16.x = subgroupOr(data[0].u16.x); + data[invocation].u16.xy = subgroupOr(data[1].u16.xy); + data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz); + data[invocation].u16 = subgroupOr(data[3].u16); + + data[invocation].u16.x = subgroupXor(data[0].u16.x); + data[invocation].u16.xy = subgroupXor(data[1].u16.xy); + data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz); + data[invocation].u16 = subgroupXor(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveAdd(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveMul(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveMin(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveMax(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveAnd(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveOr(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveXor(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveAdd(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveMul(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveMin(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveMax(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveAnd(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveOr(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveXor(data[3].u16); + + data[invocation].i64.x = subgroupAdd(data[0].i64.x); + data[invocation].i64.xy = subgroupAdd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz); + data[invocation].i64 = subgroupAdd(data[3].i64); + + data[invocation].i64.x = subgroupMul(data[0].i64.x); + data[invocation].i64.xy = subgroupMul(data[1].i64.xy); + data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz); + data[invocation].i64 = subgroupMul(data[3].i64); + + data[invocation].i64.x = subgroupMin(data[0].i64.x); + data[invocation].i64.xy = subgroupMin(data[1].i64.xy); + data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz); + data[invocation].i64 = subgroupMin(data[3].i64); + + data[invocation].i64.x = subgroupMax(data[0].i64.x); + data[invocation].i64.xy = subgroupMax(data[1].i64.xy); + data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz); + data[invocation].i64 = subgroupMax(data[3].i64); + + data[invocation].i64.x = subgroupAnd(data[0].i64.x); + data[invocation].i64.xy = subgroupAnd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz); + data[invocation].i64 = subgroupAnd(data[3].i64); + + data[invocation].i64.x = subgroupOr(data[0].i64.x); + data[invocation].i64.xy = subgroupOr(data[1].i64.xy); + data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz); + data[invocation].i64 = subgroupOr(data[3].i64); + + data[invocation].i64.x = subgroupXor(data[0].i64.x); + data[invocation].i64.xy = subgroupXor(data[1].i64.xy); + data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz); + data[invocation].i64 = subgroupXor(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveAdd(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveMul(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveMin(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveMax(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveAnd(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveOr(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveXor(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveAdd(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveMul(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveMin(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveMax(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveAnd(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveOr(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveXor(data[3].i64); + + data[invocation].u64.x = subgroupAdd(data[0].u64.x); + data[invocation].u64.xy = subgroupAdd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz); + data[invocation].u64 = subgroupAdd(data[3].u64); + + data[invocation].u64.x = subgroupMul(data[0].u64.x); + data[invocation].u64.xy = subgroupMul(data[1].u64.xy); + data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz); + data[invocation].u64 = subgroupMul(data[3].u64); + + data[invocation].u64.x = subgroupMin(data[0].u64.x); + data[invocation].u64.xy = subgroupMin(data[1].u64.xy); + data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz); + data[invocation].u64 = subgroupMin(data[3].u64); + + data[invocation].u64.x = subgroupMax(data[0].u64.x); + data[invocation].u64.xy = subgroupMax(data[1].u64.xy); + data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz); + data[invocation].u64 = subgroupMax(data[3].u64); + + data[invocation].u64.x = subgroupAnd(data[0].u64.x); + data[invocation].u64.xy = subgroupAnd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz); + data[invocation].u64 = subgroupAnd(data[3].u64); + + data[invocation].u64.x = subgroupOr(data[0].u64.x); + data[invocation].u64.xy = subgroupOr(data[1].u64.xy); + data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz); + data[invocation].u64 = subgroupOr(data[3].u64); + + data[invocation].u64.x = subgroupXor(data[0].u64.x); + data[invocation].u64.xy = subgroupXor(data[1].u64.xy); + data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz); + data[invocation].u64 = subgroupXor(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveAdd(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveMul(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveMin(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveMax(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveAnd(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveOr(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveXor(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveAdd(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveMul(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveMin(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveMax(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveAnd(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveOr(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveXor(data[3].u64); + + data[invocation].f16.x = subgroupAdd(data[0].f16.x); + data[invocation].f16.xy = subgroupAdd(data[1].f16.xy); + data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz); + data[invocation].f16 = subgroupAdd(data[3].f16); + + data[invocation].f16.x = subgroupMul(data[0].f16.x); + data[invocation].f16.xy = subgroupMul(data[1].f16.xy); + data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz); + data[invocation].f16 = subgroupMul(data[3].f16); + + data[invocation].f16.x = subgroupMin(data[0].f16.x); + data[invocation].f16.xy = subgroupMin(data[1].f16.xy); + data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz); + data[invocation].f16 = subgroupMin(data[3].f16); + + data[invocation].f16.x = subgroupMax(data[0].f16.x); + data[invocation].f16.xy = subgroupMax(data[1].f16.xy); + data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz); + data[invocation].f16 = subgroupMax(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveAdd(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveMul(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveMin(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveMax(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveAdd(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveMul(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveMin(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveMax(data[3].f16); +} diff --git a/Test/spv.subgroupExtendedTypesArithmeticNeg.comp b/Test/spv.subgroupExtendedTypesArithmeticNeg.comp new file mode 100644 index 00000000..eb22cabf --- /dev/null +++ b/Test/spv.subgroupExtendedTypesArithmeticNeg.comp @@ -0,0 +1,715 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_arithmetic: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupAdd(data[0].i8.x); + data[invocation].i8.xy = subgroupAdd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz); + data[invocation].i8 = subgroupAdd(data[3].i8); + + data[invocation].i8.x = subgroupMul(data[0].i8.x); + data[invocation].i8.xy = subgroupMul(data[1].i8.xy); + data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz); + data[invocation].i8 = subgroupMul(data[3].i8); + + data[invocation].i8.x = subgroupMin(data[0].i8.x); + data[invocation].i8.xy = subgroupMin(data[1].i8.xy); + data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz); + data[invocation].i8 = subgroupMin(data[3].i8); + + data[invocation].i8.x = subgroupMax(data[0].i8.x); + data[invocation].i8.xy = subgroupMax(data[1].i8.xy); + data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz); + data[invocation].i8 = subgroupMax(data[3].i8); + + data[invocation].i8.x = subgroupAnd(data[0].i8.x); + data[invocation].i8.xy = subgroupAnd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz); + data[invocation].i8 = subgroupAnd(data[3].i8); + + data[invocation].i8.x = subgroupOr(data[0].i8.x); + data[invocation].i8.xy = subgroupOr(data[1].i8.xy); + data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz); + data[invocation].i8 = subgroupOr(data[3].i8); + + data[invocation].i8.x = subgroupXor(data[0].i8.x); + data[invocation].i8.xy = subgroupXor(data[1].i8.xy); + data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz); + data[invocation].i8 = subgroupXor(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveAdd(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveMul(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveMin(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveMax(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveAnd(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveOr(data[3].i8); + + data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x); + data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy); + data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz); + data[invocation].i8 = subgroupInclusiveXor(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveAdd(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveMul(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveMin(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveMax(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveAnd(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveOr(data[3].i8); + + data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x); + data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy); + data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz); + data[invocation].i8 = subgroupExclusiveXor(data[3].i8); + + data[invocation].u8.x = subgroupAdd(data[0].u8.x); + data[invocation].u8.xy = subgroupAdd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz); + data[invocation].u8 = subgroupAdd(data[3].u8); + + data[invocation].u8.x = subgroupMul(data[0].u8.x); + data[invocation].u8.xy = subgroupMul(data[1].u8.xy); + data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz); + data[invocation].u8 = subgroupMul(data[3].u8); + + data[invocation].u8.x = subgroupMin(data[0].u8.x); + data[invocation].u8.xy = subgroupMin(data[1].u8.xy); + data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz); + data[invocation].u8 = subgroupMin(data[3].u8); + + data[invocation].u8.x = subgroupMax(data[0].u8.x); + data[invocation].u8.xy = subgroupMax(data[1].u8.xy); + data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz); + data[invocation].u8 = subgroupMax(data[3].u8); + + data[invocation].u8.x = subgroupAnd(data[0].u8.x); + data[invocation].u8.xy = subgroupAnd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz); + data[invocation].u8 = subgroupAnd(data[3].u8); + + data[invocation].u8.x = subgroupOr(data[0].u8.x); + data[invocation].u8.xy = subgroupOr(data[1].u8.xy); + data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz); + data[invocation].u8 = subgroupOr(data[3].u8); + + data[invocation].u8.x = subgroupXor(data[0].u8.x); + data[invocation].u8.xy = subgroupXor(data[1].u8.xy); + data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz); + data[invocation].u8 = subgroupXor(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveAdd(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveMul(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveMin(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveMax(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveAnd(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveOr(data[3].u8); + + data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x); + data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy); + data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz); + data[invocation].u8 = subgroupInclusiveXor(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveAdd(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveMul(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveMin(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveMax(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveAnd(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveOr(data[3].u8); + + data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x); + data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy); + data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz); + data[invocation].u8 = subgroupExclusiveXor(data[3].u8); + + data[invocation].i16.x = subgroupAdd(data[0].i16.x); + data[invocation].i16.xy = subgroupAdd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz); + data[invocation].i16 = subgroupAdd(data[3].i16); + + data[invocation].i16.x = subgroupMul(data[0].i16.x); + data[invocation].i16.xy = subgroupMul(data[1].i16.xy); + data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz); + data[invocation].i16 = subgroupMul(data[3].i16); + + data[invocation].i16.x = subgroupMin(data[0].i16.x); + data[invocation].i16.xy = subgroupMin(data[1].i16.xy); + data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz); + data[invocation].i16 = subgroupMin(data[3].i16); + + data[invocation].i16.x = subgroupMax(data[0].i16.x); + data[invocation].i16.xy = subgroupMax(data[1].i16.xy); + data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz); + data[invocation].i16 = subgroupMax(data[3].i16); + + data[invocation].i16.x = subgroupAnd(data[0].i16.x); + data[invocation].i16.xy = subgroupAnd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz); + data[invocation].i16 = subgroupAnd(data[3].i16); + + data[invocation].i16.x = subgroupOr(data[0].i16.x); + data[invocation].i16.xy = subgroupOr(data[1].i16.xy); + data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz); + data[invocation].i16 = subgroupOr(data[3].i16); + + data[invocation].i16.x = subgroupXor(data[0].i16.x); + data[invocation].i16.xy = subgroupXor(data[1].i16.xy); + data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz); + data[invocation].i16 = subgroupXor(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveAdd(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveMul(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveMin(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveMax(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveAnd(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveOr(data[3].i16); + + data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x); + data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy); + data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz); + data[invocation].i16 = subgroupInclusiveXor(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveAdd(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveMul(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveMin(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveMax(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveAnd(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveOr(data[3].i16); + + data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x); + data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy); + data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz); + data[invocation].i16 = subgroupExclusiveXor(data[3].i16); + + data[invocation].u16.x = subgroupAdd(data[0].u16.x); + data[invocation].u16.xy = subgroupAdd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz); + data[invocation].u16 = subgroupAdd(data[3].u16); + + data[invocation].u16.x = subgroupMul(data[0].u16.x); + data[invocation].u16.xy = subgroupMul(data[1].u16.xy); + data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz); + data[invocation].u16 = subgroupMul(data[3].u16); + + data[invocation].u16.x = subgroupMin(data[0].u16.x); + data[invocation].u16.xy = subgroupMin(data[1].u16.xy); + data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz); + data[invocation].u16 = subgroupMin(data[3].u16); + + data[invocation].u16.x = subgroupMax(data[0].u16.x); + data[invocation].u16.xy = subgroupMax(data[1].u16.xy); + data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz); + data[invocation].u16 = subgroupMax(data[3].u16); + + data[invocation].u16.x = subgroupAnd(data[0].u16.x); + data[invocation].u16.xy = subgroupAnd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz); + data[invocation].u16 = subgroupAnd(data[3].u16); + + data[invocation].u16.x = subgroupOr(data[0].u16.x); + data[invocation].u16.xy = subgroupOr(data[1].u16.xy); + data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz); + data[invocation].u16 = subgroupOr(data[3].u16); + + data[invocation].u16.x = subgroupXor(data[0].u16.x); + data[invocation].u16.xy = subgroupXor(data[1].u16.xy); + data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz); + data[invocation].u16 = subgroupXor(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveAdd(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveMul(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveMin(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveMax(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveAnd(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveOr(data[3].u16); + + data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x); + data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy); + data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz); + data[invocation].u16 = subgroupInclusiveXor(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveAdd(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveMul(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveMin(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveMax(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveAnd(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveOr(data[3].u16); + + data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x); + data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy); + data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz); + data[invocation].u16 = subgroupExclusiveXor(data[3].u16); + + data[invocation].i64.x = subgroupAdd(data[0].i64.x); + data[invocation].i64.xy = subgroupAdd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz); + data[invocation].i64 = subgroupAdd(data[3].i64); + + data[invocation].i64.x = subgroupMul(data[0].i64.x); + data[invocation].i64.xy = subgroupMul(data[1].i64.xy); + data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz); + data[invocation].i64 = subgroupMul(data[3].i64); + + data[invocation].i64.x = subgroupMin(data[0].i64.x); + data[invocation].i64.xy = subgroupMin(data[1].i64.xy); + data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz); + data[invocation].i64 = subgroupMin(data[3].i64); + + data[invocation].i64.x = subgroupMax(data[0].i64.x); + data[invocation].i64.xy = subgroupMax(data[1].i64.xy); + data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz); + data[invocation].i64 = subgroupMax(data[3].i64); + + data[invocation].i64.x = subgroupAnd(data[0].i64.x); + data[invocation].i64.xy = subgroupAnd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz); + data[invocation].i64 = subgroupAnd(data[3].i64); + + data[invocation].i64.x = subgroupOr(data[0].i64.x); + data[invocation].i64.xy = subgroupOr(data[1].i64.xy); + data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz); + data[invocation].i64 = subgroupOr(data[3].i64); + + data[invocation].i64.x = subgroupXor(data[0].i64.x); + data[invocation].i64.xy = subgroupXor(data[1].i64.xy); + data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz); + data[invocation].i64 = subgroupXor(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveAdd(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveMul(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveMin(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveMax(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveAnd(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveOr(data[3].i64); + + data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x); + data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy); + data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz); + data[invocation].i64 = subgroupInclusiveXor(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveAdd(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveMul(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveMin(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveMax(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveAnd(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveOr(data[3].i64); + + data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x); + data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy); + data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz); + data[invocation].i64 = subgroupExclusiveXor(data[3].i64); + + data[invocation].u64.x = subgroupAdd(data[0].u64.x); + data[invocation].u64.xy = subgroupAdd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz); + data[invocation].u64 = subgroupAdd(data[3].u64); + + data[invocation].u64.x = subgroupMul(data[0].u64.x); + data[invocation].u64.xy = subgroupMul(data[1].u64.xy); + data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz); + data[invocation].u64 = subgroupMul(data[3].u64); + + data[invocation].u64.x = subgroupMin(data[0].u64.x); + data[invocation].u64.xy = subgroupMin(data[1].u64.xy); + data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz); + data[invocation].u64 = subgroupMin(data[3].u64); + + data[invocation].u64.x = subgroupMax(data[0].u64.x); + data[invocation].u64.xy = subgroupMax(data[1].u64.xy); + data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz); + data[invocation].u64 = subgroupMax(data[3].u64); + + data[invocation].u64.x = subgroupAnd(data[0].u64.x); + data[invocation].u64.xy = subgroupAnd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz); + data[invocation].u64 = subgroupAnd(data[3].u64); + + data[invocation].u64.x = subgroupOr(data[0].u64.x); + data[invocation].u64.xy = subgroupOr(data[1].u64.xy); + data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz); + data[invocation].u64 = subgroupOr(data[3].u64); + + data[invocation].u64.x = subgroupXor(data[0].u64.x); + data[invocation].u64.xy = subgroupXor(data[1].u64.xy); + data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz); + data[invocation].u64 = subgroupXor(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveAdd(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveMul(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveMin(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveMax(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveAnd(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveOr(data[3].u64); + + data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x); + data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy); + data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz); + data[invocation].u64 = subgroupInclusiveXor(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveAdd(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveMul(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveMin(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveMax(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveAnd(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveOr(data[3].u64); + + data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x); + data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy); + data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz); + data[invocation].u64 = subgroupExclusiveXor(data[3].u64); + + data[invocation].f16.x = subgroupAdd(data[0].f16.x); + data[invocation].f16.xy = subgroupAdd(data[1].f16.xy); + data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz); + data[invocation].f16 = subgroupAdd(data[3].f16); + + data[invocation].f16.x = subgroupMul(data[0].f16.x); + data[invocation].f16.xy = subgroupMul(data[1].f16.xy); + data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz); + data[invocation].f16 = subgroupMul(data[3].f16); + + data[invocation].f16.x = subgroupMin(data[0].f16.x); + data[invocation].f16.xy = subgroupMin(data[1].f16.xy); + data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz); + data[invocation].f16 = subgroupMin(data[3].f16); + + data[invocation].f16.x = subgroupMax(data[0].f16.x); + data[invocation].f16.xy = subgroupMax(data[1].f16.xy); + data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz); + data[invocation].f16 = subgroupMax(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveAdd(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveMul(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveMin(data[3].f16); + + data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x); + data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy); + data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz); + data[invocation].f16 = subgroupInclusiveMax(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveAdd(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveMul(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveMin(data[3].f16); + + data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x); + data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy); + data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz); + data[invocation].f16 = subgroupExclusiveMax(data[3].f16); +} diff --git a/Test/spv.subgroupExtendedTypesBallot.comp b/Test/spv.subgroupExtendedTypesBallot.comp new file mode 100644 index 00000000..22d29cb7 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesBallot.comp @@ -0,0 +1,88 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_ballot: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3); + data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3); + data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3); + data[invocation].i8 = subgroupBroadcast(data[3].i8, 3); + data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x); + data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy); + data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz); + data[invocation].i8 = subgroupBroadcastFirst(data[3].i8); + + data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3); + data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3); + data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3); + data[invocation].u8 = subgroupBroadcast(data[3].u8, 3); + data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x); + data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy); + data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz); + data[invocation].u8 = subgroupBroadcastFirst(data[3].u8); + + data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3); + data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3); + data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3); + data[invocation].i16 = subgroupBroadcast(data[3].i16, 3); + data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x); + data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy); + data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz); + data[invocation].i16 = subgroupBroadcastFirst(data[3].i16); + + data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3); + data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3); + data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3); + data[invocation].u16 = subgroupBroadcast(data[3].u16, 3); + data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x); + data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy); + data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz); + data[invocation].u16 = subgroupBroadcastFirst(data[3].u16); + + data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3); + data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3); + data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3); + data[invocation].i64 = subgroupBroadcast(data[3].i64, 3); + data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x); + data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy); + data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz); + data[invocation].i64 = subgroupBroadcastFirst(data[3].i64); + + data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3); + data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3); + data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3); + data[invocation].u64 = subgroupBroadcast(data[3].u64, 3); + data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x); + data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy); + data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz); + data[invocation].u64 = subgroupBroadcastFirst(data[3].u64); + + data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3); + data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3); + data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3); + data[invocation].f16 = subgroupBroadcast(data[3].f16, 3); + data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x); + data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy); + data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz); + data[invocation].f16 = subgroupBroadcastFirst(data[3].f16); +} diff --git a/Test/spv.subgroupExtendedTypesBallotNeg.comp b/Test/spv.subgroupExtendedTypesBallotNeg.comp new file mode 100644 index 00000000..240ab593 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesBallotNeg.comp @@ -0,0 +1,88 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_ballot: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3); + data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3); + data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3); + data[invocation].i8 = subgroupBroadcast(data[3].i8, 3); + data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x); + data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy); + data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz); + data[invocation].i8 = subgroupBroadcastFirst(data[3].i8); + + data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3); + data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3); + data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3); + data[invocation].u8 = subgroupBroadcast(data[3].u8, 3); + data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x); + data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy); + data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz); + data[invocation].u8 = subgroupBroadcastFirst(data[3].u8); + + data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3); + data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3); + data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3); + data[invocation].i16 = subgroupBroadcast(data[3].i16, 3); + data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x); + data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy); + data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz); + data[invocation].i16 = subgroupBroadcastFirst(data[3].i16); + + data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3); + data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3); + data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3); + data[invocation].u16 = subgroupBroadcast(data[3].u16, 3); + data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x); + data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy); + data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz); + data[invocation].u16 = subgroupBroadcastFirst(data[3].u16); + + data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3); + data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3); + data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3); + data[invocation].i64 = subgroupBroadcast(data[3].i64, 3); + data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x); + data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy); + data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz); + data[invocation].i64 = subgroupBroadcastFirst(data[3].i64); + + data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3); + data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3); + data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3); + data[invocation].u64 = subgroupBroadcast(data[3].u64, 3); + data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x); + data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy); + data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz); + data[invocation].u64 = subgroupBroadcastFirst(data[3].u64); + + data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3); + data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3); + data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3); + data[invocation].f16 = subgroupBroadcast(data[3].f16, 3); + data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x); + data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy); + data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz); + data[invocation].f16 = subgroupBroadcastFirst(data[3].f16); +} diff --git a/Test/spv.subgroupExtendedTypesClustered.comp b/Test/spv.subgroupExtendedTypesClustered.comp new file mode 100644 index 00000000..a215cbf0 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesClustered.comp @@ -0,0 +1,255 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_clustered: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1); + + data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1); + + data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1); + + data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1); + + data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1); + + data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1); + + data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1); + + data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1); + + data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1); + + data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1); +} diff --git a/Test/spv.subgroupExtendedTypesClusteredNeg.comp b/Test/spv.subgroupExtendedTypesClusteredNeg.comp new file mode 100644 index 00000000..d5215115 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesClusteredNeg.comp @@ -0,0 +1,255 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_clustered: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1); + + data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1); + + data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1); + + data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1); + + data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1); + + data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1); + + data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1); + + data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1); + + data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1); + + data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1); + + data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1); + + data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1); + + data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1); + + data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1); + + data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1); + + data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1); +} diff --git a/Test/spv.subgroupExtendedTypesPartitioned.comp b/Test/spv.subgroupExtendedTypesPartitioned.comp new file mode 100644 index 00000000..382a5b36 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesPartitioned.comp @@ -0,0 +1,291 @@ +#version 450 + +#extension GL_NV_shader_subgroup_partitioned: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + uvec4 ballot; + ballot = subgroupPartitionNV(data[0].i8.x); + ballot = subgroupPartitionNV(data[1].i8.xy); + ballot = subgroupPartitionNV(data[2].i8.xyz); + ballot = subgroupPartitionNV(data[3].i8); + + ballot = subgroupPartitionNV(data[0].u8.x); + ballot = subgroupPartitionNV(data[1].u8.xy); + ballot = subgroupPartitionNV(data[2].u8.xyz); + ballot = subgroupPartitionNV(data[3].u8); + + ballot = subgroupPartitionNV(data[0].i16.x); + ballot = subgroupPartitionNV(data[1].i16.xy); + ballot = subgroupPartitionNV(data[2].i16.xyz); + ballot = subgroupPartitionNV(data[3].i16); + + ballot = subgroupPartitionNV(data[0].u16.x); + ballot = subgroupPartitionNV(data[1].u16.xy); + ballot = subgroupPartitionNV(data[2].u16.xyz); + ballot = subgroupPartitionNV(data[3].u16); + + ballot = subgroupPartitionNV(data[0].i64.x); + ballot = subgroupPartitionNV(data[1].i64.xy); + ballot = subgroupPartitionNV(data[2].i64.xyz); + ballot = subgroupPartitionNV(data[3].i64); + + ballot = subgroupPartitionNV(data[0].u64.x); + ballot = subgroupPartitionNV(data[1].u64.xy); + ballot = subgroupPartitionNV(data[2].u64.xyz); + ballot = subgroupPartitionNV(data[3].u64); + + ballot = subgroupPartitionNV(data[0].f16.x); + ballot = subgroupPartitionNV(data[1].f16.xy); + ballot = subgroupPartitionNV(data[2].f16.xyz); + ballot = subgroupPartitionNV(data[3].f16); + + data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot); + + data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot); + + data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot); + + data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot); + + data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot); + + data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot); + + data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot); + + data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot); + + data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot); + + data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot); +} diff --git a/Test/spv.subgroupExtendedTypesPartitionedNeg.comp b/Test/spv.subgroupExtendedTypesPartitionedNeg.comp new file mode 100644 index 00000000..ad94e35d --- /dev/null +++ b/Test/spv.subgroupExtendedTypesPartitionedNeg.comp @@ -0,0 +1,291 @@ +#version 450 + +#extension GL_NV_shader_subgroup_partitioned: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + uvec4 ballot; + ballot = subgroupPartitionNV(data[0].i8.x); + ballot = subgroupPartitionNV(data[1].i8.xy); + ballot = subgroupPartitionNV(data[2].i8.xyz); + ballot = subgroupPartitionNV(data[3].i8); + + ballot = subgroupPartitionNV(data[0].u8.x); + ballot = subgroupPartitionNV(data[1].u8.xy); + ballot = subgroupPartitionNV(data[2].u8.xyz); + ballot = subgroupPartitionNV(data[3].u8); + + ballot = subgroupPartitionNV(data[0].i16.x); + ballot = subgroupPartitionNV(data[1].i16.xy); + ballot = subgroupPartitionNV(data[2].i16.xyz); + ballot = subgroupPartitionNV(data[3].i16); + + ballot = subgroupPartitionNV(data[0].u16.x); + ballot = subgroupPartitionNV(data[1].u16.xy); + ballot = subgroupPartitionNV(data[2].u16.xyz); + ballot = subgroupPartitionNV(data[3].u16); + + ballot = subgroupPartitionNV(data[0].i64.x); + ballot = subgroupPartitionNV(data[1].i64.xy); + ballot = subgroupPartitionNV(data[2].i64.xyz); + ballot = subgroupPartitionNV(data[3].i64); + + ballot = subgroupPartitionNV(data[0].u64.x); + ballot = subgroupPartitionNV(data[1].u64.xy); + ballot = subgroupPartitionNV(data[2].u64.xyz); + ballot = subgroupPartitionNV(data[3].u64); + + ballot = subgroupPartitionNV(data[0].f16.x); + ballot = subgroupPartitionNV(data[1].f16.xy); + ballot = subgroupPartitionNV(data[2].f16.xyz); + ballot = subgroupPartitionNV(data[3].f16); + + data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot); + + data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot); + data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot); + data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot); + data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot); + + data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot); + + data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot); + data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot); + data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot); + data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot); + + data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot); + + data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot); + data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot); + data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot); + data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot); + + data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot); + + data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot); + data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot); + data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot); + data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot); + + data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot); + + data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot); + data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot); + data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot); + data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot); + + data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot); + + data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot); + data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot); + data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot); + data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot); + + data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot); + + data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot); + + data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot); + + data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot); + data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot); + data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot); + data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot); +} diff --git a/Test/spv.subgroupExtendedTypesQuad.comp b/Test/spv.subgroupExtendedTypesQuad.comp new file mode 100644 index 00000000..1ef2ecf9 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesQuad.comp @@ -0,0 +1,165 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_quad: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1); + + data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x); + data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy); + data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz); + data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8); + + data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x); + data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy); + data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz); + data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8); + + data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x); + data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy); + data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz); + data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8); + + data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1); + + data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x); + data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy); + data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz); + data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8); + + data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x); + data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy); + data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz); + data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8); + + data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x); + data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy); + data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz); + data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8); + + data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1); + + data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x); + data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy); + data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz); + data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16); + + data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x); + data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy); + data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz); + data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16); + + data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x); + data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy); + data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz); + data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16); + + data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1); + + data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x); + data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy); + data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz); + data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16); + + data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x); + data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy); + data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz); + data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16); + + data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x); + data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy); + data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz); + data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16); + + data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1); + + data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x); + data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy); + data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz); + data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64); + + data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x); + data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy); + data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz); + data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64); + + data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x); + data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy); + data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz); + data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64); + + data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1); + + data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x); + data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy); + data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz); + data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64); + + data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x); + data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy); + data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz); + data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64); + + data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x); + data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy); + data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz); + data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64); + + data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1); + + data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x); + data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy); + data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz); + data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16); + + data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x); + data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy); + data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz); + data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16); + + data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x); + data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy); + data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz); + data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16); +} diff --git a/Test/spv.subgroupExtendedTypesQuadNeg.comp b/Test/spv.subgroupExtendedTypesQuadNeg.comp new file mode 100644 index 00000000..07247767 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesQuadNeg.comp @@ -0,0 +1,165 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_quad: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1); + data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1); + data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1); + data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1); + + data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x); + data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy); + data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz); + data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8); + + data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x); + data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy); + data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz); + data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8); + + data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x); + data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy); + data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz); + data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8); + + data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1); + data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1); + data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1); + data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1); + + data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x); + data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy); + data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz); + data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8); + + data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x); + data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy); + data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz); + data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8); + + data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x); + data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy); + data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz); + data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8); + + data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1); + data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1); + data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1); + data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1); + + data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x); + data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy); + data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz); + data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16); + + data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x); + data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy); + data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz); + data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16); + + data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x); + data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy); + data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz); + data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16); + + data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1); + data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1); + data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1); + data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1); + + data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x); + data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy); + data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz); + data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16); + + data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x); + data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy); + data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz); + data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16); + + data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x); + data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy); + data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz); + data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16); + + data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1); + data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1); + data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1); + data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1); + + data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x); + data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy); + data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz); + data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64); + + data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x); + data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy); + data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz); + data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64); + + data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x); + data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy); + data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz); + data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64); + + data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1); + data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1); + data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1); + data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1); + + data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x); + data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy); + data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz); + data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64); + + data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x); + data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy); + data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz); + data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64); + + data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x); + data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy); + data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz); + data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64); + + data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1); + data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1); + data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1); + data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1); + + data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x); + data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy); + data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz); + data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16); + + data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x); + data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy); + data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz); + data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16); + + data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x); + data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy); + data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz); + data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16); +} diff --git a/Test/spv.subgroupExtendedTypesShuffle.comp b/Test/spv.subgroupExtendedTypesShuffle.comp new file mode 100644 index 00000000..de733e6c --- /dev/null +++ b/Test/spv.subgroupExtendedTypesShuffle.comp @@ -0,0 +1,95 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_shuffle: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffle(data[3].i8, invocation); + + data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation); + + data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffle(data[3].u8, invocation); + + data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation); + + data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffle(data[3].i16, invocation); + + data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation); + + data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffle(data[3].u16, invocation); + + data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation); + + data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffle(data[3].i64, invocation); + + data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation); + + data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffle(data[3].u64, invocation); + + data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation); + + data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffle(data[3].f16, invocation); + + data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation); +} diff --git a/Test/spv.subgroupExtendedTypesShuffleNeg.comp b/Test/spv.subgroupExtendedTypesShuffleNeg.comp new file mode 100644 index 00000000..af73b54c --- /dev/null +++ b/Test/spv.subgroupExtendedTypesShuffleNeg.comp @@ -0,0 +1,95 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_shuffle: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffle(data[3].i8, invocation); + + data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation); + + data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffle(data[3].u8, invocation); + + data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation); + + data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffle(data[3].i16, invocation); + + data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation); + + data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffle(data[3].u16, invocation); + + data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation); + + data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffle(data[3].i64, invocation); + + data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation); + + data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffle(data[3].u64, invocation); + + data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation); + + data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffle(data[3].f16, invocation); + + data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation); +} diff --git a/Test/spv.subgroupExtendedTypesShuffleRelative.comp b/Test/spv.subgroupExtendedTypesShuffleRelative.comp new file mode 100644 index 00000000..73f5970c --- /dev/null +++ b/Test/spv.subgroupExtendedTypesShuffleRelative.comp @@ -0,0 +1,95 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_shuffle_relative: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation); + + data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation); + + data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation); + + data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation); + + data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation); + + data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation); + + data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation); + + data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation); + + data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation); + + data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation); + + data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation); + + data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation); + + data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation); + + data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation); +} diff --git a/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp b/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp new file mode 100644 index 00000000..9857444a --- /dev/null +++ b/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp @@ -0,0 +1,95 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_shuffle_relative: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation); + + data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation); + data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation); + data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation); + data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation); + + data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation); + + data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation); + data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation); + data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation); + data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation); + + data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation); + + data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation); + data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation); + data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation); + data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation); + + data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation); + + data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation); + data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation); + data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation); + data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation); + + data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation); + + data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation); + data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation); + data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation); + data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation); + + data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation); + + data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation); + data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation); + data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation); + data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation); + + data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation); + + data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation); + data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation); + data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation); + data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation); +} diff --git a/Test/spv.subgroupExtendedTypesVote.comp b/Test/spv.subgroupExtendedTypesVote.comp new file mode 100644 index 00000000..960156a6 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesVote.comp @@ -0,0 +1,66 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_vote: enable +#extension GL_EXT_shader_subgroup_extended_types_int8: enable +#extension GL_EXT_shader_subgroup_extended_types_int16: enable +#extension GL_EXT_shader_subgroup_extended_types_int64: enable +#extension GL_EXT_shader_subgroup_extended_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; + int r; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + if (subgroupAll(data[invocation].r < 0)) + { + data[invocation].r = int(subgroupAllEqual(data[0].i8.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i8.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i8)); + + data[invocation].r = int(subgroupAllEqual(data[0].u8.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u8.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u8)); + + data[invocation].r = int(subgroupAllEqual(data[0].i16.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i16.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i16)); + + data[invocation].r = int(subgroupAllEqual(data[0].u16.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u16.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u16)); + } + else if (subgroupAny(data[invocation].r < 0)) + { + data[invocation].r = int(subgroupAllEqual(data[0].i64.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i64.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i64)); + + data[invocation].r = int(subgroupAllEqual(data[0].u64.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u64.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u64)); + + data[invocation].r = int(subgroupAllEqual(data[0].f16.x)); + data[invocation].r = int(subgroupAllEqual(data[1].f16.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].f16)); + } +} diff --git a/Test/spv.subgroupExtendedTypesVoteNeg.comp b/Test/spv.subgroupExtendedTypesVoteNeg.comp new file mode 100644 index 00000000..be8d1bb1 --- /dev/null +++ b/Test/spv.subgroupExtendedTypesVoteNeg.comp @@ -0,0 +1,66 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_vote: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable +#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + i8vec4 i8; + u8vec4 u8; + i16vec4 i16; + u16vec4 u16; + i64vec4 i64; + u64vec4 u64; + f16vec4 f16; + int r; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + if (subgroupAll(data[invocation].r < 0)) + { + data[invocation].r = int(subgroupAllEqual(data[0].i8.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i8.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i8)); + + data[invocation].r = int(subgroupAllEqual(data[0].u8.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u8.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u8)); + + data[invocation].r = int(subgroupAllEqual(data[0].i16.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i16.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i16)); + + data[invocation].r = int(subgroupAllEqual(data[0].u16.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u16.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u16)); + } + else if (subgroupAny(data[invocation].r < 0)) + { + data[invocation].r = int(subgroupAllEqual(data[0].i64.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i64.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i64)); + + data[invocation].r = int(subgroupAllEqual(data[0].u64.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u64.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u64)); + + data[invocation].r = int(subgroupAllEqual(data[0].f16.x)); + data[invocation].r = int(subgroupAllEqual(data[1].f16.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].f16)); + } +} diff --git a/Test/spv.volatileAtomic.comp b/Test/spv.volatileAtomic.comp new file mode 100644 index 00000000..2b7e6c62 --- /dev/null +++ b/Test/spv.volatileAtomic.comp @@ -0,0 +1,8 @@ +#version 450 core + +layout(set=0, binding=3) volatile buffer D { uint d[]; } d; + +void main() +{ + atomicExchange(d.d[0], 0); +} diff --git a/Test/web.comp b/Test/web.comp new file mode 100644 index 00000000..07847b42 --- /dev/null +++ b/Test/web.comp @@ -0,0 +1,50 @@ +#version 310 es + +layout(local_size_x_id = 18, local_size_z_id = 19) in; + +layout(local_size_x = 2) in; +layout(local_size_y = 5) in; +layout(local_size_z = 7) in; + +const int total = gl_MaxComputeWorkGroupCount.x + + gl_MaxComputeWorkGroupCount.y + + gl_MaxComputeWorkGroupCount.z + + gl_MaxComputeUniformComponents + + gl_MaxComputeTextureImageUnits; + +shared vec4 s[total]; + +int arrX[gl_WorkGroupSize.x]; +int arrY[gl_WorkGroupSize.y]; +int arrZ[gl_WorkGroupSize.z]; + +layout(binding = 0, set = 0) buffer bName { + int size; + uvec3 count; + vec4 data[]; +} bInst; + +void main() +{ + barrier(); + + bInst.data[bInst.size / 2] *= vec4(7.0); + + memoryBarrier(); + groupMemoryBarrier(); + memoryBarrierShared(); + memoryBarrierBuffer(); + + s[3] = vec4(0, arrX[0], arrY[0], arrZ[0]); + bInst.count = gl_NumWorkGroups + gl_WorkGroupSize + gl_WorkGroupID + gl_LocalInvocationID + + gl_GlobalInvocationID * gl_LocalInvocationIndex; + + atomicAdd(bInst.size, 2); + atomicMin(bInst.size, 2); + atomicMax(bInst.size, 2); + atomicAnd(bInst.size, 2); + atomicOr(bInst.size, 2); + atomicXor(bInst.size, 2); + atomicExchange(bInst.size, 2); + atomicCompSwap(bInst.size, 5, 2); +} diff --git a/Test/web.separate.frag b/Test/web.separate.frag new file mode 100644 index 00000000..b747cba5 --- /dev/null +++ b/Test/web.separate.frag @@ -0,0 +1,63 @@ +#version 310 es + +precision highp sampler; +precision highp samplerShadow; +precision highp texture2DArray; +precision highp itexture2D; +precision highp itexture3D; +precision highp itextureCube; +precision highp itexture2DArray; +precision highp utexture2D; +precision highp utexture3D; +precision highp utextureCube; +precision highp utexture2DArray; +precision highp texture3D; +precision highp float; + +layout(binding = 0) uniform sampler s; +layout(binding = 1) uniform samplerShadow sShadow; +layout(binding = 2) uniform sampler sA[4]; +layout(binding = 3) uniform texture2D t2d; +layout(binding = 4) uniform texture3D t3d[4]; +layout(location = 0) flat in int i; + +layout(location = 0) out vec4 color; + +void main() +{ + color = texture(sampler2D(t2d, s), vec2(0.5)); + color += texture(sampler3D(t3d[1], sA[2]), vec3(0.5)); + color += texture(sampler2D(t2d, s), vec2(0.5)); +} + +layout(binding = 5) uniform texture2D tex2D; +layout(binding = 6) uniform textureCube texCube; +layout(binding = 15) uniform texture2DArray tex2DArray; +layout(binding = 16) uniform itexture2D itex2D; +layout(binding = 17) uniform itexture3D itex3D; +layout(binding = 18) uniform itextureCube itexCube; +layout(binding = 19) uniform itexture2DArray itex2DArray; +layout(binding = 20) uniform utexture2D utex2D; +layout(binding = 21) uniform utexture3D utex3D; +layout(binding = 22) uniform utextureCube utexCube; +layout(binding = 23) uniform utexture2DArray utex2DArray; +layout(binding = 36) uniform texture3D tex3D; + +void foo() +{ + sampler2D (tex2D, s); + samplerCube (texCube, s); + samplerCubeShadow (texCube, sShadow); + sampler2DArray (tex2DArray, s); + sampler2DArrayShadow (tex2DArray, sShadow); + isampler2D (itex2D, s); + isampler3D (itex3D, s); + isamplerCube (itexCube, s); + isampler2DArray (itex2DArray, s); + usampler2D (utex2D, s); + usampler3D (utex3D, s); + usamplerCube (utexCube, s); + usampler2DArray (utex2DArray, s); + sampler3D (tex3D, s); + sampler2DShadow (tex2D, sShadow); +} diff --git a/Test/web.testlist b/Test/web.testlist index fba92127..764c0c0f 100644 --- a/Test/web.testlist +++ b/Test/web.testlist @@ -5,3 +5,5 @@ web.controlFlow.frag web.operations.frag web.texture.frag web.array.frag +web.separate.frag +web.comp diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 00000000..3c38e61d --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,27 @@ +workspace(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"], +) diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 73124c56..446cabb9 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -6,6 +6,10 @@ 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 @@ -78,7 +82,9 @@ add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${H 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 ..) +target_include_directories(glslang PUBLIC + $ + $) if(WIN32 AND BUILD_SHARED_LIBS) set_target_properties(glslang PROPERTIES PREFIX "") @@ -98,14 +104,15 @@ endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) - install(TARGETS glslang + install(TARGETS glslang EXPORT glslangTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else() - install(TARGETS glslang + 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) @@ -114,16 +121,3 @@ if(ENABLE_GLSLANG_INSTALL) install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir}) endforeach() endif(ENABLE_GLSLANG_INSTALL) - -if(ENABLE_GLSLANG_WEB) - add_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" - LINK_FLAGS "--bind -s EXPORT_NAME=\"glslangModule\"") - em_link_pre_js(glslang.js ${CMAKE_CURRENT_SOURCE_DIR}/glslang.pre.js) - endif(EMSCRIPTEN) -endif(ENABLE_GLSLANG_WEB) diff --git a/glslang/Include/PoolAlloc.h b/glslang/Include/PoolAlloc.h index 0e237a6a..b8eccb88 100644 --- a/glslang/Include/PoolAlloc.h +++ b/glslang/Include/PoolAlloc.h @@ -304,7 +304,6 @@ public: size_type max_size() const { return static_cast(-1) / sizeof(T); } size_type max_size(int size) const { return static_cast(-1) / size; } - void setAllocator(TPoolAllocator* a) { allocator = *a; } TPoolAllocator& getAllocator() const { return allocator; } protected: diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 3140006e..3572099e 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -79,25 +79,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, 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 -#ifdef ENABLE_HLSL - unsigned int vectorSize : 3; // vector return type size. - unsigned int getVectorSize() const { return vectorSize; } - void clearReturnStruct() { structReturnIndex = noReturnStruct; } - bool hasReturnStruct() const { return structReturnIndex != noReturnStruct; } - unsigned getStructReturnIndex() const { return structReturnIndex; } - - static const unsigned structReturnIndexBits = 4; // number of index bits to use. - static const unsigned structReturnSlots = (1< 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]; @@ -1661,6 +1679,8 @@ public: 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; } @@ -1911,6 +1931,7 @@ public: 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"; @@ -1923,7 +1944,6 @@ public: case EbtUint64: return "uint64_t"; case EbtBool: return "bool"; case EbtAtomicUint: return "atomic_uint"; - case EbtSampler: return "sampler/image"; case EbtStruct: return "structure"; case EbtBlock: return "block"; case EbtAccStructNV: return "accelerationStructureNV"; @@ -2184,7 +2204,8 @@ public: 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; diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 3a7405ad..29d58ca6 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -275,6 +275,10 @@ enum TOperator { EOpConvUint64ToPtr, EOpConvPtrToUint64, + // uvec2 <-> pointer + EOpConvUvec2ToPtr, + EOpConvPtrToUvec2, + // // binary operations // @@ -895,6 +899,15 @@ enum TOperator { EOpFindLSB, EOpFindMSB, + EOpCountLeadingZeros, + EOpCountTrailingZeros, + EOpAbsDifference, + EOpAddSaturate, + EOpSubSaturate, + EOpAverage, + EOpAverageRounded, + EOpMul32x16, + EOpTraceNV, EOpReportIntersectionNV, EOpIgnoreIntersectionNV, @@ -1185,6 +1198,7 @@ public: 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; @@ -1218,7 +1232,7 @@ public: // it is essential to use "symbol = sym" to assign to symbol TIntermSymbol(int i, const TString& n, const TType& t) : TIntermTyped(t), id(i), -#ifdef ENABLE_HLSL +#ifndef GLSLANG_WEB flattenSubset(-1), #endif constSubtree(nullptr) @@ -1233,7 +1247,7 @@ public: const TConstUnionArray& getConstArray() const { return constArray; } void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } TIntermTyped* getConstSubtree() const { return constSubtree; } -#ifdef ENABLE_HLSL +#ifndef GLSLANG_WEB void setFlattenSubset(int subset) { flattenSubset = subset; } int getFlattenSubset() const { return flattenSubset; } // -1 means full object #endif @@ -1244,7 +1258,7 @@ public: protected: int id; // the unique id of the symbol this node represents -#ifdef ENABLE_HLSL +#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 @@ -1305,11 +1319,13 @@ public: 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; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 06fccdf4..5933bce5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -1,3 +1,3 @@ // This header is generated by the make-revision script. -#define GLSLANG_PATCH_LEVEL 3381 +#define GLSLANG_PATCH_LEVEL 3500 diff --git a/glslang/MachineIndependent/Constant.cpp b/glslang/MachineIndependent/Constant.cpp old mode 100755 new mode 100644 diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 8ea58ccc..c14a039b 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -85,18 +85,18 @@ const int TypeStringScalarMask = ~TypeStringColumnMask; // take type to 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 + 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); @@ -106,22 +106,22 @@ 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 + 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); @@ -147,17 +147,18 @@ EProfile EDesktopProfile = static_cast(ENoProfile | ECoreProfile | ECo // 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 } }; @@ -256,7 +257,6 @@ const BuiltInFunction BaseFunctions[] = { { EOpGreaterThanEqual, "greaterThanEqual", 2, TypeU, ClassBNS, Es300Desktop130 }, { EOpVectorEqual, "equal", 2, TypeU, ClassBNS, Es300Desktop130 }, { EOpVectorNotEqual, "notEqual", 2, TypeU, ClassBNS, Es300Desktop130 }, -#ifndef GLSLANG_WEB { EOpAtomicAdd, "atomicAdd", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicMin, "atomicMin", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicMax, "atomicMax", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, @@ -265,9 +265,11 @@ const BuiltInFunction BaseFunctions[] = { { 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 } }; @@ -278,6 +280,59 @@ const BuiltInFunction DerivativeFunctions[] = { { 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) @@ -331,8 +386,10 @@ void AddTabledBuiltin(TString& decls, const BuiltInFunction& function) 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) @@ -357,7 +414,7 @@ void AddTabledBuiltin(TString& decls, const BuiltInFunction& function) } // See if the tabled versioning information allows the current version. -bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& spvVersion) +bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& /* spVersion */) { #ifdef GLSLANG_WEB // all entries in table are valid @@ -382,9 +439,10 @@ bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile // 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 subtlies +// concern. It is done for quality arising from simplicity, as there are subtleties // to get correct if instead trying to do it surgically. -void RelateTabledBuiltins(const BuiltInFunction* functions, TSymbolTable& symbolTable) +template +void RelateTabledBuiltins(const FunctionT* functions, TSymbolTable& symbolTable) { while (functions->op != EOpNull) { symbolTable.relateToOperator(functions->name, functions->op); @@ -408,20 +466,16 @@ void TBuiltIns::addTabledBuiltins(int version, EProfile profile, const SpvVersio forEachFunction(commonBuiltins, BaseFunctions); forEachFunction(stageBuiltins[EShLangFragment], DerivativeFunctions); -#ifdef GLSLANG_WEB - return; -#endif - 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) +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) @@ -466,7 +520,7 @@ TBuiltIns::TBuiltIns() dimMap[Esd1D] = 1; dimMap[EsdRect] = 2; dimMap[EsdBuffer] = 1; - dimMap[EsdSubpass] = 2; // potientially unused for now + dimMap[EsdSubpass] = 2; // potentially unused for now #endif } @@ -485,6 +539,10 @@ TBuiltIns::~TBuiltIns() // void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvVersion) { +#ifdef GLSLANG_WEB + version = 310; + profile = EEsProfile; +#endif addTabledBuiltins(version, profile, spvVersion); //============================================================================ @@ -996,25 +1054,25 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec3 notEqual(u64vec3, u64vec3);" "bvec4 notEqual(u64vec4, u64vec4);" - "int findLSB(int64_t);" - "ivec2 findLSB(i64vec2);" - "ivec3 findLSB(i64vec3);" - "ivec4 findLSB(i64vec4);" + "int64_t findLSB(int64_t);" + "i64vec2 findLSB(i64vec2);" + "i64vec3 findLSB(i64vec3);" + "i64vec4 findLSB(i64vec4);" - "int findLSB(uint64_t);" - "ivec2 findLSB(u64vec2);" - "ivec3 findLSB(u64vec3);" - "ivec4 findLSB(u64vec4);" + "int64_t findLSB(uint64_t);" + "i64vec2 findLSB(u64vec2);" + "i64vec3 findLSB(u64vec3);" + "i64vec4 findLSB(u64vec4);" - "int findMSB(int64_t);" - "ivec2 findMSB(i64vec2);" - "ivec3 findMSB(i64vec3);" - "ivec4 findMSB(i64vec4);" + "int64_t findMSB(int64_t);" + "i64vec2 findMSB(i64vec2);" + "i64vec3 findMSB(i64vec3);" + "i64vec4 findMSB(i64vec4);" - "int findMSB(uint64_t);" - "ivec2 findMSB(u64vec2);" - "ivec3 findMSB(u64vec3);" - "ivec4 findMSB(u64vec4);" + "int64_t findMSB(uint64_t);" + "i64vec2 findMSB(u64vec2);" + "i64vec3 findMSB(u64vec3);" + "i64vec4 findMSB(u64vec4);" "\n" ); @@ -1307,14 +1365,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV commonBuiltins.append( "mediump vec2 unpackHalf2x16(highp uint);" "\n"); - } -#ifndef GLSLANG_WEB - else if (profile != EEsProfile && version >= 420) { + } 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( @@ -1744,58 +1801,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bool subgroupAll(bool);\n" "bool subgroupAny(bool);\n" - - "bool subgroupAllEqual(float);\n" - "bool subgroupAllEqual(vec2);\n" - "bool subgroupAllEqual(vec3);\n" - "bool subgroupAllEqual(vec4);\n" - "bool subgroupAllEqual(int);\n" - "bool subgroupAllEqual(ivec2);\n" - "bool subgroupAllEqual(ivec3);\n" - "bool subgroupAllEqual(ivec4);\n" - "bool subgroupAllEqual(uint);\n" - "bool subgroupAllEqual(uvec2);\n" - "bool subgroupAllEqual(uvec3);\n" - "bool subgroupAllEqual(uvec4);\n" - "bool subgroupAllEqual(bool);\n" - "bool subgroupAllEqual(bvec2);\n" - "bool subgroupAllEqual(bvec3);\n" - "bool subgroupAllEqual(bvec4);\n" - - "float subgroupBroadcast(float, uint);\n" - "vec2 subgroupBroadcast(vec2, uint);\n" - "vec3 subgroupBroadcast(vec3, uint);\n" - "vec4 subgroupBroadcast(vec4, uint);\n" - "int subgroupBroadcast(int, uint);\n" - "ivec2 subgroupBroadcast(ivec2, uint);\n" - "ivec3 subgroupBroadcast(ivec3, uint);\n" - "ivec4 subgroupBroadcast(ivec4, uint);\n" - "uint subgroupBroadcast(uint, uint);\n" - "uvec2 subgroupBroadcast(uvec2, uint);\n" - "uvec3 subgroupBroadcast(uvec3, uint);\n" - "uvec4 subgroupBroadcast(uvec4, uint);\n" - "bool subgroupBroadcast(bool, uint);\n" - "bvec2 subgroupBroadcast(bvec2, uint);\n" - "bvec3 subgroupBroadcast(bvec3, uint);\n" - "bvec4 subgroupBroadcast(bvec4, uint);\n" - - "float subgroupBroadcastFirst(float);\n" - "vec2 subgroupBroadcastFirst(vec2);\n" - "vec3 subgroupBroadcastFirst(vec3);\n" - "vec4 subgroupBroadcastFirst(vec4);\n" - "int subgroupBroadcastFirst(int);\n" - "ivec2 subgroupBroadcastFirst(ivec2);\n" - "ivec3 subgroupBroadcastFirst(ivec3);\n" - "ivec4 subgroupBroadcastFirst(ivec4);\n" - "uint subgroupBroadcastFirst(uint);\n" - "uvec2 subgroupBroadcastFirst(uvec2);\n" - "uvec3 subgroupBroadcastFirst(uvec3);\n" - "uvec4 subgroupBroadcastFirst(uvec4);\n" - "bool subgroupBroadcastFirst(bool);\n" - "bvec2 subgroupBroadcastFirst(bvec2);\n" - "bvec3 subgroupBroadcastFirst(bvec3);\n" - "bvec4 subgroupBroadcastFirst(bvec4);\n" - "uvec4 subgroupBallot(bool);\n" "bool subgroupInverseBallot(uvec4);\n" "bool subgroupBallotBitExtract(uvec4, uint);\n" @@ -1804,1002 +1809,130 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uint subgroupBallotExclusiveBitCount(uvec4);\n" "uint subgroupBallotFindLSB(uvec4);\n" "uint subgroupBallotFindMSB(uvec4);\n" - - "float subgroupShuffle(float, uint);\n" - "vec2 subgroupShuffle(vec2, uint);\n" - "vec3 subgroupShuffle(vec3, uint);\n" - "vec4 subgroupShuffle(vec4, uint);\n" - "int subgroupShuffle(int, uint);\n" - "ivec2 subgroupShuffle(ivec2, uint);\n" - "ivec3 subgroupShuffle(ivec3, uint);\n" - "ivec4 subgroupShuffle(ivec4, uint);\n" - "uint subgroupShuffle(uint, uint);\n" - "uvec2 subgroupShuffle(uvec2, uint);\n" - "uvec3 subgroupShuffle(uvec3, uint);\n" - "uvec4 subgroupShuffle(uvec4, uint);\n" - "bool subgroupShuffle(bool, uint);\n" - "bvec2 subgroupShuffle(bvec2, uint);\n" - "bvec3 subgroupShuffle(bvec3, uint);\n" - "bvec4 subgroupShuffle(bvec4, uint);\n" - - "float subgroupShuffleXor(float, uint);\n" - "vec2 subgroupShuffleXor(vec2, uint);\n" - "vec3 subgroupShuffleXor(vec3, uint);\n" - "vec4 subgroupShuffleXor(vec4, uint);\n" - "int subgroupShuffleXor(int, uint);\n" - "ivec2 subgroupShuffleXor(ivec2, uint);\n" - "ivec3 subgroupShuffleXor(ivec3, uint);\n" - "ivec4 subgroupShuffleXor(ivec4, uint);\n" - "uint subgroupShuffleXor(uint, uint);\n" - "uvec2 subgroupShuffleXor(uvec2, uint);\n" - "uvec3 subgroupShuffleXor(uvec3, uint);\n" - "uvec4 subgroupShuffleXor(uvec4, uint);\n" - "bool subgroupShuffleXor(bool, uint);\n" - "bvec2 subgroupShuffleXor(bvec2, uint);\n" - "bvec3 subgroupShuffleXor(bvec3, uint);\n" - "bvec4 subgroupShuffleXor(bvec4, uint);\n" - - "float subgroupShuffleUp(float, uint delta);\n" - "vec2 subgroupShuffleUp(vec2, uint delta);\n" - "vec3 subgroupShuffleUp(vec3, uint delta);\n" - "vec4 subgroupShuffleUp(vec4, uint delta);\n" - "int subgroupShuffleUp(int, uint delta);\n" - "ivec2 subgroupShuffleUp(ivec2, uint delta);\n" - "ivec3 subgroupShuffleUp(ivec3, uint delta);\n" - "ivec4 subgroupShuffleUp(ivec4, uint delta);\n" - "uint subgroupShuffleUp(uint, uint delta);\n" - "uvec2 subgroupShuffleUp(uvec2, uint delta);\n" - "uvec3 subgroupShuffleUp(uvec3, uint delta);\n" - "uvec4 subgroupShuffleUp(uvec4, uint delta);\n" - "bool subgroupShuffleUp(bool, uint delta);\n" - "bvec2 subgroupShuffleUp(bvec2, uint delta);\n" - "bvec3 subgroupShuffleUp(bvec3, uint delta);\n" - "bvec4 subgroupShuffleUp(bvec4, uint delta);\n" - - "float subgroupShuffleDown(float, uint delta);\n" - "vec2 subgroupShuffleDown(vec2, uint delta);\n" - "vec3 subgroupShuffleDown(vec3, uint delta);\n" - "vec4 subgroupShuffleDown(vec4, uint delta);\n" - "int subgroupShuffleDown(int, uint delta);\n" - "ivec2 subgroupShuffleDown(ivec2, uint delta);\n" - "ivec3 subgroupShuffleDown(ivec3, uint delta);\n" - "ivec4 subgroupShuffleDown(ivec4, uint delta);\n" - "uint subgroupShuffleDown(uint, uint delta);\n" - "uvec2 subgroupShuffleDown(uvec2, uint delta);\n" - "uvec3 subgroupShuffleDown(uvec3, uint delta);\n" - "uvec4 subgroupShuffleDown(uvec4, uint delta);\n" - "bool subgroupShuffleDown(bool, uint delta);\n" - "bvec2 subgroupShuffleDown(bvec2, uint delta);\n" - "bvec3 subgroupShuffleDown(bvec3, uint delta);\n" - "bvec4 subgroupShuffleDown(bvec4, uint delta);\n" - - "float subgroupAdd(float);\n" - "vec2 subgroupAdd(vec2);\n" - "vec3 subgroupAdd(vec3);\n" - "vec4 subgroupAdd(vec4);\n" - "int subgroupAdd(int);\n" - "ivec2 subgroupAdd(ivec2);\n" - "ivec3 subgroupAdd(ivec3);\n" - "ivec4 subgroupAdd(ivec4);\n" - "uint subgroupAdd(uint);\n" - "uvec2 subgroupAdd(uvec2);\n" - "uvec3 subgroupAdd(uvec3);\n" - "uvec4 subgroupAdd(uvec4);\n" - - "float subgroupMul(float);\n" - "vec2 subgroupMul(vec2);\n" - "vec3 subgroupMul(vec3);\n" - "vec4 subgroupMul(vec4);\n" - "int subgroupMul(int);\n" - "ivec2 subgroupMul(ivec2);\n" - "ivec3 subgroupMul(ivec3);\n" - "ivec4 subgroupMul(ivec4);\n" - "uint subgroupMul(uint);\n" - "uvec2 subgroupMul(uvec2);\n" - "uvec3 subgroupMul(uvec3);\n" - "uvec4 subgroupMul(uvec4);\n" - - "float subgroupMin(float);\n" - "vec2 subgroupMin(vec2);\n" - "vec3 subgroupMin(vec3);\n" - "vec4 subgroupMin(vec4);\n" - "int subgroupMin(int);\n" - "ivec2 subgroupMin(ivec2);\n" - "ivec3 subgroupMin(ivec3);\n" - "ivec4 subgroupMin(ivec4);\n" - "uint subgroupMin(uint);\n" - "uvec2 subgroupMin(uvec2);\n" - "uvec3 subgroupMin(uvec3);\n" - "uvec4 subgroupMin(uvec4);\n" - - "float subgroupMax(float);\n" - "vec2 subgroupMax(vec2);\n" - "vec3 subgroupMax(vec3);\n" - "vec4 subgroupMax(vec4);\n" - "int subgroupMax(int);\n" - "ivec2 subgroupMax(ivec2);\n" - "ivec3 subgroupMax(ivec3);\n" - "ivec4 subgroupMax(ivec4);\n" - "uint subgroupMax(uint);\n" - "uvec2 subgroupMax(uvec2);\n" - "uvec3 subgroupMax(uvec3);\n" - "uvec4 subgroupMax(uvec4);\n" - - "int subgroupAnd(int);\n" - "ivec2 subgroupAnd(ivec2);\n" - "ivec3 subgroupAnd(ivec3);\n" - "ivec4 subgroupAnd(ivec4);\n" - "uint subgroupAnd(uint);\n" - "uvec2 subgroupAnd(uvec2);\n" - "uvec3 subgroupAnd(uvec3);\n" - "uvec4 subgroupAnd(uvec4);\n" - "bool subgroupAnd(bool);\n" - "bvec2 subgroupAnd(bvec2);\n" - "bvec3 subgroupAnd(bvec3);\n" - "bvec4 subgroupAnd(bvec4);\n" - - "int subgroupOr(int);\n" - "ivec2 subgroupOr(ivec2);\n" - "ivec3 subgroupOr(ivec3);\n" - "ivec4 subgroupOr(ivec4);\n" - "uint subgroupOr(uint);\n" - "uvec2 subgroupOr(uvec2);\n" - "uvec3 subgroupOr(uvec3);\n" - "uvec4 subgroupOr(uvec4);\n" - "bool subgroupOr(bool);\n" - "bvec2 subgroupOr(bvec2);\n" - "bvec3 subgroupOr(bvec3);\n" - "bvec4 subgroupOr(bvec4);\n" - - "int subgroupXor(int);\n" - "ivec2 subgroupXor(ivec2);\n" - "ivec3 subgroupXor(ivec3);\n" - "ivec4 subgroupXor(ivec4);\n" - "uint subgroupXor(uint);\n" - "uvec2 subgroupXor(uvec2);\n" - "uvec3 subgroupXor(uvec3);\n" - "uvec4 subgroupXor(uvec4);\n" - "bool subgroupXor(bool);\n" - "bvec2 subgroupXor(bvec2);\n" - "bvec3 subgroupXor(bvec3);\n" - "bvec4 subgroupXor(bvec4);\n" - - "float subgroupInclusiveAdd(float);\n" - "vec2 subgroupInclusiveAdd(vec2);\n" - "vec3 subgroupInclusiveAdd(vec3);\n" - "vec4 subgroupInclusiveAdd(vec4);\n" - "int subgroupInclusiveAdd(int);\n" - "ivec2 subgroupInclusiveAdd(ivec2);\n" - "ivec3 subgroupInclusiveAdd(ivec3);\n" - "ivec4 subgroupInclusiveAdd(ivec4);\n" - "uint subgroupInclusiveAdd(uint);\n" - "uvec2 subgroupInclusiveAdd(uvec2);\n" - "uvec3 subgroupInclusiveAdd(uvec3);\n" - "uvec4 subgroupInclusiveAdd(uvec4);\n" - - "float subgroupInclusiveMul(float);\n" - "vec2 subgroupInclusiveMul(vec2);\n" - "vec3 subgroupInclusiveMul(vec3);\n" - "vec4 subgroupInclusiveMul(vec4);\n" - "int subgroupInclusiveMul(int);\n" - "ivec2 subgroupInclusiveMul(ivec2);\n" - "ivec3 subgroupInclusiveMul(ivec3);\n" - "ivec4 subgroupInclusiveMul(ivec4);\n" - "uint subgroupInclusiveMul(uint);\n" - "uvec2 subgroupInclusiveMul(uvec2);\n" - "uvec3 subgroupInclusiveMul(uvec3);\n" - "uvec4 subgroupInclusiveMul(uvec4);\n" - - "float subgroupInclusiveMin(float);\n" - "vec2 subgroupInclusiveMin(vec2);\n" - "vec3 subgroupInclusiveMin(vec3);\n" - "vec4 subgroupInclusiveMin(vec4);\n" - "int subgroupInclusiveMin(int);\n" - "ivec2 subgroupInclusiveMin(ivec2);\n" - "ivec3 subgroupInclusiveMin(ivec3);\n" - "ivec4 subgroupInclusiveMin(ivec4);\n" - "uint subgroupInclusiveMin(uint);\n" - "uvec2 subgroupInclusiveMin(uvec2);\n" - "uvec3 subgroupInclusiveMin(uvec3);\n" - "uvec4 subgroupInclusiveMin(uvec4);\n" - - "float subgroupInclusiveMax(float);\n" - "vec2 subgroupInclusiveMax(vec2);\n" - "vec3 subgroupInclusiveMax(vec3);\n" - "vec4 subgroupInclusiveMax(vec4);\n" - "int subgroupInclusiveMax(int);\n" - "ivec2 subgroupInclusiveMax(ivec2);\n" - "ivec3 subgroupInclusiveMax(ivec3);\n" - "ivec4 subgroupInclusiveMax(ivec4);\n" - "uint subgroupInclusiveMax(uint);\n" - "uvec2 subgroupInclusiveMax(uvec2);\n" - "uvec3 subgroupInclusiveMax(uvec3);\n" - "uvec4 subgroupInclusiveMax(uvec4);\n" - - "int subgroupInclusiveAnd(int);\n" - "ivec2 subgroupInclusiveAnd(ivec2);\n" - "ivec3 subgroupInclusiveAnd(ivec3);\n" - "ivec4 subgroupInclusiveAnd(ivec4);\n" - "uint subgroupInclusiveAnd(uint);\n" - "uvec2 subgroupInclusiveAnd(uvec2);\n" - "uvec3 subgroupInclusiveAnd(uvec3);\n" - "uvec4 subgroupInclusiveAnd(uvec4);\n" - "bool subgroupInclusiveAnd(bool);\n" - "bvec2 subgroupInclusiveAnd(bvec2);\n" - "bvec3 subgroupInclusiveAnd(bvec3);\n" - "bvec4 subgroupInclusiveAnd(bvec4);\n" - - "int subgroupInclusiveOr(int);\n" - "ivec2 subgroupInclusiveOr(ivec2);\n" - "ivec3 subgroupInclusiveOr(ivec3);\n" - "ivec4 subgroupInclusiveOr(ivec4);\n" - "uint subgroupInclusiveOr(uint);\n" - "uvec2 subgroupInclusiveOr(uvec2);\n" - "uvec3 subgroupInclusiveOr(uvec3);\n" - "uvec4 subgroupInclusiveOr(uvec4);\n" - "bool subgroupInclusiveOr(bool);\n" - "bvec2 subgroupInclusiveOr(bvec2);\n" - "bvec3 subgroupInclusiveOr(bvec3);\n" - "bvec4 subgroupInclusiveOr(bvec4);\n" - - "int subgroupInclusiveXor(int);\n" - "ivec2 subgroupInclusiveXor(ivec2);\n" - "ivec3 subgroupInclusiveXor(ivec3);\n" - "ivec4 subgroupInclusiveXor(ivec4);\n" - "uint subgroupInclusiveXor(uint);\n" - "uvec2 subgroupInclusiveXor(uvec2);\n" - "uvec3 subgroupInclusiveXor(uvec3);\n" - "uvec4 subgroupInclusiveXor(uvec4);\n" - "bool subgroupInclusiveXor(bool);\n" - "bvec2 subgroupInclusiveXor(bvec2);\n" - "bvec3 subgroupInclusiveXor(bvec3);\n" - "bvec4 subgroupInclusiveXor(bvec4);\n" - - "float subgroupExclusiveAdd(float);\n" - "vec2 subgroupExclusiveAdd(vec2);\n" - "vec3 subgroupExclusiveAdd(vec3);\n" - "vec4 subgroupExclusiveAdd(vec4);\n" - "int subgroupExclusiveAdd(int);\n" - "ivec2 subgroupExclusiveAdd(ivec2);\n" - "ivec3 subgroupExclusiveAdd(ivec3);\n" - "ivec4 subgroupExclusiveAdd(ivec4);\n" - "uint subgroupExclusiveAdd(uint);\n" - "uvec2 subgroupExclusiveAdd(uvec2);\n" - "uvec3 subgroupExclusiveAdd(uvec3);\n" - "uvec4 subgroupExclusiveAdd(uvec4);\n" - - "float subgroupExclusiveMul(float);\n" - "vec2 subgroupExclusiveMul(vec2);\n" - "vec3 subgroupExclusiveMul(vec3);\n" - "vec4 subgroupExclusiveMul(vec4);\n" - "int subgroupExclusiveMul(int);\n" - "ivec2 subgroupExclusiveMul(ivec2);\n" - "ivec3 subgroupExclusiveMul(ivec3);\n" - "ivec4 subgroupExclusiveMul(ivec4);\n" - "uint subgroupExclusiveMul(uint);\n" - "uvec2 subgroupExclusiveMul(uvec2);\n" - "uvec3 subgroupExclusiveMul(uvec3);\n" - "uvec4 subgroupExclusiveMul(uvec4);\n" - - "float subgroupExclusiveMin(float);\n" - "vec2 subgroupExclusiveMin(vec2);\n" - "vec3 subgroupExclusiveMin(vec3);\n" - "vec4 subgroupExclusiveMin(vec4);\n" - "int subgroupExclusiveMin(int);\n" - "ivec2 subgroupExclusiveMin(ivec2);\n" - "ivec3 subgroupExclusiveMin(ivec3);\n" - "ivec4 subgroupExclusiveMin(ivec4);\n" - "uint subgroupExclusiveMin(uint);\n" - "uvec2 subgroupExclusiveMin(uvec2);\n" - "uvec3 subgroupExclusiveMin(uvec3);\n" - "uvec4 subgroupExclusiveMin(uvec4);\n" - - "float subgroupExclusiveMax(float);\n" - "vec2 subgroupExclusiveMax(vec2);\n" - "vec3 subgroupExclusiveMax(vec3);\n" - "vec4 subgroupExclusiveMax(vec4);\n" - "int subgroupExclusiveMax(int);\n" - "ivec2 subgroupExclusiveMax(ivec2);\n" - "ivec3 subgroupExclusiveMax(ivec3);\n" - "ivec4 subgroupExclusiveMax(ivec4);\n" - "uint subgroupExclusiveMax(uint);\n" - "uvec2 subgroupExclusiveMax(uvec2);\n" - "uvec3 subgroupExclusiveMax(uvec3);\n" - "uvec4 subgroupExclusiveMax(uvec4);\n" - - "int subgroupExclusiveAnd(int);\n" - "ivec2 subgroupExclusiveAnd(ivec2);\n" - "ivec3 subgroupExclusiveAnd(ivec3);\n" - "ivec4 subgroupExclusiveAnd(ivec4);\n" - "uint subgroupExclusiveAnd(uint);\n" - "uvec2 subgroupExclusiveAnd(uvec2);\n" - "uvec3 subgroupExclusiveAnd(uvec3);\n" - "uvec4 subgroupExclusiveAnd(uvec4);\n" - "bool subgroupExclusiveAnd(bool);\n" - "bvec2 subgroupExclusiveAnd(bvec2);\n" - "bvec3 subgroupExclusiveAnd(bvec3);\n" - "bvec4 subgroupExclusiveAnd(bvec4);\n" - - "int subgroupExclusiveOr(int);\n" - "ivec2 subgroupExclusiveOr(ivec2);\n" - "ivec3 subgroupExclusiveOr(ivec3);\n" - "ivec4 subgroupExclusiveOr(ivec4);\n" - "uint subgroupExclusiveOr(uint);\n" - "uvec2 subgroupExclusiveOr(uvec2);\n" - "uvec3 subgroupExclusiveOr(uvec3);\n" - "uvec4 subgroupExclusiveOr(uvec4);\n" - "bool subgroupExclusiveOr(bool);\n" - "bvec2 subgroupExclusiveOr(bvec2);\n" - "bvec3 subgroupExclusiveOr(bvec3);\n" - "bvec4 subgroupExclusiveOr(bvec4);\n" - - "int subgroupExclusiveXor(int);\n" - "ivec2 subgroupExclusiveXor(ivec2);\n" - "ivec3 subgroupExclusiveXor(ivec3);\n" - "ivec4 subgroupExclusiveXor(ivec4);\n" - "uint subgroupExclusiveXor(uint);\n" - "uvec2 subgroupExclusiveXor(uvec2);\n" - "uvec3 subgroupExclusiveXor(uvec3);\n" - "uvec4 subgroupExclusiveXor(uvec4);\n" - "bool subgroupExclusiveXor(bool);\n" - "bvec2 subgroupExclusiveXor(bvec2);\n" - "bvec3 subgroupExclusiveXor(bvec3);\n" - "bvec4 subgroupExclusiveXor(bvec4);\n" - - "float subgroupClusteredAdd(float, uint);\n" - "vec2 subgroupClusteredAdd(vec2, uint);\n" - "vec3 subgroupClusteredAdd(vec3, uint);\n" - "vec4 subgroupClusteredAdd(vec4, uint);\n" - "int subgroupClusteredAdd(int, uint);\n" - "ivec2 subgroupClusteredAdd(ivec2, uint);\n" - "ivec3 subgroupClusteredAdd(ivec3, uint);\n" - "ivec4 subgroupClusteredAdd(ivec4, uint);\n" - "uint subgroupClusteredAdd(uint, uint);\n" - "uvec2 subgroupClusteredAdd(uvec2, uint);\n" - "uvec3 subgroupClusteredAdd(uvec3, uint);\n" - "uvec4 subgroupClusteredAdd(uvec4, uint);\n" - - "float subgroupClusteredMul(float, uint);\n" - "vec2 subgroupClusteredMul(vec2, uint);\n" - "vec3 subgroupClusteredMul(vec3, uint);\n" - "vec4 subgroupClusteredMul(vec4, uint);\n" - "int subgroupClusteredMul(int, uint);\n" - "ivec2 subgroupClusteredMul(ivec2, uint);\n" - "ivec3 subgroupClusteredMul(ivec3, uint);\n" - "ivec4 subgroupClusteredMul(ivec4, uint);\n" - "uint subgroupClusteredMul(uint, uint);\n" - "uvec2 subgroupClusteredMul(uvec2, uint);\n" - "uvec3 subgroupClusteredMul(uvec3, uint);\n" - "uvec4 subgroupClusteredMul(uvec4, uint);\n" - - "float subgroupClusteredMin(float, uint);\n" - "vec2 subgroupClusteredMin(vec2, uint);\n" - "vec3 subgroupClusteredMin(vec3, uint);\n" - "vec4 subgroupClusteredMin(vec4, uint);\n" - "int subgroupClusteredMin(int, uint);\n" - "ivec2 subgroupClusteredMin(ivec2, uint);\n" - "ivec3 subgroupClusteredMin(ivec3, uint);\n" - "ivec4 subgroupClusteredMin(ivec4, uint);\n" - "uint subgroupClusteredMin(uint, uint);\n" - "uvec2 subgroupClusteredMin(uvec2, uint);\n" - "uvec3 subgroupClusteredMin(uvec3, uint);\n" - "uvec4 subgroupClusteredMin(uvec4, uint);\n" - - "float subgroupClusteredMax(float, uint);\n" - "vec2 subgroupClusteredMax(vec2, uint);\n" - "vec3 subgroupClusteredMax(vec3, uint);\n" - "vec4 subgroupClusteredMax(vec4, uint);\n" - "int subgroupClusteredMax(int, uint);\n" - "ivec2 subgroupClusteredMax(ivec2, uint);\n" - "ivec3 subgroupClusteredMax(ivec3, uint);\n" - "ivec4 subgroupClusteredMax(ivec4, uint);\n" - "uint subgroupClusteredMax(uint, uint);\n" - "uvec2 subgroupClusteredMax(uvec2, uint);\n" - "uvec3 subgroupClusteredMax(uvec3, uint);\n" - "uvec4 subgroupClusteredMax(uvec4, uint);\n" - - "int subgroupClusteredAnd(int, uint);\n" - "ivec2 subgroupClusteredAnd(ivec2, uint);\n" - "ivec3 subgroupClusteredAnd(ivec3, uint);\n" - "ivec4 subgroupClusteredAnd(ivec4, uint);\n" - "uint subgroupClusteredAnd(uint, uint);\n" - "uvec2 subgroupClusteredAnd(uvec2, uint);\n" - "uvec3 subgroupClusteredAnd(uvec3, uint);\n" - "uvec4 subgroupClusteredAnd(uvec4, uint);\n" - "bool subgroupClusteredAnd(bool, uint);\n" - "bvec2 subgroupClusteredAnd(bvec2, uint);\n" - "bvec3 subgroupClusteredAnd(bvec3, uint);\n" - "bvec4 subgroupClusteredAnd(bvec4, uint);\n" - - "int subgroupClusteredOr(int, uint);\n" - "ivec2 subgroupClusteredOr(ivec2, uint);\n" - "ivec3 subgroupClusteredOr(ivec3, uint);\n" - "ivec4 subgroupClusteredOr(ivec4, uint);\n" - "uint subgroupClusteredOr(uint, uint);\n" - "uvec2 subgroupClusteredOr(uvec2, uint);\n" - "uvec3 subgroupClusteredOr(uvec3, uint);\n" - "uvec4 subgroupClusteredOr(uvec4, uint);\n" - "bool subgroupClusteredOr(bool, uint);\n" - "bvec2 subgroupClusteredOr(bvec2, uint);\n" - "bvec3 subgroupClusteredOr(bvec3, uint);\n" - "bvec4 subgroupClusteredOr(bvec4, uint);\n" - - "int subgroupClusteredXor(int, uint);\n" - "ivec2 subgroupClusteredXor(ivec2, uint);\n" - "ivec3 subgroupClusteredXor(ivec3, uint);\n" - "ivec4 subgroupClusteredXor(ivec4, uint);\n" - "uint subgroupClusteredXor(uint, uint);\n" - "uvec2 subgroupClusteredXor(uvec2, uint);\n" - "uvec3 subgroupClusteredXor(uvec3, uint);\n" - "uvec4 subgroupClusteredXor(uvec4, uint);\n" - "bool subgroupClusteredXor(bool, uint);\n" - "bvec2 subgroupClusteredXor(bvec2, uint);\n" - "bvec3 subgroupClusteredXor(bvec3, uint);\n" - "bvec4 subgroupClusteredXor(bvec4, uint);\n" - - "float subgroupQuadBroadcast(float, uint);\n" - "vec2 subgroupQuadBroadcast(vec2, uint);\n" - "vec3 subgroupQuadBroadcast(vec3, uint);\n" - "vec4 subgroupQuadBroadcast(vec4, uint);\n" - "int subgroupQuadBroadcast(int, uint);\n" - "ivec2 subgroupQuadBroadcast(ivec2, uint);\n" - "ivec3 subgroupQuadBroadcast(ivec3, uint);\n" - "ivec4 subgroupQuadBroadcast(ivec4, uint);\n" - "uint subgroupQuadBroadcast(uint, uint);\n" - "uvec2 subgroupQuadBroadcast(uvec2, uint);\n" - "uvec3 subgroupQuadBroadcast(uvec3, uint);\n" - "uvec4 subgroupQuadBroadcast(uvec4, uint);\n" - "bool subgroupQuadBroadcast(bool, uint);\n" - "bvec2 subgroupQuadBroadcast(bvec2, uint);\n" - "bvec3 subgroupQuadBroadcast(bvec3, uint);\n" - "bvec4 subgroupQuadBroadcast(bvec4, uint);\n" - - "float subgroupQuadSwapHorizontal(float);\n" - "vec2 subgroupQuadSwapHorizontal(vec2);\n" - "vec3 subgroupQuadSwapHorizontal(vec3);\n" - "vec4 subgroupQuadSwapHorizontal(vec4);\n" - "int subgroupQuadSwapHorizontal(int);\n" - "ivec2 subgroupQuadSwapHorizontal(ivec2);\n" - "ivec3 subgroupQuadSwapHorizontal(ivec3);\n" - "ivec4 subgroupQuadSwapHorizontal(ivec4);\n" - "uint subgroupQuadSwapHorizontal(uint);\n" - "uvec2 subgroupQuadSwapHorizontal(uvec2);\n" - "uvec3 subgroupQuadSwapHorizontal(uvec3);\n" - "uvec4 subgroupQuadSwapHorizontal(uvec4);\n" - "bool subgroupQuadSwapHorizontal(bool);\n" - "bvec2 subgroupQuadSwapHorizontal(bvec2);\n" - "bvec3 subgroupQuadSwapHorizontal(bvec3);\n" - "bvec4 subgroupQuadSwapHorizontal(bvec4);\n" - - "float subgroupQuadSwapVertical(float);\n" - "vec2 subgroupQuadSwapVertical(vec2);\n" - "vec3 subgroupQuadSwapVertical(vec3);\n" - "vec4 subgroupQuadSwapVertical(vec4);\n" - "int subgroupQuadSwapVertical(int);\n" - "ivec2 subgroupQuadSwapVertical(ivec2);\n" - "ivec3 subgroupQuadSwapVertical(ivec3);\n" - "ivec4 subgroupQuadSwapVertical(ivec4);\n" - "uint subgroupQuadSwapVertical(uint);\n" - "uvec2 subgroupQuadSwapVertical(uvec2);\n" - "uvec3 subgroupQuadSwapVertical(uvec3);\n" - "uvec4 subgroupQuadSwapVertical(uvec4);\n" - "bool subgroupQuadSwapVertical(bool);\n" - "bvec2 subgroupQuadSwapVertical(bvec2);\n" - "bvec3 subgroupQuadSwapVertical(bvec3);\n" - "bvec4 subgroupQuadSwapVertical(bvec4);\n" - - "float subgroupQuadSwapDiagonal(float);\n" - "vec2 subgroupQuadSwapDiagonal(vec2);\n" - "vec3 subgroupQuadSwapDiagonal(vec3);\n" - "vec4 subgroupQuadSwapDiagonal(vec4);\n" - "int subgroupQuadSwapDiagonal(int);\n" - "ivec2 subgroupQuadSwapDiagonal(ivec2);\n" - "ivec3 subgroupQuadSwapDiagonal(ivec3);\n" - "ivec4 subgroupQuadSwapDiagonal(ivec4);\n" - "uint subgroupQuadSwapDiagonal(uint);\n" - "uvec2 subgroupQuadSwapDiagonal(uvec2);\n" - "uvec3 subgroupQuadSwapDiagonal(uvec3);\n" - "uvec4 subgroupQuadSwapDiagonal(uvec4);\n" - "bool subgroupQuadSwapDiagonal(bool);\n" - "bvec2 subgroupQuadSwapDiagonal(bvec2);\n" - "bvec3 subgroupQuadSwapDiagonal(bvec3);\n" - "bvec4 subgroupQuadSwapDiagonal(bvec4);\n" - - "uvec4 subgroupPartitionNV(float);\n" - "uvec4 subgroupPartitionNV(vec2);\n" - "uvec4 subgroupPartitionNV(vec3);\n" - "uvec4 subgroupPartitionNV(vec4);\n" - "uvec4 subgroupPartitionNV(int);\n" - "uvec4 subgroupPartitionNV(ivec2);\n" - "uvec4 subgroupPartitionNV(ivec3);\n" - "uvec4 subgroupPartitionNV(ivec4);\n" - "uvec4 subgroupPartitionNV(uint);\n" - "uvec4 subgroupPartitionNV(uvec2);\n" - "uvec4 subgroupPartitionNV(uvec3);\n" - "uvec4 subgroupPartitionNV(uvec4);\n" - "uvec4 subgroupPartitionNV(bool);\n" - "uvec4 subgroupPartitionNV(bvec2);\n" - "uvec4 subgroupPartitionNV(bvec3);\n" - "uvec4 subgroupPartitionNV(bvec4);\n" - - "float subgroupPartitionedAddNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedAddNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedAddNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedAddNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedAddNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedAddNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedAddNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedAddNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedAddNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedAddNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedAddNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedAddNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedMulNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedMulNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedMulNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedMulNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedMulNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedMulNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedMulNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedMulNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedMulNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedMulNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedMulNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedMulNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedMinNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedMinNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedMinNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedMinNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedMinNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedMinNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedMinNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedMinNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedMinNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedMinNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedMinNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedMinNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedMaxNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedMaxNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedMaxNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedMaxNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedMaxNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedMaxNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedMaxNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedMaxNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedMaxNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedMaxNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedMaxNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedMaxNV(uvec4, uvec4 ballot);\n" - - "int subgroupPartitionedAndNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedAndNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedAndNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedAndNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedAndNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedAndNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedAndNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedAndNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedAndNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedAndNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedAndNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedAndNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedOrNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedOrNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedOrNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedOrNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedOrNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedOrNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedOrNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedOrNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedOrNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedOrNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedOrNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedOrNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedXorNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedXorNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedXorNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedXorNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedXorNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedXorNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedXorNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedXorNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedXorNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedXorNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedXorNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedXorNV(bvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveAddNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveAddNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveAddNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveAddNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveAddNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveAddNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveAddNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveAddNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveAddNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveAddNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveAddNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveAddNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveMulNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveMulNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveMulNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveMulNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveMulNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveMulNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveMulNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveMulNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveMulNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveMulNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveMulNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveMulNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveMinNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveMinNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveMinNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveMinNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveMinNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveMinNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveMinNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveMinNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveMinNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveMinNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveMinNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveMinNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveMaxNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveMaxNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveMaxNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveMaxNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveMaxNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveMaxNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveMaxNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveMaxNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveMaxNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveMaxNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveMaxNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveMaxNV(uvec4, uvec4 ballot);\n" - - "int subgroupPartitionedInclusiveAndNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveAndNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveAndNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveAndNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveAndNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveAndNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveAndNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveAndNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedInclusiveAndNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedInclusiveAndNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedInclusiveAndNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedInclusiveAndNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedInclusiveOrNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveOrNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveOrNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveOrNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveOrNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveOrNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveOrNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveOrNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedInclusiveOrNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedInclusiveOrNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedInclusiveOrNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedInclusiveOrNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedInclusiveXorNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveXorNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveXorNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveXorNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveXorNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveXorNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveXorNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveXorNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedInclusiveXorNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedInclusiveXorNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedInclusiveXorNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedInclusiveXorNV(bvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveAddNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveAddNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveAddNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveAddNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveAddNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveAddNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveAddNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveAddNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveAddNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveAddNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveAddNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveAddNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveMulNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveMulNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveMulNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveMulNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveMulNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveMulNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveMulNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveMulNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveMulNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveMulNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveMulNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveMulNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveMinNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveMinNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveMinNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveMinNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveMinNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveMinNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveMinNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveMinNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveMinNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveMinNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveMinNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveMinNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveMaxNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveMaxNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveMaxNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveMaxNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveMaxNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveMaxNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveMaxNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveMaxNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveMaxNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveMaxNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveMaxNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveMaxNV(uvec4, uvec4 ballot);\n" - - "int subgroupPartitionedExclusiveAndNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveAndNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveAndNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveAndNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveAndNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveAndNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveAndNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveAndNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedExclusiveAndNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedExclusiveAndNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedExclusiveAndNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedExclusiveAndNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedExclusiveOrNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveOrNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveOrNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveOrNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveOrNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveOrNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveOrNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveOrNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedExclusiveOrNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedExclusiveOrNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedExclusiveOrNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedExclusiveOrNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedExclusiveXorNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveXorNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveXorNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveXorNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveXorNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveXorNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveXorNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveXorNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedExclusiveXorNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedExclusiveXorNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedExclusiveXorNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedExclusiveXorNV(bvec4, uvec4 ballot);\n" - "\n"); - - if (profile != EEsProfile && version >= 400) { - commonBuiltins.append( - "bool subgroupAllEqual(double);\n" - "bool subgroupAllEqual(dvec2);\n" - "bool subgroupAllEqual(dvec3);\n" - "bool subgroupAllEqual(dvec4);\n" - - "double subgroupBroadcast(double, uint);\n" - "dvec2 subgroupBroadcast(dvec2, uint);\n" - "dvec3 subgroupBroadcast(dvec3, uint);\n" - "dvec4 subgroupBroadcast(dvec4, uint);\n" - - "double subgroupBroadcastFirst(double);\n" - "dvec2 subgroupBroadcastFirst(dvec2);\n" - "dvec3 subgroupBroadcastFirst(dvec3);\n" - "dvec4 subgroupBroadcastFirst(dvec4);\n" - - "double subgroupShuffle(double, uint);\n" - "dvec2 subgroupShuffle(dvec2, uint);\n" - "dvec3 subgroupShuffle(dvec3, uint);\n" - "dvec4 subgroupShuffle(dvec4, uint);\n" - - "double subgroupShuffleXor(double, uint);\n" - "dvec2 subgroupShuffleXor(dvec2, uint);\n" - "dvec3 subgroupShuffleXor(dvec3, uint);\n" - "dvec4 subgroupShuffleXor(dvec4, uint);\n" - - "double subgroupShuffleUp(double, uint delta);\n" - "dvec2 subgroupShuffleUp(dvec2, uint delta);\n" - "dvec3 subgroupShuffleUp(dvec3, uint delta);\n" - "dvec4 subgroupShuffleUp(dvec4, uint delta);\n" - - "double subgroupShuffleDown(double, uint delta);\n" - "dvec2 subgroupShuffleDown(dvec2, uint delta);\n" - "dvec3 subgroupShuffleDown(dvec3, uint delta);\n" - "dvec4 subgroupShuffleDown(dvec4, uint delta);\n" - - "double subgroupAdd(double);\n" - "dvec2 subgroupAdd(dvec2);\n" - "dvec3 subgroupAdd(dvec3);\n" - "dvec4 subgroupAdd(dvec4);\n" - - "double subgroupMul(double);\n" - "dvec2 subgroupMul(dvec2);\n" - "dvec3 subgroupMul(dvec3);\n" - "dvec4 subgroupMul(dvec4);\n" - - "double subgroupMin(double);\n" - "dvec2 subgroupMin(dvec2);\n" - "dvec3 subgroupMin(dvec3);\n" - "dvec4 subgroupMin(dvec4);\n" - - "double subgroupMax(double);\n" - "dvec2 subgroupMax(dvec2);\n" - "dvec3 subgroupMax(dvec3);\n" - "dvec4 subgroupMax(dvec4);\n" - - "double subgroupInclusiveAdd(double);\n" - "dvec2 subgroupInclusiveAdd(dvec2);\n" - "dvec3 subgroupInclusiveAdd(dvec3);\n" - "dvec4 subgroupInclusiveAdd(dvec4);\n" - - "double subgroupInclusiveMul(double);\n" - "dvec2 subgroupInclusiveMul(dvec2);\n" - "dvec3 subgroupInclusiveMul(dvec3);\n" - "dvec4 subgroupInclusiveMul(dvec4);\n" - - "double subgroupInclusiveMin(double);\n" - "dvec2 subgroupInclusiveMin(dvec2);\n" - "dvec3 subgroupInclusiveMin(dvec3);\n" - "dvec4 subgroupInclusiveMin(dvec4);\n" - - "double subgroupInclusiveMax(double);\n" - "dvec2 subgroupInclusiveMax(dvec2);\n" - "dvec3 subgroupInclusiveMax(dvec3);\n" - "dvec4 subgroupInclusiveMax(dvec4);\n" - - "double subgroupExclusiveAdd(double);\n" - "dvec2 subgroupExclusiveAdd(dvec2);\n" - "dvec3 subgroupExclusiveAdd(dvec3);\n" - "dvec4 subgroupExclusiveAdd(dvec4);\n" - - "double subgroupExclusiveMul(double);\n" - "dvec2 subgroupExclusiveMul(dvec2);\n" - "dvec3 subgroupExclusiveMul(dvec3);\n" - "dvec4 subgroupExclusiveMul(dvec4);\n" - - "double subgroupExclusiveMin(double);\n" - "dvec2 subgroupExclusiveMin(dvec2);\n" - "dvec3 subgroupExclusiveMin(dvec3);\n" - "dvec4 subgroupExclusiveMin(dvec4);\n" - - "double subgroupExclusiveMax(double);\n" - "dvec2 subgroupExclusiveMax(dvec2);\n" - "dvec3 subgroupExclusiveMax(dvec3);\n" - "dvec4 subgroupExclusiveMax(dvec4);\n" - - "double subgroupClusteredAdd(double, uint);\n" - "dvec2 subgroupClusteredAdd(dvec2, uint);\n" - "dvec3 subgroupClusteredAdd(dvec3, uint);\n" - "dvec4 subgroupClusteredAdd(dvec4, uint);\n" - - "double subgroupClusteredMul(double, uint);\n" - "dvec2 subgroupClusteredMul(dvec2, uint);\n" - "dvec3 subgroupClusteredMul(dvec3, uint);\n" - "dvec4 subgroupClusteredMul(dvec4, uint);\n" - - "double subgroupClusteredMin(double, uint);\n" - "dvec2 subgroupClusteredMin(dvec2, uint);\n" - "dvec3 subgroupClusteredMin(dvec3, uint);\n" - "dvec4 subgroupClusteredMin(dvec4, uint);\n" - - "double subgroupClusteredMax(double, uint);\n" - "dvec2 subgroupClusteredMax(dvec2, uint);\n" - "dvec3 subgroupClusteredMax(dvec3, uint);\n" - "dvec4 subgroupClusteredMax(dvec4, uint);\n" - - "double subgroupQuadBroadcast(double, uint);\n" - "dvec2 subgroupQuadBroadcast(dvec2, uint);\n" - "dvec3 subgroupQuadBroadcast(dvec3, uint);\n" - "dvec4 subgroupQuadBroadcast(dvec4, uint);\n" - - "double subgroupQuadSwapHorizontal(double);\n" - "dvec2 subgroupQuadSwapHorizontal(dvec2);\n" - "dvec3 subgroupQuadSwapHorizontal(dvec3);\n" - "dvec4 subgroupQuadSwapHorizontal(dvec4);\n" - - "double subgroupQuadSwapVertical(double);\n" - "dvec2 subgroupQuadSwapVertical(dvec2);\n" - "dvec3 subgroupQuadSwapVertical(dvec3);\n" - "dvec4 subgroupQuadSwapVertical(dvec4);\n" - - "double subgroupQuadSwapDiagonal(double);\n" - "dvec2 subgroupQuadSwapDiagonal(dvec2);\n" - "dvec3 subgroupQuadSwapDiagonal(dvec3);\n" - "dvec4 subgroupQuadSwapDiagonal(dvec4);\n" - - "uvec4 subgroupPartitionNV(double);\n" - "uvec4 subgroupPartitionNV(dvec2);\n" - "uvec4 subgroupPartitionNV(dvec3);\n" - "uvec4 subgroupPartitionNV(dvec4);\n" - - "double subgroupPartitionedAddNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedAddNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedAddNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedAddNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedMulNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedMulNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedMulNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedMulNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedMinNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedMinNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedMinNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedMinNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedMaxNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedMaxNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedMaxNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedMaxNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveAddNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveAddNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveAddNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveAddNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveMulNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveMulNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveMulNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveMulNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveMinNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveMinNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveMinNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveMinNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveMaxNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveMaxNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveMaxNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveMaxNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveAddNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveAddNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveAddNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveAddNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveMulNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveMulNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveMulNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveMulNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveMinNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveMinNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveMinNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveMinNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveMaxNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveMaxNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveMaxNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveMaxNV(dvec4, uvec4 ballot);\n" - - "\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();" @@ -3721,7 +2854,182 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - if ((profile != EEsProfile && version >= 450) || + 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 {" @@ -4638,7 +3946,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // // Geometric Functions. // - if (IncludeLegacy(version, profile, spvVersion)) + if (spvVersion.vulkan == 0 && IncludeLegacy(version, profile, spvVersion)) stageBuiltins[EShLangVertex].append("vec4 ftransform();"); // @@ -4720,6 +4028,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void EndPrimitive();" "\n"); } +#endif //============================================================================ // @@ -4749,15 +4058,20 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV ); if ((profile != EEsProfile && version >= 420) || esBarrier) { commonBuiltins.append( - "void memoryBarrierAtomicCounter();" "void memoryBarrierBuffer();" - "void memoryBarrierImage();" ); 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();" @@ -5047,7 +4361,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { stageBuiltins[EShLangMeshNV].append( "void writePackedPrimitiveIndices4x8NV(uint, uint);" - "\n"); + "\n"); } #endif @@ -5204,6 +4518,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#endif //============================================================================ // @@ -5233,6 +4548,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#ifndef GLSLANG_WEB //============================================================================ // // Define the interface to the mesh/task shader. @@ -5986,7 +5302,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // GL_ARB_shader_ballot if (profile != EEsProfile && version >= 450) { - const char* ballotDecls = + const char* ballotDecls = "uniform uint gl_SubGroupSizeARB;" "in uint gl_SubGroupInvocationARB;" "in uint64_t gl_SubGroupEqMaskARB;" @@ -5995,7 +5311,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in uint64_t gl_SubGroupLeMaskARB;" "in uint64_t gl_SubGroupLtMaskARB;" "\n"; - const char* fragmentBallotDecls = + const char* fragmentBallotDecls = "uniform uint gl_SubGroupSizeARB;" "flat in uint gl_SubGroupInvocationARB;" "flat in uint64_t gl_SubGroupEqMaskARB;" @@ -6239,10 +5555,9 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c #ifdef GLSLANG_WEB const int ms = 0; #else - for (int ms = 0; ms <= 1; ++ms) + for (int ms = 0; ms <= 1; ++ms) // loop over "bool" multisample or not #endif { -#ifndef GLSLANG_WEB if ((ms || image) && shadow) continue; if (ms && profile != EEsProfile && version < 150) @@ -6251,7 +5566,6 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c continue; if (ms && profile == EEsProfile && version < 310) continue; -#endif for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not #ifdef GLSLANG_WEB @@ -6287,7 +5601,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c continue; // Loop over the bTypes - for (int bType = 0; bType < sizeof(bTypes)/sizeof(TBasicType); ++bType) { + for (size_t bType = 0; bType < sizeof(bTypes)/sizeof(TBasicType); ++bType) { #ifndef GLSLANG_WEB if (bTypes[bType] == EbtFloat16 && (profile == EEsProfile || version < 450)) continue; @@ -6356,14 +5670,12 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c } } -#ifndef GLSLANG_WEB // // sparseTexelsResidentARB() // if (profile != EEsProfile && version >= 450) { commonBuiltins.append("bool sparseTexelsResidentARB(int code);\n"); } -#endif } // @@ -6650,6 +5962,11 @@ void TBuiltIns::addSubpassSampling(TSampler sampler, const TString& typeName, in // void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) { +#ifdef GLSLANG_WEB + profile = EEsProfile; + version = 310; +#endif + // // texturing // @@ -6930,6 +6247,11 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, // 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: @@ -7168,6 +6490,11 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, in // 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. // @@ -7179,7 +6506,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf //============================================================================ TString& s = commonBuiltins; - const int maxSize = 80; + const int maxSize = 200; char builtInConstant[maxSize]; // @@ -7225,9 +6552,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); } -#ifdef GLSLANG_WEB - } -#else +#ifndef GLSLANG_WEB if (version >= 310) { // geometry @@ -7509,8 +6834,29 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf 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)) { @@ -7526,6 +6872,18 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf 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)) { @@ -7563,31 +6921,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append("\n"); } - // compute - if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { - snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX, - resources.maxComputeWorkGroupCountY, - resources.maxComputeWorkGroupCountZ); - 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); - 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"); - } - // GL_ARB_cull_distance if (profile != EEsProfile && version >= 450) { snprintf(builtInConstant, maxSize, "const int gl_MaxCullDistances = %d;", resources.maxCullDistances); @@ -7706,6 +7039,11 @@ static void BuiltInVariable(const char* blockName, const char* name, TBuiltInVar // 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. @@ -7811,6 +7149,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion 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); @@ -8472,7 +7819,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion #endif break; -#ifndef GLSLANG_WEB case EShLangCompute: BuiltInVariable("gl_NumWorkGroups", EbvNumWorkGroups, symbolTable); BuiltInVariable("gl_WorkGroupSize", EbvWorkGroupSize, symbolTable); @@ -8480,6 +7826,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion 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); @@ -8561,14 +7916,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable); } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); - BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); - } - // GL_KHR_shader_subgroup if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 140)) { @@ -8599,8 +7946,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion 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: @@ -8959,21 +8308,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion relateTabledBuiltins(version, profile, spvVersion, language, symbolTable); - symbolTable.relateToOperator("matrixCompMult", EOpMul); - // 120 and 150 are correct for both ES and desktop - if (version >= 120) { - symbolTable.relateToOperator("outerProduct", EOpOuterProduct); - symbolTable.relateToOperator("transpose", EOpTranspose); - if (version >= 150) { - symbolTable.relateToOperator("determinant", EOpDeterminant); - symbolTable.relateToOperator("inverse", EOpMatrixInverse); - } - } - - symbolTable.relateToOperator("floatBitsToInt", EOpFloatBitsToInt); - symbolTable.relateToOperator("floatBitsToUint", EOpFloatBitsToUint); - symbolTable.relateToOperator("intBitsToFloat", EOpIntBitsToFloat); - symbolTable.relateToOperator("uintBitsToFloat", EOpUintBitsToFloat); #ifndef GLSLANG_WEB symbolTable.relateToOperator("doubleBitsToInt64", EOpDoubleBitsToInt64); symbolTable.relateToOperator("doubleBitsToUint64", EOpDoubleBitsToUint64); @@ -8988,14 +8322,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("int16BitsToHalf", EOpInt16BitsToFloat16); symbolTable.relateToOperator("uint16BitsToHalf", EOpUint16BitsToFloat16); -#endif - symbolTable.relateToOperator("packSnorm2x16", EOpPackSnorm2x16); - symbolTable.relateToOperator("unpackSnorm2x16", EOpUnpackSnorm2x16); - symbolTable.relateToOperator("packUnorm2x16", EOpPackUnorm2x16); - symbolTable.relateToOperator("unpackUnorm2x16", EOpUnpackUnorm2x16); - -#ifndef GLSLANG_WEB symbolTable.relateToOperator("packSnorm4x8", EOpPackSnorm4x8); symbolTable.relateToOperator("unpackSnorm4x8", EOpUnpackSnorm4x8); symbolTable.relateToOperator("packUnorm4x8", EOpPackUnorm4x8); @@ -9003,17 +8330,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("packDouble2x32", EOpPackDouble2x32); symbolTable.relateToOperator("unpackDouble2x32", EOpUnpackDouble2x32); -#endif - - symbolTable.relateToOperator("packHalf2x16", EOpPackHalf2x16); - symbolTable.relateToOperator("unpackHalf2x16", EOpUnpackHalf2x16); symbolTable.relateToOperator("packInt2x32", EOpPackInt2x32); symbolTable.relateToOperator("unpackInt2x32", EOpUnpackInt2x32); symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32); symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32); -#ifndef GLSLANG_WEB symbolTable.relateToOperator("packInt2x16", EOpPackInt2x16); symbolTable.relateToOperator("unpackInt2x16", EOpUnpackInt2x16); symbolTable.relateToOperator("packUint2x16", EOpPackUint2x16); @@ -9034,11 +8356,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("unpack16", EOpUnpack16); symbolTable.relateToOperator("unpack8", EOpUnpack8); - symbolTable.relateToOperator("barrier", EOpBarrier); symbolTable.relateToOperator("controlBarrier", EOpBarrier); - symbolTable.relateToOperator("memoryBarrier", EOpMemoryBarrier); symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierAtomicCounter); - symbolTable.relateToOperator("memoryBarrierBuffer", EOpMemoryBarrierBuffer); symbolTable.relateToOperator("memoryBarrierImage", EOpMemoryBarrierImage); symbolTable.relateToOperator("atomicLoad", EOpAtomicLoad); @@ -9081,10 +8400,17 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("findMSB", EOpFindMSB); symbolTable.relateToOperator("helperInvocationEXT", EOpIsHelperInvocation); -#endif + + 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) { -#ifndef GLSLANG_WEB symbolTable.relateToOperator("imageSize", EOpImageQuerySize); symbolTable.relateToOperator("imageSamples", EOpImageQuerySamples); symbolTable.relateToOperator("imageLoad", EOpImageLoad); @@ -9102,28 +8428,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("subpassLoad", EOpSubpassLoad); symbolTable.relateToOperator("subpassLoadMS", EOpSubpassLoadMS); -#endif - symbolTable.relateToOperator("textureSize", EOpTextureQuerySize); - symbolTable.relateToOperator("textureQueryLod", EOpTextureQueryLod); - symbolTable.relateToOperator("textureQueryLevels", EOpTextureQueryLevels); - symbolTable.relateToOperator("textureSamples", EOpTextureQuerySamples); - symbolTable.relateToOperator("texture", EOpTexture); - symbolTable.relateToOperator("textureProj", EOpTextureProj); - symbolTable.relateToOperator("textureLod", EOpTextureLod); - symbolTable.relateToOperator("textureOffset", EOpTextureOffset); - symbolTable.relateToOperator("texelFetch", EOpTextureFetch); - symbolTable.relateToOperator("texelFetchOffset", EOpTextureFetchOffset); - symbolTable.relateToOperator("textureProjOffset", EOpTextureProjOffset); - symbolTable.relateToOperator("textureLodOffset", EOpTextureLodOffset); - symbolTable.relateToOperator("textureProjLod", EOpTextureProjLod); - symbolTable.relateToOperator("textureProjLodOffset", EOpTextureProjLodOffset); - symbolTable.relateToOperator("textureGrad", EOpTextureGrad); - symbolTable.relateToOperator("textureGradOffset", EOpTextureGradOffset); - symbolTable.relateToOperator("textureProjGrad", EOpTextureProjGrad); - symbolTable.relateToOperator("textureProjGradOffset", EOpTextureProjGradOffset); - -#ifndef GLSLANG_WEB symbolTable.relateToOperator("textureGather", EOpTextureGather); symbolTable.relateToOperator("textureGatherOffset", EOpTextureGatherOffset); symbolTable.relateToOperator("textureGatherOffsets", EOpTextureGatherOffsets); @@ -9139,9 +8444,11 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion 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("ftransform", EOpFtransform); symbolTable.relateToOperator("texture1D", EOpTexture); symbolTable.relateToOperator("texture1DGradARB", EOpTextureGrad); @@ -9365,10 +8672,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("shadow2DEXT", EOpTexture); symbolTable.relateToOperator("shadow2DProjEXT", EOpTextureProj); } -#endif } -#ifndef GLSLANG_WEB switch(language) { case EShLangVertex: break; @@ -9406,8 +8711,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion break; case EShLangCompute: - symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); - symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared); if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) { diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp old mode 100644 new mode 100755 index 93d41f7d..d0f86e63 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -562,6 +562,237 @@ bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const 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. @@ -570,10 +801,8 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped // // Add a new newNode for the conversion. // - TIntermUnary* newNode = nullptr; - - TOperator newOp = EOpNull; +#ifndef GLSLANG_WEB bool convertToIntTypes = (convertTo == EbtInt8 || convertTo == EbtUint8 || convertTo == EbtInt16 || convertTo == EbtUint16 || convertTo == EbtInt || convertTo == EbtUint || @@ -607,231 +836,11 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped (node->getBasicType() == EbtFloat16 && ! convertToFloatTypes)) return nullptr; } - - switch (convertTo) { -#ifndef GLSLANG_WEB - case EbtDouble: - switch (node->getBasicType()) { - 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 nullptr; - } - break; -#endif - case EbtFloat: - switch (node->getBasicType()) { - 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 nullptr; - } - break; -#ifndef GLSLANG_WEB - case EbtFloat16: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToFloat16; break; - case EbtUint8: newOp = EOpConvUint8ToFloat16; break; - case EbtInt16: newOp = EOpConvInt16ToFloat16; break; - case EbtUint16: newOp = EOpConvUint16ToFloat16; break; - case EbtInt: newOp = EOpConvIntToFloat16; break; - case EbtUint: newOp = EOpConvUintToFloat16; break; - case EbtBool: newOp = EOpConvBoolToFloat16; break; - case EbtFloat: newOp = EOpConvFloatToFloat16; break; - case EbtDouble: newOp = EOpConvDoubleToFloat16; break; - case EbtInt64: newOp = EOpConvInt64ToFloat16; break; - case EbtUint64: newOp = EOpConvUint64ToFloat16; break; - default: - return nullptr; - } - break; -#endif - case EbtBool: - switch (node->getBasicType()) { - 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 nullptr; - } - break; -#ifndef GLSLANG_WEB - case EbtInt8: - switch (node->getBasicType()) { - case EbtUint8: newOp = EOpConvUint8ToInt8; break; - case EbtInt16: newOp = EOpConvInt16ToInt8; break; - case EbtUint16: newOp = EOpConvUint16ToInt8; break; - case EbtInt: newOp = EOpConvIntToInt8; break; - case EbtUint: newOp = EOpConvUintToInt8; break; - case EbtInt64: newOp = EOpConvInt64ToInt8; break; - case EbtUint64: newOp = EOpConvUint64ToInt8; break; - case EbtBool: newOp = EOpConvBoolToInt8; break; - case EbtFloat: newOp = EOpConvFloatToInt8; break; - case EbtDouble: newOp = EOpConvDoubleToInt8; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt8; break; - default: - return nullptr; - } - break; - case EbtUint8: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint8; break; - case EbtInt16: newOp = EOpConvInt16ToUint8; break; - case EbtUint16: newOp = EOpConvUint16ToUint8; break; - case EbtInt: newOp = EOpConvIntToUint8; break; - case EbtUint: newOp = EOpConvUintToUint8; break; - case EbtInt64: newOp = EOpConvInt64ToUint8; break; - case EbtUint64: newOp = EOpConvUint64ToUint8; break; - case EbtBool: newOp = EOpConvBoolToUint8; break; - case EbtFloat: newOp = EOpConvFloatToUint8; break; - case EbtDouble: newOp = EOpConvDoubleToUint8; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint8; break; - default: - return nullptr; - } - break; - - case EbtInt16: - switch (node->getBasicType()) { - case EbtUint8: newOp = EOpConvUint8ToInt16; break; - case EbtInt8: newOp = EOpConvInt8ToInt16; break; - case EbtUint16: newOp = EOpConvUint16ToInt16; break; - case EbtInt: newOp = EOpConvIntToInt16; break; - case EbtUint: newOp = EOpConvUintToInt16; break; - case EbtInt64: newOp = EOpConvInt64ToInt16; break; - case EbtUint64: newOp = EOpConvUint64ToInt16; break; - case EbtBool: newOp = EOpConvBoolToInt16; break; - case EbtFloat: newOp = EOpConvFloatToInt16; break; - case EbtDouble: newOp = EOpConvDoubleToInt16; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt16; break; - default: - return nullptr; - } - break; - case EbtUint16: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint16; break; - case EbtUint8: newOp = EOpConvUint8ToUint16; break; - case EbtInt16: newOp = EOpConvInt16ToUint16; break; - case EbtInt: newOp = EOpConvIntToUint16; break; - case EbtUint: newOp = EOpConvUintToUint16; break; - case EbtInt64: newOp = EOpConvInt64ToUint16; break; - case EbtUint64: newOp = EOpConvUint64ToUint16; break; - case EbtBool: newOp = EOpConvBoolToUint16; break; - case EbtFloat: newOp = EOpConvFloatToUint16; break; - case EbtDouble: newOp = EOpConvDoubleToUint16; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint16; break; - default: - return nullptr; - } - break; #endif - case EbtInt: - switch (node->getBasicType()) { - 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 nullptr; - } - break; - case EbtUint: - switch (node->getBasicType()) { - 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 nullptr; - } - break; -#ifndef GLSLANG_WEB - case EbtInt64: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToInt64; break; - case EbtUint8: newOp = EOpConvUint8ToInt64; break; - case EbtInt16: newOp = EOpConvInt16ToInt64; break; - case EbtUint16: newOp = EOpConvUint16ToInt64; break; - case EbtInt: newOp = EOpConvIntToInt64; break; - case EbtUint: newOp = EOpConvUintToInt64; break; - case EbtBool: newOp = EOpConvBoolToInt64; break; - case EbtFloat: newOp = EOpConvFloatToInt64; break; - case EbtDouble: newOp = EOpConvDoubleToInt64; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; - case EbtUint64: newOp = EOpConvUint64ToInt64; break; - default: - return nullptr; - } - break; - case EbtUint64: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint64; break; - case EbtUint8: newOp = EOpConvUint8ToUint64; break; - case EbtInt16: newOp = EOpConvInt16ToUint64; break; - case EbtUint16: newOp = EOpConvUint16ToUint64; break; - case EbtInt: newOp = EOpConvIntToUint64; break; - case EbtUint: newOp = EOpConvUintToUint64; break; - case EbtBool: newOp = EOpConvBoolToUint64; break; - case EbtFloat: newOp = EOpConvFloatToUint64; break; - case EbtDouble: newOp = EOpConvDoubleToUint64; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; - case EbtInt64: newOp = EOpConvInt64ToUint64; break; - default: - return nullptr; - } - break; -#endif - default: + TIntermUnary* newNode = nullptr; + TOperator newOp = EOpNull; + if (!buildConvertOp(convertTo, node->getBasicType(), newOp)) { return nullptr; } @@ -839,11 +848,14 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped 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))) { + (getArithemeticFloat16Enabled() || !(convertTo == EbtFloat16))) +#endif + { TIntermTyped* folded = node->getAsConstantUnion()->fold(newOp, newType); if (folded) return folded; @@ -1117,6 +1129,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpLit: case EOpMax: case EOpMin: + case EOpMod: case EOpModf: case EOpPow: case EOpReflect: diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 33a16641..9c46d57c 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2,7 +2,7 @@ // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2015 LunarG, Inc. // Copyright (C) 2015-2018 Google, Inc. -// Copyright (C) 2017 ARM Limited. +// Copyright (C) 2017, 2019 ARM Limited. // // All rights reserved. // @@ -319,10 +319,15 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb // If this is a variable or a block, check it and all it contains, but if this // is a member of an anonymous block, check the whole block, as the whole block // will need to be copied up if it contains an unsized array. - if (symbol->getType().containsUnsizedArray() || - (symbol->getAsAnonMember() && - symbol->getAsAnonMember()->getAnonContainer().getType().containsUnsizedArray())) - makeEditable(symbol); + // + // 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 @@ -347,8 +352,7 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb // 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) { + if (variable->getType().isUnusableName()) { error(loc, "cannot be used (maybe an instance name is needed)", string->c_str(), ""); variable = nullptr; } @@ -1156,6 +1160,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction 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)) @@ -1175,6 +1180,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction // 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 @@ -2151,9 +2157,12 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan break; case EOpSubgroupBroadcast: - // must be an integral constant expression. - if ((*argp)[1]->getAsConstantUnion() == nullptr) - error(loc, "argument must be compile-time constant", "id", ""); + 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: @@ -2194,10 +2203,34 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan break; } - if (callNode.getOp() > EOpSubgroupGuardStart && callNode.getOp() < EOpSubgroupGuardStop) { + 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; + } + } } } @@ -2636,14 +2669,14 @@ void TParseContext::reservedErrorCheck(const TSourceLoc& loc, const TString& ide if (builtInName(identifier)) error(loc, "identifiers starting with \"gl_\" are reserved", identifier.c_str(), ""); - // "__" are not supposed to be an error. ES 310 (and desktop) added the clarification: + // "__" 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(), ""); + 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(), ""); } @@ -2655,7 +2688,7 @@ void TParseContext::reservedErrorCheck(const TSourceLoc& loc, const TString& ide // void TParseContext::reservedPpErrorCheck(const TSourceLoc& loc, const char* identifier, const char* op) { - // "__" are not supposed to be an error. ES 310 (and desktop) added the clarification: + // "__" 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 @@ -2673,8 +2706,8 @@ void TParseContext::reservedPpErrorCheck(const TSourceLoc& loc, const char* iden 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); + 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); } @@ -2744,14 +2777,29 @@ bool TParseContext::builtInName(const TString& identifier) // bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, TFunction& function, TOperator op, TType& type) { - type.shallowCopy(function.getType()); - - bool constructingMatrix = false; - switch(op) { + // 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); -#endif case EOpConstructMat2x2: case EOpConstructMat2x3: case EOpConstructMat2x4: @@ -2841,6 +2889,8 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T } } } + if (op == EOpConstructNonuniform) + constType = false; #ifndef GLSLANG_WEB switch (op) { @@ -3341,11 +3391,11 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali requireProfile(loc, ~EEsProfile, "fragment-shader struct input containing an array"); } break; -#ifndef GLSLANG_WEB 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", ""); @@ -3386,10 +3436,10 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali error(loc, "cannot contain a double, int64, or uint64", GetStorageQualifierString(qualifier.storage), ""); break; -#ifndef GLSLANG_WEB 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", ""); @@ -3767,10 +3817,6 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua // for ES, if size isn't coming from an initializer, it has to be explicitly declared now, // with very few exceptions - // last member of ssbo block exception: - if (qualifier.storage == EvqBuffer && lastMember) - return; - // implicitly-sized io exceptions: switch (language) { case EShLangGeometry: @@ -3805,6 +3851,10 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua #endif + // last member of ssbo block exception: + if (qualifier.storage == EvqBuffer && lastMember) + return; + arraySizeRequiredCheck(loc, *arraySizes); } @@ -4429,6 +4479,7 @@ void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQu 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; @@ -4441,6 +4492,7 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali type.getQualifier().writeonly = qualifier.writeonly; type.getQualifier().restrict = qualifier.restrict; } +#endif if (qualifier.isAuxiliary() || qualifier.isInterpolation()) @@ -5102,7 +5154,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi 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 }; + 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(), ""); @@ -5246,11 +5299,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi error(loc, "needs a literal integer", "buffer_reference_align", ""); return; } +#endif switch (language) { - case EShLangVertex: - break; - +#ifndef GLSLANG_WEB case EShLangTessControl: if (id == "vertices") { if (value == 0) @@ -5263,9 +5315,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } break; - case EShLangTessEvaluation: - break; - case EShLangGeometry: if (id == "invocations") { profileRequires(loc, ECompatibilityProfile | ECoreProfile, 400, nullptr, "invocations"); @@ -5338,16 +5387,17 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi 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 - { + } 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) { @@ -5356,14 +5406,17 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } 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) { @@ -5382,12 +5435,11 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } } break; + default: break; } -#endif // GLSLANG_WEB - error(loc, "there is no such layout identifier for this stage taking an assigned value", id.c_str(), ""); } @@ -5859,8 +5911,9 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier case EvqBuffer: { const char* feature = "location qualifier on uniform or buffer"; - requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature); + 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; } @@ -6869,7 +6922,7 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T // This avoids requesting a matrix of a new type that is going to be discarded anyway. // TODO: This could be generalized to more type combinations, but that would require // more extensive testing and full algorithm rework. For now, the need to do two changes makes - // the recursive call work, and avoids the most aggregious case of creating integer matrices. + // 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()); @@ -6908,6 +6961,12 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T 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: @@ -6958,8 +7017,14 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T if (!intermediate.getArithemeticFloat16Enabled()) { TType tempType(EbtFloat, EvqTemporary, type.getVectorSize()); newNode = node; - if (tempType != newNode->getType()) - newNode = intermediate.setAggregateOperator(newNode, (TOperator)(EOpConstructVec2 + op - EOpConstructF16Vec2), tempType, node->getLoc()); + 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; } @@ -6975,8 +7040,14 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T if (!intermediate.getArithemeticInt8Enabled()) { TType tempType(EbtInt, EvqTemporary, type.getVectorSize()); newNode = node; - if (tempType != newNode->getType()) - newNode = intermediate.setAggregateOperator(newNode, (TOperator)(EOpConstructIVec2 + op - EOpConstructI8Vec2), tempType, node->getLoc()); + 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; } @@ -6992,8 +7063,14 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T if (!intermediate.getArithemeticInt8Enabled()) { TType tempType(EbtUint, EvqTemporary, type.getVectorSize()); newNode = node; - if (tempType != newNode->getType()) - newNode = intermediate.setAggregateOperator(newNode, (TOperator)(EOpConstructUVec2 + op - EOpConstructU8Vec2), tempType, node->getLoc()); + 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; } @@ -7009,8 +7086,14 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T if (!intermediate.getArithemeticInt16Enabled()) { TType tempType(EbtInt, EvqTemporary, type.getVectorSize()); newNode = node; - if (tempType != newNode->getType()) - newNode = intermediate.setAggregateOperator(newNode, (TOperator)(EOpConstructIVec2 + op - EOpConstructI16Vec2), tempType, node->getLoc()); + 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; } @@ -7026,8 +7109,14 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T if (!intermediate.getArithemeticInt16Enabled()) { TType tempType(EbtUint, EvqTemporary, type.getVectorSize()); newNode = node; - if (tempType != newNode->getType()) - newNode = intermediate.setAggregateOperator(newNode, (TOperator)(EOpConstructUVec2 + op - EOpConstructU16Vec2), tempType, node->getLoc()); + 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; } @@ -7054,8 +7143,7 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T case EOpConstructNonuniform: // Make a nonuniform copy of node - newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpCopyObject, true, node, node->getType()); - newNode->getWritableType().getQualifier().nonUniform = true; + newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpCopyObject, true, node, type); return newNode; case EOpConstructReference: @@ -7065,7 +7153,15 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T 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); + 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; @@ -7320,6 +7416,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con 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", ""); @@ -7333,6 +7430,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con 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(), ""); @@ -7375,6 +7473,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con 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 @@ -7384,6 +7483,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con if (!currentBlockQualifier.hasXfbBuffer() && currentBlockQualifier.hasXfbOffset()) currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; } +#endif // Process the members fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation); @@ -7940,8 +8040,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con else error(loc, "can only apply to 'in'", "point_mode", ""); } +#endif for (int i = 0; i < 3; ++i) { - if (publicType.shaderQualifiers.localSize[i] > 1) { + 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", ""); @@ -7956,7 +8057,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con } if (intermediate.getLocalSize(i) > (unsigned int)max) error(loc, "too large; see gl_MaxComputeWorkGroupSize", "local_size", ""); - } else if (language == EShLangMeshNV) { + } +#ifndef GLSLANG_WEB + else if (language == EShLangMeshNV) { switch (i) { case 0: max = resources.maxMeshWorkGroupSizeX_NV; break; case 1: max = resources.maxMeshWorkGroupSizeY_NV; break; @@ -7974,7 +8077,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con } if (intermediate.getLocalSize(i) > (unsigned int)max) error(loc, "too large; see gl_MaxTaskWorkGroupSizeNV", "local_size", ""); - } else { + } +#endif + else { assert(0); } @@ -7999,6 +8104,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con } } +#ifndef GLSLANG_WEB if (publicType.shaderQualifiers.earlyFragmentTests) { if (publicType.qualifier.storage == EvqVaryingIn) intermediate.setEarlyFragmentTests(); diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 5cee05e1..39363f1a 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -283,7 +283,7 @@ public: const TString* entryPoint = nullptr); virtual ~TParseContext(); - bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }; + bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); } void setPrecisionDefaults(); void setLimits(const TBuiltInResource&) override; diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 9a9b69cc..75cc475e 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -343,6 +343,7 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["const"] = CONST; (*KeywordMap)["uniform"] = UNIFORM; + (*KeywordMap)["buffer"] = BUFFER; (*KeywordMap)["in"] = IN; (*KeywordMap)["out"] = OUT; (*KeywordMap)["smooth"] = SMOOTH; @@ -410,7 +411,6 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["attribute"] = ATTRIBUTE; (*KeywordMap)["varying"] = VARYING; (*KeywordMap)["noperspective"] = NOPERSPECTIVE; - (*KeywordMap)["buffer"] = BUFFER; (*KeywordMap)["coherent"] = COHERENT; (*KeywordMap)["devicecoherent"] = DEVICECOHERENT; (*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT; @@ -564,10 +564,6 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["sampler2D"] = SAMPLER2D; (*KeywordMap)["samplerCube"] = SAMPLERCUBE; - (*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY; - (*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW; - (*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY; - (*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY; (*KeywordMap)["samplerCubeShadow"] = SAMPLERCUBESHADOW; (*KeywordMap)["sampler2DArray"] = SAMPLER2DARRAY; (*KeywordMap)["sampler2DArrayShadow"] = SAMPLER2DARRAYSHADOW; @@ -582,7 +578,30 @@ void TScanContext::fillInKeywordMap() (*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; @@ -609,28 +628,11 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target - (*KeywordMap)["sampler"] = SAMPLER; - (*KeywordMap)["samplerShadow"] = SAMPLERSHADOW; - - (*KeywordMap)["texture2D"] = TEXTURE2D; - (*KeywordMap)["textureCube"] = TEXTURECUBE; - (*KeywordMap)["textureCubeArray"] = TEXTURECUBEARRAY; - (*KeywordMap)["itextureCubeArray"] = ITEXTURECUBEARRAY; - (*KeywordMap)["utextureCubeArray"] = UTEXTURECUBEARRAY; (*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY; (*KeywordMap)["utexture1D"] = UTEXTURE1D; (*KeywordMap)["itexture1D"] = ITEXTURE1D; (*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY; (*KeywordMap)["textureBuffer"] = TEXTUREBUFFER; - (*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)["itexture2DRect"] = ITEXTURE2DRECT; (*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT; (*KeywordMap)["itextureBuffer"] = ITEXTUREBUFFER; @@ -642,7 +644,6 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY; (*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY; (*KeywordMap)["texture1D"] = TEXTURE1D; - (*KeywordMap)["texture3D"] = TEXTURE3D; (*KeywordMap)["texture2DRect"] = TEXTURE2DRECT; (*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY; @@ -904,6 +905,13 @@ int TScanContext::tokenizeIdentifier() 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; @@ -982,8 +990,7 @@ int TScanContext::tokenizeIdentifier() #ifndef GLSLANG_WEB case NOPERSPECTIVE: - if (parseContext.isEsProfile() && parseContext.version >= 300 && - parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation)) + if (parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation)) return keyword; return es30ReservedFromGLSL(130); @@ -997,12 +1004,6 @@ int TScanContext::tokenizeIdentifier() if (parseContext.isEsProfile() && parseContext.version >= 300) reservedWord(); return keyword; - case BUFFER: - afterBuffer = true; - if ((parseContext.isEsProfile() && parseContext.version < 310) || - (!parseContext.isEsProfile() && parseContext.version < 430)) - return identifierOrType(); - return keyword; case PAYLOADNV: case PAYLOADINNV: case HITATTRNV: @@ -1010,8 +1011,7 @@ int TScanContext::tokenizeIdentifier() case CALLDATAINNV: case ACCSTRUCTNV: if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && parseContext.version >= 460 - && parseContext.extensionTurnedOn(E_GL_NV_ray_tracing))) + parseContext.extensionTurnedOn(E_GL_NV_ray_tracing)) return keyword; return identifierOrType(); case ATOMIC_UINT: @@ -1057,13 +1057,12 @@ int TScanContext::tokenizeIdentifier() case SUBROUTINE: return es30ReservedFromGLSL(400); +#endif case SHARED: if ((parseContext.isEsProfile() && parseContext.version < 300) || (!parseContext.isEsProfile() && parseContext.version < 140)) return identifierOrType(); return keyword; -#endif - case LAYOUT: { const int numLayoutExts = 2; @@ -1181,10 +1180,9 @@ int TScanContext::tokenizeIdentifier() case U64VEC4: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && parseContext.version >= 450 && - (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)))) + 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(); @@ -1198,10 +1196,9 @@ int TScanContext::tokenizeIdentifier() 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)) && - !parseContext.isEsProfile() && parseContext.version >= 450)) + 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(); @@ -1215,11 +1212,10 @@ int TScanContext::tokenizeIdentifier() case U16VEC4: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && parseContext.version >= 450 && - (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)))) + 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: @@ -1232,9 +1228,8 @@ int TScanContext::tokenizeIdentifier() 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)) && - !parseContext.isEsProfile() && parseContext.version >= 450)) + 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: @@ -1255,9 +1250,8 @@ int TScanContext::tokenizeIdentifier() 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)) && - !parseContext.isEsProfile() && parseContext.version >= 450)) + parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float32)) return keyword; return identifierOrType(); @@ -1279,9 +1273,8 @@ int TScanContext::tokenizeIdentifier() 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)) && - !parseContext.isEsProfile() && parseContext.version >= 450)) + parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float64)) return keyword; return identifierOrType(); @@ -1291,11 +1284,10 @@ int TScanContext::tokenizeIdentifier() case F16VEC4: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && parseContext.version >= 450 && - (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)))) + 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(); @@ -1314,14 +1306,12 @@ int TScanContext::tokenizeIdentifier() case F16MAT4X4: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (!parseContext.isEsProfile() && parseContext.version >= 450 && - (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)))) + 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(); -#endif case SAMPLERCUBEARRAY: case SAMPLERCUBEARRAYSHADOW: @@ -1335,6 +1325,15 @@ int TScanContext::tokenizeIdentifier() 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: @@ -1369,6 +1368,25 @@ int TScanContext::tokenizeIdentifier() } 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: @@ -1458,25 +1476,11 @@ int TScanContext::tokenizeIdentifier() return keyword; return identifierOrType(); - case TEXTURE2D: - case TEXTURECUBE: - case TEXTURECUBEARRAY: - case ITEXTURECUBEARRAY: - case UTEXTURECUBEARRAY: case ITEXTURE1DARRAY: case UTEXTURE1D: case ITEXTURE1D: case UTEXTURE1DARRAY: case TEXTUREBUFFER: - case TEXTURE2DARRAY: - case ITEXTURE2D: - case ITEXTURE3D: - case ITEXTURECUBE: - case ITEXTURE2DARRAY: - case UTEXTURE2D: - case UTEXTURE3D: - case UTEXTURECUBE: - case UTEXTURE2DARRAY: case ITEXTURE2DRECT: case UTEXTURE2DRECT: case ITEXTUREBUFFER: @@ -1488,11 +1492,8 @@ int TScanContext::tokenizeIdentifier() case ITEXTURE2DMSARRAY: case UTEXTURE2DMSARRAY: case TEXTURE1D: - case TEXTURE3D: case TEXTURE2DRECT: case TEXTURE1DARRAY: - case SAMPLER: - case SAMPLERSHADOW: if (parseContext.spvVersion.vulkan > 0) return keyword; else @@ -1556,20 +1557,17 @@ int TScanContext::tokenizeIdentifier() case F16SUBPASSINPUTMS: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float_fetch) && - !parseContext.isEsProfile() && parseContext.version >= 450)) + parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float_fetch)) return keyword; return identifierOrType(); case EXPLICITINTERPAMD: - if (!parseContext.isEsProfile() && parseContext.version >= 450 && - parseContext.extensionTurnedOn(E_GL_AMD_shader_explicit_vertex_parameter)) + if (parseContext.extensionTurnedOn(E_GL_AMD_shader_explicit_vertex_parameter)) return keyword; return identifierOrType(); case PERVERTEXNV: - if (((!parseContext.isEsProfile() && parseContext.version >= 450) || - (parseContext.isEsProfile() && parseContext.version >= 320)) && + if ((!parseContext.isEsProfile() && parseContext.version >= 450) || parseContext.extensionTurnedOn(E_GL_NV_fragment_shader_barycentric)) return keyword; return identifierOrType(); diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp old mode 100755 new mode 100644 index f63305e1..44ce1c19 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -288,6 +288,11 @@ void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int versi 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]); @@ -304,6 +309,11 @@ void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int versi // 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) @@ -341,6 +351,7 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS (profile == EEsProfile && version >= 310)) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source, infoSink, commonTable, symbolTables); +#endif // check for compute if ((profile != EEsProfile && version >= 420) || @@ -375,7 +386,6 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS (profile == EEsProfile && version >= 320)) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source, infoSink, commonTable, symbolTables); -#endif return true; } @@ -871,6 +881,11 @@ bool ProcessDeferred( 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; @@ -2048,6 +2063,9 @@ bool TProgram::buildReflection(int opts) 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(); } diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp old mode 100755 new mode 100644 index 2ea14af2..44682379 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -114,6 +114,7 @@ void TType::buildMangledName(TString& mangledName) const 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"; @@ -129,6 +130,7 @@ void TType::buildMangledName(TString& mangledName) const case 4: break; // default to prior name mangle behavior } } +#endif if (sampler.isMultiSample()) mangledName += "M"; diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h old mode 100755 new mode 100644 diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index eb1314a6..23cc5302 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -174,6 +174,7 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_texture_cube_map_array] = 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; @@ -214,6 +215,7 @@ void TParseVersions::initializeExtensionBehavior() 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; @@ -234,6 +236,8 @@ void TParseVersions::initializeExtensionBehavior() 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; @@ -300,6 +304,12 @@ void TParseVersions::initializeExtensionBehavior() 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 @@ -371,6 +381,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_ARB_texture_cube_map_array 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" @@ -398,6 +409,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#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 @@ -424,6 +436,8 @@ void TParseVersions::getPreamble(std::string& preamble) "#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" @@ -447,6 +461,11 @@ void TParseVersions::getPreamble(std::string& preamble) "#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) { @@ -512,11 +531,11 @@ 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 EShLangCompute: return "compute"; case EShLangRayGenNV: return "ray-generation"; case EShLangIntersectNV: return "intersection"; case EShLangAnyHitNV: return "any-hit"; @@ -822,10 +841,20 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co 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) + 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) diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 9535c891..5048ad7d 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -126,6 +126,7 @@ const char* const E_GL_ARB_enhanced_layouts = "GL_ARB_enhanced_layou const char* const E_GL_ARB_texture_cube_map_array = "GL_ARB_texture_cube_map_array"; 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"; @@ -174,6 +175,7 @@ const char* const E_GL_EXT_scalar_block_layout = "GL_EXT_scalar_blo 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"; @@ -204,6 +206,8 @@ const char* const E_GL_AMD_shader_image_load_store_lod = "GL_AMD_shader 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"; @@ -257,7 +261,7 @@ const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessel const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer"; const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array"; -// KHX +// 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"; @@ -267,6 +271,11 @@ const char* const E_GL_EXT_shader_explicit_arithmetic_types_float16 = "GL_EXT_s 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 }; diff --git a/glslang/MachineIndependent/attribute.h b/glslang/MachineIndependent/attribute.h index 844ce458..38a943d2 100644 --- a/glslang/MachineIndependent/attribute.h +++ b/glslang/MachineIndependent/attribute.h @@ -76,7 +76,49 @@ namespace glslang { EatMaxIterations, EatIterationMultiple, EatPeelCount, - EatPartialCount + 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; diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4 index 6ace0380..20f2ba40 100644 --- a/glslang/MachineIndependent/glslang.m4 +++ b/glslang/MachineIndependent/glslang.m4 @@ -38,7 +38,7 @@ // // Do not edit the .y file, only edit the .m4 file. -// The .y bison file is not a source file, it is a derivitive of 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: @@ -49,7 +49,7 @@ // ... // GLSLANG_WEB_EXCLUDE_OFF // -// Will be exluded from the grammar when m4 is executed as: +// Will be excluded from the grammar when m4 is executed as: // // m4 -P -DGLSLANG_WEB // @@ -166,8 +166,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %token SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE %token ISAMPLER2DARRAY USAMPLER2D USAMPLER3D %token USAMPLERCUBE USAMPLER2DARRAY -%token SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW -%token ISAMPLERCUBEARRAY USAMPLERCUBEARRAY + +// 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 @@ -203,6 +207,8 @@ GLSLANG_WEB_EXCLUDE_ON %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 @@ -233,18 +239,12 @@ GLSLANG_WEB_EXCLUDE_ON %token F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY %token F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY -// pure sampler -%token SAMPLER SAMPLERSHADOW - // texture without sampler -%token TEXTURE1D TEXTURE2D TEXTURE3D TEXTURECUBE -%token TEXTURE1DARRAY TEXTURE2DARRAY -%token ITEXTURE1D ITEXTURE2D ITEXTURE3D ITEXTURECUBE -%token ITEXTURE1DARRAY ITEXTURE2DARRAY UTEXTURE1D UTEXTURE2D UTEXTURE3D -%token UTEXTURECUBE UTEXTURE1DARRAY UTEXTURE2DARRAY +%token TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY +%token TEXTURE1D ITEXTURE1D UTEXTURE1D +%token TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY %token TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT %token TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER -%token TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY %token TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS %token TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY @@ -277,7 +277,7 @@ GLSLANG_WEB_EXCLUDE_OFF %token CENTROID IN OUT INOUT %token STRUCT VOID WHILE %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT -%token UNIFORM SHARED +%token UNIFORM SHARED BUFFER %token FLAT SMOOTH LAYOUT GLSLANG_WEB_EXCLUDE_ON @@ -285,7 +285,7 @@ GLSLANG_WEB_EXCLUDE_ON %token INT64CONSTANT UINT64CONSTANT %token SUBROUTINE DEMOTE %token PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV -%token PATCH SAMPLE BUFFER NONUNIFORM +%token PATCH SAMPLE NONUNIFORM %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT %token SUBGROUPCOHERENT NONPRIVATE %token NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV @@ -1360,7 +1360,6 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqUniform; } -GLSLANG_WEB_EXCLUDE_ON | SHARED { parseContext.globalCheck($1.loc, "shared"); parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); @@ -1374,6 +1373,7 @@ GLSLANG_WEB_EXCLUDE_ON $$.init($1.loc); $$.qualifier.storage = EvqBuffer; } +GLSLANG_WEB_EXCLUDE_ON | ATTRIBUTE { parseContext.requireStage($1.loc, EShLangVertex, "attribute"); parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute"); @@ -2354,6 +2354,16 @@ GLSLANG_WEB_EXCLUDE_OFF $$.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()); @@ -2370,17 +2380,6 @@ GLSLANG_WEB_EXCLUDE_ON $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, Esd1D, true, true); } -GLSLANG_WEB_EXCLUDE_OFF - | 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); - } | SAMPLERCUBEARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2391,7 +2390,6 @@ GLSLANG_WEB_EXCLUDE_OFF $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdCube, true, true); } -GLSLANG_WEB_EXCLUDE_ON | F16SAMPLER1D { parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -2491,30 +2489,11 @@ GLSLANG_WEB_EXCLUDE_OFF $$.basicType = EbtSampler; $$.sampler.set(EbtInt, EsdCube); } -GLSLANG_WEB_EXCLUDE_ON - | ISAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd1D, true); - } -GLSLANG_WEB_EXCLUDE_OFF | ISAMPLER2DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.set(EbtInt, Esd2D, true); } - | ISAMPLERCUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, EsdCube, true); - } -GLSLANG_WEB_EXCLUDE_ON - | USAMPLER1D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, Esd1D); - } -GLSLANG_WEB_EXCLUDE_OFF | USAMPLER2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2531,21 +2510,121 @@ GLSLANG_WEB_EXCLUDE_OFF $$.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); } - | USAMPLERCUBEARRAY { + | TEXTURE2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdCube, true); + $$.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 { @@ -2643,16 +2722,6 @@ GLSLANG_WEB_EXCLUDE_ON $$.basicType = EbtSampler; $$.sampler.set(EbtUint, Esd2D, true, false, 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); - } | TEXTURE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2664,33 +2733,18 @@ GLSLANG_WEB_EXCLUDE_ON $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd1D); } - | TEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D); - } | F16TEXTURE2D { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd2D); } - | TEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd3D); - } | F16TEXTURE3D { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd3D); } - | TEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube); - } | F16TEXTURECUBE { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -2708,22 +2762,12 @@ GLSLANG_WEB_EXCLUDE_ON $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd1D, true); } - | TEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, 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); } - | TEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube, true); - } | F16TEXTURECUBEARRAY { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -2735,71 +2779,21 @@ GLSLANG_WEB_EXCLUDE_ON $$.basicType = EbtSampler; $$.sampler.setTexture(EbtInt, Esd1D); } - | 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); - } | ITEXTURE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtInt, Esd1D, true); } - | ITEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, true); - } - | ITEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdCube, true); - } | UTEXTURE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtUint, Esd1D); } - | 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); - } | UTEXTURE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtUint, Esd1D, true); } - | UTEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, true); - } - | UTEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdCube, true); - } | TEXTURE2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 008faf0e..e263f3d7 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -38,7 +38,7 @@ // // Do not edit the .y file, only edit the .m4 file. -// The .y bison file is not a source file, it is a derivitive of 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: @@ -49,7 +49,7 @@ // ... // GLSLANG_WEB_EXCLUDE_OFF // -// Will be exluded from the grammar when m4 is executed as: +// Will be excluded from the grammar when m4 is executed as: // // m4 -P -DGLSLANG_WEB // @@ -166,8 +166,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %token SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE %token ISAMPLER2DARRAY USAMPLER2D USAMPLER3D %token USAMPLERCUBE USAMPLER2DARRAY -%token SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW -%token ISAMPLERCUBEARRAY USAMPLERCUBEARRAY + +// separate image/sampler +%token SAMPLER SAMPLERSHADOW +%token TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY +%token ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY +%token UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY @@ -203,6 +207,8 @@ extern int yylex(YYSTYPE*, TParseContext&); %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 @@ -233,18 +239,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %token F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY %token F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY -// pure sampler -%token SAMPLER SAMPLERSHADOW - // texture without sampler -%token TEXTURE1D TEXTURE2D TEXTURE3D TEXTURECUBE -%token TEXTURE1DARRAY TEXTURE2DARRAY -%token ITEXTURE1D ITEXTURE2D ITEXTURE3D ITEXTURECUBE -%token ITEXTURE1DARRAY ITEXTURE2DARRAY UTEXTURE1D UTEXTURE2D UTEXTURE3D -%token UTEXTURECUBE UTEXTURE1DARRAY UTEXTURE2DARRAY +%token TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY +%token TEXTURE1D ITEXTURE1D UTEXTURE1D +%token TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY %token TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT %token TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER -%token TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY %token TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS %token TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY @@ -277,7 +277,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token CENTROID IN OUT INOUT %token STRUCT VOID WHILE %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT -%token UNIFORM SHARED +%token UNIFORM SHARED BUFFER %token FLAT SMOOTH LAYOUT @@ -285,7 +285,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token INT64CONSTANT UINT64CONSTANT %token SUBROUTINE DEMOTE %token PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV -%token PATCH SAMPLE BUFFER NONUNIFORM +%token PATCH SAMPLE NONUNIFORM %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT %token SUBGROUPCOHERENT NONPRIVATE %token NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV @@ -1360,7 +1360,6 @@ storage_qualifier $$.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"); @@ -1374,6 +1373,7 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqBuffer; } + | ATTRIBUTE { parseContext.requireStage($1.loc, EShLangVertex, "attribute"); parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute"); @@ -2354,6 +2354,16 @@ type_specifier_nonarray $$.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()); @@ -2370,17 +2380,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, Esd1D, true, 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); - } | SAMPLERCUBEARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2391,7 +2390,6 @@ type_specifier_nonarray $$.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()); @@ -2491,30 +2489,11 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtInt, EsdCube); } - - | ISAMPLER1DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtInt, Esd1D, true); - } - | ISAMPLER2DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.set(EbtInt, Esd2D, 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); - } - | USAMPLER2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2531,21 +2510,121 @@ type_specifier_nonarray $$.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); } - | USAMPLERCUBEARRAY { + | TEXTURE2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; - $$.sampler.set(EbtUint, EsdCube, true); + $$.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 { @@ -2643,16 +2722,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtUint, Esd2D, true, false, 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); - } | TEXTURE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2664,33 +2733,18 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd1D); } - | TEXTURE2D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D); - } | F16TEXTURE2D { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd2D); } - | TEXTURE3D { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd3D); - } | F16TEXTURE3D { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd3D); } - | TEXTURECUBE { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube); - } | F16TEXTURECUBE { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -2708,22 +2762,12 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat16, Esd1D, true); } - | TEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, Esd2D, 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); } - | TEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat, EsdCube, true); - } | F16TEXTURECUBEARRAY { parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -2735,71 +2779,21 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtInt, Esd1D); } - | 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); - } | ITEXTURE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtInt, Esd1D, true); } - | ITEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, Esd2D, true); - } - | ITEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtInt, EsdCube, true); - } | UTEXTURE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtUint, Esd1D); } - | 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); - } | UTEXTURE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtUint, Esd1D, true); } - | UTEXTURE2DARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, Esd2D, true); - } - | UTEXTURECUBEARRAY { - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtUint, EsdCube, true); - } | TEXTURE2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 523e4058..d2967973 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -167,227 +167,227 @@ extern int yydebug; USAMPLER3D = 299, USAMPLERCUBE = 300, USAMPLER2DARRAY = 301, - SAMPLERCUBEARRAY = 302, - SAMPLERCUBEARRAYSHADOW = 303, - ISAMPLERCUBEARRAY = 304, - USAMPLERCUBEARRAY = 305, - ATTRIBUTE = 306, - VARYING = 307, - FLOAT16_T = 308, - FLOAT32_T = 309, - DOUBLE = 310, - FLOAT64_T = 311, - INT64_T = 312, - UINT64_T = 313, - INT32_T = 314, - UINT32_T = 315, - INT16_T = 316, - UINT16_T = 317, - INT8_T = 318, - UINT8_T = 319, - I64VEC2 = 320, - I64VEC3 = 321, - I64VEC4 = 322, - U64VEC2 = 323, - U64VEC3 = 324, - U64VEC4 = 325, - I32VEC2 = 326, - I32VEC3 = 327, - I32VEC4 = 328, - U32VEC2 = 329, - U32VEC3 = 330, - U32VEC4 = 331, - I16VEC2 = 332, - I16VEC3 = 333, - I16VEC4 = 334, - U16VEC2 = 335, - U16VEC3 = 336, - U16VEC4 = 337, - I8VEC2 = 338, - I8VEC3 = 339, - I8VEC4 = 340, - U8VEC2 = 341, - U8VEC3 = 342, - U8VEC4 = 343, - DVEC2 = 344, - DVEC3 = 345, - DVEC4 = 346, - DMAT2 = 347, - DMAT3 = 348, - DMAT4 = 349, - F16VEC2 = 350, - F16VEC3 = 351, - F16VEC4 = 352, - F16MAT2 = 353, - F16MAT3 = 354, - F16MAT4 = 355, - F32VEC2 = 356, - F32VEC3 = 357, - F32VEC4 = 358, - F32MAT2 = 359, - F32MAT3 = 360, - F32MAT4 = 361, - F64VEC2 = 362, - F64VEC3 = 363, - F64VEC4 = 364, - F64MAT2 = 365, - F64MAT3 = 366, - F64MAT4 = 367, - DMAT2X2 = 368, - DMAT2X3 = 369, - DMAT2X4 = 370, - DMAT3X2 = 371, - DMAT3X3 = 372, - DMAT3X4 = 373, - DMAT4X2 = 374, - DMAT4X3 = 375, - DMAT4X4 = 376, - F16MAT2X2 = 377, - F16MAT2X3 = 378, - F16MAT2X4 = 379, - F16MAT3X2 = 380, - F16MAT3X3 = 381, - F16MAT3X4 = 382, - F16MAT4X2 = 383, - F16MAT4X3 = 384, - F16MAT4X4 = 385, - F32MAT2X2 = 386, - F32MAT2X3 = 387, - F32MAT2X4 = 388, - F32MAT3X2 = 389, - F32MAT3X3 = 390, - F32MAT3X4 = 391, - F32MAT4X2 = 392, - F32MAT4X3 = 393, - F32MAT4X4 = 394, - F64MAT2X2 = 395, - F64MAT2X3 = 396, - F64MAT2X4 = 397, - F64MAT3X2 = 398, - F64MAT3X3 = 399, - F64MAT3X4 = 400, - F64MAT4X2 = 401, - F64MAT4X3 = 402, - F64MAT4X4 = 403, - ATOMIC_UINT = 404, - ACCSTRUCTNV = 405, - FCOOPMATNV = 406, - ICOOPMATNV = 407, - UCOOPMATNV = 408, - SAMPLER1D = 409, - SAMPLER1DARRAY = 410, - SAMPLER1DARRAYSHADOW = 411, - ISAMPLER1D = 412, - SAMPLER1DSHADOW = 413, - SAMPLER2DRECT = 414, - SAMPLER2DRECTSHADOW = 415, - ISAMPLER2DRECT = 416, - USAMPLER2DRECT = 417, - SAMPLERBUFFER = 418, - ISAMPLERBUFFER = 419, - USAMPLERBUFFER = 420, - SAMPLER2DMS = 421, - ISAMPLER2DMS = 422, - USAMPLER2DMS = 423, - SAMPLER2DMSARRAY = 424, - ISAMPLER2DMSARRAY = 425, - USAMPLER2DMSARRAY = 426, - SAMPLEREXTERNALOES = 427, - SAMPLEREXTERNAL2DY2YEXT = 428, - ISAMPLER1DARRAY = 429, - USAMPLER1D = 430, - USAMPLER1DARRAY = 431, - F16SAMPLER1D = 432, - F16SAMPLER2D = 433, - F16SAMPLER3D = 434, - F16SAMPLER2DRECT = 435, - F16SAMPLERCUBE = 436, - F16SAMPLER1DARRAY = 437, - F16SAMPLER2DARRAY = 438, - F16SAMPLERCUBEARRAY = 439, - F16SAMPLERBUFFER = 440, - F16SAMPLER2DMS = 441, - F16SAMPLER2DMSARRAY = 442, - F16SAMPLER1DSHADOW = 443, - F16SAMPLER2DSHADOW = 444, - F16SAMPLER1DARRAYSHADOW = 445, - F16SAMPLER2DARRAYSHADOW = 446, - F16SAMPLER2DRECTSHADOW = 447, - F16SAMPLERCUBESHADOW = 448, - F16SAMPLERCUBEARRAYSHADOW = 449, - IMAGE1D = 450, - IIMAGE1D = 451, - UIMAGE1D = 452, - IMAGE2D = 453, - IIMAGE2D = 454, - UIMAGE2D = 455, - IMAGE3D = 456, - IIMAGE3D = 457, - UIMAGE3D = 458, - IMAGE2DRECT = 459, - IIMAGE2DRECT = 460, - UIMAGE2DRECT = 461, - IMAGECUBE = 462, - IIMAGECUBE = 463, - UIMAGECUBE = 464, - IMAGEBUFFER = 465, - IIMAGEBUFFER = 466, - UIMAGEBUFFER = 467, - IMAGE1DARRAY = 468, - IIMAGE1DARRAY = 469, - UIMAGE1DARRAY = 470, - IMAGE2DARRAY = 471, - IIMAGE2DARRAY = 472, - UIMAGE2DARRAY = 473, - IMAGECUBEARRAY = 474, - IIMAGECUBEARRAY = 475, - UIMAGECUBEARRAY = 476, - IMAGE2DMS = 477, - IIMAGE2DMS = 478, - UIMAGE2DMS = 479, - IMAGE2DMSARRAY = 480, - IIMAGE2DMSARRAY = 481, - UIMAGE2DMSARRAY = 482, - F16IMAGE1D = 483, - F16IMAGE2D = 484, - F16IMAGE3D = 485, - F16IMAGE2DRECT = 486, - F16IMAGECUBE = 487, - F16IMAGE1DARRAY = 488, - F16IMAGE2DARRAY = 489, - F16IMAGECUBEARRAY = 490, - F16IMAGEBUFFER = 491, - F16IMAGE2DMS = 492, - F16IMAGE2DMSARRAY = 493, - SAMPLER = 494, - SAMPLERSHADOW = 495, - TEXTURE1D = 496, - TEXTURE2D = 497, - TEXTURE3D = 498, - TEXTURECUBE = 499, - TEXTURE1DARRAY = 500, - TEXTURE2DARRAY = 501, - ITEXTURE1D = 502, - ITEXTURE2D = 503, - ITEXTURE3D = 504, - ITEXTURECUBE = 505, - ITEXTURE1DARRAY = 506, - ITEXTURE2DARRAY = 507, - UTEXTURE1D = 508, - UTEXTURE2D = 509, - UTEXTURE3D = 510, - UTEXTURECUBE = 511, - UTEXTURE1DARRAY = 512, - UTEXTURE2DARRAY = 513, - TEXTURE2DRECT = 514, - ITEXTURE2DRECT = 515, - UTEXTURE2DRECT = 516, - TEXTUREBUFFER = 517, - ITEXTUREBUFFER = 518, - UTEXTUREBUFFER = 519, - TEXTURECUBEARRAY = 520, - ITEXTURECUBEARRAY = 521, - UTEXTURECUBEARRAY = 522, + 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, @@ -492,27 +492,27 @@ extern int yydebug; DEFAULT = 624, UNIFORM = 625, SHARED = 626, - FLAT = 627, - SMOOTH = 628, - LAYOUT = 629, - DOUBLECONSTANT = 630, - INT16CONSTANT = 631, - UINT16CONSTANT = 632, - FLOAT16CONSTANT = 633, - INT32CONSTANT = 634, - UINT32CONSTANT = 635, - INT64CONSTANT = 636, - UINT64CONSTANT = 637, - SUBROUTINE = 638, - DEMOTE = 639, - PAYLOADNV = 640, - PAYLOADINNV = 641, - HITATTRNV = 642, - CALLDATANV = 643, - CALLDATAINNV = 644, - PATCH = 645, - SAMPLE = 646, - BUFFER = 647, + 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, @@ -960,7 +960,7 @@ static const yytype_uint16 yyrline[] = 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, 1364, 1372, 1377, 1389, 1403, 1409, 1414, 1422, + 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, @@ -977,32 +977,32 @@ static const yytype_uint16 yyrline[] = 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, 2358, 2363, 2368, 2374, 2379, 2384, 2389, 2395, - 2401, 2407, 2413, 2419, 2425, 2431, 2437, 2443, 2449, 2455, - 2461, 2467, 2473, 2479, 2484, 2489, 2495, 2501, 2506, 2512, - 2518, 2523, 2528, 2534, 2540, 2545, 2551, 2556, 2561, 2567, - 2573, 2578, 2583, 2588, 2594, 2599, 2604, 2609, 2615, 2620, - 2625, 2630, 2636, 2641, 2646, 2651, 2656, 2661, 2667, 2672, - 2678, 2683, 2689, 2694, 2700, 2705, 2711, 2716, 2722, 2727, - 2733, 2738, 2743, 2748, 2753, 2758, 2763, 2768, 2773, 2778, - 2783, 2788, 2793, 2798, 2803, 2808, 2814, 2819, 2824, 2829, - 2835, 2840, 2845, 2850, 2856, 2861, 2866, 2871, 2877, 2882, - 2887, 2892, 2898, 2903, 2908, 2913, 2919, 2924, 2929, 2934, - 2940, 2945, 2950, 2955, 2961, 2966, 2971, 2976, 2982, 2987, - 2992, 2997, 3003, 3008, 3013, 3018, 3024, 3029, 3034, 3039, - 3045, 3050, 3055, 3060, 3066, 3071, 3076, 3081, 3087, 3092, - 3097, 3102, 3108, 3113, 3118, 3124, 3130, 3136, 3142, 3149, - 3156, 3162, 3168, 3174, 3180, 3186, 3192, 3199, 3204, 3220, - 3225, 3230, 3238, 3238, 3249, 3249, 3259, 3262, 3275, 3297, - 3324, 3328, 3334, 3339, 3350, 3354, 3360, 3371, 3374, 3381, - 3385, 3386, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3400, - 3406, 3415, 3416, 3420, 3416, 3432, 3433, 3437, 3437, 3444, - 3444, 3458, 3461, 3469, 3477, 3488, 3489, 3493, 3497, 3504, - 3511, 3515, 3523, 3527, 3540, 3544, 3551, 3551, 3571, 3574, - 3580, 3592, 3604, 3608, 3615, 3615, 3630, 3630, 3646, 3646, - 3667, 3670, 3676, 3679, 3685, 3689, 3696, 3701, 3706, 3713, - 3716, 3725, 3729, 3738, 3741, 3745, 3754, 3754, 3777, 3783, - 3786, 3791, 3794 + 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 @@ -1018,9 +1018,11 @@ static const char *const yytname[] = "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY", "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER2DARRAY", - "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER2DARRAY", - "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", - "USAMPLERCUBEARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T", "FLOAT32_T", + "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", @@ -1038,14 +1040,15 @@ static const char *const yytname[] = "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", - "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", + "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", @@ -1061,40 +1064,37 @@ static const char *const yytname[] = "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT", "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY", "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS", - "F16IMAGE2DMSARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", - "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", - "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D", - "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D", - "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY", - "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT", - "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY", - "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS", - "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", - "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", - "F16TEXTURE2DRECT", "F16TEXTURECUBE", "F16TEXTURE1DARRAY", - "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", - "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", - "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", "USUBPASSINPUT", - "USUBPASSINPUTMS", "F16SUBPASSINPUT", "F16SUBPASSINPUTMS", "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", - "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT", - "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", - "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV", - "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PATCH", - "SAMPLE", "BUFFER", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", - "READONLY", "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT", + "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", @@ -1189,10 +1189,10 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -367 +#define YYPACT_NINF -453 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-367))) + (!!((Yystate) == (-453))) #define YYTABLE_NINF -528 @@ -1203,79 +1203,79 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 3994, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -13, -367, -367, -367, - -367, -367, 13, -367, -367, -367, -367, -367, 28, 40, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -2, -1, 88, - 98, 6034, 116, -367, 74, -367, -367, -367, -367, 4402, - -367, -367, -367, -367, 104, -367, -367, 730, -367, -367, - 11, -367, 136, -25, 111, -367, 8, -367, 147, -367, - 6034, -367, -367, -367, 6034, 139, 140, -367, 61, -367, - 78, -367, -367, 8391, 155, -367, -367, -367, 149, 6034, - -367, 152, -367, -309, -367, -367, 80, 6831, -367, 27, - 1138, -367, -367, -367, -367, 155, 53, -367, 7221, 69, - -367, 141, -367, 117, 8391, 8391, 8391, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, 77, -367, -367, -367, - 164, 89, 8781, 172, -367, 8391, -367, -367, -320, 176, - -367, 6034, 143, 4810, -367, 6034, 8391, -367, -25, -367, - 145, -367, -367, 138, 144, -231, 23, 65, 158, 153, - 162, 196, 197, 16, 182, 7611, -367, 185, 183, -367, - -367, 189, 180, 181, -367, 195, 198, 186, 8001, 200, - 8391, 199, 187, 122, -367, -367, 123, -367, -1, 203, - 204, -367, -367, -367, -367, -367, 1546, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -353, 176, 7221, 71, - 7221, -367, -367, 7221, 6034, -367, 169, -367, -367, -367, - 91, -367, -367, 8391, 170, -367, -367, 8391, 207, -367, - -367, -367, 8391, -367, 143, 155, 125, -367, -367, -367, - 5218, -367, -367, -367, -367, 8391, 8391, 8391, 8391, 8391, + 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, -367, -367, -367, 206, 177, -367, - 1954, -367, -367, -367, 1954, -367, 8391, -367, -367, 135, - 8391, 60, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, 8391, 8391, -367, -367, -367, - -367, -367, -367, -367, 7221, -367, 129, -367, 5626, -367, - -367, 209, 208, -367, -367, -367, 142, 176, 143, -367, - -367, -367, -367, -367, 138, 138, 144, 144, -231, -231, - -231, -231, 23, 23, 65, 158, 153, 162, 196, 197, - 8391, -367, 214, -314, -367, 1954, 3586, 173, 3178, 93, - -367, 96, -367, -367, -367, -367, -367, 6441, -367, -367, - -367, -367, 121, 8391, 213, 177, 215, 208, 188, 6034, - 217, 221, -367, -367, 3586, 218, -367, -367, -367, 8391, - 222, -367, -367, -367, 216, 2362, 8391, -367, 219, 226, - 190, 224, 2770, -367, 227, -367, -367, 7221, -367, -367, - -367, 100, 8391, 2362, 218, -367, -367, 1954, -367, 220, - 208, -367, -367, 1954, 228, -367, -367 + 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. @@ -1286,8 +1286,9 @@ 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, 335, 336, 353, 354, 355, - 357, 360, 361, 362, 364, 337, 338, 358, 365, 164, + 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, @@ -1298,23 +1299,22 @@ static const yytype_uint16 yydefact[] = 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, 326, 333, 334, 352, 332, 366, 367, 370, - 371, 372, 374, 375, 376, 378, 379, 380, 382, 383, - 474, 475, 356, 359, 363, 339, 340, 341, 368, 342, - 346, 347, 350, 373, 377, 381, 343, 344, 348, 349, - 369, 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, 384, 385, 386, - 388, 390, 392, 394, 396, 400, 401, 402, 403, 404, - 405, 407, 408, 409, 410, 411, 412, 414, 416, 417, - 418, 420, 421, 398, 406, 413, 422, 424, 425, 426, - 428, 429, 387, 389, 391, 415, 393, 395, 397, 399, + 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, 133, 132, 0, 183, - 169, 170, 168, 171, 172, 166, 167, 163, 185, 173, + 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, @@ -1361,17 +1361,17 @@ static const yytype_uint16 yydefact[] = /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, 8696, -367, -81, -78, -225, -82, -20, -18, - -21, -17, -19, -16, -367, -85, -367, -98, -367, -110, - -118, 2, -367, -367, -367, 4, -367, -367, -367, 184, - 191, 192, -367, -367, -339, -367, -367, -367, -367, 102, - -367, -37, -44, -367, 9, -367, 0, -71, -367, -367, - -367, -367, 260, -367, -367, -367, -136, -137, 18, -65, - -209, -367, -94, -198, -366, -367, -134, -367, -367, -148, - -146, -367, -367, 202, -265, -87, -367, 56, -367, -111, - -367, 59, -367, -367, -367, -367, 62, -367, -367, -367, - -367, -367, -367, -367, -367, 225, -367, -367, -367, -367, + -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 }; @@ -1397,14 +1397,14 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 353, 542, 336, 674, 338, 481, 457, 675, 484, 352, + 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, 560, 561, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -1428,34 +1428,34 @@ static const yytype_int16 yytable[] = 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, 573, 550, - 562, 563, 365, 367, 397, 391, 293, 294, 295, 708, - 381, 361, 398, 374, 517, 519, 716, 638, 639, 640, - 641, 375, 363, 475, 539, 678, 392, 708, 366, 382, - 352, 476, 451, 574, 364, 564, 565, 353, 352, 336, - 388, 338, 297, 362, 566, 567, 352, 302, 303, 397, - 375, 551, 531, 532, 375, 407, 518, 397, 589, 352, - 591, 606, 662, 352, 408, 475, 657, 475, 618, 452, - 577, -34, 523, 533, 614, 459, 410, 534, 352, 411, - 500, 460, 412, 369, 536, 665, 620, 381, 685, 499, - 537, 686, 606, 549, 606, 719, 451, 606, 451, 370, - 521, 606, 521, 622, 378, 521, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 383, 376, 526, 624, - 377, 527, 606, 689, 606, 604, 628, 607, 666, 629, - 667, 544, 723, 452, 390, 452, 606, 609, 688, 660, - 352, 395, 352, 628, 352, 400, 670, 555, 556, 557, - 558, 397, 559, 450, 627, 456, 659, 634, 635, 535, - 661, 549, 636, 637, 642, 643, 540, 451, 569, 405, - 406, 525, 475, 545, 568, 554, 570, 571, 718, 575, - 572, 578, 579, 581, 582, 583, 500, 663, 664, 585, - 587, 593, 586, 451, 590, 499, 521, -35, -33, 619, - 623, 592, -28, 651, 452, 609, 669, 652, 673, 606, - 691, 681, 695, 352, 693, 696, -527, 706, 694, 707, - 672, 713, 478, 712, 725, 717, 677, 726, 644, 646, - 452, 645, 714, 648, 647, 690, 360, 649, 403, 352, - 553, 402, 626, 671, 682, 721, 404, 715, 722, 521, - 401, 683, 610, 697, 677, 611, 692, 0, 612, 0, - 500, 451, 387, 0, 500, 0, 711, 0, 551, 499, + 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, @@ -1507,8 +1507,8 @@ static const yytype_int16 yytable[] = 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, 0, 0, 0, 0, 0, - 0, 0, 0, 309, 0, 310, 311, 312, 313, 314, + 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, @@ -1548,8 +1548,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, 430, 431, 432, - 433, 309, 492, 310, 311, 312, 313, 314, 315, 316, + 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, @@ -1589,8 +1589,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, 430, 431, 432, 433, 309, - 492, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 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, @@ -1629,8 +1629,8 @@ static const yytype_int16 yytable[] = 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, 426, - 427, 428, 429, 430, 431, 432, 433, 309, 492, 310, + 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, @@ -1670,8 +1670,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, - 429, 430, 431, 432, 433, 309, 492, 310, 311, 312, + 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, @@ -1711,8 +1711,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, 430, - 431, 432, 433, 309, 492, 310, 311, 312, 313, 314, + 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, @@ -1752,8 +1752,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, 430, 431, 432, - 433, 309, 0, 310, 311, 312, 313, 314, 315, 316, + 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, @@ -1793,8 +1793,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, 430, 431, 432, 433, 309, - 0, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 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, @@ -1833,8 +1833,8 @@ static const yytype_int16 yytable[] = 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, 0, - 0, 0, 0, 0, 0, 0, 0, 309, 0, 310, + 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, @@ -1874,8 +1874,8 @@ static const yytype_int16 yytable[] = 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, 0, 0, 0, - 0, 0, 0, 0, 0, 309, 0, 310, 311, 312, + 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, @@ -1915,8 +1915,8 @@ static const yytype_int16 yytable[] = 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, 0, 0, 0, 0, 0, - 0, 0, 0, 309, 0, 310, 311, 312, 313, 314, + 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, @@ -1956,8 +1956,8 @@ static const yytype_int16 yytable[] = 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, 0, 0, 0, 0, 0, 0, 0, - 0, 309, 0, 310, 311, 312, 313, 314, 315, 316, + 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, @@ -1997,8 +1997,8 @@ static const yytype_int16 yytable[] = 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, 0, 0, 0, 0, 0, 0, 0, 0, 309, - 0, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 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, @@ -2037,8 +2037,8 @@ static const yytype_int16 yytable[] = 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, 0, - 0, 0, 0, 0, 0, 0, 0, 309, 0, 310, + 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, @@ -2046,8 +2046,8 @@ static const yytype_int16 yytable[] = 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2078,15 +2078,15 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2117,15 +2117,15 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2156,15 +2156,15 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2195,15 +2195,15 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2234,15 +2234,15 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2273,15 +2273,15 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, 0, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 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, @@ -2312,8 +2312,8 @@ static const yytype_int16 yytable[] = 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, 426, 427, 428, 429, - 430, 431, 432, 433, 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, @@ -2338,14 +2338,14 @@ static const yytype_int16 yytable[] = static const yytype_int16 yycheck[] = { - 0, 321, 0, 317, 0, 358, 315, 321, 361, 0, + 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, 293, 294, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -2369,34 +2369,34 @@ static const yytype_int16 yycheck[] = 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, 302, 455, - 297, 298, 324, 324, 316, 350, 339, 340, 341, 695, - 374, 318, 324, 370, 405, 406, 702, 562, 563, 564, - 565, 341, 314, 316, 442, 684, 371, 713, 350, 349, - 341, 324, 389, 337, 314, 332, 333, 357, 349, 357, - 360, 357, 351, 350, 299, 300, 357, 356, 357, 316, - 370, 456, 295, 296, 374, 314, 323, 316, 488, 370, - 490, 321, 322, 374, 323, 316, 584, 316, 524, 389, - 475, 314, 323, 316, 323, 315, 318, 320, 389, 321, - 400, 321, 324, 315, 315, 614, 315, 451, 315, 400, - 321, 315, 321, 550, 321, 315, 453, 321, 455, 321, - 518, 321, 520, 533, 350, 523, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 332, 321, 321, 537, - 324, 324, 321, 322, 321, 323, 321, 324, 319, 324, - 321, 451, 717, 453, 318, 455, 321, 655, 667, 324, - 451, 350, 453, 321, 455, 318, 324, 329, 330, 331, - 326, 316, 328, 324, 545, 323, 586, 558, 559, 315, - 590, 618, 560, 561, 566, 567, 314, 524, 335, 350, - 350, 350, 316, 350, 336, 350, 334, 301, 707, 317, - 303, 316, 319, 314, 324, 324, 506, 605, 606, 314, - 324, 324, 314, 550, 314, 506, 614, 314, 314, 350, - 350, 322, 315, 317, 524, 723, 317, 350, 314, 321, - 317, 358, 315, 524, 319, 314, 318, 315, 350, 323, - 650, 315, 318, 324, 324, 318, 656, 319, 568, 570, - 550, 569, 362, 572, 571, 673, 296, 573, 374, 550, - 458, 370, 544, 628, 658, 713, 374, 701, 714, 667, - 368, 658, 516, 684, 684, 516, 675, -1, 516, -1, - 580, 618, 357, -1, 584, -1, 696, -1, 673, 580, + 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, @@ -2448,8 +2448,8 @@ static const yytype_int16 yycheck[] = 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, -1, -1, -1, -1, -1, - -1, -1, -1, 383, -1, 385, 386, 387, 388, 389, + 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, @@ -2694,7 +2694,7 @@ static const yytype_int16 yycheck[] = 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, -1, 385, 386, 387, 388, 389, 390, 391, + 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, @@ -2735,7 +2735,7 @@ static const yytype_int16 yycheck[] = 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, - -1, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 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, @@ -2774,8 +2774,8 @@ static const yytype_int16 yycheck[] = -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, -1, - -1, -1, -1, -1, -1, -1, -1, 383, -1, 385, + -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, @@ -2815,8 +2815,8 @@ static const yytype_int16 yycheck[] = 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, -1, -1, -1, - -1, -1, -1, -1, -1, 383, -1, 385, 386, 387, + -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, @@ -2856,8 +2856,8 @@ static const yytype_int16 yycheck[] = 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, -1, -1, -1, -1, -1, - -1, -1, -1, 383, -1, 385, 386, 387, 388, 389, + 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, @@ -2897,8 +2897,8 @@ static const yytype_int16 yycheck[] = -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, -1, -1, -1, -1, -1, -1, -1, - -1, 383, -1, 385, 386, 387, 388, 389, 390, 391, + 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, @@ -2938,8 +2938,8 @@ static const yytype_int16 yycheck[] = -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, -1, -1, -1, -1, -1, -1, -1, -1, 383, - -1, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 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, @@ -2978,8 +2978,8 @@ static const yytype_int16 yycheck[] = -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, -1, - -1, -1, -1, -1, -1, -1, -1, 383, -1, 385, + -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, @@ -2987,8 +2987,8 @@ static const yytype_int16 yycheck[] = 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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3019,15 +3019,15 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3058,15 +3058,15 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3097,15 +3097,15 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3136,15 +3136,15 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3175,15 +3175,15 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3214,15 +3214,15 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, -1, -1, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 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, @@ -3253,8 +3253,8 @@ static const yytype_int16 yycheck[] = -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, 375, 376, 377, 378, - 379, 380, 381, 382, -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, @@ -3311,8 +3311,8 @@ static const yytype_uint16 yystos[] = 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, 383, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 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, @@ -3323,14 +3323,14 @@ static const yytype_uint16 yystos[] = 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, 375, 376, 377, 378, - 379, 380, 381, 382, 412, 413, 414, 416, 417, 418, + 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, 384, 423, 436, 438, 440, 442, 446, 465, + 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, @@ -5805,7 +5805,7 @@ yyreduce: break; case 162: -#line 1364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -5818,7 +5818,7 @@ yyreduce: break; case 163: -#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); (yyval.interm.type).init((yyvsp[0].lex).loc); @@ -7619,21 +7619,21 @@ yyreduce: break; case 332: -#line 2358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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, Esd1D, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } #line 7629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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, Esd1D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } #line 7639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; @@ -7643,33 +7643,33 @@ yyreduce: { (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); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } #line 7649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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, Esd2D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } #line 7659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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, Esd2D, true, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } #line 7669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -#line 2384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7679,7 +7679,7 @@ yyreduce: break; case 338: -#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7689,7 +7689,7 @@ yyreduce: break; case 339: -#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7700,7 +7700,7 @@ yyreduce: break; case 340: -#line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7711,7 +7711,7 @@ yyreduce: break; case 341: -#line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7722,7 +7722,7 @@ yyreduce: break; case 342: -#line 2413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7733,7 +7733,7 @@ yyreduce: break; case 343: -#line 2419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7744,7 +7744,7 @@ yyreduce: break; case 344: -#line 2425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7755,7 +7755,7 @@ yyreduce: break; case 345: -#line 2431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7766,7 +7766,7 @@ yyreduce: break; case 346: -#line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7777,7 +7777,7 @@ yyreduce: break; case 347: -#line 2443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7788,7 +7788,7 @@ yyreduce: break; case 348: -#line 2449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7799,7 +7799,7 @@ yyreduce: break; case 349: -#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7810,7 +7810,7 @@ yyreduce: break; case 350: -#line 2461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7821,7 +7821,7 @@ yyreduce: break; case 351: -#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -7832,7 +7832,7 @@ yyreduce: break; case 352: -#line 2473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7842,7 +7842,7 @@ yyreduce: break; case 353: -#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7852,7 +7852,7 @@ yyreduce: break; case 354: -#line 2484 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7862,7 +7862,7 @@ yyreduce: break; case 355: -#line 2489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7872,77 +7872,77 @@ yyreduce: break; case 356: -#line 2495 "MachineIndependent/glslang.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 7882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 357: -#line 2501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 7892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 358: -#line 2506 "MachineIndependent/glslang.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 7902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 359: -#line 2512 "MachineIndependent/glslang.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 7912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 360: -#line 2518 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 7922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 361: -#line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 7932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 362: -#line 2528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 2534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -7952,519 +7952,519 @@ yyreduce: break; case 364: -#line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); - } -#line 7962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 365: -#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 2551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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.set(EbtFloat, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } #line 7982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: -#line 2556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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.set(EbtFloat, EsdRect, false, true); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } #line 7992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: -#line 2561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 8003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 369: -#line 2567 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 370: -#line 2573 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 371: -#line 2578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 372: -#line 2583 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 373: -#line 2588 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 374: -#line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 375: -#line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 376: -#line 2604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 377: -#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 378: -#line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 379: -#line 2620 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 380: -#line 2625 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 381: -#line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 382: -#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 383: -#line 2641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 384: -#line 2646 "MachineIndependent/glslang.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 8167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 385: -#line 2651 "MachineIndependent/glslang.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 8177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 386: -#line 2656 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 387: -#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 388: -#line 2667 "MachineIndependent/glslang.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 8208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 389: -#line 2672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 390: -#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.setTexture(EbtFloat, Esd3D); - } -#line 8229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 391: -#line 2683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 392: -#line 2689 "MachineIndependent/glslang.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 8250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 393: -#line 2694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 394: -#line 2700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 395: -#line 2705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 396: -#line 2711 "MachineIndependent/glslang.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 8292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 397: -#line 2716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 398: -#line 2722 "MachineIndependent/glslang.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 8313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 399: -#line 2727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 400: -#line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 401: -#line 2738 "MachineIndependent/glslang.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 8344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 402: -#line 2743 "MachineIndependent/glslang.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 8354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 403: -#line 2748 "MachineIndependent/glslang.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 8364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 404: -#line 2753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 405: -#line 2758 "MachineIndependent/glslang.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 8384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 406: -#line 2763 "MachineIndependent/glslang.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 8394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 407: -#line 2768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 408: -#line 2773 "MachineIndependent/glslang.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 8414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 409: -#line 2778 "MachineIndependent/glslang.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 8424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 410: -#line 2783 "MachineIndependent/glslang.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 8434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 411: -#line 2788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + 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 8444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 412: -#line 2793 "MachineIndependent/glslang.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 8454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 413: -#line 2798 "MachineIndependent/glslang.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 8464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: -#line 2803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8474,7 +8474,7 @@ yyreduce: break; case 415: -#line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8485,7 +8485,7 @@ yyreduce: break; case 416: -#line 2814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8495,7 +8495,7 @@ yyreduce: break; case 417: -#line 2819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8505,7 +8505,7 @@ yyreduce: break; case 418: -#line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8515,7 +8515,7 @@ yyreduce: break; case 419: -#line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8526,7 +8526,7 @@ yyreduce: break; case 420: -#line 2835 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8536,7 +8536,7 @@ yyreduce: break; case 421: -#line 2840 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8546,7 +8546,7 @@ yyreduce: break; case 422: -#line 2845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8556,7 +8556,7 @@ yyreduce: break; case 423: -#line 2850 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8567,7 +8567,7 @@ yyreduce: break; case 424: -#line 2856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2850 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8577,7 +8577,7 @@ yyreduce: break; case 425: -#line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2855 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8587,7 +8587,7 @@ yyreduce: break; case 426: -#line 2866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2860 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8597,7 +8597,7 @@ yyreduce: break; case 427: -#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8608,7 +8608,7 @@ yyreduce: break; case 428: -#line 2877 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8618,7 +8618,7 @@ yyreduce: break; case 429: -#line 2882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8628,7 +8628,7 @@ yyreduce: break; case 430: -#line 2887 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2881 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8638,7 +8638,7 @@ yyreduce: break; case 431: -#line 2892 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8649,7 +8649,7 @@ yyreduce: break; case 432: -#line 2898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2892 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8659,7 +8659,7 @@ yyreduce: break; case 433: -#line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8669,7 +8669,7 @@ yyreduce: break; case 434: -#line 2908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8679,7 +8679,7 @@ yyreduce: break; case 435: -#line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8690,7 +8690,7 @@ yyreduce: break; case 436: -#line 2919 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8700,7 +8700,7 @@ yyreduce: break; case 437: -#line 2924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8710,7 +8710,7 @@ yyreduce: break; case 438: -#line 2929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8720,7 +8720,7 @@ yyreduce: break; case 439: -#line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8731,7 +8731,7 @@ yyreduce: break; case 440: -#line 2940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8741,7 +8741,7 @@ yyreduce: break; case 441: -#line 2945 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8751,7 +8751,7 @@ yyreduce: break; case 442: -#line 2950 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8761,7 +8761,7 @@ yyreduce: break; case 443: -#line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8772,7 +8772,7 @@ yyreduce: break; case 444: -#line 2961 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8782,7 +8782,7 @@ yyreduce: break; case 445: -#line 2966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2960 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8792,7 +8792,7 @@ yyreduce: break; case 446: -#line 2971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2965 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8802,7 +8802,7 @@ yyreduce: break; case 447: -#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8813,7 +8813,7 @@ yyreduce: break; case 448: -#line 2982 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8823,7 +8823,7 @@ yyreduce: break; case 449: -#line 2987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8833,7 +8833,7 @@ yyreduce: break; case 450: -#line 2992 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2986 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8843,7 +8843,7 @@ yyreduce: break; case 451: -#line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8854,7 +8854,7 @@ yyreduce: break; case 452: -#line 3003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8864,7 +8864,7 @@ yyreduce: break; case 453: -#line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8874,7 +8874,7 @@ yyreduce: break; case 454: -#line 3013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8884,7 +8884,7 @@ yyreduce: break; case 455: -#line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8895,7 +8895,7 @@ yyreduce: break; case 456: -#line 3024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8905,7 +8905,7 @@ yyreduce: break; case 457: -#line 3029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8915,7 +8915,7 @@ yyreduce: break; case 458: -#line 3034 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8925,7 +8925,7 @@ yyreduce: break; case 459: -#line 3039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8936,7 +8936,7 @@ yyreduce: break; case 460: -#line 3045 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8946,7 +8946,7 @@ yyreduce: break; case 461: -#line 3050 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8956,7 +8956,7 @@ yyreduce: break; case 462: -#line 3055 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8966,7 +8966,7 @@ yyreduce: break; case 463: -#line 3060 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -8977,7 +8977,7 @@ yyreduce: break; case 464: -#line 3066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3060 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8987,7 +8987,7 @@ yyreduce: break; case 465: -#line 3071 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -8997,7 +8997,7 @@ yyreduce: break; case 466: -#line 3076 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3070 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -9007,7 +9007,7 @@ yyreduce: break; case 467: -#line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9018,7 +9018,7 @@ yyreduce: break; case 468: -#line 3087 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -9028,7 +9028,7 @@ yyreduce: break; case 469: -#line 3092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -9038,7 +9038,7 @@ yyreduce: break; case 470: -#line 3097 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -9048,7 +9048,7 @@ yyreduce: break; case 471: -#line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9059,7 +9059,7 @@ yyreduce: break; case 472: -#line 3108 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -9069,7 +9069,7 @@ yyreduce: break; case 473: -#line 3113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; @@ -9079,7 +9079,7 @@ yyreduce: break; case 474: -#line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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; @@ -9090,7 +9090,7 @@ yyreduce: break; case 475: -#line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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; @@ -9101,7 +9101,7 @@ yyreduce: break; case 476: -#line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9112,7 +9112,7 @@ yyreduce: break; case 477: -#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9123,7 +9123,7 @@ yyreduce: break; case 478: -#line 3142 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -9135,7 +9135,7 @@ yyreduce: break; case 479: -#line 3149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -9147,7 +9147,7 @@ yyreduce: break; case 480: -#line 3156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9158,7 +9158,7 @@ yyreduce: break; case 481: -#line 3162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9169,7 +9169,7 @@ yyreduce: break; case 482: -#line 3168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9180,7 +9180,7 @@ yyreduce: break; case 483: -#line 3174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9191,7 +9191,7 @@ yyreduce: break; case 484: -#line 3180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9202,7 +9202,7 @@ yyreduce: break; case 485: -#line 3186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9213,7 +9213,7 @@ yyreduce: break; case 486: -#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9224,7 +9224,7 @@ yyreduce: break; case 487: -#line 3199 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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; @@ -9234,7 +9234,7 @@ yyreduce: break; case 488: -#line 3204 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -9252,7 +9252,7 @@ yyreduce: break; case 489: -#line 3220 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9262,7 +9262,7 @@ yyreduce: break; case 490: -#line 3225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9272,7 +9272,7 @@ yyreduce: break; case 491: -#line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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()); @@ -9282,13 +9282,13 @@ yyreduce: break; case 492: -#line 3238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9304,13 +9304,13 @@ yyreduce: break; case 494: -#line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9322,7 +9322,7 @@ yyreduce: break; case 496: -#line 3259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3253 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } @@ -9330,7 +9330,7 @@ yyreduce: break; case 497: -#line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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) { @@ -9345,7 +9345,7 @@ yyreduce: break; case 498: -#line 3275 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -9372,7 +9372,7 @@ yyreduce: break; case 499: -#line 3297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -9401,7 +9401,7 @@ yyreduce: break; case 500: -#line 3324 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); @@ -9410,7 +9410,7 @@ yyreduce: break; case 501: -#line 3328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } @@ -9418,7 +9418,7 @@ yyreduce: break; case 502: -#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; @@ -9428,7 +9428,7 @@ yyreduce: break; case 503: -#line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -9441,7 +9441,7 @@ yyreduce: break; case 504: -#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } @@ -9449,7 +9449,7 @@ yyreduce: break; case 505: -#line 3354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); @@ -9460,7 +9460,7 @@ yyreduce: break; case 506: -#line 3360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); @@ -9471,7 +9471,7 @@ yyreduce: break; case 507: -#line 3371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } @@ -9479,7 +9479,7 @@ yyreduce: break; case 508: -#line 3374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } @@ -9487,73 +9487,73 @@ yyreduce: break; case 509: -#line 3381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3385 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3406 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -9563,13 +9563,13 @@ yyreduce: break; case 521: -#line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3410 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; @@ -9578,7 +9578,7 @@ yyreduce: break; case 523: -#line 3420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; @@ -9587,7 +9587,7 @@ yyreduce: break; case 524: -#line 3424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9597,19 +9597,19 @@ yyreduce: break; case 525: -#line 3432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3433 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } @@ -9617,7 +9617,7 @@ yyreduce: break; case 528: -#line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); @@ -9626,7 +9626,7 @@ yyreduce: break; case 529: -#line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; @@ -9636,7 +9636,7 @@ yyreduce: break; case 530: -#line 3449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; @@ -9647,7 +9647,7 @@ yyreduce: break; case 531: -#line 3458 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } @@ -9655,7 +9655,7 @@ yyreduce: break; case 532: -#line 3461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9665,7 +9665,7 @@ yyreduce: break; case 533: -#line 3469 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 || @@ -9678,7 +9678,7 @@ yyreduce: break; case 534: -#line 3477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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)) { @@ -9691,19 +9691,19 @@ yyreduce: break; case 535: -#line 3488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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 3493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -9711,7 +9711,7 @@ yyreduce: break; case 538: -#line 3497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9720,7 +9720,7 @@ yyreduce: break; case 539: -#line 3504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9729,7 +9729,7 @@ yyreduce: break; case 540: -#line 3511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3505 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); @@ -9738,7 +9738,7 @@ yyreduce: break; case 541: -#line 3515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; @@ -9747,7 +9747,7 @@ yyreduce: break; case 542: -#line 3523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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)); @@ -9756,7 +9756,7 @@ yyreduce: break; case 543: -#line 3527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -9771,7 +9771,7 @@ yyreduce: break; case 544: -#line 3540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -9779,7 +9779,7 @@ yyreduce: break; case 545: -#line 3544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9788,7 +9788,7 @@ yyreduce: break; case 546: -#line 3551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -9801,7 +9801,7 @@ yyreduce: break; case 547: -#line 3559 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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(); @@ -9815,7 +9815,7 @@ yyreduce: break; case 548: -#line 3571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } @@ -9823,7 +9823,7 @@ yyreduce: break; case 549: -#line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -9831,7 +9831,7 @@ yyreduce: break; case 550: -#line 3580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9848,7 +9848,7 @@ yyreduce: break; case 551: -#line 3592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -9862,7 +9862,7 @@ yyreduce: break; case 552: -#line 3604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -9870,7 +9870,7 @@ yyreduce: break; case 553: -#line 3608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9879,7 +9879,7 @@ yyreduce: break; case 554: -#line 3615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -9892,7 +9892,7 @@ yyreduce: break; case 555: -#line 3623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9904,7 +9904,7 @@ yyreduce: break; case 556: -#line 3630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; @@ -9914,7 +9914,7 @@ yyreduce: break; case 557: -#line 3635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -9930,7 +9930,7 @@ yyreduce: break; case 558: -#line 3646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3640 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; @@ -9941,7 +9941,7 @@ yyreduce: break; case 559: -#line 3652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -9958,7 +9958,7 @@ yyreduce: break; case 560: -#line 3667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -9966,7 +9966,7 @@ yyreduce: break; case 561: -#line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -9974,7 +9974,7 @@ yyreduce: break; case 562: -#line 3676 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } @@ -9982,7 +9982,7 @@ yyreduce: break; case 563: -#line 3679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } @@ -9990,7 +9990,7 @@ yyreduce: break; case 564: -#line 3685 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; @@ -9999,7 +9999,7 @@ yyreduce: break; case 565: -#line 3689 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); @@ -10008,7 +10008,7 @@ yyreduce: break; case 566: -#line 3696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); @@ -10018,7 +10018,7 @@ yyreduce: break; case 567: -#line 3701 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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", "", ""); @@ -10028,7 +10028,7 @@ yyreduce: break; case 568: -#line 3706 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -10040,7 +10040,7 @@ yyreduce: break; case 569: -#line 3713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } @@ -10048,7 +10048,7 @@ yyreduce: break; case 570: -#line 3716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -10057,7 +10057,7 @@ yyreduce: break; case 571: -#line 3725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); @@ -10066,7 +10066,7 @@ yyreduce: break; case 572: -#line 3729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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)); @@ -10077,7 +10077,7 @@ yyreduce: break; case 573: -#line 3738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -10085,7 +10085,7 @@ yyreduce: break; case 574: -#line 3741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3735 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } @@ -10093,7 +10093,7 @@ yyreduce: break; case 575: -#line 3745 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -10103,7 +10103,7 @@ yyreduce: break; case 576: -#line 3754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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); @@ -10112,7 +10112,7 @@ yyreduce: break; case 577: -#line 3758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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) @@ -10132,7 +10132,7 @@ yyreduce: break; case 578: -#line 3777 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#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"); @@ -10141,7 +10141,7 @@ yyreduce: break; case 579: -#line 3783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3777 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[0].interm.attributes); } @@ -10149,7 +10149,7 @@ yyreduce: break; case 580: -#line 3786 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3780 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); } @@ -10157,7 +10157,7 @@ yyreduce: break; case 581: -#line 3791 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); } @@ -10165,7 +10165,7 @@ yyreduce: break; case 582: -#line 3794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 3788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); } @@ -10401,5 +10401,5 @@ yyreturn: #endif return yyresult; } -#line 3799 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 3793 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index f3f0251f..f4f41147 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -89,227 +89,227 @@ extern int yydebug; USAMPLER3D = 299, USAMPLERCUBE = 300, USAMPLER2DARRAY = 301, - SAMPLERCUBEARRAY = 302, - SAMPLERCUBEARRAYSHADOW = 303, - ISAMPLERCUBEARRAY = 304, - USAMPLERCUBEARRAY = 305, - ATTRIBUTE = 306, - VARYING = 307, - FLOAT16_T = 308, - FLOAT32_T = 309, - DOUBLE = 310, - FLOAT64_T = 311, - INT64_T = 312, - UINT64_T = 313, - INT32_T = 314, - UINT32_T = 315, - INT16_T = 316, - UINT16_T = 317, - INT8_T = 318, - UINT8_T = 319, - I64VEC2 = 320, - I64VEC3 = 321, - I64VEC4 = 322, - U64VEC2 = 323, - U64VEC3 = 324, - U64VEC4 = 325, - I32VEC2 = 326, - I32VEC3 = 327, - I32VEC4 = 328, - U32VEC2 = 329, - U32VEC3 = 330, - U32VEC4 = 331, - I16VEC2 = 332, - I16VEC3 = 333, - I16VEC4 = 334, - U16VEC2 = 335, - U16VEC3 = 336, - U16VEC4 = 337, - I8VEC2 = 338, - I8VEC3 = 339, - I8VEC4 = 340, - U8VEC2 = 341, - U8VEC3 = 342, - U8VEC4 = 343, - DVEC2 = 344, - DVEC3 = 345, - DVEC4 = 346, - DMAT2 = 347, - DMAT3 = 348, - DMAT4 = 349, - F16VEC2 = 350, - F16VEC3 = 351, - F16VEC4 = 352, - F16MAT2 = 353, - F16MAT3 = 354, - F16MAT4 = 355, - F32VEC2 = 356, - F32VEC3 = 357, - F32VEC4 = 358, - F32MAT2 = 359, - F32MAT3 = 360, - F32MAT4 = 361, - F64VEC2 = 362, - F64VEC3 = 363, - F64VEC4 = 364, - F64MAT2 = 365, - F64MAT3 = 366, - F64MAT4 = 367, - DMAT2X2 = 368, - DMAT2X3 = 369, - DMAT2X4 = 370, - DMAT3X2 = 371, - DMAT3X3 = 372, - DMAT3X4 = 373, - DMAT4X2 = 374, - DMAT4X3 = 375, - DMAT4X4 = 376, - F16MAT2X2 = 377, - F16MAT2X3 = 378, - F16MAT2X4 = 379, - F16MAT3X2 = 380, - F16MAT3X3 = 381, - F16MAT3X4 = 382, - F16MAT4X2 = 383, - F16MAT4X3 = 384, - F16MAT4X4 = 385, - F32MAT2X2 = 386, - F32MAT2X3 = 387, - F32MAT2X4 = 388, - F32MAT3X2 = 389, - F32MAT3X3 = 390, - F32MAT3X4 = 391, - F32MAT4X2 = 392, - F32MAT4X3 = 393, - F32MAT4X4 = 394, - F64MAT2X2 = 395, - F64MAT2X3 = 396, - F64MAT2X4 = 397, - F64MAT3X2 = 398, - F64MAT3X3 = 399, - F64MAT3X4 = 400, - F64MAT4X2 = 401, - F64MAT4X3 = 402, - F64MAT4X4 = 403, - ATOMIC_UINT = 404, - ACCSTRUCTNV = 405, - FCOOPMATNV = 406, - ICOOPMATNV = 407, - UCOOPMATNV = 408, - SAMPLER1D = 409, - SAMPLER1DARRAY = 410, - SAMPLER1DARRAYSHADOW = 411, - ISAMPLER1D = 412, - SAMPLER1DSHADOW = 413, - SAMPLER2DRECT = 414, - SAMPLER2DRECTSHADOW = 415, - ISAMPLER2DRECT = 416, - USAMPLER2DRECT = 417, - SAMPLERBUFFER = 418, - ISAMPLERBUFFER = 419, - USAMPLERBUFFER = 420, - SAMPLER2DMS = 421, - ISAMPLER2DMS = 422, - USAMPLER2DMS = 423, - SAMPLER2DMSARRAY = 424, - ISAMPLER2DMSARRAY = 425, - USAMPLER2DMSARRAY = 426, - SAMPLEREXTERNALOES = 427, - SAMPLEREXTERNAL2DY2YEXT = 428, - ISAMPLER1DARRAY = 429, - USAMPLER1D = 430, - USAMPLER1DARRAY = 431, - F16SAMPLER1D = 432, - F16SAMPLER2D = 433, - F16SAMPLER3D = 434, - F16SAMPLER2DRECT = 435, - F16SAMPLERCUBE = 436, - F16SAMPLER1DARRAY = 437, - F16SAMPLER2DARRAY = 438, - F16SAMPLERCUBEARRAY = 439, - F16SAMPLERBUFFER = 440, - F16SAMPLER2DMS = 441, - F16SAMPLER2DMSARRAY = 442, - F16SAMPLER1DSHADOW = 443, - F16SAMPLER2DSHADOW = 444, - F16SAMPLER1DARRAYSHADOW = 445, - F16SAMPLER2DARRAYSHADOW = 446, - F16SAMPLER2DRECTSHADOW = 447, - F16SAMPLERCUBESHADOW = 448, - F16SAMPLERCUBEARRAYSHADOW = 449, - IMAGE1D = 450, - IIMAGE1D = 451, - UIMAGE1D = 452, - IMAGE2D = 453, - IIMAGE2D = 454, - UIMAGE2D = 455, - IMAGE3D = 456, - IIMAGE3D = 457, - UIMAGE3D = 458, - IMAGE2DRECT = 459, - IIMAGE2DRECT = 460, - UIMAGE2DRECT = 461, - IMAGECUBE = 462, - IIMAGECUBE = 463, - UIMAGECUBE = 464, - IMAGEBUFFER = 465, - IIMAGEBUFFER = 466, - UIMAGEBUFFER = 467, - IMAGE1DARRAY = 468, - IIMAGE1DARRAY = 469, - UIMAGE1DARRAY = 470, - IMAGE2DARRAY = 471, - IIMAGE2DARRAY = 472, - UIMAGE2DARRAY = 473, - IMAGECUBEARRAY = 474, - IIMAGECUBEARRAY = 475, - UIMAGECUBEARRAY = 476, - IMAGE2DMS = 477, - IIMAGE2DMS = 478, - UIMAGE2DMS = 479, - IMAGE2DMSARRAY = 480, - IIMAGE2DMSARRAY = 481, - UIMAGE2DMSARRAY = 482, - F16IMAGE1D = 483, - F16IMAGE2D = 484, - F16IMAGE3D = 485, - F16IMAGE2DRECT = 486, - F16IMAGECUBE = 487, - F16IMAGE1DARRAY = 488, - F16IMAGE2DARRAY = 489, - F16IMAGECUBEARRAY = 490, - F16IMAGEBUFFER = 491, - F16IMAGE2DMS = 492, - F16IMAGE2DMSARRAY = 493, - SAMPLER = 494, - SAMPLERSHADOW = 495, - TEXTURE1D = 496, - TEXTURE2D = 497, - TEXTURE3D = 498, - TEXTURECUBE = 499, - TEXTURE1DARRAY = 500, - TEXTURE2DARRAY = 501, - ITEXTURE1D = 502, - ITEXTURE2D = 503, - ITEXTURE3D = 504, - ITEXTURECUBE = 505, - ITEXTURE1DARRAY = 506, - ITEXTURE2DARRAY = 507, - UTEXTURE1D = 508, - UTEXTURE2D = 509, - UTEXTURE3D = 510, - UTEXTURECUBE = 511, - UTEXTURE1DARRAY = 512, - UTEXTURE2DARRAY = 513, - TEXTURE2DRECT = 514, - ITEXTURE2DRECT = 515, - UTEXTURE2DRECT = 516, - TEXTUREBUFFER = 517, - ITEXTUREBUFFER = 518, - UTEXTUREBUFFER = 519, - TEXTURECUBEARRAY = 520, - ITEXTURECUBEARRAY = 521, - UTEXTURECUBEARRAY = 522, + 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, @@ -414,27 +414,27 @@ extern int yydebug; DEFAULT = 624, UNIFORM = 625, SHARED = 626, - FLAT = 627, - SMOOTH = 628, - LAYOUT = 629, - DOUBLECONSTANT = 630, - INT16CONSTANT = 631, - UINT16CONSTANT = 632, - FLOAT16CONSTANT = 633, - INT32CONSTANT = 634, - UINT32CONSTANT = 635, - INT64CONSTANT = 636, - UINT64CONSTANT = 637, - SUBROUTINE = 638, - DEMOTE = 639, - PAYLOADNV = 640, - PAYLOADINNV = 641, - HITATTRNV = 642, - CALLDATANV = 643, - CALLDATAINNV = 644, - PATCH = 645, - SAMPLE = 646, - BUFFER = 647, + 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, diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index fbfede07..3a93aeda 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -213,6 +213,13 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) 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 << ""; } @@ -557,6 +564,9 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) 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; diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index 26b830e4..3262c0a2 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -1035,7 +1035,9 @@ struct TDefaultHlslIoResolver : public TDefaultIoResolverBase { bool TIoMapper::addStage(EShLanguage stage, TIntermediate& intermediate, TInfoSink& infoSink, TIoMapResolver* resolver) { bool somethingToDo = ! intermediate.getResourceSetBinding().empty() || intermediate.getAutoMapBindings() || intermediate.getAutoMapLocations(); - for (int res = 0; res < EResCount; ++res) { + // 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)); } @@ -1134,7 +1136,9 @@ bool TGlslIoMapper::addStage(EShLanguage stage, TIntermediate& intermediate, TIn bool somethingToDo = ! intermediate.getResourceSetBinding().empty() || intermediate.getAutoMapBindings() || intermediate.getAutoMapLocations(); - for (int res = 0; res < EResCount; ++res) { + // 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)); } diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h index 01afc5a2..684e88d5 100644 --- a/glslang/MachineIndependent/iomapper.h +++ b/glslang/MachineIndependent/iomapper.h @@ -114,7 +114,7 @@ public: 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; }; + 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; @@ -125,7 +125,7 @@ public: void addStage(EShLanguage stage) override { if (stage < EShLangCount) stageMask[stage] = true; - }; + } uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage); TSlotSetMap slots; @@ -191,7 +191,7 @@ public: typedef std::map TVarSlotMap; // typedef std::map TSlotMap; // TDefaultGlslIoResolver(const TIntermediate& intermediate); - bool validateBinding(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; }; + 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; @@ -209,7 +209,7 @@ public: 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. @@ -242,7 +242,7 @@ struct TVarLivePair : std::pair { const_cast(first) = _Right.first; second = _Right.second; return (*this); - }; + } }; typedef std::vector TVarLiveVector; @@ -253,7 +253,7 @@ public: virtual ~TIoMapper() {} // grow the reflection stage by stage bool virtual addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*); - bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; }; + bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; } }; // I/O mapper for OpenGL diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 5b920f2d..fe51ec93 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -192,12 +192,14 @@ void TIntermediate::mergeModes(TInfoSink& infoSink, TIntermediate& unit) MERGE_TRUE(pointMode); for (int i = 0; i < 3; ++i) { - if (localSize[i] > 1) + 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) + if (localSizeSpecId[i] == TQualifier::layoutNotSet) localSizeSpecId[i] = unit.localSizeSpecId[i]; else if (localSizeSpecId[i] != unit.localSizeSpecId[i]) error(infoSink, "Contradictory local size specialization ids"); @@ -496,6 +498,7 @@ void TIntermediate::mergeImplicitArraySizes(TType& type, const TType& unitType) // void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, bool crossStage) { +#ifndef GLSLANG_WEB bool writeTypeComparison = false; // Types have to match @@ -546,7 +549,6 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy writeTypeComparison = true; } -#ifndef GLSLANG_WEB // Memory... if (symbol.getQualifier().coherent != unitSymbol.getQualifier().coherent || symbol.getQualifier().devicecoherent != unitSymbol.getQualifier().devicecoherent || @@ -561,7 +563,6 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy error(infoSink, "Memory qualifiers must match:"); writeTypeComparison = true; } -#endif // Layouts... // TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec @@ -591,6 +592,7 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy if (writeTypeComparison) infoSink.info << " " << symbol.getName() << ": \"" << symbol.getType().getCompleteString() << "\" versus \"" << unitSymbol.getType().getCompleteString() << "\"\n"; +#endif } // @@ -1095,7 +1097,7 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ } // combine location and component ranges - TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0); + 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) diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 77ed7c39..cb172e5e 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -147,6 +147,7 @@ struct TOffsetRange { TRange offset; }; +#ifndef GLSLANG_WEB // Things that need to be tracked per xfb buffer. struct TXfbBuffer { TXfbBuffer() : stride(TQualifier::layoutXfbStrideEnd), implicitStride(0), contains64BitType(false), @@ -158,6 +159,7 @@ struct TXfbBuffer { bool contains32BitType; bool contains16BitType; }; +#endif // Track a set of strings describing how the module was processed. // Using the form: @@ -227,10 +229,6 @@ class TIntermediate { public: explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : language(l), -#ifdef ENABLE_HLSL - implicitThisName("@this"), implicitCounterName("@count"), - source(EShSourceNone), -#endif profile(p), version(v), treeRoot(0), numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false), invertY(false), @@ -239,6 +237,8 @@ public: depthReplacing(false) #ifndef GLSLANG_WEB , + implicitThisName("@this"), implicitCounterName("@count"), + source(EShSourceNone), useVulkanMemoryModel(false), invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), @@ -267,13 +267,16 @@ public: uniformLocationBase(0) #endif { -#ifndef GLSLANG_WEB 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 @@ -308,6 +311,12 @@ public: 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; @@ -456,7 +465,23 @@ public: 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) { } @@ -483,6 +508,7 @@ public: 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); @@ -646,23 +672,6 @@ public: } TInterlockOrdering getInterlockOrdering() const { return interlockOrdering; } - bool setLocalSize(int dim, int size) - { - if (localSize[dim] > 1) - return size == localSize[dim]; - 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]; } void setXfbMode() { xfbMode = true; } bool getXfbMode() const { return xfbMode; } void setMultiStream() { multiStream = true; } @@ -747,7 +756,7 @@ public: void setBinaryDoubleOutput() { binaryDoubleOutput = true; } bool getBinaryDoubleOutput() { return binaryDoubleOutput; } -#endif +#endif // GLSLANG_WEB #ifdef ENABLE_HLSL void setHlslFunctionality1() { hlslFunctionality1 = true; } @@ -776,6 +785,9 @@ public: 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(); } @@ -866,7 +878,6 @@ protected: bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&); void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root); bool isConversionAllowed(TOperator op, TIntermTyped* node) const; - TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const; std::tuple getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const; // JohnK: I think this function should go away. @@ -882,13 +893,6 @@ protected: static const char* getResourceName(TResourceType); const EShLanguage language; // stage, known at construction time -#ifdef ENABLE_HLSL -public: - const char* const implicitThisName; - const char* const implicitCounterName; -protected: - EShSource source; // source language, known a bit later -#endif std::string entryPointName; std::string entryPointMangledName; typedef std::list TGraph; @@ -908,7 +912,15 @@ protected: 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; @@ -920,8 +932,6 @@ protected: TVertexOrder vertexOrder; TInterlockOrdering interlockOrdering; bool pointMode; - int localSize[3]; - int localSizeSpecId[3]; bool earlyFragmentTests; bool postDepthCoverage; TLayoutDepth depthLayout; diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h old mode 100755 new mode 100644 diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index f2be2ff1..b0936711 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -112,6 +112,10 @@ public: TReflection::TMapIndexToReflection &ioItems = input ? reflection.indexToPipeInput : reflection.indexToPipeOutput; + + TReflection::TNameToIndex &ioMapper = + input ? reflection.pipeInNameToIndex : reflection.pipeOutNameToIndex; + if (reflection.options & EShReflectionUnwrapIOBlocks) { bool anonymous = IsAnonymous(name); @@ -129,12 +133,13 @@ public: blowUpIOAggregate(input, baseName, type); } } else { - TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name.c_str()); - if (it == reflection.nameToIndex.end()) { - reflection.nameToIndex[name.c_str()] = (int)ioItems.size(); + 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 { diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h index e3561a9d..efdc8934 100644 --- a/glslang/MachineIndependent/reflection.h +++ b/glslang/MachineIndependent/reflection.h @@ -152,6 +152,20 @@ public: // 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; } @@ -189,6 +203,8 @@ protected: 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; diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt index e652f456..9994314f 100644 --- a/glslang/OSDependent/Unix/CMakeLists.txt +++ b/glslang/OSDependent/Unix/CMakeLists.txt @@ -20,6 +20,7 @@ else() endif() if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent + install(TARGETS OSDependent EXPORT OSDependentTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT OSDependentTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/glslang/OSDependent/Web/CMakeLists.txt b/glslang/OSDependent/Web/CMakeLists.txt new file mode 100644 index 00000000..e8238c35 --- /dev/null +++ b/glslang/OSDependent/Web/CMakeLists.txt @@ -0,0 +1,24 @@ +add_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) diff --git a/glslang/OSDependent/Web/glslang.after.js b/glslang/OSDependent/Web/glslang.after.js new file mode 100644 index 00000000..c2cfc35a --- /dev/null +++ b/glslang/OSDependent/Web/glslang.after.js @@ -0,0 +1,26 @@ +export default (() => { + const initialize = () => { + return new Promise(resolve => { + Module({ + locateFile() { + const i = import.meta.url.lastIndexOf('/') + return import.meta.url.substring(0, i) + '/glslang.wasm'; + }, + onRuntimeInitialized() { + resolve({ + compileGLSLZeroCopy: this.compileGLSLZeroCopy, + compileGLSL: this.compileGLSL, + }); + }, + }); + }); + }; + + let instance; + return () => { + if (!instance) { + instance = initialize(); + } + return instance; + }; +})(); diff --git a/glslang/glslang.js.cpp b/glslang/OSDependent/Web/glslang.js.cpp similarity index 98% rename from glslang/glslang.js.cpp rename to glslang/OSDependent/Web/glslang.js.cpp index 45b3d3f6..6cb93fe2 100644 --- a/glslang/glslang.js.cpp +++ b/glslang/OSDependent/Web/glslang.js.cpp @@ -35,17 +35,16 @@ #include #include +#include #ifdef __EMSCRIPTEN__ #include -#endif // __EMSCRIPTEN__ -#include +#endif -#include "../SPIRV/GlslangToSpv.h" -#include "../SPIRV/doc.h" -#include "./../glslang/Public/ShaderLang.h" +#include "../../../SPIRV/GlslangToSpv.h" +#include "../../../glslang/Public/ShaderLang.h" -#ifndef EMSCRIPTEN_KEEPALIVE +#ifndef __EMSCRIPTEN__ #define EMSCRIPTEN_KEEPALIVE #endif diff --git a/glslang/glslang.pre.js b/glslang/OSDependent/Web/glslang.pre.js similarity index 87% rename from glslang/glslang.pre.js rename to glslang/OSDependent/Web/glslang.pre.js index dd7100b3..7d3fd023 100644 --- a/glslang/glslang.pre.js +++ b/glslang/OSDependent/Web/glslang.pre.js @@ -29,8 +29,8 @@ Module['compileGLSLZeroCopy'] = function(glsl, shader_stage, gen_debug) { var ret = {}; var outputIndexU32 = output / 4; - ret.data = Module['HEAPU32'].subarray(outputIndexU32, outputIndexU32 + output_len); - ret.free = function() { + ret['data'] = Module['HEAPU32'].subarray(outputIndexU32, outputIndexU32 + output_len); + ret['free'] = function() { Module['_destroy_output_buffer'](id); }; @@ -39,7 +39,7 @@ Module['compileGLSLZeroCopy'] = function(glsl, shader_stage, gen_debug) { Module['compileGLSL'] = function(glsl, shader_stage, gen_debug) { var compiled = Module['compileGLSLZeroCopy'](glsl, shader_stage, gen_debug); - var ret = compiled.data.slice() - compiled.free(); + var ret = compiled['data'].slice() + compiled['free'](); return ret; }; diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt index f257418a..c050ef61 100644 --- a/glslang/OSDependent/Windows/CMakeLists.txt +++ b/glslang/OSDependent/Windows/CMakeLists.txt @@ -15,6 +15,7 @@ if(WIN32) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent + install(TARGETS OSDependent EXPORT OSDependentTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT OSDependentTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index a3103c65..4cc6c2f4 100755 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -156,6 +156,7 @@ typedef enum { 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 { @@ -486,6 +487,8 @@ public: 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; } @@ -772,7 +775,7 @@ 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(); @@ -788,6 +791,7 @@ public: 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; @@ -817,6 +821,9 @@ public: // 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(); } diff --git a/glslang/updateGrammar b/glslang/updateGrammar index 37794587..9384db94 100755 --- a/glslang/updateGrammar +++ b/glslang/updateGrammar @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash if [ "$1" = 'web' ] then diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index f678cb6e..dc53f5c3 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -20,10 +20,12 @@ if(BUILD_TESTING) ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp) - # -- Remapper tests - ${CMAKE_CURRENT_SOURCE_DIR}/Remap.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) @@ -31,8 +33,9 @@ if(BUILD_TESTING) set_property(TARGET glslangtests PROPERTY FOLDER tests) glslang_set_link_args(glslangtests) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS glslangtests + 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") @@ -48,8 +51,13 @@ if(BUILD_TESTING) ${gtest_SOURCE_DIR}/include) set(LIBRARIES - SPVRemapper glslang OSDependent OGLCompiler glslang + 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) diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp old mode 100644 new mode 100755 index 7738c804..59c687d8 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -230,6 +230,7 @@ INSTANTIATE_TEST_CASE_P( {"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"}, diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index d12d39ac..0e46e790 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -1,5 +1,6 @@ // // Copyright (C) 2016 Google, Inc. +// Copyright (C) 2019 ARM Limited. // // All rights reserved. // @@ -63,6 +64,7 @@ std::string FileNameAsCustomTestSuffixIoMap( } 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>; @@ -85,6 +87,13 @@ TEST_P(CompileVulkanToSpirvTest, FromFile) 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) @@ -255,6 +264,7 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -284,6 +294,7 @@ INSTANTIATE_TEST_CASE_P( "spv.bufferhandle7.frag", "spv.bufferhandle8.frag", "spv.bufferhandle9.frag", + "spv.bufferhandleUvec2.frag", "spv.bufferhandle_Error.frag", "spv.builtInXFB.vert", "spv.conditionalDemote.frag", @@ -403,6 +414,7 @@ INSTANTIATE_TEST_CASE_P( "spv.storageBuffer.vert", "spv.precise.tese", "spv.precise.tesc", + "spv.volatileAtomic.comp", "spv.vulkan100.subgroupArithmetic.comp", "spv.vulkan100.subgroupPartitioned.comp", "spv.xfb.vert", @@ -415,6 +427,23 @@ INSTANTIATE_TEST_CASE_P( 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, @@ -459,6 +488,22 @@ INSTANTIATE_TEST_CASE_P( "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 diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 61a8f232..8d2ebd92 100755 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -113,7 +113,7 @@ public: forceVersionProfile(false), isForwardCompatible(false) { // Perform validation by default. - validatorOptions.validate = true; + spirvOptions.validate = true; } // Tries to load the contents from the file at the given |path|. On success, @@ -693,14 +693,14 @@ public: expectedOutputFname, result.spirvWarningsErrors); } - glslang::SpvOptions& options() { return validatorOptions; } + glslang::SpvOptions& options() { return spirvOptions; } private: const int defaultVersion; const EProfile defaultProfile; const bool forceVersionProfile; const bool isForwardCompatible; - glslang::SpvOptions validatorOptions; + glslang::SpvOptions spirvOptions; }; } // namespace glslangtest diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt index 7436dde6..ae0d4d4e 100644 --- a/hlsl/CMakeLists.txt +++ b/hlsl/CMakeLists.txt @@ -33,12 +33,13 @@ endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) - install(TARGETS HLSL + install(TARGETS HLSL EXPORT HLSLTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else() - install(TARGETS HLSL + install(TARGETS HLSL EXPORT HLSLTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() + install(EXPORT HLSLTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/hlsl/hlslAttributes.cpp b/hlsl/hlslAttributes.cpp index 261cec34..0cc0d3f4 100644 --- a/hlsl/hlslAttributes.cpp +++ b/hlsl/hlslAttributes.cpp @@ -58,6 +58,49 @@ namespace glslang { 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; diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp old mode 100755 new mode 100644 index 45cf5d59..8ab1a900 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -3221,6 +3221,11 @@ bool HlslGrammar::acceptConstructor(TIntermTyped*& node) return false; } + if (arguments == nullptr) { + expected("one or more arguments"); + return false; + } + // hook it up node = parseContext.handleFunctionCall(arguments->getLoc(), constructorFunction, arguments); diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h old mode 100755 new mode 100644 diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp old mode 100644 new mode 100755 index 1549e3a4..be665ac0 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1950,6 +1950,52 @@ void HlslParseContext::transferTypeAttributes(const TSourceLoc& loc, const TAttr 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", "", ""); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h old mode 100755 new mode 100644 diff --git a/known_good.json b/known_good.json index 03818797..ada57d78 100644 --- a/known_good.json +++ b/known_good.json @@ -5,14 +5,14 @@ "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Tools", "subdir" : "External/spirv-tools", - "commit" : "aa9e8f538041db3055ea443080e0ccc315fa114f" + "commit" : "5c019b5923c1f6bf00a3ac28114ec4a7b1faa0e2" }, { "name" : "spirv-tools/external/spirv-headers", "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Headers", "subdir" : "External/spirv-tools/external/spirv-headers", - "commit" : "45c2cc37276d69e5b257507d97fd90d2a5684ccc" + "commit" : "204cd131c42b90d129073719f2766293ce35c081" } ] } diff --git a/kokoro/linux-clang-release-bazel/build.sh b/kokoro/linux-clang-release-bazel/build.sh new file mode 100644 index 00000000..f73162f6 --- /dev/null +++ b/kokoro/linux-clang-release-bazel/build.sh @@ -0,0 +1,60 @@ +#!/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. diff --git a/kokoro/linux-clang-release-bazel/continuous.cfg b/kokoro/linux-clang-release-bazel/continuous.cfg new file mode 100644 index 00000000..767556d0 --- /dev/null +++ b/kokoro/linux-clang-release-bazel/continuous.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2019 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Continuous build configuration. +build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh" diff --git a/kokoro/linux-clang-release-bazel/presubmit.cfg b/kokoro/linux-clang-release-bazel/presubmit.cfg new file mode 100644 index 00000000..669491f8 --- /dev/null +++ b/kokoro/linux-clang-release-bazel/presubmit.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2019 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Presubmit build configuration. +build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh" diff --git a/kokoro/macos-clang-release-bazel/build.sh b/kokoro/macos-clang-release-bazel/build.sh new file mode 100644 index 00000000..cc51fadf --- /dev/null +++ b/kokoro/macos-clang-release-bazel/build.sh @@ -0,0 +1,60 @@ +#!/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. diff --git a/kokoro/macos-clang-release-bazel/continuous.cfg b/kokoro/macos-clang-release-bazel/continuous.cfg new file mode 100644 index 00000000..f1980790 --- /dev/null +++ b/kokoro/macos-clang-release-bazel/continuous.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2019 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Continuous build configuration. +build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh" diff --git a/kokoro/macos-clang-release-bazel/presubmit.cfg b/kokoro/macos-clang-release-bazel/presubmit.cfg new file mode 100644 index 00000000..daa30be5 --- /dev/null +++ b/kokoro/macos-clang-release-bazel/presubmit.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2019 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Presubmit build configuration. +build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh" diff --git a/kokoro/windows-msvc-2015-release-bazel/build.bat b/kokoro/windows-msvc-2015-release-bazel/build.bat new file mode 100644 index 00000000..1a1557c9 --- /dev/null +++ b/kokoro/windows-msvc-2015-release-bazel/build.bat @@ -0,0 +1,75 @@ +:: 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 + diff --git a/kokoro/windows-msvc-2015-release-bazel/continuous.cfg b/kokoro/windows-msvc-2015-release-bazel/continuous.cfg new file mode 100644 index 00000000..554d29de --- /dev/null +++ b/kokoro/windows-msvc-2015-release-bazel/continuous.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2019 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Continuous build configuration. +build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat" diff --git a/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg b/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg new file mode 100644 index 00000000..4980bb6b --- /dev/null +++ b/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg @@ -0,0 +1,35 @@ +# 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"