pax_global_header00006660000000000000000000000064146323406320014515gustar00rootroot0000000000000052 comment=2acb319af38d43be3ea76bfabf3998e5281d8d12 spirv-headers-1.6.1+1.3.290.0/000077500000000000000000000000001463234063200152425ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/.gitattributes000066400000000000000000000001101463234063200201250ustar00rootroot00000000000000*.json text *.h text *.hpp text *.hpp11 text *.lua text *.py text *.xml spirv-headers-1.6.1+1.3.290.0/.github/000077500000000000000000000000001463234063200166025ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/.github/dependabot.yml000066400000000000000000000002731463234063200214340ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: interval: "monthly" groups: github-actions: patterns: - "*" spirv-headers-1.6.1+1.3.290.0/.github/workflows/000077500000000000000000000000001463234063200206375ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/.github/workflows/presubmit.yml000066400000000000000000000076321463234063200234040ustar00rootroot00000000000000name: Presubmit on: [push, pull_request] permissions: contents: read jobs: build: name: Build ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v4 - name: Install Ubuntu packages if: matrix.os == 'ubuntu-latest' run: sudo apt install -y dos2unix - name: Install macOS packages if: matrix.os == 'macos-latest' run: brew install dos2unix - name: Build run: | mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=install .. cmake --build . --target install - name: Build spec tools run: | cd tools/buildHeaders mkdir build cd build cmake .. cmake --build . --target install - name: Build headers run: | cd tools/buildHeaders ./bin/makeHeaders - name: Check generated headers run: git diff --exit-code test_cmake_min_required: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.14.0 - name: CMake build run: | cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ cmake --build build --target install test_cmake_latest: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest - name: CMake build run: | cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" cmake --install build/ --prefix build/install add_subdirectory: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Build spirv-headers with testing enabled run: | cmake -S . -B build/ -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=Debug -G "Ninja" cmake --build build find_package: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Install spirv-headers run: | cmake -S . -B build/ cmake --install build/ --prefix build/install - name: Check spirv-headers find_package support run: | cmake -S tests/find_package -B tests/find_package/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install cmake --build tests/find_package/build/ find_pkg_config: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Install spirv-headers run: | cmake -S . -B build/ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ cmake --install build/ - name: Check spirv-headers pkg_config support run: | cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install cmake --build tests/pkg_config/build/ # https://github.com/KhronosGroup/SPIRV-Headers/issues/282 find_pkg_config_absolute: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Install spirv-headers with CMAKE_INSTALL_INCLUDEDIR being absolute run: | cmake -S . -B build/ -D CMAKE_INSTALL_INCLUDEDIR=${GITHUB_WORKSPACE}/build/install/include -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ cmake --install build/ - name: Check spirv-headers pkg_config support run: | cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install cmake --build tests/pkg_config/build/ spirv-headers-1.6.1+1.3.290.0/.gitignore000066400000000000000000000000241463234063200172260ustar00rootroot00000000000000build out .DS_Store spirv-headers-1.6.1+1.3.290.0/BUILD.bazel000066400000000000000000000113761463234063200171300ustar00rootroot00000000000000package( default_visibility = ["//visibility:public"], ) licenses(["notice"]) exports_files(["LICENSE"]) filegroup( name = "spirv_core_grammar_1.0", srcs = ["include/spirv/1.0/spirv.core.grammar.json"], ) filegroup( name = "spirv_glsl_grammar_1.0", srcs = ["include/spirv/1.0/extinst.glsl.std.450.grammar.json"], ) filegroup( name = "spirv_opencl_grammar_1.0", srcs = ["include/spirv/1.0/extinst.opencl.std.100.grammar.json"], ) filegroup( name = "spirv_core_grammar_1.1", srcs = ["include/spirv/1.1/spirv.core.grammar.json"], ) filegroup( name = "spirv_glsl_grammar_1.1", srcs = ["include/spirv/1.1/extinst.glsl.std.450.grammar.json"], ) filegroup( name = "spirv_opencl_grammar_1.1", srcs = ["include/spirv/1.1/extinst.opencl.std.100.grammar.json"], ) filegroup( name = "spirv_core_grammar_1.2", srcs = ["include/spirv/1.2/spirv.core.grammar.json"], ) filegroup( name = "spirv_glsl_grammar_1.2", srcs = ["include/spirv/1.2/extinst.glsl.std.450.grammar.json"], ) filegroup( name = "spirv_opencl_grammar_1.2", srcs = ["include/spirv/1.2/extinst.opencl.std.100.grammar.json"], ) filegroup( name = "spirv_core_grammar_unified1", srcs = ["include/spirv/unified1/spirv.core.grammar.json"], ) filegroup( name = "spirv_glsl_grammar_unified1", srcs = ["include/spirv/unified1/extinst.glsl.std.450.grammar.json"], ) filegroup( name = "spirv_opencl_grammar_unified1", srcs = ["include/spirv/unified1/extinst.opencl.std.100.grammar.json"], ) filegroup( name = "spirv_xml_registry", srcs = ["include/spirv/spir-v.xml"], ) filegroup( name = "spirv_ext_inst_debuginfo_grammar_unified1", srcs = ["include/spirv/unified1/extinst.debuginfo.grammar.json"], ) filegroup( name = "spirv_ext_inst_nonsemantic_clspvreflection_grammar_unified1", srcs = ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"], ) filegroup( name = "spirv_ext_inst_nonsemantic_vkspreflection_grammar_unified1", srcs = ["include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json"], ) filegroup( name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1", srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"], ) filegroup( name = "spirv_ext_inst_opencl_debuginfo_100_grammar_unified1", srcs = ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"], ) filegroup( name = "spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1", srcs = ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"], ) filegroup( name = "spirv_ext_inst_spv_amd_gcn_shader_grammar_unified1", srcs = ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"], ) filegroup( name = "spirv_ext_inst_spv_amd_shader_ballot_grammar_unified1", srcs = ["include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json"], ) filegroup( name = "spirv_ext_inst_spv_amd_shader_explicit_vertex_parameter_grammar_unified1", srcs = ["include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json"], ) filegroup( name = "spirv_ext_inst_spv_amd_shader_trinary_minmax_grammar_unified1", srcs = ["include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json"], ) cc_library( name = "spirv_common_headers", hdrs = [ "include/spirv/1.0/GLSL.std.450.h", "include/spirv/1.0/OpenCL.std.h", "include/spirv/1.1/GLSL.std.450.h", "include/spirv/1.1/OpenCL.std.h", "include/spirv/1.2/GLSL.std.450.h", "include/spirv/1.2/OpenCL.std.h", "include/spirv/unified1/GLSL.std.450.h", "include/spirv/unified1/NonSemanticClspvReflection.h", "include/spirv/unified1/NonSemanticDebugPrintf.h", "include/spirv/unified1/NonSemanticVkspReflection.h", "include/spirv/unified1/OpenCL.std.h", ], includes = ["include"], ) cc_library( name = "spirv_c_headers", hdrs = [ "include/spirv/1.0/spirv.h", "include/spirv/1.1/spirv.h", "include/spirv/1.2/spirv.h", "include/spirv/unified1/spirv.h", ], includes = ["include"], deps = [":spirv_common_headers"], ) cc_library( name = "spirv_cpp_headers", hdrs = [ "include/spirv/1.0/spirv.hpp", "include/spirv/1.1/spirv.hpp", "include/spirv/1.2/spirv.hpp", "include/spirv/unified1/spirv.hpp", ], includes = ["include"], deps = [":spirv_common_headers"], ) cc_library( name = "spirv_cpp11_headers", hdrs = [ "include/spirv/1.0/spirv.hpp11", "include/spirv/1.1/spirv.hpp11", "include/spirv/1.2/spirv.hpp11", "include/spirv/unified1/spirv.hpp11", ], includes = ["include"], deps = [":spirv_common_headers"], ) spirv-headers-1.6.1+1.3.290.0/BUILD.gn000066400000000000000000000037111463234063200164310ustar00rootroot00000000000000# Copyright (c) 2020-2024 Google LLC # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and/or associated documentation files (the "Materials"), # to deal in the Materials without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Materials, and to permit persons to whom the # Materials are furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS # STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND # HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS # IN THE MATERIALS. config("spv_headers_public_config") { include_dirs = [ "include" ] } source_set("spv_headers") { sources = [ "include/spirv/1.2/GLSL.std.450.h", "include/spirv/1.2/OpenCL.std.h", "include/spirv/1.2/spirv.h", "include/spirv/1.2/spirv.hpp", "include/spirv/unified1/GLSL.std.450.h", "include/spirv/unified1/NonSemanticClspvReflection.h", "include/spirv/unified1/NonSemanticDebugPrintf.h", "include/spirv/unified1/NonSemanticVkspReflection.h", "include/spirv/unified1/OpenCL.std.h", "include/spirv/unified1/spirv.h", "include/spirv/unified1/spirv.hpp", ] public_configs = [ ":spv_headers_public_config" ] } spirv-headers-1.6.1+1.3.290.0/CMakeLists.txt000066400000000000000000000064641463234063200200140ustar00rootroot00000000000000# Copyright (c) 2015-2024 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and/or associated documentation files (the # "Materials"), to deal in the Materials without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Materials, and to # permit persons to whom the Materials are furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS # KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS # SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT # https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. cmake_minimum_required(VERSION 3.14) project(SPIRV-Headers LANGUAGES CXX VERSION 1.5.5) if (CMAKE_VERSION VERSION_LESS "3.21") # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL) endif() add_library(SPIRV-Headers INTERFACE) add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers) target_include_directories(SPIRV-Headers INTERFACE $) option(SPIRV_HEADERS_ENABLE_TESTS "Test SPIRV-Headers" ${PROJECT_IS_TOP_LEVEL}) option(SPIRV_HEADERS_ENABLE_INSTALL "Install SPIRV-Headers" ${PROJECT_IS_TOP_LEVEL}) if(SPIRV_HEADERS_ENABLE_TESTS) add_subdirectory(tests) endif() if(SPIRV_HEADERS_ENABLE_INSTALL) include(GNUInstallDirs) include(CMakePackageConfigHelpers) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) set(cmake_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/SPIRV-Headers") set(version_config "${CMAKE_CURRENT_BINARY_DIR}/generated/SPIRV-HeadersConfigVersion.cmake") write_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT) install(FILES "${version_config}" DESTINATION "${cmake_install_dir}") install(TARGETS SPIRV-Headers EXPORT "SPIRV-HeadersConfig" INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(EXPORT "SPIRV-HeadersConfig" NAMESPACE "SPIRV-Headers::" DESTINATION "${cmake_install_dir}") if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR}) set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}) else() set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Headers.pc.in ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc" DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) endif() spirv-headers-1.6.1+1.3.290.0/CODE_OF_CONDUCT.md000066400000000000000000000004301463234063200200360ustar00rootroot00000000000000A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil. spirv-headers-1.6.1+1.3.290.0/LICENSE000066400000000000000000000113141463234063200162470ustar00rootroot00000000000000Files: All files except for those called out below. Copyright (c) 2015-2024 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --- Files: include/spirv/spir-v.xml Copyright (c) 2015-2024 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --- Files: tools/buildHeaders/jsoncpp/* The JsonCpp library's source code, including accompanying documentation, tests and demonstration applications, are licensed under the following conditions... The author (Baptiste Lepilleur) explicitly disclaims copyright in all jurisdictions which recognize such a disclaimer. In such jurisdictions, this software is released into the Public Domain. In jurisdictions which do not recognize Public Domain property (e.g. Germany as of 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is released under the terms of the MIT License (see below). In jurisdictions which recognize Public Domain property, the user of this software may choose to accept it either as 1) Public Domain, 2) under the conditions of the MIT License (see below), or 3) under the terms of dual Public Domain/MIT License conditions described here, as they choose. The MIT License is about as close to Public Domain as a license can get, and is described in clear, concise terms at: http://en.wikipedia.org/wiki/MIT_License The full text of the MIT License follows: ======================================================================== Copyright (c) 2007-2010 Baptiste Lepilleur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ======================================================================== --- spirv-headers-1.6.1+1.3.290.0/README.md000066400000000000000000000170671463234063200165340ustar00rootroot00000000000000# SPIR-V Headers This repository contains machine-readable files for the [SPIR-V Registry](https://www.khronos.org/registry/spir-v/). This includes: * Header files for various languages. * JSON files describing the grammar for the SPIR-V core instruction set and the extended instruction sets. * The XML registry file. * A tool to build the headers from the JSON grammar. Headers are provided in the [include](include) directory, with up-to-date headers in the `unified1` subdirectory. Older headers are provided according to their version. In contrast, the XML registry file has a linear history, so it is not tied to SPIR-V specification versions. ## How is this repository updated? When a new version or revision of the SPIR-V specification is published, the SPIR-V Working Group will push new commits onto master, updating the files under [include](include). [The SPIR-V XML registry file](include/spirv/spir-v.xml) is updated by Khronos whenever a new enum range is allocated. Pull requests can be made to - request allocation of new enum ranges in the XML registry file - register a new magic number for a SPIR-V generator - reserve specific tokens in the JSON grammar ### Registering a SPIR-V Generator Magic Number Tools that generate SPIR-V should use a magic number in the SPIR-V to help identify the generator. Care should be taken to follow existing precedent in populating the details of reserved tokens. This includes: - keeping generator numbers in numeric order - filling out all the existing fields ### Reserving tokens in the JSON grammar Care should be taken to follow existing precedent in populating the details of reserved tokens. This includes: - pointing to what extension has more information, when possible - keeping enumerants in numeric order - when there are aliases, listing the preferred spelling first - adding the statement `"version" : "None"` ## How to install the headers ``` mkdir build cd build cmake .. cmake --build . --target install ``` Then, for example, you will have `/usr/local/include/spirv/unified1/spirv.h` If you want to install them somewhere else, then use `-DCMAKE_INSTALL_PREFIX=/other/path` on the first `cmake` command. ## Using the headers without installing ### Using CMake A CMake-based project can use the headers without installing, as follows: 1. Add an `add_subdirectory` directive to include this source tree. 2. Use `${SPIRV-Headers_SOURCE_DIR}/include}` in a `target_include_directories` directive. 3. In your C or C++ source code use `#include` directives that explicitly mention the `spirv` path component. ``` #include "spirv/unified1/GLSL.std.450.h" #include "spirv/unified1/OpenCL.std.h" #include "spirv/unified1/spirv.hpp" ``` See also the [example](example/) subdirectory. But since that example is *inside* this repostory, it doesn't use and `add_subdirectory` directive. ### Using Bazel A Bazel-based project can use the headers without installing, as follows: 1. Add SPIRV-Headers as a submodule of your project, and add a `local_repository` to your `WORKSPACE` file. For example, if you place SPIRV-Headers under `external/spirv-headers`, then add the following to your `WORKSPACE` file: ``` local_repository( name = "spirv_headers", path = "external/spirv-headers", ) ``` 2. Add one of the following to the `deps` attribute of your build target based on your needs: ``` @spirv_headers//:spirv_c_headers @spirv_headers//:spirv_cpp_headers @spirv_headers//:spirv_cpp11_headers ``` For example: ``` cc_library( name = "project", srcs = [ # Path to project sources ], hdrs = [ # Path to project headers ], deps = [ "@spirv_tools//:spirv_c_headers", # Other dependencies, ], ) ``` 3. In your C or C++ source code use `#include` directives that explicitly mention the `spirv` path component. ``` #include "spirv/unified1/GLSL.std.450.h" #include "spirv/unified1/OpenCL.std.h" #include "spirv/unified1/spirv.hpp" ``` ## Generating headers from the JSON grammar for the SPIR-V core instruction set This will generally be done by Khronos, for a change to the JSON grammar. However, the project for the tool to do this is included in this repository, and can be used to test a PR, or even to include the results in the PR. This is not required though. The header-generation project is under the `tools/buildHeaders` directory. Use CMake to build and install the project, in a `build` subdirectory (under `tools/buildHeaders`). There is then a bash script at `bin/makeHeaders` that shows how to use the built header-generator binary to generate the headers from the JSON grammar. (Execute `bin/makeHeaders` from the `tools/buildHeaders` directory.) Here's a complete example: ``` cd tools/buildHeaders mkdir build cd build cmake .. cmake --build . --target install cd .. ./bin/makeHeaders ``` Notes: - this generator is used in a broader context within Khronos to generate the specification, and that influences the languages used, for legacy reasons - the C++ structures built may similarly include more than strictly necessary, for the same reason ## Generating C headers for extended instruction sets The [GLSL.std.450.h](include/spirv/unified1/GLSL.std.450.h) and [OpenCL.std.h](include/spirv/unified1/OpenCL.std.h) extended instruction set headers are maintained manually. The C/C++ header for each of the other extended instruction sets is generated from the corresponding JSON grammar file. For example, the [OpenCLDebugInfo100.h](include/spirv/unified1/OpenCLDebugInfo100.h) header is generated from the [extinst.opencl.debuginfo.100.grammar.json](include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json) grammar file. To generate these C/C++ headers, first make sure `python3` is in your PATH, then invoke the build script as follows: ``` cd tools/buildHeaders python3 bin/makeExtinstHeaders.py ``` ## FAQ * *How are different versions published?* The multiple versions of the headers have been simplified into a single `unified1` view. The JSON grammar has a "version" field saying what version things first showed up in. * *How do you handle the evolution of extended instruction sets?* Extended instruction sets evolve asynchronously from the core spec. Right now there is only a single version of both the GLSL and OpenCL headers. So we don't yet have a problematic example to resolve. ## License ``` Copyright (c) 2015-2024 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. ``` spirv-headers-1.6.1+1.3.290.0/SECURITY.md000066400000000000000000000012731463234063200170360ustar00rootroot00000000000000# Security Policy ## Supported Versions Security updates are applied only to the latest release. ## Reporting a Vulnerability If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released. Please disclose it at [security advisory](https://github.com/KhronosGroup/SPIRV-Headers/security/advisories/new). This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure. spirv-headers-1.6.1+1.3.290.0/WORKSPACE000066400000000000000000000000001463234063200165110ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/cmake/000077500000000000000000000000001463234063200163225ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/cmake/SPIRV-Headers.pc.in000066400000000000000000000003021463234063200215220ustar00rootroot00000000000000includedir=@SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR@ Name: SPIRV-Headers Description: Header files from the SPIR-V registry Version: @CMAKE_PROJECT_VERSION@ Requires: Libs: Cflags: -I${includedir} spirv-headers-1.6.1+1.3.290.0/include/000077500000000000000000000000001463234063200166655ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/000077500000000000000000000000001463234063200200305ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/000077500000000000000000000000001463234063200203265ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/GLSL.std.450.h000066400000000000000000000100371463234063200223410ustar00rootroot00000000000000/* ** Copyright (c) 2014-2016 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ #ifndef GLSLstd450_H #define GLSLstd450_H static const int GLSLstd450Version = 100; static const int GLSLstd450Revision = 3; enum GLSLstd450 { GLSLstd450Bad = 0, // Don't use GLSLstd450Round = 1, GLSLstd450RoundEven = 2, GLSLstd450Trunc = 3, GLSLstd450FAbs = 4, GLSLstd450SAbs = 5, GLSLstd450FSign = 6, GLSLstd450SSign = 7, GLSLstd450Floor = 8, GLSLstd450Ceil = 9, GLSLstd450Fract = 10, GLSLstd450Radians = 11, GLSLstd450Degrees = 12, GLSLstd450Sin = 13, GLSLstd450Cos = 14, GLSLstd450Tan = 15, GLSLstd450Asin = 16, GLSLstd450Acos = 17, GLSLstd450Atan = 18, GLSLstd450Sinh = 19, GLSLstd450Cosh = 20, GLSLstd450Tanh = 21, GLSLstd450Asinh = 22, GLSLstd450Acosh = 23, GLSLstd450Atanh = 24, GLSLstd450Atan2 = 25, GLSLstd450Pow = 26, GLSLstd450Exp = 27, GLSLstd450Log = 28, GLSLstd450Exp2 = 29, GLSLstd450Log2 = 30, GLSLstd450Sqrt = 31, GLSLstd450InverseSqrt = 32, GLSLstd450Determinant = 33, GLSLstd450MatrixInverse = 34, GLSLstd450Modf = 35, // second operand needs an OpVariable to write to GLSLstd450ModfStruct = 36, // no OpVariable operand GLSLstd450FMin = 37, GLSLstd450UMin = 38, GLSLstd450SMin = 39, GLSLstd450FMax = 40, GLSLstd450UMax = 41, GLSLstd450SMax = 42, GLSLstd450FClamp = 43, GLSLstd450UClamp = 44, GLSLstd450SClamp = 45, GLSLstd450FMix = 46, GLSLstd450IMix = 47, // Reserved GLSLstd450Step = 48, GLSLstd450SmoothStep = 49, GLSLstd450Fma = 50, GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to GLSLstd450FrexpStruct = 52, // no OpVariable operand GLSLstd450Ldexp = 53, GLSLstd450PackSnorm4x8 = 54, GLSLstd450PackUnorm4x8 = 55, GLSLstd450PackSnorm2x16 = 56, GLSLstd450PackUnorm2x16 = 57, GLSLstd450PackHalf2x16 = 58, GLSLstd450PackDouble2x32 = 59, GLSLstd450UnpackSnorm2x16 = 60, GLSLstd450UnpackUnorm2x16 = 61, GLSLstd450UnpackHalf2x16 = 62, GLSLstd450UnpackSnorm4x8 = 63, GLSLstd450UnpackUnorm4x8 = 64, GLSLstd450UnpackDouble2x32 = 65, GLSLstd450Length = 66, GLSLstd450Distance = 67, GLSLstd450Cross = 68, GLSLstd450Normalize = 69, GLSLstd450FaceForward = 70, GLSLstd450Reflect = 71, GLSLstd450Refract = 72, GLSLstd450FindILsb = 73, GLSLstd450FindSMsb = 74, GLSLstd450FindUMsb = 75, GLSLstd450InterpolateAtCentroid = 76, GLSLstd450InterpolateAtSample = 77, GLSLstd450InterpolateAtOffset = 78, GLSLstd450NMin = 79, GLSLstd450NMax = 80, GLSLstd450NClamp = 81, GLSLstd450Count }; #endif // #ifndef GLSLstd450_H spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/OpenCL.std.h000066400000000000000000000112641463234063200224140ustar00rootroot00000000000000/* ** Copyright (c) 2015-2017 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ namespace OpenCLLIB { enum Entrypoints { // Section 2.1: Math extended instructions Acos = 0, Acosh = 1, Acospi = 2, Asin = 3, Asinh = 4, Asinpi = 5, Atan = 6, Atan2 = 7, Atanh = 8, Atanpi = 9, Atan2pi = 10, Cbrt = 11, Ceil = 12, Copysign = 13, Cos = 14, Cosh = 15, Cospi = 16, Erfc = 17, Erf = 18, Exp = 19, Exp2 = 20, Exp10 = 21, Expm1 = 22, Fabs = 23, Fdim = 24, Floor = 25, Fma = 26, Fmax = 27, Fmin = 28, Fmod = 29, Fract = 30, Frexp = 31, Hypot = 32, Ilogb = 33, Ldexp = 34, Lgamma = 35, Lgamma_r = 36, Log = 37, Log2 = 38, Log10 = 39, Log1p = 40, Logb = 41, Mad = 42, Maxmag = 43, Minmag = 44, Modf = 45, Nan = 46, Nextafter = 47, Pow = 48, Pown = 49, Powr = 50, Remainder = 51, Remquo = 52, Rint = 53, Rootn = 54, Round = 55, Rsqrt = 56, Sin = 57, Sincos = 58, Sinh = 59, Sinpi = 60, Sqrt = 61, Tan = 62, Tanh = 63, Tanpi = 64, Tgamma = 65, Trunc = 66, Half_cos = 67, Half_divide = 68, Half_exp = 69, Half_exp2 = 70, Half_exp10 = 71, Half_log = 72, Half_log2 = 73, Half_log10 = 74, Half_powr = 75, Half_recip = 76, Half_rsqrt = 77, Half_sin = 78, Half_sqrt = 79, Half_tan = 80, Native_cos = 81, Native_divide = 82, Native_exp = 83, Native_exp2 = 84, Native_exp10 = 85, Native_log = 86, Native_log2 = 87, Native_log10 = 88, Native_powr = 89, Native_recip = 90, Native_rsqrt = 91, Native_sin = 92, Native_sqrt = 93, Native_tan = 94, // Section 2.2: Integer instructions SAbs = 141, SAbs_diff = 142, SAdd_sat = 143, UAdd_sat = 144, SHadd = 145, UHadd = 146, SRhadd = 147, URhadd = 148, SClamp = 149, UClamp = 150, Clz = 151, Ctz = 152, SMad_hi = 153, UMad_sat = 154, SMad_sat = 155, SMax = 156, UMax = 157, SMin = 158, UMin = 159, SMul_hi = 160, Rotate = 161, SSub_sat = 162, USub_sat = 163, U_Upsample = 164, S_Upsample = 165, Popcount = 166, SMad24 = 167, UMad24 = 168, SMul24 = 169, UMul24 = 170, UAbs = 201, UAbs_diff = 202, UMul_hi = 203, UMad_hi = 204, // Section 2.3: Common instructions FClamp = 95, Degrees = 96, FMax_common = 97, FMin_common = 98, Mix = 99, Radians = 100, Step = 101, Smoothstep = 102, Sign = 103, // Section 2.4: Geometric instructions Cross = 104, Distance = 105, Length = 106, Normalize = 107, Fast_distance = 108, Fast_length = 109, Fast_normalize = 110, // Section 2.5: Relational instructions Bitselect = 186, Select = 187, // Section 2.6: Vector Data Load and Store instructions Vloadn = 171, Vstoren = 172, Vload_half = 173, Vload_halfn = 174, Vstore_half = 175, Vstore_half_r = 176, Vstore_halfn = 177, Vstore_halfn_r = 178, Vloada_halfn = 179, Vstorea_halfn = 180, Vstorea_halfn_r = 181, // Section 2.7: Miscellaneous Vector instructions Shuffle = 182, Shuffle2 = 183, // Section 2.8: Misc instructions Printf = 184, Prefetch = 185, }; } // end namespace OpenCLLIB spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/extinst.glsl.std.450.grammar.json000066400000000000000000000346331463234063200264150ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "Round", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "RoundEven", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Trunc", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FAbs", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SAbs", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FSign", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SSign", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Floor", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ceil", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fract", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Radians", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "Degrees", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "Sin", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tan", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asin", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acos", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'y_over_x'" } ] }, { "opname" : "Sinh", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cosh", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tanh", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asinh", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acosh", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atanh", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan2", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Pow", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Exp", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Exp2", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log2", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Sqrt", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "InverseSqrt", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Determinant", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "MatrixInverse", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Modf", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "ModfStruct", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FMin", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMin", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMin", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FMax", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMax", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMax", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FClamp", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "UClamp", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "SClamp", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "FMix", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "IMix", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "Step", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SmoothStep", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fma", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "Frexp", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "FrexpStruct", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ldexp", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "PackSnorm4x8", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm4x8", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackSnorm2x16", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm2x16", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackHalf2x16", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackDouble2x32", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "UnpackSnorm2x16", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm2x16", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackHalf2x16", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "UnpackSnorm4x8", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm4x8", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackDouble2x32", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "Length", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Distance", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "Cross", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Normalize", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FaceForward", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'Nref'" } ] }, { "opname" : "Reflect", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" } ] }, { "opname" : "Refract", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'eta'" } ] }, { "opname" : "FindILsb", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindSMsb", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindUMsb", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "InterpolateAtCentroid", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtSample", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'sample'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtOffset", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'offset'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "NMin", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NMax", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NClamp", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/extinst.opencl.std.100.grammar.json000066400000000000000000000713001463234063200267140ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "acos", "opcode" : 0, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acosh", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acospi", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asin", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinh", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinpi", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanh", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanpi", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2pi", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cbrt", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ceil", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "copysign", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cosh", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cospi", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erfc", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erf", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp2", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp10", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "expm1", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fabs", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fdim", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "floor", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fma", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fmax", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmod", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fract", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'ptr'" } ] }, { "opname" : "frexp", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "hypot", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "ilogb", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ldexp", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'k'" } ] }, { "opname" : "lgamma", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "lgamma_r", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'signp'" } ] }, { "opname" : "log", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log2", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log10", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log1p", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "logb", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "mad", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "maxmag", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "minmag", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "modf", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'iptr'" } ] }, { "opname" : "nan", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'nancode'" } ] }, { "opname" : "nextafter", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "pow", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y" } ] }, { "opname" : "pown", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "powr", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remainder", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remquo", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'quo'" } ] }, { "opname" : "rint", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rootn", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "round", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rsqrt", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sin", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sincos", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'cosval'" } ] }, { "opname" : "sinh", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sinpi", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sqrt", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tan", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanh", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanpi", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tgamma", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "trunc", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_cos", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_divide", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_exp", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp2", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp10", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log2", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log10", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_powr", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_recip", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_rsqrt", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sin", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sqrt", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_tan", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_cos", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_divide", "opcode" : 82, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_exp", "opcode" : 83, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp2", "opcode" : 84, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp10", "opcode" : 85, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log", "opcode" : 86, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log2", "opcode" : 87, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log10", "opcode" : 88, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_powr", "opcode" : 89, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_recip", "opcode" : 90, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_rsqrt", "opcode" : 91, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sin", "opcode" : 92, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sqrt", "opcode" : 93, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_tan", "opcode" : 94, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs", "opcode" : 141, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs_diff", "opcode" : 142, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_add_sat", "opcode" : 143, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_add_sat", "opcode" : 144, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_hadd", "opcode" : 145, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_hadd", "opcode" : 146, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_rhadd", "opcode" : 147, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_rhadd", "opcode" : 148, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_clamp", "opcode" : 149, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "u_clamp", "opcode" : 150, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "clz", "opcode" : 151, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ctz", "opcode" : 152, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad_hi", "opcode" : 153, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "u_mad_sat", "opcode" : 154, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mad_sat", "opcode" : 155, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_max", "opcode" : 156, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_max", "opcode" : 157, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_min", "opcode" : 158, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_min", "opcode" : 159, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_mul_hi", "opcode" : 160, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "rotate", "opcode" : 161, "operands" : [ { "kind" : "IdRef", "name" : "'v'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "s_sub_sat", "opcode" : 162, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_sub_sat", "opcode" : 163, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_upsample", "opcode" : 164, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "s_upsample", "opcode" : 165, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "popcount", "opcode" : 166, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad24", "opcode" : 167, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "u_mad24", "opcode" : 168, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mul24", "opcode" : 169, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul24", "opcode" : 170, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_abs", "opcode" : 201, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "u_abs_diff", "opcode" : 202, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul_hi", "opcode" : 203, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mad_hi", "opcode" : 204, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fclamp", "opcode" : 95, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "degrees", "opcode" :96, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "fmax_common", "opcode" : 97, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin_common", "opcode" : 98, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "mix", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "radians", "opcode" : 100, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "step", "opcode" : 101, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "smoothstep", "opcode" : 102, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sign", "opcode" : 103, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cross", "opcode" : 104, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "distance", "opcode" : 105, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "length", "opcode" : 106, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "normalize", "opcode" : 107, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_distance", "opcode" : 108, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "fast_length", "opcode" : 109, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_normalize", "opcode" : 110, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "bitselect", "opcode" : 186, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "select", "opcode" : 187, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "vloadn", "opcode" : 171, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstoren", "opcode" : 172, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_half", "opcode" : 173, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_halfn", "opcode" : 174, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstore_half", "opcode" : 175, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_half_r", "opcode" : 176, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vstore_halfn", "opcode" : 177, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_halfn_r", "opcode" : 178, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vloada_halfn", "opcode" : 179, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstorea_halfn", "opcode" : 180, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstorea_halfn_r", "opcode" : 181, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "shuffle", "opcode" : 182, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "shuffle2", "opcode" : 183, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "printf", "opcode" : 184, "operands" : [ { "kind" : "IdRef", "name" : "'format'" }, { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" } ] }, { "opname" : "prefetch", "opcode" : 185, "operands" : [ { "kind" : "IdRef", "name" : "'ptr'" }, { "kind" : "IdRef", "name" : "'num elements'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.core.grammar.json000066400000000000000000005010041463234063200247400ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "magic_number" : "0x07230203", "major_version" : 1, "minor_version" : 0, "revision" : 12, "instructions" : [ { "opname" : "OpNop", "opcode" : 0 }, { "opname" : "OpUndef", "opcode" : 1, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSourceContinued", "opcode" : 2, "operands" : [ { "kind" : "LiteralString", "name" : "'Continued Source'" } ] }, { "opname" : "OpSource", "opcode" : 3, "operands" : [ { "kind" : "SourceLanguage" }, { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" }, { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" } ] }, { "opname" : "OpSourceExtension", "opcode" : 4, "operands" : [ { "kind" : "LiteralString", "name" : "'Extension'" } ] }, { "opname" : "OpName", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpMemberName", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpString", "opcode" : 7, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'String'" } ] }, { "opname" : "OpLine", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "OpExtension", "opcode" : 10, "operands" : [ { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpExtInstImport", "opcode" : 11, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpExtInst", "opcode" : 12, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } ] }, { "opname" : "OpMemoryModel", "opcode" : 14, "operands" : [ { "kind" : "AddressingModel" }, { "kind" : "MemoryModel" } ] }, { "opname" : "OpEntryPoint", "opcode" : 15, "operands" : [ { "kind" : "ExecutionModel" }, { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" } ] }, { "opname" : "OpExecutionMode", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } ] }, { "opname" : "OpCapability", "opcode" : 17, "operands" : [ { "kind" : "Capability", "name" : "'Capability'" } ] }, { "opname" : "OpTypeVoid", "opcode" : 19, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeBool", "opcode" : 20, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeInt", "opcode" : 21, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" }, { "kind" : "LiteralInteger", "name" : "'Signedness'" } ] }, { "opname" : "OpTypeFloat", "opcode" : 22, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" } ] }, { "opname" : "OpTypeVector", "opcode" : 23, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } ] }, { "opname" : "OpTypeMatrix", "opcode" : 24, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Column Type'" }, { "kind" : "LiteralInteger", "name" : "'Column Count'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpTypeImage", "opcode" : 25, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Type'" }, { "kind" : "Dim" }, { "kind" : "LiteralInteger", "name" : "'Depth'" }, { "kind" : "LiteralInteger", "name" : "'Arrayed'" }, { "kind" : "LiteralInteger", "name" : "'MS'" }, { "kind" : "LiteralInteger", "name" : "'Sampled'" }, { "kind" : "ImageFormat" }, { "kind" : "AccessQualifier", "quantifier" : "?" } ] }, { "opname" : "OpTypeSampler", "opcode" : 26, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeSampledImage", "opcode" : 27, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } ] }, { "opname" : "OpTypeArray", "opcode" : 28, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" }, { "kind" : "IdRef", "name" : "'Length'" } ] }, { "opname" : "OpTypeRuntimeArray", "opcode" : 29, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpTypeStruct", "opcode" : 30, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ] }, { "opname" : "OpTypeOpaque", "opcode" : 31, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "The name of the opaque type." } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpTypePointer", "opcode" : 32, "operands" : [ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "name" : "'Type'" } ] }, { "opname" : "OpTypeFunction", "opcode" : 33, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." } ] }, { "opname" : "OpTypeEvent", "opcode" : 34, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpTypeDeviceEvent", "opcode" : 35, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpTypeReserveId", "opcode" : 36, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpTypeQueue", "opcode" : 37, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpTypePipe", "opcode" : 38, "operands" : [ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'Qualifier'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpTypeForwardPointer", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer Type'" }, { "kind" : "StorageClass" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpConstantTrue", "opcode" : 41, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpConstantFalse", "opcode" : 42, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpConstant", "opcode" : 43, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ] }, { "opname" : "OpConstantComposite", "opcode" : 44, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpConstantSampler", "opcode" : 45, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "SamplerAddressingMode" }, { "kind" : "LiteralInteger", "name" : "'Param'" }, { "kind" : "SamplerFilterMode" } ], "capabilities" : [ "LiteralSampler" ] }, { "opname" : "OpConstantNull", "opcode" : 46, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstantTrue", "opcode" : 48, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstantFalse", "opcode" : 49, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstant", "opcode" : 50, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ] }, { "opname" : "OpSpecConstantComposite", "opcode" : 51, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpSpecConstantOp", "opcode" : 52, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" } ] }, { "opname" : "OpFunction", "opcode" : 54, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "FunctionControl" }, { "kind" : "IdRef", "name" : "'Function Type'" } ] }, { "opname" : "OpFunctionParameter", "opcode" : 55, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpFunctionEnd", "opcode" : 56 }, { "opname" : "OpFunctionCall", "opcode" : 57, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." } ] }, { "opname" : "OpVariable", "opcode" : 59, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" } ] }, { "opname" : "OpImageTexelPointer", "opcode" : 60, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Sample'" } ] }, { "opname" : "OpLoad", "opcode" : 61, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpStore", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpCopyMemory", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpCopyMemorySized", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpAccessChain", "opcode" : 65, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpInBoundsAccessChain", "opcode" : 66, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpPtrAccessChain", "opcode" : 67, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ] }, { "opname" : "OpArrayLength", "opcode" : 68, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Structure'" }, { "kind" : "LiteralInteger", "name" : "'Array member'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpGenericPtrMemSemantics", "opcode" : 69, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpInBoundsPtrAccessChain", "opcode" : 70, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpDecorate", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpMemberDecorate", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'Structure Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpDecorationGroup", "opcode" : 73, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpGroupDecorate", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" } ] }, { "opname" : "OpGroupMemberDecorate", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" } ] }, { "opname" : "OpVectorExtractDynamic", "opcode" : 77, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Index'" } ] }, { "opname" : "OpVectorInsertDynamic", "opcode" : 78, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "IdRef", "name" : "'Index'" } ] }, { "opname" : "OpVectorShuffle", "opcode" : 79, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" } ] }, { "opname" : "OpCompositeConstruct", "opcode" : 80, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpCompositeExtract", "opcode" : 81, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpCompositeInsert", "opcode" : 82, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpCopyObject", "opcode" : 83, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpTranspose", "opcode" : 84, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpSampledImage", "opcode" : 86, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Sampler'" } ] }, { "opname" : "OpImageSampleImplicitLod", "opcode" : 87, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleExplicitLod", "opcode" : 88, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ] }, { "opname" : "OpImageSampleDrefImplicitLod", "opcode" : 89, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleDrefExplicitLod", "opcode" : 90, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjImplicitLod", "opcode" : 91, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjExplicitLod", "opcode" : 92, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjDrefImplicitLod", "opcode" : 93, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjDrefExplicitLod", "opcode" : 94, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageFetch", "opcode" : 95, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImageGather", "opcode" : 96, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageDrefGather", "opcode" : 97, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageRead", "opcode" : 98, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImageWrite", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Texel'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImage", "opcode" : 100, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" } ] }, { "opname" : "OpImageQueryFormat", "opcode" : 101, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageQueryOrder", "opcode" : 102, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageQuerySizeLod", "opcode" : 103, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Level of Detail'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQuerySize", "opcode" : 104, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQueryLod", "opcode" : 105, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "ImageQuery" ] }, { "opname" : "OpImageQueryLevels", "opcode" : 106, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQuerySamples", "opcode" : 107, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpConvertFToU", "opcode" : 109, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpConvertFToS", "opcode" : 110, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpConvertSToF", "opcode" : 111, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ] }, { "opname" : "OpConvertUToF", "opcode" : 112, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ] }, { "opname" : "OpUConvert", "opcode" : 113, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ] }, { "opname" : "OpSConvert", "opcode" : 114, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ] }, { "opname" : "OpFConvert", "opcode" : 115, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpQuantizeToF16", "opcode" : 116, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpConvertPtrToU", "opcode" : 117, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpSatConvertSToU", "opcode" : 118, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpSatConvertUToS", "opcode" : 119, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpConvertUToPtr", "opcode" : 120, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Integer Value'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpPtrCastToGeneric", "opcode" : 121, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGenericCastToPtr", "opcode" : 122, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGenericCastToPtrExplicit", "opcode" : 123, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "StorageClass", "name" : "'Storage'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpBitcast", "opcode" : 124, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpSNegate", "opcode" : 126, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpFNegate", "opcode" : 127, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpIAdd", "opcode" : 128, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFAdd", "opcode" : 129, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpISub", "opcode" : 130, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFSub", "opcode" : 131, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpIMul", "opcode" : 132, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFMul", "opcode" : 133, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUDiv", "opcode" : 134, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSDiv", "opcode" : 135, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFDiv", "opcode" : 136, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUMod", "opcode" : 137, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSRem", "opcode" : 138, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSMod", "opcode" : 139, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFRem", "opcode" : 140, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFMod", "opcode" : 141, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpVectorTimesScalar", "opcode" : 142, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ] }, { "opname" : "OpMatrixTimesScalar", "opcode" : 143, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpVectorTimesMatrix", "opcode" : 144, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpMatrixTimesVector", "opcode" : 145, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Vector'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpMatrixTimesMatrix", "opcode" : 146, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'LeftMatrix'" }, { "kind" : "IdRef", "name" : "'RightMatrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpOuterProduct", "opcode" : 147, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpDot", "opcode" : 148, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ] }, { "opname" : "OpIAddCarry", "opcode" : 149, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpISubBorrow", "opcode" : 150, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUMulExtended", "opcode" : 151, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSMulExtended", "opcode" : 152, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpAny", "opcode" : 154, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ] }, { "opname" : "OpAll", "opcode" : 155, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ] }, { "opname" : "OpIsNan", "opcode" : 156, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "OpIsInf", "opcode" : 157, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "OpIsFinite", "opcode" : 158, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpIsNormal", "opcode" : 159, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpSignBitSet", "opcode" : 160, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLessOrGreater", "opcode" : 161, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpOrdered", "opcode" : 162, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpUnordered", "opcode" : 163, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLogicalEqual", "opcode" : 164, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalNotEqual", "opcode" : 165, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalOr", "opcode" : 166, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalAnd", "opcode" : 167, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalNot", "opcode" : 168, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpSelect", "opcode" : 169, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'Object 1'" }, { "kind" : "IdRef", "name" : "'Object 2'" } ] }, { "opname" : "OpIEqual", "opcode" : 170, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpINotEqual", "opcode" : 171, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUGreaterThan", "opcode" : 172, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSGreaterThan", "opcode" : 173, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUGreaterThanEqual", "opcode" : 174, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSGreaterThanEqual", "opcode" : 175, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpULessThan", "opcode" : 176, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSLessThan", "opcode" : 177, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpULessThanEqual", "opcode" : 178, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSLessThanEqual", "opcode" : 179, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdEqual", "opcode" : 180, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordEqual", "opcode" : 181, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdNotEqual", "opcode" : 182, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordNotEqual", "opcode" : 183, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdLessThan", "opcode" : 184, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordLessThan", "opcode" : 185, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdGreaterThan", "opcode" : 186, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordGreaterThan", "opcode" : 187, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdLessThanEqual", "opcode" : 188, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordLessThanEqual", "opcode" : 189, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdGreaterThanEqual", "opcode" : 190, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordGreaterThanEqual", "opcode" : 191, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpShiftRightLogical", "opcode" : 194, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpShiftRightArithmetic", "opcode" : 195, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpShiftLeftLogical", "opcode" : 196, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpBitwiseOr", "opcode" : 197, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpBitwiseXor", "opcode" : 198, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpBitwiseAnd", "opcode" : 199, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpNot", "opcode" : 200, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpBitFieldInsert", "opcode" : 201, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Insert'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitFieldSExtract", "opcode" : 202, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitFieldUExtract", "opcode" : 203, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitReverse", "opcode" : 204, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitCount", "opcode" : 205, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ] }, { "opname" : "OpDPdx", "opcode" : 207, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpDPdy", "opcode" : 208, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpFwidth", "opcode" : 209, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpDPdxFine", "opcode" : 210, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdyFine", "opcode" : 211, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpFwidthFine", "opcode" : 212, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdxCoarse", "opcode" : 213, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdyCoarse", "opcode" : 214, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpFwidthCoarse", "opcode" : 215, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpEmitVertex", "opcode" : 218, "capabilities" : [ "Geometry" ] }, { "opname" : "OpEndPrimitive", "opcode" : 219, "capabilities" : [ "Geometry" ] }, { "opname" : "OpEmitStreamVertex", "opcode" : 220, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ] }, { "opname" : "OpEndStreamPrimitive", "opcode" : 221, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ] }, { "opname" : "OpControlBarrier", "opcode" : 224, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpMemoryBarrier", "opcode" : 225, "operands" : [ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicLoad", "opcode" : 227, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicStore", "opcode" : 228, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicExchange", "opcode" : 229, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicCompareExchange", "opcode" : 230, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ] }, { "opname" : "OpAtomicCompareExchangeWeak", "opcode" : 231, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpAtomicIIncrement", "opcode" : 232, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicIDecrement", "opcode" : 233, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicIAdd", "opcode" : 234, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicISub", "opcode" : 235, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicSMin", "opcode" : 236, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicUMin", "opcode" : 237, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicSMax", "opcode" : 238, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicUMax", "opcode" : 239, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicAnd", "opcode" : 240, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicOr", "opcode" : 241, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicXor", "opcode" : 242, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpPhi", "opcode" : 245, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" } ] }, { "opname" : "OpLoopMerge", "opcode" : 246, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "IdRef", "name" : "'Continue Target'" }, { "kind" : "LoopControl" } ] }, { "opname" : "OpSelectionMerge", "opcode" : 247, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "SelectionControl" } ] }, { "opname" : "OpLabel", "opcode" : 248, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpBranch", "opcode" : 249, "operands" : [ { "kind" : "IdRef", "name" : "'Target Label'" } ] }, { "opname" : "OpBranchConditional", "opcode" : 250, "operands" : [ { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'True Label'" }, { "kind" : "IdRef", "name" : "'False Label'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" } ] }, { "opname" : "OpSwitch", "opcode" : 251, "operands" : [ { "kind" : "IdRef", "name" : "'Selector'" }, { "kind" : "IdRef", "name" : "'Default'" }, { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" } ] }, { "opname" : "OpKill", "opcode" : 252, "capabilities" : [ "Shader" ] }, { "opname" : "OpReturn", "opcode" : 253 }, { "opname" : "OpReturnValue", "opcode" : 254, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpUnreachable", "opcode" : 255 }, { "opname" : "OpLifetimeStart", "opcode" : 256, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLifetimeStop", "opcode" : 257, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupAsyncCopy", "opcode" : 259, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Destination'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Num Elements'" }, { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupWaitEvents", "opcode" : 260, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Events List'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupAll", "opcode" : 261, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupAny", "opcode" : 262, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupBroadcast", "opcode" : 263, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'LocalId'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupIAdd", "opcode" : 264, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFAdd", "opcode" : 265, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMin", "opcode" : 266, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMin", "opcode" : 267, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMin", "opcode" : 268, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMax", "opcode" : 269, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMax", "opcode" : 270, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMax", "opcode" : 271, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpReadPipe", "opcode" : 274, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpWritePipe", "opcode" : 275, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReservedReadPipe", "opcode" : 276, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReservedWritePipe", "opcode" : 277, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReserveReadPipePackets", "opcode" : 278, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReserveWritePipePackets", "opcode" : 279, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpCommitReadPipe", "opcode" : 280, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpCommitWritePipe", "opcode" : 281, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpIsValidReserveId", "opcode" : 282, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reserve Id'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGetNumPipePackets", "opcode" : 283, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGetMaxPipePackets", "opcode" : 284, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupReserveReadPipePackets", "opcode" : 285, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupReserveWritePipePackets", "opcode" : 286, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupCommitReadPipe", "opcode" : 287, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupCommitWritePipe", "opcode" : 288, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpEnqueueMarker", "opcode" : 291, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpEnqueueKernel", "opcode" : 292, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelNDrangeSubGroupCount", "opcode" : 293, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelNDrangeMaxSubGroupSize", "opcode" : 294, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelWorkGroupSize", "opcode" : 295, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple", "opcode" : 296, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpRetainEvent", "opcode" : 297, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpReleaseEvent", "opcode" : 298, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpCreateUserEvent", "opcode" : 299, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpIsValidEvent", "opcode" : 300, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpSetUserEventStatus", "opcode" : 301, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Status'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpCaptureEventProfilingInfo", "opcode" : 302, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Profiling Info'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetDefaultQueue", "opcode" : 303, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpBuildNDRange", "opcode" : 304, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'GlobalWorkSize'" }, { "kind" : "IdRef", "name" : "'LocalWorkSize'" }, { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpImageSparseSampleImplicitLod", "opcode" : 305, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleExplicitLod", "opcode" : 306, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleDrefImplicitLod", "opcode" : 307, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleDrefExplicitLod", "opcode" : 308, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjImplicitLod", "opcode" : 309, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjExplicitLod", "opcode" : 310, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjDrefImplicitLod", "opcode" : 311, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjDrefExplicitLod", "opcode" : 312, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseFetch", "opcode" : 313, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseGather", "opcode" : 314, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseDrefGather", "opcode" : 315, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseTexelsResident", "opcode" : 316, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Resident Code'" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpNoLine", "opcode" : 317 }, { "opname" : "OpAtomicFlagTestAndSet", "opcode" : 318, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpAtomicFlagClear", "opcode" : 319, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageSparseRead", "opcode" : 320, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpDecorateId", "opcode" : 332, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] }, { "opname" : "OpSubgroupBallotKHR", "opcode" : 4421, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpSubgroupFirstInvocationKHR", "opcode" : 4422, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpSubgroupAllKHR", "opcode" : 4428, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupAnyKHR", "opcode" : 4429, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupAllEqualKHR", "opcode" : 4430, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupReadInvocationKHR", "opcode" : 4432, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpGroupIAddNonUniformAMD", "opcode" : 5000, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFAddNonUniformAMD", "opcode" : 5001, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMinNonUniformAMD", "opcode" : 5002, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMinNonUniformAMD", "opcode" : 5003, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMinNonUniformAMD", "opcode" : 5004, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMaxNonUniformAMD", "opcode" : 5005, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMaxNonUniformAMD", "opcode" : 5006, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMaxNonUniformAMD", "opcode" : 5007, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpFragmentMaskFetchAMD", "opcode" : 5011, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "FragmentMaskAMD" ] }, { "opname" : "OpFragmentFetchAMD", "opcode" : 5012, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Fragment Index'" } ], "capabilities" : [ "FragmentMaskAMD" ] }, { "opname" : "OpSubgroupShuffleINTEL", "opcode" : 5571, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'InvocationId'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleDownINTEL", "opcode" : 5572, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Next'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleUpINTEL", "opcode" : 5573, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Previous'" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleXorINTEL", "opcode" : 5574, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupBlockReadINTEL", "opcode" : 5575, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Ptr'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ] }, { "opname" : "OpSubgroupBlockWriteINTEL", "opcode" : 5576, "operands" : [ { "kind" : "IdRef", "name" : "'Ptr'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ] }, { "opname" : "OpSubgroupImageBlockReadINTEL", "opcode" : 5577, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ] }, { "opname" : "OpSubgroupImageBlockWriteINTEL", "opcode" : 5578, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ] }, { "opname" : "OpDecorateStringGOOGLE", "opcode" : 5632, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string" ] }, { "opname" : "OpMemberDecorateStringGOOGLE", "opcode" : 5633, "operands" : [ { "kind" : "IdRef", "name" : "'Struct Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string" ] } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "ImageOperands", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Bias", "value" : "0x0001", "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Lod", "value" : "0x0002", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Grad", "value" : "0x0004", "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } ] }, { "enumerant" : "ConstOffset", "value" : "0x0008", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Offset", "value" : "0x0010", "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "ConstOffsets", "value" : "0x0020", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Sample", "value" : "0x0040", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "MinLod", "value" : "0x0080", "capabilities" : [ "MinLod" ], "parameters" : [ { "kind" : "IdRef" } ] } ] }, { "category" : "BitEnum", "kind" : "FPFastMathMode", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "NotNaN", "value" : "0x0001", "capabilities" : [ "Kernel" ] }, { "enumerant" : "NotInf", "value" : "0x0002", "capabilities" : [ "Kernel" ] }, { "enumerant" : "NSZ", "value" : "0x0004", "capabilities" : [ "Kernel" ] }, { "enumerant" : "AllowRecip", "value" : "0x0008", "capabilities" : [ "Kernel" ] }, { "enumerant" : "Fast", "value" : "0x0010", "capabilities" : [ "Kernel" ] } ] }, { "category" : "BitEnum", "kind" : "SelectionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Flatten", "value" : "0x0001" }, { "enumerant" : "DontFlatten", "value" : "0x0002" } ] }, { "category" : "BitEnum", "kind" : "LoopControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Unroll", "value" : "0x0001" }, { "enumerant" : "DontUnroll", "value" : "0x0002" } ] }, { "category" : "BitEnum", "kind" : "FunctionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Inline", "value" : "0x0001" }, { "enumerant" : "DontInline", "value" : "0x0002" }, { "enumerant" : "Pure", "value" : "0x0004" }, { "enumerant" : "Const", "value" : "0x0008" } ] }, { "category" : "BitEnum", "kind" : "MemorySemantics", "enumerants" : [ { "enumerant" : "Relaxed", "value" : "0x0000" }, { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Acquire", "value" : "0x0002" }, { "enumerant" : "Release", "value" : "0x0004" }, { "enumerant" : "AcquireRelease", "value" : "0x0008" }, { "enumerant" : "SequentiallyConsistent", "value" : "0x0010" }, { "enumerant" : "UniformMemory", "value" : "0x0040", "capabilities" : [ "Shader" ] }, { "enumerant" : "SubgroupMemory", "value" : "0x0080" }, { "enumerant" : "WorkgroupMemory", "value" : "0x0100" }, { "enumerant" : "CrossWorkgroupMemory", "value" : "0x0200" }, { "enumerant" : "AtomicCounterMemory", "value" : "0x0400", "capabilities" : [ "AtomicStorage" ] }, { "enumerant" : "ImageMemory", "value" : "0x0800" } ] }, { "category" : "BitEnum", "kind" : "MemoryAccess", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Volatile", "value" : "0x0001" }, { "enumerant" : "Aligned", "value" : "0x0002", "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Nontemporal", "value" : "0x0004" } ] }, { "category" : "BitEnum", "kind" : "KernelProfilingInfo", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "CmdExecTime", "value" : "0x0001", "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "SourceLanguage", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0 }, { "enumerant" : "ESSL", "value" : 1 }, { "enumerant" : "GLSL", "value" : 2 }, { "enumerant" : "OpenCL_C", "value" : 3 }, { "enumerant" : "OpenCL_CPP", "value" : 4 }, { "enumerant" : "HLSL", "value" : 5 } ] }, { "category" : "ValueEnum", "kind" : "ExecutionModel", "enumerants" : [ { "enumerant" : "Vertex", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "TessellationControl", "value" : 1, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessellationEvaluation", "value" : 2, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Geometry", "value" : 3, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Fragment", "value" : 4, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLCompute", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "Kernel", "value" : 6, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "AddressingModel", "enumerants" : [ { "enumerant" : "Logical", "value" : 0 }, { "enumerant" : "Physical32", "value" : 1, "capabilities" : [ "Addresses" ] }, { "enumerant" : "Physical64", "value" : 2, "capabilities" : [ "Addresses" ] } ] }, { "category" : "ValueEnum", "kind" : "MemoryModel", "enumerants" : [ { "enumerant" : "Simple", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLSL450", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "OpenCL", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ExecutionMode", "enumerants" : [ { "enumerant" : "Invocations", "value" : 0, "capabilities" : [ "Geometry" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of <>'" } ] }, { "enumerant" : "SpacingEqual", "value" : 1, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "SpacingFractionalEven", "value" : 2, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "SpacingFractionalOdd", "value" : 3, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "VertexOrderCw", "value" : 4, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "VertexOrderCcw", "value" : 5, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "PixelCenterInteger", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "OriginUpperLeft", "value" : 7, "capabilities" : [ "Shader" ] }, { "enumerant" : "OriginLowerLeft", "value" : 8, "capabilities" : [ "Shader" ] }, { "enumerant" : "EarlyFragmentTests", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointMode", "value" : 10, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Xfb", "value" : 11, "capabilities" : [ "TransformFeedback" ] }, { "enumerant" : "DepthReplacing", "value" : 12, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthGreater", "value" : 14, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthLess", "value" : 15, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthUnchanged", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "LocalSize", "value" : 17, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ] }, { "enumerant" : "LocalSizeHint", "value" : 18, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ] }, { "enumerant" : "InputPoints", "value" : 19, "capabilities" : [ "Geometry" ] }, { "enumerant" : "InputLines", "value" : 20, "capabilities" : [ "Geometry" ] }, { "enumerant" : "InputLinesAdjacency", "value" : 21, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Triangles", "value" : 22, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "InputTrianglesAdjacency", "value" : 23, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Quads", "value" : 24, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Isolines", "value" : 25, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "OutputVertices", "value" : 26, "capabilities" : [ "Geometry", "Tessellation" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vertex count'" } ] }, { "enumerant" : "OutputPoints", "value" : 27, "capabilities" : [ "Geometry" ] }, { "enumerant" : "OutputLineStrip", "value" : 28, "capabilities" : [ "Geometry" ] }, { "enumerant" : "OutputTriangleStrip", "value" : 29, "capabilities" : [ "Geometry" ] }, { "enumerant" : "VecTypeHint", "value" : 30, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vector type'" } ] }, { "enumerant" : "ContractionOff", "value" : 31, "capabilities" : [ "Kernel" ] }, { "enumerant" : "PostDepthCoverage", "value" : 4446, "capabilities" : [ "SampleMaskPostDepthCoverage" ] }, { "enumerant" : "StencilRefReplacingEXT", "value" : 5027, "capabilities" : [ "StencilExportEXT" ] } ] }, { "category" : "ValueEnum", "kind" : "StorageClass", "enumerants" : [ { "enumerant" : "UniformConstant", "value" : 0 }, { "enumerant" : "Input", "value" : 1 }, { "enumerant" : "Uniform", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "Output", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Workgroup", "value" : 4 }, { "enumerant" : "CrossWorkgroup", "value" : 5 }, { "enumerant" : "Private", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "Function", "value" : 7 }, { "enumerant" : "Generic", "value" : 8, "capabilities" : [ "GenericPointer" ] }, { "enumerant" : "PushConstant", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "AtomicCounter", "value" : 10, "capabilities" : [ "AtomicStorage" ] }, { "enumerant" : "Image", "value" : 11 }, { "enumerant" : "StorageBuffer", "value" : 12, "extensions" : [ "SPV_KHR_storage_buffer_storage_class", "SPV_KHR_variable_pointers" ], "capabilities" : [ "Shader" ] } ] }, { "category" : "ValueEnum", "kind" : "Dim", "enumerants" : [ { "enumerant" : "1D", "value" : 0, "capabilities" : [ "Sampled1D" ] }, { "enumerant" : "2D", "value" : 1 }, { "enumerant" : "3D", "value" : 2 }, { "enumerant" : "Cube", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rect", "value" : 4, "capabilities" : [ "SampledRect" ] }, { "enumerant" : "Buffer", "value" : 5, "capabilities" : [ "SampledBuffer" ] }, { "enumerant" : "SubpassData", "value" : 6, "capabilities" : [ "InputAttachment" ] } ] }, { "category" : "ValueEnum", "kind" : "SamplerAddressingMode", "enumerants" : [ { "enumerant" : "None", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ClampToEdge", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Clamp", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Repeat", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RepeatMirrored", "value" : 4, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "SamplerFilterMode", "enumerants" : [ { "enumerant" : "Nearest", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Linear", "value" : 1, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageFormat", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0 }, { "enumerant" : "Rgba32f", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16f", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32f", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8", "value" : 4, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8Snorm", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rg32f", "value" : 6, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16f", "value" : 7, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R11fG11fB10f", "value" : 8, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16f", "value" : 9, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba16", "value" : 10, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgb10A2", "value" : 11, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16", "value" : 12, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8", "value" : 13, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16", "value" : 14, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8", "value" : 15, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba16Snorm", "value" : 16, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16Snorm", "value" : 17, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8Snorm", "value" : 18, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16Snorm", "value" : 19, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8Snorm", "value" : 20, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba32i", "value" : 21, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16i", "value" : 22, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8i", "value" : 23, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32i", "value" : 24, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rg32i", "value" : 25, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16i", "value" : 26, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8i", "value" : 27, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16i", "value" : 28, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8i", "value" : 29, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba32ui", "value" : 30, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16ui", "value" : 31, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8ui", "value" : 32, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32ui", "value" : 33, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgb10a2ui", "value" : 34, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg32ui", "value" : 35, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16ui", "value" : 36, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8ui", "value" : 37, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16ui", "value" : 38, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8ui", "value" : 39, "capabilities" : [ "StorageImageExtendedFormats" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelOrder", "enumerants" : [ { "enumerant" : "R", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "A", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RG", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RA", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGB", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGBA", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "BGRA", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ARGB", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Intensity", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Luminance", "value" : 9, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Rx", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGx", "value" : 11, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGBx", "value" : 12, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Depth", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "DepthStencil", "value" : 14, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGB", "value" : 15, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGBx", "value" : 16, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGBA", "value" : 17, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sBGRA", "value" : 18, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ABGR", "value" : 19, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelDataType", "enumerants" : [ { "enumerant" : "SnormInt8", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SnormInt16", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt8", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt16", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormShort565", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormShort555", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt101010", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt8", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt16", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt32", "value" : 9, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt8", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt16", "value" : 11, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt32", "value" : 12, "capabilities" : [ "Kernel" ] }, { "enumerant" : "HalfFloat", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float", "value" : 14, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt24", "value" : 15, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt101010_2", "value" : 16, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "FPRoundingMode", "enumerants" : [ { "enumerant" : "RTE", "value" : 0, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTZ", "value" : 1, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTP", "value" : 2, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTN", "value" : 3, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] } ] }, { "category" : "ValueEnum", "kind" : "LinkageType", "enumerants" : [ { "enumerant" : "Export", "value" : 0, "capabilities" : [ "Linkage" ] }, { "enumerant" : "Import", "value" : 1, "capabilities" : [ "Linkage" ] } ] }, { "category" : "ValueEnum", "kind" : "AccessQualifier", "enumerants" : [ { "enumerant" : "ReadOnly", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WriteOnly", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ReadWrite", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "FunctionParameterAttribute", "enumerants" : [ { "enumerant" : "Zext", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Sext", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ByVal", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Sret", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoAlias", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoCapture", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoWrite", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoReadWrite", "value" : 7, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "Decoration", "enumerants" : [ { "enumerant" : "RelaxedPrecision", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "SpecId", "value" : 1, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" } ] }, { "enumerant" : "Block", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "BufferBlock", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "RowMajor", "value" : 4, "capabilities" : [ "Matrix" ] }, { "enumerant" : "ColMajor", "value" : 5, "capabilities" : [ "Matrix" ] }, { "enumerant" : "ArrayStride", "value" : 6, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Array Stride'" } ] }, { "enumerant" : "MatrixStride", "value" : 7, "capabilities" : [ "Matrix" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" } ] }, { "enumerant" : "GLSLShared", "value" : 8, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLSLPacked", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "CPacked", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "BuiltIn", "value" : 11, "parameters" : [ { "kind" : "BuiltIn" } ] }, { "enumerant" : "NoPerspective", "value" : 13, "capabilities" : [ "Shader" ] }, { "enumerant" : "Flat", "value" : 14, "capabilities" : [ "Shader" ] }, { "enumerant" : "Patch", "value" : 15, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Centroid", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "Sample", "value" : 17, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "Invariant", "value" : 18, "capabilities" : [ "Shader" ] }, { "enumerant" : "Restrict", "value" : 19 }, { "enumerant" : "Aliased", "value" : 20 }, { "enumerant" : "Volatile", "value" : 21 }, { "enumerant" : "Constant", "value" : 22, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Coherent", "value" : 23 }, { "enumerant" : "NonWritable", "value" : 24 }, { "enumerant" : "NonReadable", "value" : 25 }, { "enumerant" : "Uniform", "value" : 26, "capabilities" : [ "Shader" ] }, { "enumerant" : "SaturatedConversion", "value" : 28, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Stream", "value" : 29, "capabilities" : [ "GeometryStreams" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stream Number'" } ] }, { "enumerant" : "Location", "value" : 30, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Location'" } ] }, { "enumerant" : "Component", "value" : 31, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Component'" } ] }, { "enumerant" : "Index", "value" : 32, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Index'" } ] }, { "enumerant" : "Binding", "value" : 33, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Binding Point'" } ] }, { "enumerant" : "DescriptorSet", "value" : 34, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" } ] }, { "enumerant" : "Offset", "value" : 35, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" } ] }, { "enumerant" : "XfbBuffer", "value" : 36, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" } ] }, { "enumerant" : "XfbStride", "value" : 37, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" } ] }, { "enumerant" : "FuncParamAttr", "value" : 38, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" } ] }, { "enumerant" : "FPRoundingMode", "value" : 39, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ], "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } ] }, { "enumerant" : "FPFastMathMode", "value" : 40, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" } ] }, { "enumerant" : "LinkageAttributes", "value" : 41, "capabilities" : [ "Linkage" ], "parameters" : [ { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "LinkageType", "name" : "'Linkage Type'" } ] }, { "enumerant" : "NoContraction", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "InputAttachmentIndex", "value" : 43, "capabilities" : [ "InputAttachment" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" } ] }, { "enumerant" : "Alignment", "value" : 44, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Alignment'" } ] }, { "enumerant" : "ExplicitInterpAMD", "value" : 4999 }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, "capabilities" : [ "SampleMaskOverrideCoverageNV" ] }, { "enumerant" : "PassthroughNV", "value" : 5250, "capabilities" : [ "GeometryShaderPassthroughNV" ] }, { "enumerant" : "ViewportRelativeNV", "value" : 5252, "capabilities" : [ "ShaderViewportMaskNV" ] }, { "enumerant" : "SecondaryViewportRelativeNV", "value" : 5256, "capabilities" : [ "ShaderStereoViewNV" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Offset'" } ] }, { "enumerant" : "HlslCounterBufferGOOGLE", "value" : 5634, "parameters" : [ { "kind" : "IdRef", "name" : "'Counter Buffer'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] }, { "enumerant" : "HlslSemanticGOOGLE", "value" : 5635, "parameters" : [ { "kind" : "LiteralString", "name" : "'Semantic'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] } ] }, { "category" : "ValueEnum", "kind" : "BuiltIn", "enumerants" : [ { "enumerant" : "Position", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointSize", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "ClipDistance", "value" : 3, "capabilities" : [ "ClipDistance" ] }, { "enumerant" : "CullDistance", "value" : 4, "capabilities" : [ "CullDistance" ] }, { "enumerant" : "VertexId", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "InstanceId", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "PrimitiveId", "value" : 7, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "InvocationId", "value" : 8, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "Layer", "value" : 9, "capabilities" : [ "Geometry" ] }, { "enumerant" : "ViewportIndex", "value" : 10, "capabilities" : [ "MultiViewport" ] }, { "enumerant" : "TessLevelOuter", "value" : 11, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessLevelInner", "value" : 12, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessCoord", "value" : 13, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "PatchVertices", "value" : 14, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "FragCoord", "value" : 15, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointCoord", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "FrontFacing", "value" : 17, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampleId", "value" : 18, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "SamplePosition", "value" : 19, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "SampleMask", "value" : 20, "capabilities" : [ "Shader" ] }, { "enumerant" : "FragDepth", "value" : 22, "capabilities" : [ "Shader" ] }, { "enumerant" : "HelperInvocation", "value" : 23, "capabilities" : [ "Shader" ] }, { "enumerant" : "NumWorkgroups", "value" : 24 }, { "enumerant" : "WorkgroupSize", "value" : 25 }, { "enumerant" : "WorkgroupId", "value" : 26 }, { "enumerant" : "LocalInvocationId", "value" : 27 }, { "enumerant" : "GlobalInvocationId", "value" : 28 }, { "enumerant" : "LocalInvocationIndex", "value" : 29 }, { "enumerant" : "WorkDim", "value" : 30, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalSize", "value" : 31, "capabilities" : [ "Kernel" ] }, { "enumerant" : "EnqueuedWorkgroupSize", "value" : 32, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalOffset", "value" : 33, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalLinearId", "value" : 34, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupSize", "value" : 36, "capabilities" : [ "Kernel", "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupMaxSize", "value" : 37, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NumSubgroups", "value" : 38, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NumEnqueuedSubgroups", "value" : 39, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupId", "value" : 40, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupLocalInvocationId", "value" : 41, "capabilities" : [ "Kernel", "SubgroupBallotKHR" ] }, { "enumerant" : "VertexIndex", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "InstanceIndex", "value" : 43, "capabilities" : [ "Shader" ] }, { "enumerant" : "SubgroupEqMaskKHR", "value" : 4416, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupGeMaskKHR", "value" : 4417, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupGtMaskKHR", "value" : 4418, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupLeMaskKHR", "value" : 4419, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupLtMaskKHR", "value" : 4420, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "BaseVertex", "value" : 4424, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "BaseInstance", "value" : 4425, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "DrawIndex", "value" : 4426, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "DeviceIndex", "value" : 4438, "capabilities" : [ "DeviceGroup" ] }, { "enumerant" : "ViewIndex", "value" : 4440, "capabilities" : [ "MultiView" ] }, { "enumerant" : "BaryCoordNoPerspAMD", "value" : 4992 }, { "enumerant" : "BaryCoordNoPerspCentroidAMD", "value" : 4993 }, { "enumerant" : "BaryCoordNoPerspSampleAMD", "value" : 4994 }, { "enumerant" : "BaryCoordSmoothAMD", "value" : 4995 }, { "enumerant" : "BaryCoordSmoothCentroidAMD", "value" : 4996 }, { "enumerant" : "BaryCoordSmoothSampleAMD", "value" : 4997 }, { "enumerant" : "BaryCoordPullModelAMD", "value" : 4998 }, { "enumerant" : "FragStencilRefEXT", "value" : 5014, "capabilities" : [ "StencilExportEXT" ] }, { "enumerant" : "ViewportMaskNV", "value" : 5253, "capabilities" : [ "ShaderViewportMaskNV" ] }, { "enumerant" : "SecondaryPositionNV", "value" : 5257, "capabilities" : [ "ShaderStereoViewNV" ] }, { "enumerant" : "SecondaryViewportMaskNV", "value" : 5258, "capabilities" : [ "ShaderStereoViewNV" ] }, { "enumerant" : "PositionPerViewNV", "value" : 5261, "capabilities" : [ "PerViewAttributesNV" ] }, { "enumerant" : "ViewportMaskPerViewNV", "value" : 5262, "capabilities" : [ "PerViewAttributesNV" ] } ] }, { "category" : "ValueEnum", "kind" : "Scope", "enumerants" : [ { "enumerant" : "CrossDevice", "value" : 0 }, { "enumerant" : "Device", "value" : 1 }, { "enumerant" : "Workgroup", "value" : 2 }, { "enumerant" : "Subgroup", "value" : 3 }, { "enumerant" : "Invocation", "value" : 4 } ] }, { "category" : "ValueEnum", "kind" : "GroupOperation", "enumerants" : [ { "enumerant" : "Reduce", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "InclusiveScan", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ExclusiveScan", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "KernelEnqueueFlags", "enumerants" : [ { "enumerant" : "NoWait", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WaitKernel", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WaitWorkGroup", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "Capability", "enumerants" : [ { "enumerant" : "Matrix", "value" : 0 }, { "enumerant" : "Shader", "value" : 1, "capabilities" : [ "Matrix" ] }, { "enumerant" : "Geometry", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "Tessellation", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Addresses", "value" : 4 }, { "enumerant" : "Linkage", "value" : 5 }, { "enumerant" : "Kernel", "value" : 6 }, { "enumerant" : "Vector16", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float16Buffer", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float16", "value" : 9 }, { "enumerant" : "Float64", "value" : 10 }, { "enumerant" : "Int64", "value" : 11 }, { "enumerant" : "Int64Atomics", "value" : 12, "capabilities" : [ "Int64" ] }, { "enumerant" : "ImageBasic", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ImageReadWrite", "value" : 14, "capabilities" : [ "ImageBasic" ] }, { "enumerant" : "ImageMipmap", "value" : 15, "capabilities" : [ "ImageBasic" ] }, { "enumerant" : "Pipes", "value" : 17, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Groups", "value" : 18 }, { "enumerant" : "DeviceEnqueue", "value" : 19, "capabilities" : [ "Kernel" ] }, { "enumerant" : "LiteralSampler", "value" : 20, "capabilities" : [ "Kernel" ] }, { "enumerant" : "AtomicStorage", "value" : 21, "capabilities" : [ "Shader" ] }, { "enumerant" : "Int16", "value" : 22 }, { "enumerant" : "TessellationPointSize", "value" : 23, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "GeometryPointSize", "value" : 24, "capabilities" : [ "Geometry" ] }, { "enumerant" : "ImageGatherExtended", "value" : 25, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageMultisample", "value" : 27, "capabilities" : [ "Shader" ] }, { "enumerant" : "UniformBufferArrayDynamicIndexing", "value" : 28, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampledImageArrayDynamicIndexing", "value" : 29, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageBufferArrayDynamicIndexing", "value" : 30, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageArrayDynamicIndexing", "value" : 31, "capabilities" : [ "Shader" ] }, { "enumerant" : "ClipDistance", "value" : 32, "capabilities" : [ "Shader" ] }, { "enumerant" : "CullDistance", "value" : 33, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageCubeArray", "value" : 34, "capabilities" : [ "SampledCubeArray" ] }, { "enumerant" : "SampleRateShading", "value" : 35, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageRect", "value" : 36, "capabilities" : [ "SampledRect" ] }, { "enumerant" : "SampledRect", "value" : 37, "capabilities" : [ "Shader" ] }, { "enumerant" : "GenericPointer", "value" : 38, "capabilities" : [ "Addresses" ] }, { "enumerant" : "Int8", "value" : 39, "capabilities" : [ "Kernel" ] }, { "enumerant" : "InputAttachment", "value" : 40, "capabilities" : [ "Shader" ] }, { "enumerant" : "SparseResidency", "value" : 41, "capabilities" : [ "Shader" ] }, { "enumerant" : "MinLod", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "Sampled1D", "value" : 43 }, { "enumerant" : "Image1D", "value" : 44, "capabilities" : [ "Sampled1D" ] }, { "enumerant" : "SampledCubeArray", "value" : 45, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampledBuffer", "value" : 46 }, { "enumerant" : "ImageBuffer", "value" : 47, "capabilities" : [ "SampledBuffer" ] }, { "enumerant" : "ImageMSArray", "value" : 48, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageExtendedFormats", "value" : 49, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageQuery", "value" : 50, "capabilities" : [ "Shader" ] }, { "enumerant" : "DerivativeControl", "value" : 51, "capabilities" : [ "Shader" ] }, { "enumerant" : "InterpolationFunction", "value" : 52, "capabilities" : [ "Shader" ] }, { "enumerant" : "TransformFeedback", "value" : 53, "capabilities" : [ "Shader" ] }, { "enumerant" : "GeometryStreams", "value" : 54, "capabilities" : [ "Geometry" ] }, { "enumerant" : "StorageImageReadWithoutFormat", "value" : 55, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageWriteWithoutFormat", "value" : 56, "capabilities" : [ "Shader" ] }, { "enumerant" : "MultiViewport", "value" : 57, "capabilities" : [ "Geometry" ] }, { "enumerant" : "SubgroupBallotKHR", "value" : 4423, "extensions" : [ "SPV_KHR_shader_ballot" ] }, { "enumerant" : "DrawParameters", "value" : 4427, "extensions" : [ "SPV_KHR_shader_draw_parameters" ] }, { "enumerant" : "SubgroupVoteKHR", "value" : 4431, "extensions" : [ "SPV_KHR_subgroup_vote" ] }, { "enumerant" : "StorageBuffer16BitAccess", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageUniformBufferBlock16", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "UniformAndStorageBuffer16BitAccess", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageUniform16", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StoragePushConstant16", "value" : 4435, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageInputOutput16", "value" : 4436, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "DeviceGroup", "value" : 4437, "extensions" : [ "SPV_KHR_device_group" ] }, { "enumerant" : "MultiView", "value" : 4439, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_multiview" ] }, { "enumerant" : "VariablePointersStorageBuffer", "value" : 4441, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_variable_pointers" ] }, { "enumerant" : "VariablePointers", "value" : 4442, "capabilities" : [ "VariablePointersStorageBuffer" ], "extensions" : [ "SPV_KHR_variable_pointers" ] }, { "enumerant": "AtomicStorageOps", "value": 4445, "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ] }, { "enumerant" : "SampleMaskPostDepthCoverage", "value" : 4447, "extensions" : [ "SPV_KHR_post_depth_coverage" ] }, { "enumerant" : "ImageGatherBiasLodAMD", "value" : 5009, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ] }, { "enumerant" : "FragmentMaskAMD", "value" : 5010, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_fragment_mask" ] }, { "enumerant" : "StencilExportEXT", "value" : 5013, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_shader_stencil_export" ] }, { "enumerant" : "ImageReadWriteLodAMD", "value" : 5015, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ] }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, "capabilities" : [ "SampleRateShading" ], "extensions" : [ "SPV_NV_sample_mask_override_coverage" ] }, { "enumerant" : "GeometryShaderPassthroughNV", "value" : 5251, "capabilities" : [ "Geometry" ], "extensions" : [ "SPV_NV_geometry_shader_passthrough" ] }, { "enumerant" : "ShaderViewportIndexLayerEXT", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ] }, { "enumerant" : "ShaderViewportIndexLayerNV", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_NV_viewport_array2" ] }, { "enumerant" : "ShaderViewportMaskNV", "value" : 5255, "capabilities" : [ "ShaderViewportIndexLayerNV" ], "extensions" : [ "SPV_NV_viewport_array2" ] }, { "enumerant" : "ShaderStereoViewNV", "value" : 5259, "capabilities" : [ "ShaderViewportMaskNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ] }, { "enumerant" : "PerViewAttributesNV", "value" : 5260, "capabilities" : [ "MultiView" ], "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ] }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, "extensions" : [ "SPV_INTEL_subgroups" ] }, { "enumerant" : "SubgroupBufferBlockIOINTEL", "value" : 5569, "extensions" : [ "SPV_INTEL_subgroups" ] }, { "enumerant" : "SubgroupImageBlockIOINTEL", "value" : 5570, "extensions" : [ "SPV_INTEL_subgroups" ] } ] }, { "category" : "Id", "kind" : "IdResultType", "doc" : "Reference to an representing the result's type of the enclosing instruction" }, { "category" : "Id", "kind" : "IdResult", "doc" : "Definition of an representing the result of the enclosing instruction" }, { "category" : "Id", "kind" : "IdMemorySemantics", "doc" : "Reference to an representing a 32-bit integer that is a mask from the MemorySemantics operand kind" }, { "category" : "Id", "kind" : "IdScope", "doc" : "Reference to an representing a 32-bit integer that is a mask from the Scope operand kind" }, { "category" : "Id", "kind" : "IdRef", "doc" : "Reference to an " }, { "category" : "Literal", "kind" : "LiteralInteger", "doc" : "An integer consuming one or more words" }, { "category" : "Literal", "kind" : "LiteralString", "doc" : "A null-terminated stream of characters consuming an integral number of words" }, { "category" : "Literal", "kind" : "LiteralContextDependentNumber", "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction" }, { "category" : "Literal", "kind" : "LiteralExtInstInteger", "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)" }, { "category" : "Literal", "kind" : "LiteralSpecConstantOpInteger", "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)" }, { "category" : "Composite", "kind" : "PairLiteralIntegerIdRef", "bases" : [ "LiteralInteger", "IdRef" ] }, { "category" : "Composite", "kind" : "PairIdRefLiteralInteger", "bases" : [ "IdRef", "LiteralInteger" ] }, { "category" : "Composite", "kind" : "PairIdRefIdRef", "bases" : [ "IdRef", "IdRef" ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.cs000066400000000000000000000732441463234063200220320ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C# // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. namespace Spv { public static class Specification { public const uint MagicNumber = 0x07230203; public const uint Version = 0x00010000; public const uint Revision = 12; public const uint OpCodeMask = 0xffff; public const uint WordCountShift = 16; public enum SourceLanguage { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, } public enum ExecutionModel { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, } public enum AddressingModel { Logical = 0, Physical32 = 1, Physical64 = 2, } public enum MemoryModel { Simple = 0, GLSL450 = 1, OpenCL = 2, } public enum ExecutionMode { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, } public enum StorageClass { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, } public enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, } public enum SamplerAddressingMode { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, } public enum SamplerFilterMode { Nearest = 0, Linear = 1, } public enum ImageFormat { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, } public enum ImageChannelOrder { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, } public enum ImageChannelDataType { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, } public enum ImageOperandsShift { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, } public enum ImageOperandsMask { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, } public enum FPFastMathModeShift { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, } public enum FPFastMathModeMask { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, } public enum FPRoundingMode { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, } public enum LinkageType { Export = 0, Import = 1, } public enum AccessQualifier { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, } public enum FunctionParameterAttribute { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, } public enum Decoration { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, } public enum BuiltIn { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, } public enum SelectionControlShift { Flatten = 0, DontFlatten = 1, } public enum SelectionControlMask { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, } public enum LoopControlShift { Unroll = 0, DontUnroll = 1, } public enum LoopControlMask { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, } public enum FunctionControlShift { Inline = 0, DontInline = 1, Pure = 2, Const = 3, } public enum FunctionControlMask { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, } public enum MemorySemanticsShift { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, } public enum MemorySemanticsMask { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, } public enum MemoryAccessShift { Volatile = 0, Aligned = 1, Nontemporal = 2, } public enum MemoryAccessMask { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, } public enum Scope { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, } public enum GroupOperation { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, } public enum KernelEnqueueFlags { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, } public enum KernelProfilingInfoShift { CmdExecTime = 0, } public enum KernelProfilingInfoMask { MaskNone = 0, CmdExecTime = 0x00000001, } public enum Capability { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, } public enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, } } } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.h000066400000000000000000001012641463234063200216460ustar00rootroot00000000000000/* ** Copyright (c) 2014-2018 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ /* ** This header is automatically generated by the same tool that creates ** the Binary Section of the SPIR-V specification. */ /* ** Enumeration tokens for SPIR-V, in various styles: ** C, C++, C++11, JSON, Lua, Python ** ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] ** ** Some tokens act like mask values, which can be OR'd together, ** while others are mutually exclusive. The mask-like ones have ** "Mask" in their name, and a parallel enum that has the shift ** amount (1 << x) for each corresponding enumerant. */ #ifndef spirv_H #define spirv_H typedef unsigned int SpvId; #define SPV_VERSION 0x10000 #define SPV_REVISION 12 static const unsigned int SpvMagicNumber = 0x07230203; static const unsigned int SpvVersion = 0x00010000; static const unsigned int SpvRevision = 12; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; typedef enum SpvSourceLanguage_ { SpvSourceLanguageUnknown = 0, SpvSourceLanguageESSL = 1, SpvSourceLanguageGLSL = 2, SpvSourceLanguageOpenCL_C = 3, SpvSourceLanguageOpenCL_CPP = 4, SpvSourceLanguageHLSL = 5, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; typedef enum SpvExecutionModel_ { SpvExecutionModelVertex = 0, SpvExecutionModelTessellationControl = 1, SpvExecutionModelTessellationEvaluation = 2, SpvExecutionModelGeometry = 3, SpvExecutionModelFragment = 4, SpvExecutionModelGLCompute = 5, SpvExecutionModelKernel = 6, SpvExecutionModelMax = 0x7fffffff, } SpvExecutionModel; typedef enum SpvAddressingModel_ { SpvAddressingModelLogical = 0, SpvAddressingModelPhysical32 = 1, SpvAddressingModelPhysical64 = 2, SpvAddressingModelMax = 0x7fffffff, } SpvAddressingModel; typedef enum SpvMemoryModel_ { SpvMemoryModelSimple = 0, SpvMemoryModelGLSL450 = 1, SpvMemoryModelOpenCL = 2, SpvMemoryModelMax = 0x7fffffff, } SpvMemoryModel; typedef enum SpvExecutionMode_ { SpvExecutionModeInvocations = 0, SpvExecutionModeSpacingEqual = 1, SpvExecutionModeSpacingFractionalEven = 2, SpvExecutionModeSpacingFractionalOdd = 3, SpvExecutionModeVertexOrderCw = 4, SpvExecutionModeVertexOrderCcw = 5, SpvExecutionModePixelCenterInteger = 6, SpvExecutionModeOriginUpperLeft = 7, SpvExecutionModeOriginLowerLeft = 8, SpvExecutionModeEarlyFragmentTests = 9, SpvExecutionModePointMode = 10, SpvExecutionModeXfb = 11, SpvExecutionModeDepthReplacing = 12, SpvExecutionModeDepthGreater = 14, SpvExecutionModeDepthLess = 15, SpvExecutionModeDepthUnchanged = 16, SpvExecutionModeLocalSize = 17, SpvExecutionModeLocalSizeHint = 18, SpvExecutionModeInputPoints = 19, SpvExecutionModeInputLines = 20, SpvExecutionModeInputLinesAdjacency = 21, SpvExecutionModeTriangles = 22, SpvExecutionModeInputTrianglesAdjacency = 23, SpvExecutionModeQuads = 24, SpvExecutionModeIsolines = 25, SpvExecutionModeOutputVertices = 26, SpvExecutionModeOutputPoints = 27, SpvExecutionModeOutputLineStrip = 28, SpvExecutionModeOutputTriangleStrip = 29, SpvExecutionModeVecTypeHint = 30, SpvExecutionModeContractionOff = 31, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; typedef enum SpvStorageClass_ { SpvStorageClassUniformConstant = 0, SpvStorageClassInput = 1, SpvStorageClassUniform = 2, SpvStorageClassOutput = 3, SpvStorageClassWorkgroup = 4, SpvStorageClassCrossWorkgroup = 5, SpvStorageClassPrivate = 6, SpvStorageClassFunction = 7, SpvStorageClassGeneric = 8, SpvStorageClassPushConstant = 9, SpvStorageClassAtomicCounter = 10, SpvStorageClassImage = 11, SpvStorageClassStorageBuffer = 12, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; typedef enum SpvDim_ { SpvDim1D = 0, SpvDim2D = 1, SpvDim3D = 2, SpvDimCube = 3, SpvDimRect = 4, SpvDimBuffer = 5, SpvDimSubpassData = 6, SpvDimMax = 0x7fffffff, } SpvDim; typedef enum SpvSamplerAddressingMode_ { SpvSamplerAddressingModeNone = 0, SpvSamplerAddressingModeClampToEdge = 1, SpvSamplerAddressingModeClamp = 2, SpvSamplerAddressingModeRepeat = 3, SpvSamplerAddressingModeRepeatMirrored = 4, SpvSamplerAddressingModeMax = 0x7fffffff, } SpvSamplerAddressingMode; typedef enum SpvSamplerFilterMode_ { SpvSamplerFilterModeNearest = 0, SpvSamplerFilterModeLinear = 1, SpvSamplerFilterModeMax = 0x7fffffff, } SpvSamplerFilterMode; typedef enum SpvImageFormat_ { SpvImageFormatUnknown = 0, SpvImageFormatRgba32f = 1, SpvImageFormatRgba16f = 2, SpvImageFormatR32f = 3, SpvImageFormatRgba8 = 4, SpvImageFormatRgba8Snorm = 5, SpvImageFormatRg32f = 6, SpvImageFormatRg16f = 7, SpvImageFormatR11fG11fB10f = 8, SpvImageFormatR16f = 9, SpvImageFormatRgba16 = 10, SpvImageFormatRgb10A2 = 11, SpvImageFormatRg16 = 12, SpvImageFormatRg8 = 13, SpvImageFormatR16 = 14, SpvImageFormatR8 = 15, SpvImageFormatRgba16Snorm = 16, SpvImageFormatRg16Snorm = 17, SpvImageFormatRg8Snorm = 18, SpvImageFormatR16Snorm = 19, SpvImageFormatR8Snorm = 20, SpvImageFormatRgba32i = 21, SpvImageFormatRgba16i = 22, SpvImageFormatRgba8i = 23, SpvImageFormatR32i = 24, SpvImageFormatRg32i = 25, SpvImageFormatRg16i = 26, SpvImageFormatRg8i = 27, SpvImageFormatR16i = 28, SpvImageFormatR8i = 29, SpvImageFormatRgba32ui = 30, SpvImageFormatRgba16ui = 31, SpvImageFormatRgba8ui = 32, SpvImageFormatR32ui = 33, SpvImageFormatRgb10a2ui = 34, SpvImageFormatRg32ui = 35, SpvImageFormatRg16ui = 36, SpvImageFormatRg8ui = 37, SpvImageFormatR16ui = 38, SpvImageFormatR8ui = 39, SpvImageFormatMax = 0x7fffffff, } SpvImageFormat; typedef enum SpvImageChannelOrder_ { SpvImageChannelOrderR = 0, SpvImageChannelOrderA = 1, SpvImageChannelOrderRG = 2, SpvImageChannelOrderRA = 3, SpvImageChannelOrderRGB = 4, SpvImageChannelOrderRGBA = 5, SpvImageChannelOrderBGRA = 6, SpvImageChannelOrderARGB = 7, SpvImageChannelOrderIntensity = 8, SpvImageChannelOrderLuminance = 9, SpvImageChannelOrderRx = 10, SpvImageChannelOrderRGx = 11, SpvImageChannelOrderRGBx = 12, SpvImageChannelOrderDepth = 13, SpvImageChannelOrderDepthStencil = 14, SpvImageChannelOrdersRGB = 15, SpvImageChannelOrdersRGBx = 16, SpvImageChannelOrdersRGBA = 17, SpvImageChannelOrdersBGRA = 18, SpvImageChannelOrderABGR = 19, SpvImageChannelOrderMax = 0x7fffffff, } SpvImageChannelOrder; typedef enum SpvImageChannelDataType_ { SpvImageChannelDataTypeSnormInt8 = 0, SpvImageChannelDataTypeSnormInt16 = 1, SpvImageChannelDataTypeUnormInt8 = 2, SpvImageChannelDataTypeUnormInt16 = 3, SpvImageChannelDataTypeUnormShort565 = 4, SpvImageChannelDataTypeUnormShort555 = 5, SpvImageChannelDataTypeUnormInt101010 = 6, SpvImageChannelDataTypeSignedInt8 = 7, SpvImageChannelDataTypeSignedInt16 = 8, SpvImageChannelDataTypeSignedInt32 = 9, SpvImageChannelDataTypeUnsignedInt8 = 10, SpvImageChannelDataTypeUnsignedInt16 = 11, SpvImageChannelDataTypeUnsignedInt32 = 12, SpvImageChannelDataTypeHalfFloat = 13, SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt101010_2 = 16, SpvImageChannelDataTypeMax = 0x7fffffff, } SpvImageChannelDataType; typedef enum SpvImageOperandsShift_ { SpvImageOperandsBiasShift = 0, SpvImageOperandsLodShift = 1, SpvImageOperandsGradShift = 2, SpvImageOperandsConstOffsetShift = 3, SpvImageOperandsOffsetShift = 4, SpvImageOperandsConstOffsetsShift = 5, SpvImageOperandsSampleShift = 6, SpvImageOperandsMinLodShift = 7, SpvImageOperandsMax = 0x7fffffff, } SpvImageOperandsShift; typedef enum SpvImageOperandsMask_ { SpvImageOperandsMaskNone = 0, SpvImageOperandsBiasMask = 0x00000001, SpvImageOperandsLodMask = 0x00000002, SpvImageOperandsGradMask = 0x00000004, SpvImageOperandsConstOffsetMask = 0x00000008, SpvImageOperandsOffsetMask = 0x00000010, SpvImageOperandsConstOffsetsMask = 0x00000020, SpvImageOperandsSampleMask = 0x00000040, SpvImageOperandsMinLodMask = 0x00000080, } SpvImageOperandsMask; typedef enum SpvFPFastMathModeShift_ { SpvFPFastMathModeNotNaNShift = 0, SpvFPFastMathModeNotInfShift = 1, SpvFPFastMathModeNSZShift = 2, SpvFPFastMathModeAllowRecipShift = 3, SpvFPFastMathModeFastShift = 4, SpvFPFastMathModeMax = 0x7fffffff, } SpvFPFastMathModeShift; typedef enum SpvFPFastMathModeMask_ { SpvFPFastMathModeMaskNone = 0, SpvFPFastMathModeNotNaNMask = 0x00000001, SpvFPFastMathModeNotInfMask = 0x00000002, SpvFPFastMathModeNSZMask = 0x00000004, SpvFPFastMathModeAllowRecipMask = 0x00000008, SpvFPFastMathModeFastMask = 0x00000010, } SpvFPFastMathModeMask; typedef enum SpvFPRoundingMode_ { SpvFPRoundingModeRTE = 0, SpvFPRoundingModeRTZ = 1, SpvFPRoundingModeRTP = 2, SpvFPRoundingModeRTN = 3, SpvFPRoundingModeMax = 0x7fffffff, } SpvFPRoundingMode; typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; typedef enum SpvAccessQualifier_ { SpvAccessQualifierReadOnly = 0, SpvAccessQualifierWriteOnly = 1, SpvAccessQualifierReadWrite = 2, SpvAccessQualifierMax = 0x7fffffff, } SpvAccessQualifier; typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeZext = 0, SpvFunctionParameterAttributeSext = 1, SpvFunctionParameterAttributeByVal = 2, SpvFunctionParameterAttributeSret = 3, SpvFunctionParameterAttributeNoAlias = 4, SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; typedef enum SpvDecoration_ { SpvDecorationRelaxedPrecision = 0, SpvDecorationSpecId = 1, SpvDecorationBlock = 2, SpvDecorationBufferBlock = 3, SpvDecorationRowMajor = 4, SpvDecorationColMajor = 5, SpvDecorationArrayStride = 6, SpvDecorationMatrixStride = 7, SpvDecorationGLSLShared = 8, SpvDecorationGLSLPacked = 9, SpvDecorationCPacked = 10, SpvDecorationBuiltIn = 11, SpvDecorationNoPerspective = 13, SpvDecorationFlat = 14, SpvDecorationPatch = 15, SpvDecorationCentroid = 16, SpvDecorationSample = 17, SpvDecorationInvariant = 18, SpvDecorationRestrict = 19, SpvDecorationAliased = 20, SpvDecorationVolatile = 21, SpvDecorationConstant = 22, SpvDecorationCoherent = 23, SpvDecorationNonWritable = 24, SpvDecorationNonReadable = 25, SpvDecorationUniform = 26, SpvDecorationSaturatedConversion = 28, SpvDecorationStream = 29, SpvDecorationLocation = 30, SpvDecorationComponent = 31, SpvDecorationIndex = 32, SpvDecorationBinding = 33, SpvDecorationDescriptorSet = 34, SpvDecorationOffset = 35, SpvDecorationXfbBuffer = 36, SpvDecorationXfbStride = 37, SpvDecorationFuncParamAttr = 38, SpvDecorationFPRoundingMode = 39, SpvDecorationFPFastMathMode = 40, SpvDecorationLinkageAttributes = 41, SpvDecorationNoContraction = 42, SpvDecorationInputAttachmentIndex = 43, SpvDecorationAlignment = 44, SpvDecorationExplicitInterpAMD = 4999, SpvDecorationOverrideCoverageNV = 5248, SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, SpvDecorationSecondaryViewportRelativeNV = 5256, SpvDecorationHlslCounterBufferGOOGLE = 5634, SpvDecorationHlslSemanticGOOGLE = 5635, SpvDecorationMax = 0x7fffffff, } SpvDecoration; typedef enum SpvBuiltIn_ { SpvBuiltInPosition = 0, SpvBuiltInPointSize = 1, SpvBuiltInClipDistance = 3, SpvBuiltInCullDistance = 4, SpvBuiltInVertexId = 5, SpvBuiltInInstanceId = 6, SpvBuiltInPrimitiveId = 7, SpvBuiltInInvocationId = 8, SpvBuiltInLayer = 9, SpvBuiltInViewportIndex = 10, SpvBuiltInTessLevelOuter = 11, SpvBuiltInTessLevelInner = 12, SpvBuiltInTessCoord = 13, SpvBuiltInPatchVertices = 14, SpvBuiltInFragCoord = 15, SpvBuiltInPointCoord = 16, SpvBuiltInFrontFacing = 17, SpvBuiltInSampleId = 18, SpvBuiltInSamplePosition = 19, SpvBuiltInSampleMask = 20, SpvBuiltInFragDepth = 22, SpvBuiltInHelperInvocation = 23, SpvBuiltInNumWorkgroups = 24, SpvBuiltInWorkgroupSize = 25, SpvBuiltInWorkgroupId = 26, SpvBuiltInLocalInvocationId = 27, SpvBuiltInGlobalInvocationId = 28, SpvBuiltInLocalInvocationIndex = 29, SpvBuiltInWorkDim = 30, SpvBuiltInGlobalSize = 31, SpvBuiltInEnqueuedWorkgroupSize = 32, SpvBuiltInGlobalOffset = 33, SpvBuiltInGlobalLinearId = 34, SpvBuiltInSubgroupSize = 36, SpvBuiltInSubgroupMaxSize = 37, SpvBuiltInNumSubgroups = 38, SpvBuiltInNumEnqueuedSubgroups = 39, SpvBuiltInSubgroupId = 40, SpvBuiltInSubgroupLocalInvocationId = 41, SpvBuiltInVertexIndex = 42, SpvBuiltInInstanceIndex = 43, SpvBuiltInSubgroupEqMaskKHR = 4416, SpvBuiltInSubgroupGeMaskKHR = 4417, SpvBuiltInSubgroupGtMaskKHR = 4418, SpvBuiltInSubgroupLeMaskKHR = 4419, SpvBuiltInSubgroupLtMaskKHR = 4420, SpvBuiltInBaseVertex = 4424, SpvBuiltInBaseInstance = 4425, SpvBuiltInDrawIndex = 4426, SpvBuiltInDeviceIndex = 4438, SpvBuiltInViewIndex = 4440, SpvBuiltInBaryCoordNoPerspAMD = 4992, SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, SpvBuiltInBaryCoordSmoothAMD = 4995, SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInPositionPerViewNV = 5261, SpvBuiltInViewportMaskPerViewNV = 5262, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; typedef enum SpvSelectionControlShift_ { SpvSelectionControlFlattenShift = 0, SpvSelectionControlDontFlattenShift = 1, SpvSelectionControlMax = 0x7fffffff, } SpvSelectionControlShift; typedef enum SpvSelectionControlMask_ { SpvSelectionControlMaskNone = 0, SpvSelectionControlFlattenMask = 0x00000001, SpvSelectionControlDontFlattenMask = 0x00000002, } SpvSelectionControlMask; typedef enum SpvLoopControlShift_ { SpvLoopControlUnrollShift = 0, SpvLoopControlDontUnrollShift = 1, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; typedef enum SpvLoopControlMask_ { SpvLoopControlMaskNone = 0, SpvLoopControlUnrollMask = 0x00000001, SpvLoopControlDontUnrollMask = 0x00000002, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { SpvFunctionControlInlineShift = 0, SpvFunctionControlDontInlineShift = 1, SpvFunctionControlPureShift = 2, SpvFunctionControlConstShift = 3, SpvFunctionControlMax = 0x7fffffff, } SpvFunctionControlShift; typedef enum SpvFunctionControlMask_ { SpvFunctionControlMaskNone = 0, SpvFunctionControlInlineMask = 0x00000001, SpvFunctionControlDontInlineMask = 0x00000002, SpvFunctionControlPureMask = 0x00000004, SpvFunctionControlConstMask = 0x00000008, } SpvFunctionControlMask; typedef enum SpvMemorySemanticsShift_ { SpvMemorySemanticsAcquireShift = 1, SpvMemorySemanticsReleaseShift = 2, SpvMemorySemanticsAcquireReleaseShift = 3, SpvMemorySemanticsSequentiallyConsistentShift = 4, SpvMemorySemanticsUniformMemoryShift = 6, SpvMemorySemanticsSubgroupMemoryShift = 7, SpvMemorySemanticsWorkgroupMemoryShift = 8, SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, SpvMemorySemanticsAtomicCounterMemoryShift = 10, SpvMemorySemanticsImageMemoryShift = 11, SpvMemorySemanticsMax = 0x7fffffff, } SpvMemorySemanticsShift; typedef enum SpvMemorySemanticsMask_ { SpvMemorySemanticsMaskNone = 0, SpvMemorySemanticsAcquireMask = 0x00000002, SpvMemorySemanticsReleaseMask = 0x00000004, SpvMemorySemanticsAcquireReleaseMask = 0x00000008, SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, SpvMemorySemanticsUniformMemoryMask = 0x00000040, SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, SpvMemorySemanticsImageMemoryMask = 0x00000800, } SpvMemorySemanticsMask; typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessVolatileShift = 0, SpvMemoryAccessAlignedShift = 1, SpvMemoryAccessNontemporalShift = 2, SpvMemoryAccessMax = 0x7fffffff, } SpvMemoryAccessShift; typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMaskNone = 0, SpvMemoryAccessVolatileMask = 0x00000001, SpvMemoryAccessAlignedMask = 0x00000002, SpvMemoryAccessNontemporalMask = 0x00000004, } SpvMemoryAccessMask; typedef enum SpvScope_ { SpvScopeCrossDevice = 0, SpvScopeDevice = 1, SpvScopeWorkgroup = 2, SpvScopeSubgroup = 3, SpvScopeInvocation = 4, SpvScopeMax = 0x7fffffff, } SpvScope; typedef enum SpvGroupOperation_ { SpvGroupOperationReduce = 0, SpvGroupOperationInclusiveScan = 1, SpvGroupOperationExclusiveScan = 2, SpvGroupOperationMax = 0x7fffffff, } SpvGroupOperation; typedef enum SpvKernelEnqueueFlags_ { SpvKernelEnqueueFlagsNoWait = 0, SpvKernelEnqueueFlagsWaitKernel = 1, SpvKernelEnqueueFlagsWaitWorkGroup = 2, SpvKernelEnqueueFlagsMax = 0x7fffffff, } SpvKernelEnqueueFlags; typedef enum SpvKernelProfilingInfoShift_ { SpvKernelProfilingInfoCmdExecTimeShift = 0, SpvKernelProfilingInfoMax = 0x7fffffff, } SpvKernelProfilingInfoShift; typedef enum SpvKernelProfilingInfoMask_ { SpvKernelProfilingInfoMaskNone = 0, SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, } SpvKernelProfilingInfoMask; typedef enum SpvCapability_ { SpvCapabilityMatrix = 0, SpvCapabilityShader = 1, SpvCapabilityGeometry = 2, SpvCapabilityTessellation = 3, SpvCapabilityAddresses = 4, SpvCapabilityLinkage = 5, SpvCapabilityKernel = 6, SpvCapabilityVector16 = 7, SpvCapabilityFloat16Buffer = 8, SpvCapabilityFloat16 = 9, SpvCapabilityFloat64 = 10, SpvCapabilityInt64 = 11, SpvCapabilityInt64Atomics = 12, SpvCapabilityImageBasic = 13, SpvCapabilityImageReadWrite = 14, SpvCapabilityImageMipmap = 15, SpvCapabilityPipes = 17, SpvCapabilityGroups = 18, SpvCapabilityDeviceEnqueue = 19, SpvCapabilityLiteralSampler = 20, SpvCapabilityAtomicStorage = 21, SpvCapabilityInt16 = 22, SpvCapabilityTessellationPointSize = 23, SpvCapabilityGeometryPointSize = 24, SpvCapabilityImageGatherExtended = 25, SpvCapabilityStorageImageMultisample = 27, SpvCapabilityUniformBufferArrayDynamicIndexing = 28, SpvCapabilitySampledImageArrayDynamicIndexing = 29, SpvCapabilityStorageBufferArrayDynamicIndexing = 30, SpvCapabilityStorageImageArrayDynamicIndexing = 31, SpvCapabilityClipDistance = 32, SpvCapabilityCullDistance = 33, SpvCapabilityImageCubeArray = 34, SpvCapabilitySampleRateShading = 35, SpvCapabilityImageRect = 36, SpvCapabilitySampledRect = 37, SpvCapabilityGenericPointer = 38, SpvCapabilityInt8 = 39, SpvCapabilityInputAttachment = 40, SpvCapabilitySparseResidency = 41, SpvCapabilityMinLod = 42, SpvCapabilitySampled1D = 43, SpvCapabilityImage1D = 44, SpvCapabilitySampledCubeArray = 45, SpvCapabilitySampledBuffer = 46, SpvCapabilityImageBuffer = 47, SpvCapabilityImageMSArray = 48, SpvCapabilityStorageImageExtendedFormats = 49, SpvCapabilityImageQuery = 50, SpvCapabilityDerivativeControl = 51, SpvCapabilityInterpolationFunction = 52, SpvCapabilityTransformFeedback = 53, SpvCapabilityGeometryStreams = 54, SpvCapabilityStorageImageReadWithoutFormat = 55, SpvCapabilityStorageImageWriteWithoutFormat = 56, SpvCapabilityMultiViewport = 57, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, SpvCapabilitySubgroupVoteKHR = 4431, SpvCapabilityStorageBuffer16BitAccess = 4433, SpvCapabilityStorageUniformBufferBlock16 = 4433, SpvCapabilityStorageUniform16 = 4434, SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, SpvCapabilityStoragePushConstant16 = 4435, SpvCapabilityStorageInputOutput16 = 4436, SpvCapabilityDeviceGroup = 4437, SpvCapabilityMultiView = 4439, SpvCapabilityVariablePointersStorageBuffer = 4441, SpvCapabilityVariablePointers = 4442, SpvCapabilityAtomicStorageOps = 4445, SpvCapabilitySampleMaskPostDepthCoverage = 4447, SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityFragmentMaskAMD = 5010, SpvCapabilityStencilExportEXT = 5013, SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerNV = 5254, SpvCapabilityShaderViewportMaskNV = 5255, SpvCapabilityShaderStereoViewNV = 5259, SpvCapabilityPerViewAttributesNV = 5260, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilityMax = 0x7fffffff, } SpvCapability; typedef enum SpvOp_ { SpvOpNop = 0, SpvOpUndef = 1, SpvOpSourceContinued = 2, SpvOpSource = 3, SpvOpSourceExtension = 4, SpvOpName = 5, SpvOpMemberName = 6, SpvOpString = 7, SpvOpLine = 8, SpvOpExtension = 10, SpvOpExtInstImport = 11, SpvOpExtInst = 12, SpvOpMemoryModel = 14, SpvOpEntryPoint = 15, SpvOpExecutionMode = 16, SpvOpCapability = 17, SpvOpTypeVoid = 19, SpvOpTypeBool = 20, SpvOpTypeInt = 21, SpvOpTypeFloat = 22, SpvOpTypeVector = 23, SpvOpTypeMatrix = 24, SpvOpTypeImage = 25, SpvOpTypeSampler = 26, SpvOpTypeSampledImage = 27, SpvOpTypeArray = 28, SpvOpTypeRuntimeArray = 29, SpvOpTypeStruct = 30, SpvOpTypeOpaque = 31, SpvOpTypePointer = 32, SpvOpTypeFunction = 33, SpvOpTypeEvent = 34, SpvOpTypeDeviceEvent = 35, SpvOpTypeReserveId = 36, SpvOpTypeQueue = 37, SpvOpTypePipe = 38, SpvOpTypeForwardPointer = 39, SpvOpConstantTrue = 41, SpvOpConstantFalse = 42, SpvOpConstant = 43, SpvOpConstantComposite = 44, SpvOpConstantSampler = 45, SpvOpConstantNull = 46, SpvOpSpecConstantTrue = 48, SpvOpSpecConstantFalse = 49, SpvOpSpecConstant = 50, SpvOpSpecConstantComposite = 51, SpvOpSpecConstantOp = 52, SpvOpFunction = 54, SpvOpFunctionParameter = 55, SpvOpFunctionEnd = 56, SpvOpFunctionCall = 57, SpvOpVariable = 59, SpvOpImageTexelPointer = 60, SpvOpLoad = 61, SpvOpStore = 62, SpvOpCopyMemory = 63, SpvOpCopyMemorySized = 64, SpvOpAccessChain = 65, SpvOpInBoundsAccessChain = 66, SpvOpPtrAccessChain = 67, SpvOpArrayLength = 68, SpvOpGenericPtrMemSemantics = 69, SpvOpInBoundsPtrAccessChain = 70, SpvOpDecorate = 71, SpvOpMemberDecorate = 72, SpvOpDecorationGroup = 73, SpvOpGroupDecorate = 74, SpvOpGroupMemberDecorate = 75, SpvOpVectorExtractDynamic = 77, SpvOpVectorInsertDynamic = 78, SpvOpVectorShuffle = 79, SpvOpCompositeConstruct = 80, SpvOpCompositeExtract = 81, SpvOpCompositeInsert = 82, SpvOpCopyObject = 83, SpvOpTranspose = 84, SpvOpSampledImage = 86, SpvOpImageSampleImplicitLod = 87, SpvOpImageSampleExplicitLod = 88, SpvOpImageSampleDrefImplicitLod = 89, SpvOpImageSampleDrefExplicitLod = 90, SpvOpImageSampleProjImplicitLod = 91, SpvOpImageSampleProjExplicitLod = 92, SpvOpImageSampleProjDrefImplicitLod = 93, SpvOpImageSampleProjDrefExplicitLod = 94, SpvOpImageFetch = 95, SpvOpImageGather = 96, SpvOpImageDrefGather = 97, SpvOpImageRead = 98, SpvOpImageWrite = 99, SpvOpImage = 100, SpvOpImageQueryFormat = 101, SpvOpImageQueryOrder = 102, SpvOpImageQuerySizeLod = 103, SpvOpImageQuerySize = 104, SpvOpImageQueryLod = 105, SpvOpImageQueryLevels = 106, SpvOpImageQuerySamples = 107, SpvOpConvertFToU = 109, SpvOpConvertFToS = 110, SpvOpConvertSToF = 111, SpvOpConvertUToF = 112, SpvOpUConvert = 113, SpvOpSConvert = 114, SpvOpFConvert = 115, SpvOpQuantizeToF16 = 116, SpvOpConvertPtrToU = 117, SpvOpSatConvertSToU = 118, SpvOpSatConvertUToS = 119, SpvOpConvertUToPtr = 120, SpvOpPtrCastToGeneric = 121, SpvOpGenericCastToPtr = 122, SpvOpGenericCastToPtrExplicit = 123, SpvOpBitcast = 124, SpvOpSNegate = 126, SpvOpFNegate = 127, SpvOpIAdd = 128, SpvOpFAdd = 129, SpvOpISub = 130, SpvOpFSub = 131, SpvOpIMul = 132, SpvOpFMul = 133, SpvOpUDiv = 134, SpvOpSDiv = 135, SpvOpFDiv = 136, SpvOpUMod = 137, SpvOpSRem = 138, SpvOpSMod = 139, SpvOpFRem = 140, SpvOpFMod = 141, SpvOpVectorTimesScalar = 142, SpvOpMatrixTimesScalar = 143, SpvOpVectorTimesMatrix = 144, SpvOpMatrixTimesVector = 145, SpvOpMatrixTimesMatrix = 146, SpvOpOuterProduct = 147, SpvOpDot = 148, SpvOpIAddCarry = 149, SpvOpISubBorrow = 150, SpvOpUMulExtended = 151, SpvOpSMulExtended = 152, SpvOpAny = 154, SpvOpAll = 155, SpvOpIsNan = 156, SpvOpIsInf = 157, SpvOpIsFinite = 158, SpvOpIsNormal = 159, SpvOpSignBitSet = 160, SpvOpLessOrGreater = 161, SpvOpOrdered = 162, SpvOpUnordered = 163, SpvOpLogicalEqual = 164, SpvOpLogicalNotEqual = 165, SpvOpLogicalOr = 166, SpvOpLogicalAnd = 167, SpvOpLogicalNot = 168, SpvOpSelect = 169, SpvOpIEqual = 170, SpvOpINotEqual = 171, SpvOpUGreaterThan = 172, SpvOpSGreaterThan = 173, SpvOpUGreaterThanEqual = 174, SpvOpSGreaterThanEqual = 175, SpvOpULessThan = 176, SpvOpSLessThan = 177, SpvOpULessThanEqual = 178, SpvOpSLessThanEqual = 179, SpvOpFOrdEqual = 180, SpvOpFUnordEqual = 181, SpvOpFOrdNotEqual = 182, SpvOpFUnordNotEqual = 183, SpvOpFOrdLessThan = 184, SpvOpFUnordLessThan = 185, SpvOpFOrdGreaterThan = 186, SpvOpFUnordGreaterThan = 187, SpvOpFOrdLessThanEqual = 188, SpvOpFUnordLessThanEqual = 189, SpvOpFOrdGreaterThanEqual = 190, SpvOpFUnordGreaterThanEqual = 191, SpvOpShiftRightLogical = 194, SpvOpShiftRightArithmetic = 195, SpvOpShiftLeftLogical = 196, SpvOpBitwiseOr = 197, SpvOpBitwiseXor = 198, SpvOpBitwiseAnd = 199, SpvOpNot = 200, SpvOpBitFieldInsert = 201, SpvOpBitFieldSExtract = 202, SpvOpBitFieldUExtract = 203, SpvOpBitReverse = 204, SpvOpBitCount = 205, SpvOpDPdx = 207, SpvOpDPdy = 208, SpvOpFwidth = 209, SpvOpDPdxFine = 210, SpvOpDPdyFine = 211, SpvOpFwidthFine = 212, SpvOpDPdxCoarse = 213, SpvOpDPdyCoarse = 214, SpvOpFwidthCoarse = 215, SpvOpEmitVertex = 218, SpvOpEndPrimitive = 219, SpvOpEmitStreamVertex = 220, SpvOpEndStreamPrimitive = 221, SpvOpControlBarrier = 224, SpvOpMemoryBarrier = 225, SpvOpAtomicLoad = 227, SpvOpAtomicStore = 228, SpvOpAtomicExchange = 229, SpvOpAtomicCompareExchange = 230, SpvOpAtomicCompareExchangeWeak = 231, SpvOpAtomicIIncrement = 232, SpvOpAtomicIDecrement = 233, SpvOpAtomicIAdd = 234, SpvOpAtomicISub = 235, SpvOpAtomicSMin = 236, SpvOpAtomicUMin = 237, SpvOpAtomicSMax = 238, SpvOpAtomicUMax = 239, SpvOpAtomicAnd = 240, SpvOpAtomicOr = 241, SpvOpAtomicXor = 242, SpvOpPhi = 245, SpvOpLoopMerge = 246, SpvOpSelectionMerge = 247, SpvOpLabel = 248, SpvOpBranch = 249, SpvOpBranchConditional = 250, SpvOpSwitch = 251, SpvOpKill = 252, SpvOpReturn = 253, SpvOpReturnValue = 254, SpvOpUnreachable = 255, SpvOpLifetimeStart = 256, SpvOpLifetimeStop = 257, SpvOpGroupAsyncCopy = 259, SpvOpGroupWaitEvents = 260, SpvOpGroupAll = 261, SpvOpGroupAny = 262, SpvOpGroupBroadcast = 263, SpvOpGroupIAdd = 264, SpvOpGroupFAdd = 265, SpvOpGroupFMin = 266, SpvOpGroupUMin = 267, SpvOpGroupSMin = 268, SpvOpGroupFMax = 269, SpvOpGroupUMax = 270, SpvOpGroupSMax = 271, SpvOpReadPipe = 274, SpvOpWritePipe = 275, SpvOpReservedReadPipe = 276, SpvOpReservedWritePipe = 277, SpvOpReserveReadPipePackets = 278, SpvOpReserveWritePipePackets = 279, SpvOpCommitReadPipe = 280, SpvOpCommitWritePipe = 281, SpvOpIsValidReserveId = 282, SpvOpGetNumPipePackets = 283, SpvOpGetMaxPipePackets = 284, SpvOpGroupReserveReadPipePackets = 285, SpvOpGroupReserveWritePipePackets = 286, SpvOpGroupCommitReadPipe = 287, SpvOpGroupCommitWritePipe = 288, SpvOpEnqueueMarker = 291, SpvOpEnqueueKernel = 292, SpvOpGetKernelNDrangeSubGroupCount = 293, SpvOpGetKernelNDrangeMaxSubGroupSize = 294, SpvOpGetKernelWorkGroupSize = 295, SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, SpvOpRetainEvent = 297, SpvOpReleaseEvent = 298, SpvOpCreateUserEvent = 299, SpvOpIsValidEvent = 300, SpvOpSetUserEventStatus = 301, SpvOpCaptureEventProfilingInfo = 302, SpvOpGetDefaultQueue = 303, SpvOpBuildNDRange = 304, SpvOpImageSparseSampleImplicitLod = 305, SpvOpImageSparseSampleExplicitLod = 306, SpvOpImageSparseSampleDrefImplicitLod = 307, SpvOpImageSparseSampleDrefExplicitLod = 308, SpvOpImageSparseSampleProjImplicitLod = 309, SpvOpImageSparseSampleProjExplicitLod = 310, SpvOpImageSparseSampleProjDrefImplicitLod = 311, SpvOpImageSparseSampleProjDrefExplicitLod = 312, SpvOpImageSparseFetch = 313, SpvOpImageSparseGather = 314, SpvOpImageSparseDrefGather = 315, SpvOpImageSparseTexelsResident = 316, SpvOpNoLine = 317, SpvOpAtomicFlagTestAndSet = 318, SpvOpAtomicFlagClear = 319, SpvOpImageSparseRead = 320, SpvOpDecorateId = 332, SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupFirstInvocationKHR = 4422, SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, SpvOpGroupUMinNonUniformAMD = 5003, SpvOpGroupSMinNonUniformAMD = 5004, SpvOpGroupFMaxNonUniformAMD = 5005, SpvOpGroupUMaxNonUniformAMD = 5006, SpvOpGroupSMaxNonUniformAMD = 5007, SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentFetchAMD = 5012, SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleUpINTEL = 5573, SpvOpSubgroupShuffleXorINTEL = 5574, SpvOpSubgroupBlockReadINTEL = 5575, SpvOpSubgroupBlockWriteINTEL = 5576, SpvOpSubgroupImageBlockReadINTEL = 5577, SpvOpSubgroupImageBlockWriteINTEL = 5578, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateStringGOOGLE = 5633, SpvOpMax = 0x7fffffff, } SpvOp; #endif // #ifndef spirv_H spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.hpp000066400000000000000000000743721463234063200222170ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10000 #define SPV_REVISION 12 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010000; static const unsigned int Revision = 12; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum SourceLanguage { SourceLanguageUnknown = 0, SourceLanguageESSL = 1, SourceLanguageGLSL = 2, SourceLanguageOpenCL_C = 3, SourceLanguageOpenCL_CPP = 4, SourceLanguageHLSL = 5, SourceLanguageMax = 0x7fffffff, }; enum ExecutionModel { ExecutionModelVertex = 0, ExecutionModelTessellationControl = 1, ExecutionModelTessellationEvaluation = 2, ExecutionModelGeometry = 3, ExecutionModelFragment = 4, ExecutionModelGLCompute = 5, ExecutionModelKernel = 6, ExecutionModelMax = 0x7fffffff, }; enum AddressingModel { AddressingModelLogical = 0, AddressingModelPhysical32 = 1, AddressingModelPhysical64 = 2, AddressingModelMax = 0x7fffffff, }; enum MemoryModel { MemoryModelSimple = 0, MemoryModelGLSL450 = 1, MemoryModelOpenCL = 2, MemoryModelMax = 0x7fffffff, }; enum ExecutionMode { ExecutionModeInvocations = 0, ExecutionModeSpacingEqual = 1, ExecutionModeSpacingFractionalEven = 2, ExecutionModeSpacingFractionalOdd = 3, ExecutionModeVertexOrderCw = 4, ExecutionModeVertexOrderCcw = 5, ExecutionModePixelCenterInteger = 6, ExecutionModeOriginUpperLeft = 7, ExecutionModeOriginLowerLeft = 8, ExecutionModeEarlyFragmentTests = 9, ExecutionModePointMode = 10, ExecutionModeXfb = 11, ExecutionModeDepthReplacing = 12, ExecutionModeDepthGreater = 14, ExecutionModeDepthLess = 15, ExecutionModeDepthUnchanged = 16, ExecutionModeLocalSize = 17, ExecutionModeLocalSizeHint = 18, ExecutionModeInputPoints = 19, ExecutionModeInputLines = 20, ExecutionModeInputLinesAdjacency = 21, ExecutionModeTriangles = 22, ExecutionModeInputTrianglesAdjacency = 23, ExecutionModeQuads = 24, ExecutionModeIsolines = 25, ExecutionModeOutputVertices = 26, ExecutionModeOutputPoints = 27, ExecutionModeOutputLineStrip = 28, ExecutionModeOutputTriangleStrip = 29, ExecutionModeVecTypeHint = 30, ExecutionModeContractionOff = 31, ExecutionModePostDepthCoverage = 4446, ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeMax = 0x7fffffff, }; enum StorageClass { StorageClassUniformConstant = 0, StorageClassInput = 1, StorageClassUniform = 2, StorageClassOutput = 3, StorageClassWorkgroup = 4, StorageClassCrossWorkgroup = 5, StorageClassPrivate = 6, StorageClassFunction = 7, StorageClassGeneric = 8, StorageClassPushConstant = 9, StorageClassAtomicCounter = 10, StorageClassImage = 11, StorageClassStorageBuffer = 12, StorageClassMax = 0x7fffffff, }; enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, DimCube = 3, DimRect = 4, DimBuffer = 5, DimSubpassData = 6, DimMax = 0x7fffffff, }; enum SamplerAddressingMode { SamplerAddressingModeNone = 0, SamplerAddressingModeClampToEdge = 1, SamplerAddressingModeClamp = 2, SamplerAddressingModeRepeat = 3, SamplerAddressingModeRepeatMirrored = 4, SamplerAddressingModeMax = 0x7fffffff, }; enum SamplerFilterMode { SamplerFilterModeNearest = 0, SamplerFilterModeLinear = 1, SamplerFilterModeMax = 0x7fffffff, }; enum ImageFormat { ImageFormatUnknown = 0, ImageFormatRgba32f = 1, ImageFormatRgba16f = 2, ImageFormatR32f = 3, ImageFormatRgba8 = 4, ImageFormatRgba8Snorm = 5, ImageFormatRg32f = 6, ImageFormatRg16f = 7, ImageFormatR11fG11fB10f = 8, ImageFormatR16f = 9, ImageFormatRgba16 = 10, ImageFormatRgb10A2 = 11, ImageFormatRg16 = 12, ImageFormatRg8 = 13, ImageFormatR16 = 14, ImageFormatR8 = 15, ImageFormatRgba16Snorm = 16, ImageFormatRg16Snorm = 17, ImageFormatRg8Snorm = 18, ImageFormatR16Snorm = 19, ImageFormatR8Snorm = 20, ImageFormatRgba32i = 21, ImageFormatRgba16i = 22, ImageFormatRgba8i = 23, ImageFormatR32i = 24, ImageFormatRg32i = 25, ImageFormatRg16i = 26, ImageFormatRg8i = 27, ImageFormatR16i = 28, ImageFormatR8i = 29, ImageFormatRgba32ui = 30, ImageFormatRgba16ui = 31, ImageFormatRgba8ui = 32, ImageFormatR32ui = 33, ImageFormatRgb10a2ui = 34, ImageFormatRg32ui = 35, ImageFormatRg16ui = 36, ImageFormatRg8ui = 37, ImageFormatR16ui = 38, ImageFormatR8ui = 39, ImageFormatMax = 0x7fffffff, }; enum ImageChannelOrder { ImageChannelOrderR = 0, ImageChannelOrderA = 1, ImageChannelOrderRG = 2, ImageChannelOrderRA = 3, ImageChannelOrderRGB = 4, ImageChannelOrderRGBA = 5, ImageChannelOrderBGRA = 6, ImageChannelOrderARGB = 7, ImageChannelOrderIntensity = 8, ImageChannelOrderLuminance = 9, ImageChannelOrderRx = 10, ImageChannelOrderRGx = 11, ImageChannelOrderRGBx = 12, ImageChannelOrderDepth = 13, ImageChannelOrderDepthStencil = 14, ImageChannelOrdersRGB = 15, ImageChannelOrdersRGBx = 16, ImageChannelOrdersRGBA = 17, ImageChannelOrdersBGRA = 18, ImageChannelOrderABGR = 19, ImageChannelOrderMax = 0x7fffffff, }; enum ImageChannelDataType { ImageChannelDataTypeSnormInt8 = 0, ImageChannelDataTypeSnormInt16 = 1, ImageChannelDataTypeUnormInt8 = 2, ImageChannelDataTypeUnormInt16 = 3, ImageChannelDataTypeUnormShort565 = 4, ImageChannelDataTypeUnormShort555 = 5, ImageChannelDataTypeUnormInt101010 = 6, ImageChannelDataTypeSignedInt8 = 7, ImageChannelDataTypeSignedInt16 = 8, ImageChannelDataTypeSignedInt32 = 9, ImageChannelDataTypeUnsignedInt8 = 10, ImageChannelDataTypeUnsignedInt16 = 11, ImageChannelDataTypeUnsignedInt32 = 12, ImageChannelDataTypeHalfFloat = 13, ImageChannelDataTypeFloat = 14, ImageChannelDataTypeUnormInt24 = 15, ImageChannelDataTypeUnormInt101010_2 = 16, ImageChannelDataTypeMax = 0x7fffffff, }; enum ImageOperandsShift { ImageOperandsBiasShift = 0, ImageOperandsLodShift = 1, ImageOperandsGradShift = 2, ImageOperandsConstOffsetShift = 3, ImageOperandsOffsetShift = 4, ImageOperandsConstOffsetsShift = 5, ImageOperandsSampleShift = 6, ImageOperandsMinLodShift = 7, ImageOperandsMax = 0x7fffffff, }; enum ImageOperandsMask { ImageOperandsMaskNone = 0, ImageOperandsBiasMask = 0x00000001, ImageOperandsLodMask = 0x00000002, ImageOperandsGradMask = 0x00000004, ImageOperandsConstOffsetMask = 0x00000008, ImageOperandsOffsetMask = 0x00000010, ImageOperandsConstOffsetsMask = 0x00000020, ImageOperandsSampleMask = 0x00000040, ImageOperandsMinLodMask = 0x00000080, }; enum FPFastMathModeShift { FPFastMathModeNotNaNShift = 0, FPFastMathModeNotInfShift = 1, FPFastMathModeNSZShift = 2, FPFastMathModeAllowRecipShift = 3, FPFastMathModeFastShift = 4, FPFastMathModeMax = 0x7fffffff, }; enum FPFastMathModeMask { FPFastMathModeMaskNone = 0, FPFastMathModeNotNaNMask = 0x00000001, FPFastMathModeNotInfMask = 0x00000002, FPFastMathModeNSZMask = 0x00000004, FPFastMathModeAllowRecipMask = 0x00000008, FPFastMathModeFastMask = 0x00000010, }; enum FPRoundingMode { FPRoundingModeRTE = 0, FPRoundingModeRTZ = 1, FPRoundingModeRTP = 2, FPRoundingModeRTN = 3, FPRoundingModeMax = 0x7fffffff, }; enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, LinkageTypeMax = 0x7fffffff, }; enum AccessQualifier { AccessQualifierReadOnly = 0, AccessQualifierWriteOnly = 1, AccessQualifierReadWrite = 2, AccessQualifierMax = 0x7fffffff, }; enum FunctionParameterAttribute { FunctionParameterAttributeZext = 0, FunctionParameterAttributeSext = 1, FunctionParameterAttributeByVal = 2, FunctionParameterAttributeSret = 3, FunctionParameterAttributeNoAlias = 4, FunctionParameterAttributeNoCapture = 5, FunctionParameterAttributeNoWrite = 6, FunctionParameterAttributeNoReadWrite = 7, FunctionParameterAttributeMax = 0x7fffffff, }; enum Decoration { DecorationRelaxedPrecision = 0, DecorationSpecId = 1, DecorationBlock = 2, DecorationBufferBlock = 3, DecorationRowMajor = 4, DecorationColMajor = 5, DecorationArrayStride = 6, DecorationMatrixStride = 7, DecorationGLSLShared = 8, DecorationGLSLPacked = 9, DecorationCPacked = 10, DecorationBuiltIn = 11, DecorationNoPerspective = 13, DecorationFlat = 14, DecorationPatch = 15, DecorationCentroid = 16, DecorationSample = 17, DecorationInvariant = 18, DecorationRestrict = 19, DecorationAliased = 20, DecorationVolatile = 21, DecorationConstant = 22, DecorationCoherent = 23, DecorationNonWritable = 24, DecorationNonReadable = 25, DecorationUniform = 26, DecorationSaturatedConversion = 28, DecorationStream = 29, DecorationLocation = 30, DecorationComponent = 31, DecorationIndex = 32, DecorationBinding = 33, DecorationDescriptorSet = 34, DecorationOffset = 35, DecorationXfbBuffer = 36, DecorationXfbStride = 37, DecorationFuncParamAttr = 38, DecorationFPRoundingMode = 39, DecorationFPFastMathMode = 40, DecorationLinkageAttributes = 41, DecorationNoContraction = 42, DecorationInputAttachmentIndex = 43, DecorationAlignment = 44, DecorationExplicitInterpAMD = 4999, DecorationOverrideCoverageNV = 5248, DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, DecorationSecondaryViewportRelativeNV = 5256, DecorationHlslCounterBufferGOOGLE = 5634, DecorationHlslSemanticGOOGLE = 5635, DecorationMax = 0x7fffffff, }; enum BuiltIn { BuiltInPosition = 0, BuiltInPointSize = 1, BuiltInClipDistance = 3, BuiltInCullDistance = 4, BuiltInVertexId = 5, BuiltInInstanceId = 6, BuiltInPrimitiveId = 7, BuiltInInvocationId = 8, BuiltInLayer = 9, BuiltInViewportIndex = 10, BuiltInTessLevelOuter = 11, BuiltInTessLevelInner = 12, BuiltInTessCoord = 13, BuiltInPatchVertices = 14, BuiltInFragCoord = 15, BuiltInPointCoord = 16, BuiltInFrontFacing = 17, BuiltInSampleId = 18, BuiltInSamplePosition = 19, BuiltInSampleMask = 20, BuiltInFragDepth = 22, BuiltInHelperInvocation = 23, BuiltInNumWorkgroups = 24, BuiltInWorkgroupSize = 25, BuiltInWorkgroupId = 26, BuiltInLocalInvocationId = 27, BuiltInGlobalInvocationId = 28, BuiltInLocalInvocationIndex = 29, BuiltInWorkDim = 30, BuiltInGlobalSize = 31, BuiltInEnqueuedWorkgroupSize = 32, BuiltInGlobalOffset = 33, BuiltInGlobalLinearId = 34, BuiltInSubgroupSize = 36, BuiltInSubgroupMaxSize = 37, BuiltInNumSubgroups = 38, BuiltInNumEnqueuedSubgroups = 39, BuiltInSubgroupId = 40, BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, BuiltInSubgroupEqMaskKHR = 4416, BuiltInSubgroupGeMaskKHR = 4417, BuiltInSubgroupGtMaskKHR = 4418, BuiltInSubgroupLeMaskKHR = 4419, BuiltInSubgroupLtMaskKHR = 4420, BuiltInBaseVertex = 4424, BuiltInBaseInstance = 4425, BuiltInDrawIndex = 4426, BuiltInDeviceIndex = 4438, BuiltInViewIndex = 4440, BuiltInBaryCoordNoPerspAMD = 4992, BuiltInBaryCoordNoPerspCentroidAMD = 4993, BuiltInBaryCoordNoPerspSampleAMD = 4994, BuiltInBaryCoordSmoothAMD = 4995, BuiltInBaryCoordSmoothCentroidAMD = 4996, BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordPullModelAMD = 4998, BuiltInFragStencilRefEXT = 5014, BuiltInViewportMaskNV = 5253, BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryViewportMaskNV = 5258, BuiltInPositionPerViewNV = 5261, BuiltInViewportMaskPerViewNV = 5262, BuiltInMax = 0x7fffffff, }; enum SelectionControlShift { SelectionControlFlattenShift = 0, SelectionControlDontFlattenShift = 1, SelectionControlMax = 0x7fffffff, }; enum SelectionControlMask { SelectionControlMaskNone = 0, SelectionControlFlattenMask = 0x00000001, SelectionControlDontFlattenMask = 0x00000002, }; enum LoopControlShift { LoopControlUnrollShift = 0, LoopControlDontUnrollShift = 1, LoopControlMax = 0x7fffffff, }; enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, }; enum FunctionControlShift { FunctionControlInlineShift = 0, FunctionControlDontInlineShift = 1, FunctionControlPureShift = 2, FunctionControlConstShift = 3, FunctionControlMax = 0x7fffffff, }; enum FunctionControlMask { FunctionControlMaskNone = 0, FunctionControlInlineMask = 0x00000001, FunctionControlDontInlineMask = 0x00000002, FunctionControlPureMask = 0x00000004, FunctionControlConstMask = 0x00000008, }; enum MemorySemanticsShift { MemorySemanticsAcquireShift = 1, MemorySemanticsReleaseShift = 2, MemorySemanticsAcquireReleaseShift = 3, MemorySemanticsSequentiallyConsistentShift = 4, MemorySemanticsUniformMemoryShift = 6, MemorySemanticsSubgroupMemoryShift = 7, MemorySemanticsWorkgroupMemoryShift = 8, MemorySemanticsCrossWorkgroupMemoryShift = 9, MemorySemanticsAtomicCounterMemoryShift = 10, MemorySemanticsImageMemoryShift = 11, MemorySemanticsMax = 0x7fffffff, }; enum MemorySemanticsMask { MemorySemanticsMaskNone = 0, MemorySemanticsAcquireMask = 0x00000002, MemorySemanticsReleaseMask = 0x00000004, MemorySemanticsAcquireReleaseMask = 0x00000008, MemorySemanticsSequentiallyConsistentMask = 0x00000010, MemorySemanticsUniformMemoryMask = 0x00000040, MemorySemanticsSubgroupMemoryMask = 0x00000080, MemorySemanticsWorkgroupMemoryMask = 0x00000100, MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, MemorySemanticsAtomicCounterMemoryMask = 0x00000400, MemorySemanticsImageMemoryMask = 0x00000800, }; enum MemoryAccessShift { MemoryAccessVolatileShift = 0, MemoryAccessAlignedShift = 1, MemoryAccessNontemporalShift = 2, MemoryAccessMax = 0x7fffffff, }; enum MemoryAccessMask { MemoryAccessMaskNone = 0, MemoryAccessVolatileMask = 0x00000001, MemoryAccessAlignedMask = 0x00000002, MemoryAccessNontemporalMask = 0x00000004, }; enum Scope { ScopeCrossDevice = 0, ScopeDevice = 1, ScopeWorkgroup = 2, ScopeSubgroup = 3, ScopeInvocation = 4, ScopeMax = 0x7fffffff, }; enum GroupOperation { GroupOperationReduce = 0, GroupOperationInclusiveScan = 1, GroupOperationExclusiveScan = 2, GroupOperationMax = 0x7fffffff, }; enum KernelEnqueueFlags { KernelEnqueueFlagsNoWait = 0, KernelEnqueueFlagsWaitKernel = 1, KernelEnqueueFlagsWaitWorkGroup = 2, KernelEnqueueFlagsMax = 0x7fffffff, }; enum KernelProfilingInfoShift { KernelProfilingInfoCmdExecTimeShift = 0, KernelProfilingInfoMax = 0x7fffffff, }; enum KernelProfilingInfoMask { KernelProfilingInfoMaskNone = 0, KernelProfilingInfoCmdExecTimeMask = 0x00000001, }; enum Capability { CapabilityMatrix = 0, CapabilityShader = 1, CapabilityGeometry = 2, CapabilityTessellation = 3, CapabilityAddresses = 4, CapabilityLinkage = 5, CapabilityKernel = 6, CapabilityVector16 = 7, CapabilityFloat16Buffer = 8, CapabilityFloat16 = 9, CapabilityFloat64 = 10, CapabilityInt64 = 11, CapabilityInt64Atomics = 12, CapabilityImageBasic = 13, CapabilityImageReadWrite = 14, CapabilityImageMipmap = 15, CapabilityPipes = 17, CapabilityGroups = 18, CapabilityDeviceEnqueue = 19, CapabilityLiteralSampler = 20, CapabilityAtomicStorage = 21, CapabilityInt16 = 22, CapabilityTessellationPointSize = 23, CapabilityGeometryPointSize = 24, CapabilityImageGatherExtended = 25, CapabilityStorageImageMultisample = 27, CapabilityUniformBufferArrayDynamicIndexing = 28, CapabilitySampledImageArrayDynamicIndexing = 29, CapabilityStorageBufferArrayDynamicIndexing = 30, CapabilityStorageImageArrayDynamicIndexing = 31, CapabilityClipDistance = 32, CapabilityCullDistance = 33, CapabilityImageCubeArray = 34, CapabilitySampleRateShading = 35, CapabilityImageRect = 36, CapabilitySampledRect = 37, CapabilityGenericPointer = 38, CapabilityInt8 = 39, CapabilityInputAttachment = 40, CapabilitySparseResidency = 41, CapabilityMinLod = 42, CapabilitySampled1D = 43, CapabilityImage1D = 44, CapabilitySampledCubeArray = 45, CapabilitySampledBuffer = 46, CapabilityImageBuffer = 47, CapabilityImageMSArray = 48, CapabilityStorageImageExtendedFormats = 49, CapabilityImageQuery = 50, CapabilityDerivativeControl = 51, CapabilityInterpolationFunction = 52, CapabilityTransformFeedback = 53, CapabilityGeometryStreams = 54, CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, CapabilitySubgroupVoteKHR = 4431, CapabilityStorageBuffer16BitAccess = 4433, CapabilityStorageUniformBufferBlock16 = 4433, CapabilityStorageUniform16 = 4434, CapabilityUniformAndStorageBuffer16BitAccess = 4434, CapabilityStoragePushConstant16 = 4435, CapabilityStorageInputOutput16 = 4436, CapabilityDeviceGroup = 4437, CapabilityMultiView = 4439, CapabilityVariablePointersStorageBuffer = 4441, CapabilityVariablePointers = 4442, CapabilityAtomicStorageOps = 4445, CapabilitySampleMaskPostDepthCoverage = 4447, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, CapabilityStencilExportEXT = 5013, CapabilityImageReadWriteLodAMD = 5015, CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilityGeometryShaderPassthroughNV = 5251, CapabilityShaderViewportIndexLayerEXT = 5254, CapabilityShaderViewportIndexLayerNV = 5254, CapabilityShaderViewportMaskNV = 5255, CapabilityShaderStereoViewNV = 5259, CapabilityPerViewAttributesNV = 5260, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilityMax = 0x7fffffff, }; enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, OpMax = 0x7fffffff, }; // Overload operator| for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.hpp11000066400000000000000000000615341463234063200223550ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10000 #define SPV_REVISION 12 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010000; static const unsigned int Revision = 12; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum class SourceLanguage : unsigned { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, Max = 0x7fffffff, }; enum class ExecutionModel : unsigned { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, Max = 0x7fffffff, }; enum class AddressingModel : unsigned { Logical = 0, Physical32 = 1, Physical64 = 2, Max = 0x7fffffff, }; enum class MemoryModel : unsigned { Simple = 0, GLSL450 = 1, OpenCL = 2, Max = 0x7fffffff, }; enum class ExecutionMode : unsigned { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, Max = 0x7fffffff, }; enum class StorageClass : unsigned { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, Max = 0x7fffffff, }; enum class Dim : unsigned { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, Max = 0x7fffffff, }; enum class SamplerAddressingMode : unsigned { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, Max = 0x7fffffff, }; enum class SamplerFilterMode : unsigned { Nearest = 0, Linear = 1, Max = 0x7fffffff, }; enum class ImageFormat : unsigned { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, Max = 0x7fffffff, }; enum class ImageChannelOrder : unsigned { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, Max = 0x7fffffff, }; enum class ImageChannelDataType : unsigned { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, Max = 0x7fffffff, }; enum class ImageOperandsShift : unsigned { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, Max = 0x7fffffff, }; enum class ImageOperandsMask : unsigned { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, }; enum class FPFastMathModeShift : unsigned { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, Max = 0x7fffffff, }; enum class FPFastMathModeMask : unsigned { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, }; enum class FPRoundingMode : unsigned { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, Max = 0x7fffffff, }; enum class LinkageType : unsigned { Export = 0, Import = 1, Max = 0x7fffffff, }; enum class AccessQualifier : unsigned { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, Max = 0x7fffffff, }; enum class FunctionParameterAttribute : unsigned { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, Max = 0x7fffffff, }; enum class Decoration : unsigned { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, Max = 0x7fffffff, }; enum class BuiltIn : unsigned { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, Max = 0x7fffffff, }; enum class SelectionControlShift : unsigned { Flatten = 0, DontFlatten = 1, Max = 0x7fffffff, }; enum class SelectionControlMask : unsigned { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }; enum class LoopControlShift : unsigned { Unroll = 0, DontUnroll = 1, Max = 0x7fffffff, }; enum class LoopControlMask : unsigned { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, }; enum class FunctionControlShift : unsigned { Inline = 0, DontInline = 1, Pure = 2, Const = 3, Max = 0x7fffffff, }; enum class FunctionControlMask : unsigned { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, }; enum class MemorySemanticsShift : unsigned { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, Max = 0x7fffffff, }; enum class MemorySemanticsMask : unsigned { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, }; enum class MemoryAccessShift : unsigned { Volatile = 0, Aligned = 1, Nontemporal = 2, Max = 0x7fffffff, }; enum class MemoryAccessMask : unsigned { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, }; enum class Scope : unsigned { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, Max = 0x7fffffff, }; enum class GroupOperation : unsigned { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, Max = 0x7fffffff, }; enum class KernelEnqueueFlags : unsigned { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, Max = 0x7fffffff, }; enum class KernelProfilingInfoShift : unsigned { CmdExecTime = 0, Max = 0x7fffffff, }; enum class KernelProfilingInfoMask : unsigned { MaskNone = 0, CmdExecTime = 0x00000001, }; enum class Capability : unsigned { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, Max = 0x7fffffff, }; enum class Op : unsigned { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, Max = 0x7fffffff, }; // Overload operator| for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.json000066400000000000000000001143411463234063200223700ustar00rootroot00000000000000{ "spv": { "meta": { "Comment": [ [ "Copyright (c) 2014-2018 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], [ "This header is automatically generated by the same tool that creates", "the Binary Section of the SPIR-V specification." ], [ "Enumeration tokens for SPIR-V, in various styles:", " C, C++, C++11, JSON, Lua, Python", "", "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL", "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL", "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL", "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL", "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']", "", "Some tokens act like mask values, which can be OR'd together,", "while others are mutually exclusive. The mask-like ones have", "\"Mask\" in their name, and a parallel enum that has the shift", "amount (1 << x) for each corresponding enumerant." ] ], "MagicNumber": 119734787, "Version": 65536, "Revision": 12, "OpCodeMask": 65535, "WordCountShift": 16 }, "enum": [ { "Name": "SourceLanguage", "Type": "Value", "Values": { "Unknown": 0, "ESSL": 1, "GLSL": 2, "OpenCL_C": 3, "OpenCL_CPP": 4, "HLSL": 5 } }, { "Name": "ExecutionModel", "Type": "Value", "Values": { "Vertex": 0, "TessellationControl": 1, "TessellationEvaluation": 2, "Geometry": 3, "Fragment": 4, "GLCompute": 5, "Kernel": 6 } }, { "Name": "AddressingModel", "Type": "Value", "Values": { "Logical": 0, "Physical32": 1, "Physical64": 2 } }, { "Name": "MemoryModel", "Type": "Value", "Values": { "Simple": 0, "GLSL450": 1, "OpenCL": 2 } }, { "Name": "ExecutionMode", "Type": "Value", "Values": { "Invocations": 0, "SpacingEqual": 1, "SpacingFractionalEven": 2, "SpacingFractionalOdd": 3, "VertexOrderCw": 4, "VertexOrderCcw": 5, "PixelCenterInteger": 6, "OriginUpperLeft": 7, "OriginLowerLeft": 8, "EarlyFragmentTests": 9, "PointMode": 10, "Xfb": 11, "DepthReplacing": 12, "DepthGreater": 14, "DepthLess": 15, "DepthUnchanged": 16, "LocalSize": 17, "LocalSizeHint": 18, "InputPoints": 19, "InputLines": 20, "InputLinesAdjacency": 21, "Triangles": 22, "InputTrianglesAdjacency": 23, "Quads": 24, "Isolines": 25, "OutputVertices": 26, "OutputPoints": 27, "OutputLineStrip": 28, "OutputTriangleStrip": 29, "VecTypeHint": 30, "ContractionOff": 31, "PostDepthCoverage": 4446, "StencilRefReplacingEXT": 5027 } }, { "Name": "StorageClass", "Type": "Value", "Values": { "UniformConstant": 0, "Input": 1, "Uniform": 2, "Output": 3, "Workgroup": 4, "CrossWorkgroup": 5, "Private": 6, "Function": 7, "Generic": 8, "PushConstant": 9, "AtomicCounter": 10, "Image": 11, "StorageBuffer": 12 } }, { "Name": "Dim", "Type": "Value", "Values": { "Dim1D": 0, "Dim2D": 1, "Dim3D": 2, "Cube": 3, "Rect": 4, "Buffer": 5, "SubpassData": 6 } }, { "Name": "SamplerAddressingMode", "Type": "Value", "Values": { "None": 0, "ClampToEdge": 1, "Clamp": 2, "Repeat": 3, "RepeatMirrored": 4 } }, { "Name": "SamplerFilterMode", "Type": "Value", "Values": { "Nearest": 0, "Linear": 1 } }, { "Name": "ImageFormat", "Type": "Value", "Values": { "Unknown": 0, "Rgba32f": 1, "Rgba16f": 2, "R32f": 3, "Rgba8": 4, "Rgba8Snorm": 5, "Rg32f": 6, "Rg16f": 7, "R11fG11fB10f": 8, "R16f": 9, "Rgba16": 10, "Rgb10A2": 11, "Rg16": 12, "Rg8": 13, "R16": 14, "R8": 15, "Rgba16Snorm": 16, "Rg16Snorm": 17, "Rg8Snorm": 18, "R16Snorm": 19, "R8Snorm": 20, "Rgba32i": 21, "Rgba16i": 22, "Rgba8i": 23, "R32i": 24, "Rg32i": 25, "Rg16i": 26, "Rg8i": 27, "R16i": 28, "R8i": 29, "Rgba32ui": 30, "Rgba16ui": 31, "Rgba8ui": 32, "R32ui": 33, "Rgb10a2ui": 34, "Rg32ui": 35, "Rg16ui": 36, "Rg8ui": 37, "R16ui": 38, "R8ui": 39 } }, { "Name": "ImageChannelOrder", "Type": "Value", "Values": { "R": 0, "A": 1, "RG": 2, "RA": 3, "RGB": 4, "RGBA": 5, "BGRA": 6, "ARGB": 7, "Intensity": 8, "Luminance": 9, "Rx": 10, "RGx": 11, "RGBx": 12, "Depth": 13, "DepthStencil": 14, "sRGB": 15, "sRGBx": 16, "sRGBA": 17, "sBGRA": 18, "ABGR": 19 } }, { "Name": "ImageChannelDataType", "Type": "Value", "Values": { "SnormInt8": 0, "SnormInt16": 1, "UnormInt8": 2, "UnormInt16": 3, "UnormShort565": 4, "UnormShort555": 5, "UnormInt101010": 6, "SignedInt8": 7, "SignedInt16": 8, "SignedInt32": 9, "UnsignedInt8": 10, "UnsignedInt16": 11, "UnsignedInt32": 12, "HalfFloat": 13, "Float": 14, "UnormInt24": 15, "UnormInt101010_2": 16 } }, { "Name": "ImageOperands", "Type": "Bit", "Values": { "Bias": 0, "Lod": 1, "Grad": 2, "ConstOffset": 3, "Offset": 4, "ConstOffsets": 5, "Sample": 6, "MinLod": 7 } }, { "Name": "FPFastMathMode", "Type": "Bit", "Values": { "NotNaN": 0, "NotInf": 1, "NSZ": 2, "AllowRecip": 3, "Fast": 4 } }, { "Name": "FPRoundingMode", "Type": "Value", "Values": { "RTE": 0, "RTZ": 1, "RTP": 2, "RTN": 3 } }, { "Name": "LinkageType", "Type": "Value", "Values": { "Export": 0, "Import": 1 } }, { "Name": "AccessQualifier", "Type": "Value", "Values": { "ReadOnly": 0, "WriteOnly": 1, "ReadWrite": 2 } }, { "Name": "FunctionParameterAttribute", "Type": "Value", "Values": { "Zext": 0, "Sext": 1, "ByVal": 2, "Sret": 3, "NoAlias": 4, "NoCapture": 5, "NoWrite": 6, "NoReadWrite": 7 } }, { "Name": "Decoration", "Type": "Value", "Values": { "RelaxedPrecision": 0, "SpecId": 1, "Block": 2, "BufferBlock": 3, "RowMajor": 4, "ColMajor": 5, "ArrayStride": 6, "MatrixStride": 7, "GLSLShared": 8, "GLSLPacked": 9, "CPacked": 10, "BuiltIn": 11, "NoPerspective": 13, "Flat": 14, "Patch": 15, "Centroid": 16, "Sample": 17, "Invariant": 18, "Restrict": 19, "Aliased": 20, "Volatile": 21, "Constant": 22, "Coherent": 23, "NonWritable": 24, "NonReadable": 25, "Uniform": 26, "SaturatedConversion": 28, "Stream": 29, "Location": 30, "Component": 31, "Index": 32, "Binding": 33, "DescriptorSet": 34, "Offset": 35, "XfbBuffer": 36, "XfbStride": 37, "FuncParamAttr": 38, "FPRoundingMode": 39, "FPFastMathMode": 40, "LinkageAttributes": 41, "NoContraction": 42, "InputAttachmentIndex": 43, "Alignment": 44, "ExplicitInterpAMD": 4999, "OverrideCoverageNV": 5248, "PassthroughNV": 5250, "ViewportRelativeNV": 5252, "SecondaryViewportRelativeNV": 5256, "HlslCounterBufferGOOGLE": 5634, "HlslSemanticGOOGLE": 5635 } }, { "Name": "BuiltIn", "Type": "Value", "Values": { "Position": 0, "PointSize": 1, "ClipDistance": 3, "CullDistance": 4, "VertexId": 5, "InstanceId": 6, "PrimitiveId": 7, "InvocationId": 8, "Layer": 9, "ViewportIndex": 10, "TessLevelOuter": 11, "TessLevelInner": 12, "TessCoord": 13, "PatchVertices": 14, "FragCoord": 15, "PointCoord": 16, "FrontFacing": 17, "SampleId": 18, "SamplePosition": 19, "SampleMask": 20, "FragDepth": 22, "HelperInvocation": 23, "NumWorkgroups": 24, "WorkgroupSize": 25, "WorkgroupId": 26, "LocalInvocationId": 27, "GlobalInvocationId": 28, "LocalInvocationIndex": 29, "WorkDim": 30, "GlobalSize": 31, "EnqueuedWorkgroupSize": 32, "GlobalOffset": 33, "GlobalLinearId": 34, "SubgroupSize": 36, "SubgroupMaxSize": 37, "NumSubgroups": 38, "NumEnqueuedSubgroups": 39, "SubgroupId": 40, "SubgroupLocalInvocationId": 41, "VertexIndex": 42, "InstanceIndex": 43, "SubgroupEqMaskKHR": 4416, "SubgroupGeMaskKHR": 4417, "SubgroupGtMaskKHR": 4418, "SubgroupLeMaskKHR": 4419, "SubgroupLtMaskKHR": 4420, "BaseVertex": 4424, "BaseInstance": 4425, "DrawIndex": 4426, "DeviceIndex": 4438, "ViewIndex": 4440, "BaryCoordNoPerspAMD": 4992, "BaryCoordNoPerspCentroidAMD": 4993, "BaryCoordNoPerspSampleAMD": 4994, "BaryCoordSmoothAMD": 4995, "BaryCoordSmoothCentroidAMD": 4996, "BaryCoordSmoothSampleAMD": 4997, "BaryCoordPullModelAMD": 4998, "FragStencilRefEXT": 5014, "ViewportMaskNV": 5253, "SecondaryPositionNV": 5257, "SecondaryViewportMaskNV": 5258, "PositionPerViewNV": 5261, "ViewportMaskPerViewNV": 5262 } }, { "Name": "SelectionControl", "Type": "Bit", "Values": { "Flatten": 0, "DontFlatten": 1 } }, { "Name": "LoopControl", "Type": "Bit", "Values": { "Unroll": 0, "DontUnroll": 1 } }, { "Name": "FunctionControl", "Type": "Bit", "Values": { "Inline": 0, "DontInline": 1, "Pure": 2, "Const": 3 } }, { "Name": "MemorySemantics", "Type": "Bit", "Values": { "Acquire": 1, "Release": 2, "AcquireRelease": 3, "SequentiallyConsistent": 4, "UniformMemory": 6, "SubgroupMemory": 7, "WorkgroupMemory": 8, "CrossWorkgroupMemory": 9, "AtomicCounterMemory": 10, "ImageMemory": 11 } }, { "Name": "MemoryAccess", "Type": "Bit", "Values": { "Volatile": 0, "Aligned": 1, "Nontemporal": 2 } }, { "Name": "Scope", "Type": "Value", "Values": { "CrossDevice": 0, "Device": 1, "Workgroup": 2, "Subgroup": 3, "Invocation": 4 } }, { "Name": "GroupOperation", "Type": "Value", "Values": { "Reduce": 0, "InclusiveScan": 1, "ExclusiveScan": 2 } }, { "Name": "KernelEnqueueFlags", "Type": "Value", "Values": { "NoWait": 0, "WaitKernel": 1, "WaitWorkGroup": 2 } }, { "Name": "KernelProfilingInfo", "Type": "Bit", "Values": { "CmdExecTime": 0 } }, { "Name": "Capability", "Type": "Value", "Values": { "Matrix": 0, "Shader": 1, "Geometry": 2, "Tessellation": 3, "Addresses": 4, "Linkage": 5, "Kernel": 6, "Vector16": 7, "Float16Buffer": 8, "Float16": 9, "Float64": 10, "Int64": 11, "Int64Atomics": 12, "ImageBasic": 13, "ImageReadWrite": 14, "ImageMipmap": 15, "Pipes": 17, "Groups": 18, "DeviceEnqueue": 19, "LiteralSampler": 20, "AtomicStorage": 21, "Int16": 22, "TessellationPointSize": 23, "GeometryPointSize": 24, "ImageGatherExtended": 25, "StorageImageMultisample": 27, "UniformBufferArrayDynamicIndexing": 28, "SampledImageArrayDynamicIndexing": 29, "StorageBufferArrayDynamicIndexing": 30, "StorageImageArrayDynamicIndexing": 31, "ClipDistance": 32, "CullDistance": 33, "ImageCubeArray": 34, "SampleRateShading": 35, "ImageRect": 36, "SampledRect": 37, "GenericPointer": 38, "Int8": 39, "InputAttachment": 40, "SparseResidency": 41, "MinLod": 42, "Sampled1D": 43, "Image1D": 44, "SampledCubeArray": 45, "SampledBuffer": 46, "ImageBuffer": 47, "ImageMSArray": 48, "StorageImageExtendedFormats": 49, "ImageQuery": 50, "DerivativeControl": 51, "InterpolationFunction": 52, "TransformFeedback": 53, "GeometryStreams": 54, "StorageImageReadWithoutFormat": 55, "StorageImageWriteWithoutFormat": 56, "MultiViewport": 57, "SubgroupBallotKHR": 4423, "DrawParameters": 4427, "SubgroupVoteKHR": 4431, "StorageBuffer16BitAccess": 4433, "StorageUniformBufferBlock16": 4433, "StorageUniform16": 4434, "UniformAndStorageBuffer16BitAccess": 4434, "StoragePushConstant16": 4435, "StorageInputOutput16": 4436, "DeviceGroup": 4437, "MultiView": 4439, "VariablePointersStorageBuffer": 4441, "VariablePointers": 4442, "AtomicStorageOps": 4445, "SampleMaskPostDepthCoverage": 4447, "ImageGatherBiasLodAMD": 5009, "FragmentMaskAMD": 5010, "StencilExportEXT": 5013, "ImageReadWriteLodAMD": 5015, "SampleMaskOverrideCoverageNV": 5249, "GeometryShaderPassthroughNV": 5251, "ShaderViewportIndexLayerEXT": 5254, "ShaderViewportIndexLayerNV": 5254, "ShaderViewportMaskNV": 5255, "ShaderStereoViewNV": 5259, "PerViewAttributesNV": 5260, "SubgroupShuffleINTEL": 5568, "SubgroupBufferBlockIOINTEL": 5569, "SubgroupImageBlockIOINTEL": 5570 } }, { "Name": "Op", "Type": "Value", "Values": { "OpNop": 0, "OpUndef": 1, "OpSourceContinued": 2, "OpSource": 3, "OpSourceExtension": 4, "OpName": 5, "OpMemberName": 6, "OpString": 7, "OpLine": 8, "OpExtension": 10, "OpExtInstImport": 11, "OpExtInst": 12, "OpMemoryModel": 14, "OpEntryPoint": 15, "OpExecutionMode": 16, "OpCapability": 17, "OpTypeVoid": 19, "OpTypeBool": 20, "OpTypeInt": 21, "OpTypeFloat": 22, "OpTypeVector": 23, "OpTypeMatrix": 24, "OpTypeImage": 25, "OpTypeSampler": 26, "OpTypeSampledImage": 27, "OpTypeArray": 28, "OpTypeRuntimeArray": 29, "OpTypeStruct": 30, "OpTypeOpaque": 31, "OpTypePointer": 32, "OpTypeFunction": 33, "OpTypeEvent": 34, "OpTypeDeviceEvent": 35, "OpTypeReserveId": 36, "OpTypeQueue": 37, "OpTypePipe": 38, "OpTypeForwardPointer": 39, "OpConstantTrue": 41, "OpConstantFalse": 42, "OpConstant": 43, "OpConstantComposite": 44, "OpConstantSampler": 45, "OpConstantNull": 46, "OpSpecConstantTrue": 48, "OpSpecConstantFalse": 49, "OpSpecConstant": 50, "OpSpecConstantComposite": 51, "OpSpecConstantOp": 52, "OpFunction": 54, "OpFunctionParameter": 55, "OpFunctionEnd": 56, "OpFunctionCall": 57, "OpVariable": 59, "OpImageTexelPointer": 60, "OpLoad": 61, "OpStore": 62, "OpCopyMemory": 63, "OpCopyMemorySized": 64, "OpAccessChain": 65, "OpInBoundsAccessChain": 66, "OpPtrAccessChain": 67, "OpArrayLength": 68, "OpGenericPtrMemSemantics": 69, "OpInBoundsPtrAccessChain": 70, "OpDecorate": 71, "OpMemberDecorate": 72, "OpDecorationGroup": 73, "OpGroupDecorate": 74, "OpGroupMemberDecorate": 75, "OpVectorExtractDynamic": 77, "OpVectorInsertDynamic": 78, "OpVectorShuffle": 79, "OpCompositeConstruct": 80, "OpCompositeExtract": 81, "OpCompositeInsert": 82, "OpCopyObject": 83, "OpTranspose": 84, "OpSampledImage": 86, "OpImageSampleImplicitLod": 87, "OpImageSampleExplicitLod": 88, "OpImageSampleDrefImplicitLod": 89, "OpImageSampleDrefExplicitLod": 90, "OpImageSampleProjImplicitLod": 91, "OpImageSampleProjExplicitLod": 92, "OpImageSampleProjDrefImplicitLod": 93, "OpImageSampleProjDrefExplicitLod": 94, "OpImageFetch": 95, "OpImageGather": 96, "OpImageDrefGather": 97, "OpImageRead": 98, "OpImageWrite": 99, "OpImage": 100, "OpImageQueryFormat": 101, "OpImageQueryOrder": 102, "OpImageQuerySizeLod": 103, "OpImageQuerySize": 104, "OpImageQueryLod": 105, "OpImageQueryLevels": 106, "OpImageQuerySamples": 107, "OpConvertFToU": 109, "OpConvertFToS": 110, "OpConvertSToF": 111, "OpConvertUToF": 112, "OpUConvert": 113, "OpSConvert": 114, "OpFConvert": 115, "OpQuantizeToF16": 116, "OpConvertPtrToU": 117, "OpSatConvertSToU": 118, "OpSatConvertUToS": 119, "OpConvertUToPtr": 120, "OpPtrCastToGeneric": 121, "OpGenericCastToPtr": 122, "OpGenericCastToPtrExplicit": 123, "OpBitcast": 124, "OpSNegate": 126, "OpFNegate": 127, "OpIAdd": 128, "OpFAdd": 129, "OpISub": 130, "OpFSub": 131, "OpIMul": 132, "OpFMul": 133, "OpUDiv": 134, "OpSDiv": 135, "OpFDiv": 136, "OpUMod": 137, "OpSRem": 138, "OpSMod": 139, "OpFRem": 140, "OpFMod": 141, "OpVectorTimesScalar": 142, "OpMatrixTimesScalar": 143, "OpVectorTimesMatrix": 144, "OpMatrixTimesVector": 145, "OpMatrixTimesMatrix": 146, "OpOuterProduct": 147, "OpDot": 148, "OpIAddCarry": 149, "OpISubBorrow": 150, "OpUMulExtended": 151, "OpSMulExtended": 152, "OpAny": 154, "OpAll": 155, "OpIsNan": 156, "OpIsInf": 157, "OpIsFinite": 158, "OpIsNormal": 159, "OpSignBitSet": 160, "OpLessOrGreater": 161, "OpOrdered": 162, "OpUnordered": 163, "OpLogicalEqual": 164, "OpLogicalNotEqual": 165, "OpLogicalOr": 166, "OpLogicalAnd": 167, "OpLogicalNot": 168, "OpSelect": 169, "OpIEqual": 170, "OpINotEqual": 171, "OpUGreaterThan": 172, "OpSGreaterThan": 173, "OpUGreaterThanEqual": 174, "OpSGreaterThanEqual": 175, "OpULessThan": 176, "OpSLessThan": 177, "OpULessThanEqual": 178, "OpSLessThanEqual": 179, "OpFOrdEqual": 180, "OpFUnordEqual": 181, "OpFOrdNotEqual": 182, "OpFUnordNotEqual": 183, "OpFOrdLessThan": 184, "OpFUnordLessThan": 185, "OpFOrdGreaterThan": 186, "OpFUnordGreaterThan": 187, "OpFOrdLessThanEqual": 188, "OpFUnordLessThanEqual": 189, "OpFOrdGreaterThanEqual": 190, "OpFUnordGreaterThanEqual": 191, "OpShiftRightLogical": 194, "OpShiftRightArithmetic": 195, "OpShiftLeftLogical": 196, "OpBitwiseOr": 197, "OpBitwiseXor": 198, "OpBitwiseAnd": 199, "OpNot": 200, "OpBitFieldInsert": 201, "OpBitFieldSExtract": 202, "OpBitFieldUExtract": 203, "OpBitReverse": 204, "OpBitCount": 205, "OpDPdx": 207, "OpDPdy": 208, "OpFwidth": 209, "OpDPdxFine": 210, "OpDPdyFine": 211, "OpFwidthFine": 212, "OpDPdxCoarse": 213, "OpDPdyCoarse": 214, "OpFwidthCoarse": 215, "OpEmitVertex": 218, "OpEndPrimitive": 219, "OpEmitStreamVertex": 220, "OpEndStreamPrimitive": 221, "OpControlBarrier": 224, "OpMemoryBarrier": 225, "OpAtomicLoad": 227, "OpAtomicStore": 228, "OpAtomicExchange": 229, "OpAtomicCompareExchange": 230, "OpAtomicCompareExchangeWeak": 231, "OpAtomicIIncrement": 232, "OpAtomicIDecrement": 233, "OpAtomicIAdd": 234, "OpAtomicISub": 235, "OpAtomicSMin": 236, "OpAtomicUMin": 237, "OpAtomicSMax": 238, "OpAtomicUMax": 239, "OpAtomicAnd": 240, "OpAtomicOr": 241, "OpAtomicXor": 242, "OpPhi": 245, "OpLoopMerge": 246, "OpSelectionMerge": 247, "OpLabel": 248, "OpBranch": 249, "OpBranchConditional": 250, "OpSwitch": 251, "OpKill": 252, "OpReturn": 253, "OpReturnValue": 254, "OpUnreachable": 255, "OpLifetimeStart": 256, "OpLifetimeStop": 257, "OpGroupAsyncCopy": 259, "OpGroupWaitEvents": 260, "OpGroupAll": 261, "OpGroupAny": 262, "OpGroupBroadcast": 263, "OpGroupIAdd": 264, "OpGroupFAdd": 265, "OpGroupFMin": 266, "OpGroupUMin": 267, "OpGroupSMin": 268, "OpGroupFMax": 269, "OpGroupUMax": 270, "OpGroupSMax": 271, "OpReadPipe": 274, "OpWritePipe": 275, "OpReservedReadPipe": 276, "OpReservedWritePipe": 277, "OpReserveReadPipePackets": 278, "OpReserveWritePipePackets": 279, "OpCommitReadPipe": 280, "OpCommitWritePipe": 281, "OpIsValidReserveId": 282, "OpGetNumPipePackets": 283, "OpGetMaxPipePackets": 284, "OpGroupReserveReadPipePackets": 285, "OpGroupReserveWritePipePackets": 286, "OpGroupCommitReadPipe": 287, "OpGroupCommitWritePipe": 288, "OpEnqueueMarker": 291, "OpEnqueueKernel": 292, "OpGetKernelNDrangeSubGroupCount": 293, "OpGetKernelNDrangeMaxSubGroupSize": 294, "OpGetKernelWorkGroupSize": 295, "OpGetKernelPreferredWorkGroupSizeMultiple": 296, "OpRetainEvent": 297, "OpReleaseEvent": 298, "OpCreateUserEvent": 299, "OpIsValidEvent": 300, "OpSetUserEventStatus": 301, "OpCaptureEventProfilingInfo": 302, "OpGetDefaultQueue": 303, "OpBuildNDRange": 304, "OpImageSparseSampleImplicitLod": 305, "OpImageSparseSampleExplicitLod": 306, "OpImageSparseSampleDrefImplicitLod": 307, "OpImageSparseSampleDrefExplicitLod": 308, "OpImageSparseSampleProjImplicitLod": 309, "OpImageSparseSampleProjExplicitLod": 310, "OpImageSparseSampleProjDrefImplicitLod": 311, "OpImageSparseSampleProjDrefExplicitLod": 312, "OpImageSparseFetch": 313, "OpImageSparseGather": 314, "OpImageSparseDrefGather": 315, "OpImageSparseTexelsResident": 316, "OpNoLine": 317, "OpAtomicFlagTestAndSet": 318, "OpAtomicFlagClear": 319, "OpImageSparseRead": 320, "OpDecorateId": 332, "OpSubgroupBallotKHR": 4421, "OpSubgroupFirstInvocationKHR": 4422, "OpSubgroupAllKHR": 4428, "OpSubgroupAnyKHR": 4429, "OpSubgroupAllEqualKHR": 4430, "OpSubgroupReadInvocationKHR": 4432, "OpGroupIAddNonUniformAMD": 5000, "OpGroupFAddNonUniformAMD": 5001, "OpGroupFMinNonUniformAMD": 5002, "OpGroupUMinNonUniformAMD": 5003, "OpGroupSMinNonUniformAMD": 5004, "OpGroupFMaxNonUniformAMD": 5005, "OpGroupUMaxNonUniformAMD": 5006, "OpGroupSMaxNonUniformAMD": 5007, "OpFragmentMaskFetchAMD": 5011, "OpFragmentFetchAMD": 5012, "OpSubgroupShuffleINTEL": 5571, "OpSubgroupShuffleDownINTEL": 5572, "OpSubgroupShuffleUpINTEL": 5573, "OpSubgroupShuffleXorINTEL": 5574, "OpSubgroupBlockReadINTEL": 5575, "OpSubgroupBlockWriteINTEL": 5576, "OpSubgroupImageBlockReadINTEL": 5577, "OpSubgroupImageBlockWriteINTEL": 5578, "OpDecorateStringGOOGLE": 5632, "OpMemberDecorateStringGOOGLE": 5633 } } ] } } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.lua000066400000000000000000000625541463234063200222100ustar00rootroot00000000000000-- Copyright (c) 2014-2018 The Khronos Group Inc. -- -- Permission is hereby granted, free of charge, to any person obtaining a copy -- of this software and/or associated documentation files (the "Materials"), -- to deal in the Materials without restriction, including without limitation -- the rights to use, copy, modify, merge, publish, distribute, sublicense, -- and/or sell copies of the Materials, and to permit persons to whom the -- Materials are furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Materials. -- -- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -- -- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -- IN THE MATERIALS. -- This header is automatically generated by the same tool that creates -- the Binary Section of the SPIR-V specification. -- Enumeration tokens for SPIR-V, in various styles: -- C, C++, C++11, JSON, Lua, Python -- -- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -- -- Some tokens act like mask values, which can be OR'd together, -- while others are mutually exclusive. The mask-like ones have -- "Mask" in their name, and a parallel enum that has the shift -- amount (1 << x) for each corresponding enumerant. spv = { MagicNumber = 0x07230203, Version = 0x00010000, Revision = 12, OpCodeMask = 0xffff, WordCountShift = 16, SourceLanguage = { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, }, ExecutionModel = { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, }, AddressingModel = { Logical = 0, Physical32 = 1, Physical64 = 2, }, MemoryModel = { Simple = 0, GLSL450 = 1, OpenCL = 2, }, ExecutionMode = { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, }, StorageClass = { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, }, Dim = { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, }, SamplerAddressingMode = { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, }, SamplerFilterMode = { Nearest = 0, Linear = 1, }, ImageFormat = { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, }, ImageChannelOrder = { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, }, ImageChannelDataType = { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, }, ImageOperandsShift = { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, }, ImageOperandsMask = { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, }, FPFastMathModeShift = { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, }, FPFastMathModeMask = { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, }, FPRoundingMode = { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, }, LinkageType = { Export = 0, Import = 1, }, AccessQualifier = { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, }, FunctionParameterAttribute = { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, }, Decoration = { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, }, BuiltIn = { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, }, SelectionControlShift = { Flatten = 0, DontFlatten = 1, }, SelectionControlMask = { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }, LoopControlShift = { Unroll = 0, DontUnroll = 1, }, LoopControlMask = { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, }, FunctionControlShift = { Inline = 0, DontInline = 1, Pure = 2, Const = 3, }, FunctionControlMask = { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, }, MemorySemanticsShift = { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, }, MemorySemanticsMask = { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, }, MemoryAccessShift = { Volatile = 0, Aligned = 1, Nontemporal = 2, }, MemoryAccessMask = { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, }, Scope = { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, }, GroupOperation = { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, }, KernelEnqueueFlags = { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, }, KernelProfilingInfoShift = { CmdExecTime = 0, }, KernelProfilingInfoMask = { MaskNone = 0, CmdExecTime = 0x00000001, }, Capability = { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, }, Op = { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.0/spirv.py000066400000000000000000000656721463234063200220630ustar00rootroot00000000000000# Copyright (c) 2014-2018 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and/or associated documentation files (the "Materials"), # to deal in the Materials without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Materials, and to permit persons to whom the # Materials are furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS # STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND # HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS # IN THE MATERIALS. # This header is automatically generated by the same tool that creates # the Binary Section of the SPIR-V specification. # Enumeration tokens for SPIR-V, in various styles: # C, C++, C++11, JSON, Lua, Python # # - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL # - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL # - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL # - Lua will use tables, e.g.: spv.SourceLanguage.GLSL # - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] # # Some tokens act like mask values, which can be OR'd together, # while others are mutually exclusive. The mask-like ones have # "Mask" in their name, and a parallel enum that has the shift # amount (1 << x) for each corresponding enumerant. spv = { 'MagicNumber' : 0x07230203, 'Version' : 0x00010000, 'Revision' : 12, 'OpCodeMask' : 0xffff, 'WordCountShift' : 16, 'SourceLanguage' : { 'Unknown' : 0, 'ESSL' : 1, 'GLSL' : 2, 'OpenCL_C' : 3, 'OpenCL_CPP' : 4, 'HLSL' : 5, }, 'ExecutionModel' : { 'Vertex' : 0, 'TessellationControl' : 1, 'TessellationEvaluation' : 2, 'Geometry' : 3, 'Fragment' : 4, 'GLCompute' : 5, 'Kernel' : 6, }, 'AddressingModel' : { 'Logical' : 0, 'Physical32' : 1, 'Physical64' : 2, }, 'MemoryModel' : { 'Simple' : 0, 'GLSL450' : 1, 'OpenCL' : 2, }, 'ExecutionMode' : { 'Invocations' : 0, 'SpacingEqual' : 1, 'SpacingFractionalEven' : 2, 'SpacingFractionalOdd' : 3, 'VertexOrderCw' : 4, 'VertexOrderCcw' : 5, 'PixelCenterInteger' : 6, 'OriginUpperLeft' : 7, 'OriginLowerLeft' : 8, 'EarlyFragmentTests' : 9, 'PointMode' : 10, 'Xfb' : 11, 'DepthReplacing' : 12, 'DepthGreater' : 14, 'DepthLess' : 15, 'DepthUnchanged' : 16, 'LocalSize' : 17, 'LocalSizeHint' : 18, 'InputPoints' : 19, 'InputLines' : 20, 'InputLinesAdjacency' : 21, 'Triangles' : 22, 'InputTrianglesAdjacency' : 23, 'Quads' : 24, 'Isolines' : 25, 'OutputVertices' : 26, 'OutputPoints' : 27, 'OutputLineStrip' : 28, 'OutputTriangleStrip' : 29, 'VecTypeHint' : 30, 'ContractionOff' : 31, 'PostDepthCoverage' : 4446, 'StencilRefReplacingEXT' : 5027, }, 'StorageClass' : { 'UniformConstant' : 0, 'Input' : 1, 'Uniform' : 2, 'Output' : 3, 'Workgroup' : 4, 'CrossWorkgroup' : 5, 'Private' : 6, 'Function' : 7, 'Generic' : 8, 'PushConstant' : 9, 'AtomicCounter' : 10, 'Image' : 11, 'StorageBuffer' : 12, }, 'Dim' : { 'Dim1D' : 0, 'Dim2D' : 1, 'Dim3D' : 2, 'Cube' : 3, 'Rect' : 4, 'Buffer' : 5, 'SubpassData' : 6, }, 'SamplerAddressingMode' : { 'None' : 0, 'ClampToEdge' : 1, 'Clamp' : 2, 'Repeat' : 3, 'RepeatMirrored' : 4, }, 'SamplerFilterMode' : { 'Nearest' : 0, 'Linear' : 1, }, 'ImageFormat' : { 'Unknown' : 0, 'Rgba32f' : 1, 'Rgba16f' : 2, 'R32f' : 3, 'Rgba8' : 4, 'Rgba8Snorm' : 5, 'Rg32f' : 6, 'Rg16f' : 7, 'R11fG11fB10f' : 8, 'R16f' : 9, 'Rgba16' : 10, 'Rgb10A2' : 11, 'Rg16' : 12, 'Rg8' : 13, 'R16' : 14, 'R8' : 15, 'Rgba16Snorm' : 16, 'Rg16Snorm' : 17, 'Rg8Snorm' : 18, 'R16Snorm' : 19, 'R8Snorm' : 20, 'Rgba32i' : 21, 'Rgba16i' : 22, 'Rgba8i' : 23, 'R32i' : 24, 'Rg32i' : 25, 'Rg16i' : 26, 'Rg8i' : 27, 'R16i' : 28, 'R8i' : 29, 'Rgba32ui' : 30, 'Rgba16ui' : 31, 'Rgba8ui' : 32, 'R32ui' : 33, 'Rgb10a2ui' : 34, 'Rg32ui' : 35, 'Rg16ui' : 36, 'Rg8ui' : 37, 'R16ui' : 38, 'R8ui' : 39, }, 'ImageChannelOrder' : { 'R' : 0, 'A' : 1, 'RG' : 2, 'RA' : 3, 'RGB' : 4, 'RGBA' : 5, 'BGRA' : 6, 'ARGB' : 7, 'Intensity' : 8, 'Luminance' : 9, 'Rx' : 10, 'RGx' : 11, 'RGBx' : 12, 'Depth' : 13, 'DepthStencil' : 14, 'sRGB' : 15, 'sRGBx' : 16, 'sRGBA' : 17, 'sBGRA' : 18, 'ABGR' : 19, }, 'ImageChannelDataType' : { 'SnormInt8' : 0, 'SnormInt16' : 1, 'UnormInt8' : 2, 'UnormInt16' : 3, 'UnormShort565' : 4, 'UnormShort555' : 5, 'UnormInt101010' : 6, 'SignedInt8' : 7, 'SignedInt16' : 8, 'SignedInt32' : 9, 'UnsignedInt8' : 10, 'UnsignedInt16' : 11, 'UnsignedInt32' : 12, 'HalfFloat' : 13, 'Float' : 14, 'UnormInt24' : 15, 'UnormInt101010_2' : 16, }, 'ImageOperandsShift' : { 'Bias' : 0, 'Lod' : 1, 'Grad' : 2, 'ConstOffset' : 3, 'Offset' : 4, 'ConstOffsets' : 5, 'Sample' : 6, 'MinLod' : 7, }, 'ImageOperandsMask' : { 'MaskNone' : 0, 'Bias' : 0x00000001, 'Lod' : 0x00000002, 'Grad' : 0x00000004, 'ConstOffset' : 0x00000008, 'Offset' : 0x00000010, 'ConstOffsets' : 0x00000020, 'Sample' : 0x00000040, 'MinLod' : 0x00000080, }, 'FPFastMathModeShift' : { 'NotNaN' : 0, 'NotInf' : 1, 'NSZ' : 2, 'AllowRecip' : 3, 'Fast' : 4, }, 'FPFastMathModeMask' : { 'MaskNone' : 0, 'NotNaN' : 0x00000001, 'NotInf' : 0x00000002, 'NSZ' : 0x00000004, 'AllowRecip' : 0x00000008, 'Fast' : 0x00000010, }, 'FPRoundingMode' : { 'RTE' : 0, 'RTZ' : 1, 'RTP' : 2, 'RTN' : 3, }, 'LinkageType' : { 'Export' : 0, 'Import' : 1, }, 'AccessQualifier' : { 'ReadOnly' : 0, 'WriteOnly' : 1, 'ReadWrite' : 2, }, 'FunctionParameterAttribute' : { 'Zext' : 0, 'Sext' : 1, 'ByVal' : 2, 'Sret' : 3, 'NoAlias' : 4, 'NoCapture' : 5, 'NoWrite' : 6, 'NoReadWrite' : 7, }, 'Decoration' : { 'RelaxedPrecision' : 0, 'SpecId' : 1, 'Block' : 2, 'BufferBlock' : 3, 'RowMajor' : 4, 'ColMajor' : 5, 'ArrayStride' : 6, 'MatrixStride' : 7, 'GLSLShared' : 8, 'GLSLPacked' : 9, 'CPacked' : 10, 'BuiltIn' : 11, 'NoPerspective' : 13, 'Flat' : 14, 'Patch' : 15, 'Centroid' : 16, 'Sample' : 17, 'Invariant' : 18, 'Restrict' : 19, 'Aliased' : 20, 'Volatile' : 21, 'Constant' : 22, 'Coherent' : 23, 'NonWritable' : 24, 'NonReadable' : 25, 'Uniform' : 26, 'SaturatedConversion' : 28, 'Stream' : 29, 'Location' : 30, 'Component' : 31, 'Index' : 32, 'Binding' : 33, 'DescriptorSet' : 34, 'Offset' : 35, 'XfbBuffer' : 36, 'XfbStride' : 37, 'FuncParamAttr' : 38, 'FPRoundingMode' : 39, 'FPFastMathMode' : 40, 'LinkageAttributes' : 41, 'NoContraction' : 42, 'InputAttachmentIndex' : 43, 'Alignment' : 44, 'ExplicitInterpAMD' : 4999, 'OverrideCoverageNV' : 5248, 'PassthroughNV' : 5250, 'ViewportRelativeNV' : 5252, 'SecondaryViewportRelativeNV' : 5256, 'HlslCounterBufferGOOGLE' : 5634, 'HlslSemanticGOOGLE' : 5635, }, 'BuiltIn' : { 'Position' : 0, 'PointSize' : 1, 'ClipDistance' : 3, 'CullDistance' : 4, 'VertexId' : 5, 'InstanceId' : 6, 'PrimitiveId' : 7, 'InvocationId' : 8, 'Layer' : 9, 'ViewportIndex' : 10, 'TessLevelOuter' : 11, 'TessLevelInner' : 12, 'TessCoord' : 13, 'PatchVertices' : 14, 'FragCoord' : 15, 'PointCoord' : 16, 'FrontFacing' : 17, 'SampleId' : 18, 'SamplePosition' : 19, 'SampleMask' : 20, 'FragDepth' : 22, 'HelperInvocation' : 23, 'NumWorkgroups' : 24, 'WorkgroupSize' : 25, 'WorkgroupId' : 26, 'LocalInvocationId' : 27, 'GlobalInvocationId' : 28, 'LocalInvocationIndex' : 29, 'WorkDim' : 30, 'GlobalSize' : 31, 'EnqueuedWorkgroupSize' : 32, 'GlobalOffset' : 33, 'GlobalLinearId' : 34, 'SubgroupSize' : 36, 'SubgroupMaxSize' : 37, 'NumSubgroups' : 38, 'NumEnqueuedSubgroups' : 39, 'SubgroupId' : 40, 'SubgroupLocalInvocationId' : 41, 'VertexIndex' : 42, 'InstanceIndex' : 43, 'SubgroupEqMaskKHR' : 4416, 'SubgroupGeMaskKHR' : 4417, 'SubgroupGtMaskKHR' : 4418, 'SubgroupLeMaskKHR' : 4419, 'SubgroupLtMaskKHR' : 4420, 'BaseVertex' : 4424, 'BaseInstance' : 4425, 'DrawIndex' : 4426, 'DeviceIndex' : 4438, 'ViewIndex' : 4440, 'BaryCoordNoPerspAMD' : 4992, 'BaryCoordNoPerspCentroidAMD' : 4993, 'BaryCoordNoPerspSampleAMD' : 4994, 'BaryCoordSmoothAMD' : 4995, 'BaryCoordSmoothCentroidAMD' : 4996, 'BaryCoordSmoothSampleAMD' : 4997, 'BaryCoordPullModelAMD' : 4998, 'FragStencilRefEXT' : 5014, 'ViewportMaskNV' : 5253, 'SecondaryPositionNV' : 5257, 'SecondaryViewportMaskNV' : 5258, 'PositionPerViewNV' : 5261, 'ViewportMaskPerViewNV' : 5262, }, 'SelectionControlShift' : { 'Flatten' : 0, 'DontFlatten' : 1, }, 'SelectionControlMask' : { 'MaskNone' : 0, 'Flatten' : 0x00000001, 'DontFlatten' : 0x00000002, }, 'LoopControlShift' : { 'Unroll' : 0, 'DontUnroll' : 1, }, 'LoopControlMask' : { 'MaskNone' : 0, 'Unroll' : 0x00000001, 'DontUnroll' : 0x00000002, }, 'FunctionControlShift' : { 'Inline' : 0, 'DontInline' : 1, 'Pure' : 2, 'Const' : 3, }, 'FunctionControlMask' : { 'MaskNone' : 0, 'Inline' : 0x00000001, 'DontInline' : 0x00000002, 'Pure' : 0x00000004, 'Const' : 0x00000008, }, 'MemorySemanticsShift' : { 'Acquire' : 1, 'Release' : 2, 'AcquireRelease' : 3, 'SequentiallyConsistent' : 4, 'UniformMemory' : 6, 'SubgroupMemory' : 7, 'WorkgroupMemory' : 8, 'CrossWorkgroupMemory' : 9, 'AtomicCounterMemory' : 10, 'ImageMemory' : 11, }, 'MemorySemanticsMask' : { 'MaskNone' : 0, 'Acquire' : 0x00000002, 'Release' : 0x00000004, 'AcquireRelease' : 0x00000008, 'SequentiallyConsistent' : 0x00000010, 'UniformMemory' : 0x00000040, 'SubgroupMemory' : 0x00000080, 'WorkgroupMemory' : 0x00000100, 'CrossWorkgroupMemory' : 0x00000200, 'AtomicCounterMemory' : 0x00000400, 'ImageMemory' : 0x00000800, }, 'MemoryAccessShift' : { 'Volatile' : 0, 'Aligned' : 1, 'Nontemporal' : 2, }, 'MemoryAccessMask' : { 'MaskNone' : 0, 'Volatile' : 0x00000001, 'Aligned' : 0x00000002, 'Nontemporal' : 0x00000004, }, 'Scope' : { 'CrossDevice' : 0, 'Device' : 1, 'Workgroup' : 2, 'Subgroup' : 3, 'Invocation' : 4, }, 'GroupOperation' : { 'Reduce' : 0, 'InclusiveScan' : 1, 'ExclusiveScan' : 2, }, 'KernelEnqueueFlags' : { 'NoWait' : 0, 'WaitKernel' : 1, 'WaitWorkGroup' : 2, }, 'KernelProfilingInfoShift' : { 'CmdExecTime' : 0, }, 'KernelProfilingInfoMask' : { 'MaskNone' : 0, 'CmdExecTime' : 0x00000001, }, 'Capability' : { 'Matrix' : 0, 'Shader' : 1, 'Geometry' : 2, 'Tessellation' : 3, 'Addresses' : 4, 'Linkage' : 5, 'Kernel' : 6, 'Vector16' : 7, 'Float16Buffer' : 8, 'Float16' : 9, 'Float64' : 10, 'Int64' : 11, 'Int64Atomics' : 12, 'ImageBasic' : 13, 'ImageReadWrite' : 14, 'ImageMipmap' : 15, 'Pipes' : 17, 'Groups' : 18, 'DeviceEnqueue' : 19, 'LiteralSampler' : 20, 'AtomicStorage' : 21, 'Int16' : 22, 'TessellationPointSize' : 23, 'GeometryPointSize' : 24, 'ImageGatherExtended' : 25, 'StorageImageMultisample' : 27, 'UniformBufferArrayDynamicIndexing' : 28, 'SampledImageArrayDynamicIndexing' : 29, 'StorageBufferArrayDynamicIndexing' : 30, 'StorageImageArrayDynamicIndexing' : 31, 'ClipDistance' : 32, 'CullDistance' : 33, 'ImageCubeArray' : 34, 'SampleRateShading' : 35, 'ImageRect' : 36, 'SampledRect' : 37, 'GenericPointer' : 38, 'Int8' : 39, 'InputAttachment' : 40, 'SparseResidency' : 41, 'MinLod' : 42, 'Sampled1D' : 43, 'Image1D' : 44, 'SampledCubeArray' : 45, 'SampledBuffer' : 46, 'ImageBuffer' : 47, 'ImageMSArray' : 48, 'StorageImageExtendedFormats' : 49, 'ImageQuery' : 50, 'DerivativeControl' : 51, 'InterpolationFunction' : 52, 'TransformFeedback' : 53, 'GeometryStreams' : 54, 'StorageImageReadWithoutFormat' : 55, 'StorageImageWriteWithoutFormat' : 56, 'MultiViewport' : 57, 'SubgroupBallotKHR' : 4423, 'DrawParameters' : 4427, 'SubgroupVoteKHR' : 4431, 'StorageBuffer16BitAccess' : 4433, 'StorageUniformBufferBlock16' : 4433, 'StorageUniform16' : 4434, 'UniformAndStorageBuffer16BitAccess' : 4434, 'StoragePushConstant16' : 4435, 'StorageInputOutput16' : 4436, 'DeviceGroup' : 4437, 'MultiView' : 4439, 'VariablePointersStorageBuffer' : 4441, 'VariablePointers' : 4442, 'AtomicStorageOps' : 4445, 'SampleMaskPostDepthCoverage' : 4447, 'ImageGatherBiasLodAMD' : 5009, 'FragmentMaskAMD' : 5010, 'StencilExportEXT' : 5013, 'ImageReadWriteLodAMD' : 5015, 'SampleMaskOverrideCoverageNV' : 5249, 'GeometryShaderPassthroughNV' : 5251, 'ShaderViewportIndexLayerEXT' : 5254, 'ShaderViewportIndexLayerNV' : 5254, 'ShaderViewportMaskNV' : 5255, 'ShaderStereoViewNV' : 5259, 'PerViewAttributesNV' : 5260, 'SubgroupShuffleINTEL' : 5568, 'SubgroupBufferBlockIOINTEL' : 5569, 'SubgroupImageBlockIOINTEL' : 5570, }, 'Op' : { 'OpNop' : 0, 'OpUndef' : 1, 'OpSourceContinued' : 2, 'OpSource' : 3, 'OpSourceExtension' : 4, 'OpName' : 5, 'OpMemberName' : 6, 'OpString' : 7, 'OpLine' : 8, 'OpExtension' : 10, 'OpExtInstImport' : 11, 'OpExtInst' : 12, 'OpMemoryModel' : 14, 'OpEntryPoint' : 15, 'OpExecutionMode' : 16, 'OpCapability' : 17, 'OpTypeVoid' : 19, 'OpTypeBool' : 20, 'OpTypeInt' : 21, 'OpTypeFloat' : 22, 'OpTypeVector' : 23, 'OpTypeMatrix' : 24, 'OpTypeImage' : 25, 'OpTypeSampler' : 26, 'OpTypeSampledImage' : 27, 'OpTypeArray' : 28, 'OpTypeRuntimeArray' : 29, 'OpTypeStruct' : 30, 'OpTypeOpaque' : 31, 'OpTypePointer' : 32, 'OpTypeFunction' : 33, 'OpTypeEvent' : 34, 'OpTypeDeviceEvent' : 35, 'OpTypeReserveId' : 36, 'OpTypeQueue' : 37, 'OpTypePipe' : 38, 'OpTypeForwardPointer' : 39, 'OpConstantTrue' : 41, 'OpConstantFalse' : 42, 'OpConstant' : 43, 'OpConstantComposite' : 44, 'OpConstantSampler' : 45, 'OpConstantNull' : 46, 'OpSpecConstantTrue' : 48, 'OpSpecConstantFalse' : 49, 'OpSpecConstant' : 50, 'OpSpecConstantComposite' : 51, 'OpSpecConstantOp' : 52, 'OpFunction' : 54, 'OpFunctionParameter' : 55, 'OpFunctionEnd' : 56, 'OpFunctionCall' : 57, 'OpVariable' : 59, 'OpImageTexelPointer' : 60, 'OpLoad' : 61, 'OpStore' : 62, 'OpCopyMemory' : 63, 'OpCopyMemorySized' : 64, 'OpAccessChain' : 65, 'OpInBoundsAccessChain' : 66, 'OpPtrAccessChain' : 67, 'OpArrayLength' : 68, 'OpGenericPtrMemSemantics' : 69, 'OpInBoundsPtrAccessChain' : 70, 'OpDecorate' : 71, 'OpMemberDecorate' : 72, 'OpDecorationGroup' : 73, 'OpGroupDecorate' : 74, 'OpGroupMemberDecorate' : 75, 'OpVectorExtractDynamic' : 77, 'OpVectorInsertDynamic' : 78, 'OpVectorShuffle' : 79, 'OpCompositeConstruct' : 80, 'OpCompositeExtract' : 81, 'OpCompositeInsert' : 82, 'OpCopyObject' : 83, 'OpTranspose' : 84, 'OpSampledImage' : 86, 'OpImageSampleImplicitLod' : 87, 'OpImageSampleExplicitLod' : 88, 'OpImageSampleDrefImplicitLod' : 89, 'OpImageSampleDrefExplicitLod' : 90, 'OpImageSampleProjImplicitLod' : 91, 'OpImageSampleProjExplicitLod' : 92, 'OpImageSampleProjDrefImplicitLod' : 93, 'OpImageSampleProjDrefExplicitLod' : 94, 'OpImageFetch' : 95, 'OpImageGather' : 96, 'OpImageDrefGather' : 97, 'OpImageRead' : 98, 'OpImageWrite' : 99, 'OpImage' : 100, 'OpImageQueryFormat' : 101, 'OpImageQueryOrder' : 102, 'OpImageQuerySizeLod' : 103, 'OpImageQuerySize' : 104, 'OpImageQueryLod' : 105, 'OpImageQueryLevels' : 106, 'OpImageQuerySamples' : 107, 'OpConvertFToU' : 109, 'OpConvertFToS' : 110, 'OpConvertSToF' : 111, 'OpConvertUToF' : 112, 'OpUConvert' : 113, 'OpSConvert' : 114, 'OpFConvert' : 115, 'OpQuantizeToF16' : 116, 'OpConvertPtrToU' : 117, 'OpSatConvertSToU' : 118, 'OpSatConvertUToS' : 119, 'OpConvertUToPtr' : 120, 'OpPtrCastToGeneric' : 121, 'OpGenericCastToPtr' : 122, 'OpGenericCastToPtrExplicit' : 123, 'OpBitcast' : 124, 'OpSNegate' : 126, 'OpFNegate' : 127, 'OpIAdd' : 128, 'OpFAdd' : 129, 'OpISub' : 130, 'OpFSub' : 131, 'OpIMul' : 132, 'OpFMul' : 133, 'OpUDiv' : 134, 'OpSDiv' : 135, 'OpFDiv' : 136, 'OpUMod' : 137, 'OpSRem' : 138, 'OpSMod' : 139, 'OpFRem' : 140, 'OpFMod' : 141, 'OpVectorTimesScalar' : 142, 'OpMatrixTimesScalar' : 143, 'OpVectorTimesMatrix' : 144, 'OpMatrixTimesVector' : 145, 'OpMatrixTimesMatrix' : 146, 'OpOuterProduct' : 147, 'OpDot' : 148, 'OpIAddCarry' : 149, 'OpISubBorrow' : 150, 'OpUMulExtended' : 151, 'OpSMulExtended' : 152, 'OpAny' : 154, 'OpAll' : 155, 'OpIsNan' : 156, 'OpIsInf' : 157, 'OpIsFinite' : 158, 'OpIsNormal' : 159, 'OpSignBitSet' : 160, 'OpLessOrGreater' : 161, 'OpOrdered' : 162, 'OpUnordered' : 163, 'OpLogicalEqual' : 164, 'OpLogicalNotEqual' : 165, 'OpLogicalOr' : 166, 'OpLogicalAnd' : 167, 'OpLogicalNot' : 168, 'OpSelect' : 169, 'OpIEqual' : 170, 'OpINotEqual' : 171, 'OpUGreaterThan' : 172, 'OpSGreaterThan' : 173, 'OpUGreaterThanEqual' : 174, 'OpSGreaterThanEqual' : 175, 'OpULessThan' : 176, 'OpSLessThan' : 177, 'OpULessThanEqual' : 178, 'OpSLessThanEqual' : 179, 'OpFOrdEqual' : 180, 'OpFUnordEqual' : 181, 'OpFOrdNotEqual' : 182, 'OpFUnordNotEqual' : 183, 'OpFOrdLessThan' : 184, 'OpFUnordLessThan' : 185, 'OpFOrdGreaterThan' : 186, 'OpFUnordGreaterThan' : 187, 'OpFOrdLessThanEqual' : 188, 'OpFUnordLessThanEqual' : 189, 'OpFOrdGreaterThanEqual' : 190, 'OpFUnordGreaterThanEqual' : 191, 'OpShiftRightLogical' : 194, 'OpShiftRightArithmetic' : 195, 'OpShiftLeftLogical' : 196, 'OpBitwiseOr' : 197, 'OpBitwiseXor' : 198, 'OpBitwiseAnd' : 199, 'OpNot' : 200, 'OpBitFieldInsert' : 201, 'OpBitFieldSExtract' : 202, 'OpBitFieldUExtract' : 203, 'OpBitReverse' : 204, 'OpBitCount' : 205, 'OpDPdx' : 207, 'OpDPdy' : 208, 'OpFwidth' : 209, 'OpDPdxFine' : 210, 'OpDPdyFine' : 211, 'OpFwidthFine' : 212, 'OpDPdxCoarse' : 213, 'OpDPdyCoarse' : 214, 'OpFwidthCoarse' : 215, 'OpEmitVertex' : 218, 'OpEndPrimitive' : 219, 'OpEmitStreamVertex' : 220, 'OpEndStreamPrimitive' : 221, 'OpControlBarrier' : 224, 'OpMemoryBarrier' : 225, 'OpAtomicLoad' : 227, 'OpAtomicStore' : 228, 'OpAtomicExchange' : 229, 'OpAtomicCompareExchange' : 230, 'OpAtomicCompareExchangeWeak' : 231, 'OpAtomicIIncrement' : 232, 'OpAtomicIDecrement' : 233, 'OpAtomicIAdd' : 234, 'OpAtomicISub' : 235, 'OpAtomicSMin' : 236, 'OpAtomicUMin' : 237, 'OpAtomicSMax' : 238, 'OpAtomicUMax' : 239, 'OpAtomicAnd' : 240, 'OpAtomicOr' : 241, 'OpAtomicXor' : 242, 'OpPhi' : 245, 'OpLoopMerge' : 246, 'OpSelectionMerge' : 247, 'OpLabel' : 248, 'OpBranch' : 249, 'OpBranchConditional' : 250, 'OpSwitch' : 251, 'OpKill' : 252, 'OpReturn' : 253, 'OpReturnValue' : 254, 'OpUnreachable' : 255, 'OpLifetimeStart' : 256, 'OpLifetimeStop' : 257, 'OpGroupAsyncCopy' : 259, 'OpGroupWaitEvents' : 260, 'OpGroupAll' : 261, 'OpGroupAny' : 262, 'OpGroupBroadcast' : 263, 'OpGroupIAdd' : 264, 'OpGroupFAdd' : 265, 'OpGroupFMin' : 266, 'OpGroupUMin' : 267, 'OpGroupSMin' : 268, 'OpGroupFMax' : 269, 'OpGroupUMax' : 270, 'OpGroupSMax' : 271, 'OpReadPipe' : 274, 'OpWritePipe' : 275, 'OpReservedReadPipe' : 276, 'OpReservedWritePipe' : 277, 'OpReserveReadPipePackets' : 278, 'OpReserveWritePipePackets' : 279, 'OpCommitReadPipe' : 280, 'OpCommitWritePipe' : 281, 'OpIsValidReserveId' : 282, 'OpGetNumPipePackets' : 283, 'OpGetMaxPipePackets' : 284, 'OpGroupReserveReadPipePackets' : 285, 'OpGroupReserveWritePipePackets' : 286, 'OpGroupCommitReadPipe' : 287, 'OpGroupCommitWritePipe' : 288, 'OpEnqueueMarker' : 291, 'OpEnqueueKernel' : 292, 'OpGetKernelNDrangeSubGroupCount' : 293, 'OpGetKernelNDrangeMaxSubGroupSize' : 294, 'OpGetKernelWorkGroupSize' : 295, 'OpGetKernelPreferredWorkGroupSizeMultiple' : 296, 'OpRetainEvent' : 297, 'OpReleaseEvent' : 298, 'OpCreateUserEvent' : 299, 'OpIsValidEvent' : 300, 'OpSetUserEventStatus' : 301, 'OpCaptureEventProfilingInfo' : 302, 'OpGetDefaultQueue' : 303, 'OpBuildNDRange' : 304, 'OpImageSparseSampleImplicitLod' : 305, 'OpImageSparseSampleExplicitLod' : 306, 'OpImageSparseSampleDrefImplicitLod' : 307, 'OpImageSparseSampleDrefExplicitLod' : 308, 'OpImageSparseSampleProjImplicitLod' : 309, 'OpImageSparseSampleProjExplicitLod' : 310, 'OpImageSparseSampleProjDrefImplicitLod' : 311, 'OpImageSparseSampleProjDrefExplicitLod' : 312, 'OpImageSparseFetch' : 313, 'OpImageSparseGather' : 314, 'OpImageSparseDrefGather' : 315, 'OpImageSparseTexelsResident' : 316, 'OpNoLine' : 317, 'OpAtomicFlagTestAndSet' : 318, 'OpAtomicFlagClear' : 319, 'OpImageSparseRead' : 320, 'OpDecorateId' : 332, 'OpSubgroupBallotKHR' : 4421, 'OpSubgroupFirstInvocationKHR' : 4422, 'OpSubgroupAllKHR' : 4428, 'OpSubgroupAnyKHR' : 4429, 'OpSubgroupAllEqualKHR' : 4430, 'OpSubgroupReadInvocationKHR' : 4432, 'OpGroupIAddNonUniformAMD' : 5000, 'OpGroupFAddNonUniformAMD' : 5001, 'OpGroupFMinNonUniformAMD' : 5002, 'OpGroupUMinNonUniformAMD' : 5003, 'OpGroupSMinNonUniformAMD' : 5004, 'OpGroupFMaxNonUniformAMD' : 5005, 'OpGroupUMaxNonUniformAMD' : 5006, 'OpGroupSMaxNonUniformAMD' : 5007, 'OpFragmentMaskFetchAMD' : 5011, 'OpFragmentFetchAMD' : 5012, 'OpSubgroupShuffleINTEL' : 5571, 'OpSubgroupShuffleDownINTEL' : 5572, 'OpSubgroupShuffleUpINTEL' : 5573, 'OpSubgroupShuffleXorINTEL' : 5574, 'OpSubgroupBlockReadINTEL' : 5575, 'OpSubgroupBlockWriteINTEL' : 5576, 'OpSubgroupImageBlockReadINTEL' : 5577, 'OpSubgroupImageBlockWriteINTEL' : 5578, 'OpDecorateStringGOOGLE' : 5632, 'OpMemberDecorateStringGOOGLE' : 5633, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/000077500000000000000000000000001463234063200203275ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/GLSL.std.450.h000066400000000000000000000100371463234063200223420ustar00rootroot00000000000000/* ** Copyright (c) 2014-2016 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ #ifndef GLSLstd450_H #define GLSLstd450_H static const int GLSLstd450Version = 100; static const int GLSLstd450Revision = 3; enum GLSLstd450 { GLSLstd450Bad = 0, // Don't use GLSLstd450Round = 1, GLSLstd450RoundEven = 2, GLSLstd450Trunc = 3, GLSLstd450FAbs = 4, GLSLstd450SAbs = 5, GLSLstd450FSign = 6, GLSLstd450SSign = 7, GLSLstd450Floor = 8, GLSLstd450Ceil = 9, GLSLstd450Fract = 10, GLSLstd450Radians = 11, GLSLstd450Degrees = 12, GLSLstd450Sin = 13, GLSLstd450Cos = 14, GLSLstd450Tan = 15, GLSLstd450Asin = 16, GLSLstd450Acos = 17, GLSLstd450Atan = 18, GLSLstd450Sinh = 19, GLSLstd450Cosh = 20, GLSLstd450Tanh = 21, GLSLstd450Asinh = 22, GLSLstd450Acosh = 23, GLSLstd450Atanh = 24, GLSLstd450Atan2 = 25, GLSLstd450Pow = 26, GLSLstd450Exp = 27, GLSLstd450Log = 28, GLSLstd450Exp2 = 29, GLSLstd450Log2 = 30, GLSLstd450Sqrt = 31, GLSLstd450InverseSqrt = 32, GLSLstd450Determinant = 33, GLSLstd450MatrixInverse = 34, GLSLstd450Modf = 35, // second operand needs an OpVariable to write to GLSLstd450ModfStruct = 36, // no OpVariable operand GLSLstd450FMin = 37, GLSLstd450UMin = 38, GLSLstd450SMin = 39, GLSLstd450FMax = 40, GLSLstd450UMax = 41, GLSLstd450SMax = 42, GLSLstd450FClamp = 43, GLSLstd450UClamp = 44, GLSLstd450SClamp = 45, GLSLstd450FMix = 46, GLSLstd450IMix = 47, // Reserved GLSLstd450Step = 48, GLSLstd450SmoothStep = 49, GLSLstd450Fma = 50, GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to GLSLstd450FrexpStruct = 52, // no OpVariable operand GLSLstd450Ldexp = 53, GLSLstd450PackSnorm4x8 = 54, GLSLstd450PackUnorm4x8 = 55, GLSLstd450PackSnorm2x16 = 56, GLSLstd450PackUnorm2x16 = 57, GLSLstd450PackHalf2x16 = 58, GLSLstd450PackDouble2x32 = 59, GLSLstd450UnpackSnorm2x16 = 60, GLSLstd450UnpackUnorm2x16 = 61, GLSLstd450UnpackHalf2x16 = 62, GLSLstd450UnpackSnorm4x8 = 63, GLSLstd450UnpackUnorm4x8 = 64, GLSLstd450UnpackDouble2x32 = 65, GLSLstd450Length = 66, GLSLstd450Distance = 67, GLSLstd450Cross = 68, GLSLstd450Normalize = 69, GLSLstd450FaceForward = 70, GLSLstd450Reflect = 71, GLSLstd450Refract = 72, GLSLstd450FindILsb = 73, GLSLstd450FindSMsb = 74, GLSLstd450FindUMsb = 75, GLSLstd450InterpolateAtCentroid = 76, GLSLstd450InterpolateAtSample = 77, GLSLstd450InterpolateAtOffset = 78, GLSLstd450NMin = 79, GLSLstd450NMax = 80, GLSLstd450NClamp = 81, GLSLstd450Count }; #endif // #ifndef GLSLstd450_H spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/OpenCL.std.h000066400000000000000000000112641463234063200224150ustar00rootroot00000000000000/* ** Copyright (c) 2015-2017 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ namespace OpenCLLIB { enum Entrypoints { // Section 2.1: Math extended instructions Acos = 0, Acosh = 1, Acospi = 2, Asin = 3, Asinh = 4, Asinpi = 5, Atan = 6, Atan2 = 7, Atanh = 8, Atanpi = 9, Atan2pi = 10, Cbrt = 11, Ceil = 12, Copysign = 13, Cos = 14, Cosh = 15, Cospi = 16, Erfc = 17, Erf = 18, Exp = 19, Exp2 = 20, Exp10 = 21, Expm1 = 22, Fabs = 23, Fdim = 24, Floor = 25, Fma = 26, Fmax = 27, Fmin = 28, Fmod = 29, Fract = 30, Frexp = 31, Hypot = 32, Ilogb = 33, Ldexp = 34, Lgamma = 35, Lgamma_r = 36, Log = 37, Log2 = 38, Log10 = 39, Log1p = 40, Logb = 41, Mad = 42, Maxmag = 43, Minmag = 44, Modf = 45, Nan = 46, Nextafter = 47, Pow = 48, Pown = 49, Powr = 50, Remainder = 51, Remquo = 52, Rint = 53, Rootn = 54, Round = 55, Rsqrt = 56, Sin = 57, Sincos = 58, Sinh = 59, Sinpi = 60, Sqrt = 61, Tan = 62, Tanh = 63, Tanpi = 64, Tgamma = 65, Trunc = 66, Half_cos = 67, Half_divide = 68, Half_exp = 69, Half_exp2 = 70, Half_exp10 = 71, Half_log = 72, Half_log2 = 73, Half_log10 = 74, Half_powr = 75, Half_recip = 76, Half_rsqrt = 77, Half_sin = 78, Half_sqrt = 79, Half_tan = 80, Native_cos = 81, Native_divide = 82, Native_exp = 83, Native_exp2 = 84, Native_exp10 = 85, Native_log = 86, Native_log2 = 87, Native_log10 = 88, Native_powr = 89, Native_recip = 90, Native_rsqrt = 91, Native_sin = 92, Native_sqrt = 93, Native_tan = 94, // Section 2.2: Integer instructions SAbs = 141, SAbs_diff = 142, SAdd_sat = 143, UAdd_sat = 144, SHadd = 145, UHadd = 146, SRhadd = 147, URhadd = 148, SClamp = 149, UClamp = 150, Clz = 151, Ctz = 152, SMad_hi = 153, UMad_sat = 154, SMad_sat = 155, SMax = 156, UMax = 157, SMin = 158, UMin = 159, SMul_hi = 160, Rotate = 161, SSub_sat = 162, USub_sat = 163, U_Upsample = 164, S_Upsample = 165, Popcount = 166, SMad24 = 167, UMad24 = 168, SMul24 = 169, UMul24 = 170, UAbs = 201, UAbs_diff = 202, UMul_hi = 203, UMad_hi = 204, // Section 2.3: Common instructions FClamp = 95, Degrees = 96, FMax_common = 97, FMin_common = 98, Mix = 99, Radians = 100, Step = 101, Smoothstep = 102, Sign = 103, // Section 2.4: Geometric instructions Cross = 104, Distance = 105, Length = 106, Normalize = 107, Fast_distance = 108, Fast_length = 109, Fast_normalize = 110, // Section 2.5: Relational instructions Bitselect = 186, Select = 187, // Section 2.6: Vector Data Load and Store instructions Vloadn = 171, Vstoren = 172, Vload_half = 173, Vload_halfn = 174, Vstore_half = 175, Vstore_half_r = 176, Vstore_halfn = 177, Vstore_halfn_r = 178, Vloada_halfn = 179, Vstorea_halfn = 180, Vstorea_halfn_r = 181, // Section 2.7: Miscellaneous Vector instructions Shuffle = 182, Shuffle2 = 183, // Section 2.8: Misc instructions Printf = 184, Prefetch = 185, }; } // end namespace OpenCLLIB spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/extinst.glsl.std.450.grammar.json000066400000000000000000000346331463234063200264160ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "Round", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "RoundEven", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Trunc", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FAbs", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SAbs", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FSign", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SSign", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Floor", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ceil", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fract", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Radians", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "Degrees", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "Sin", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tan", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asin", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acos", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'y_over_x'" } ] }, { "opname" : "Sinh", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cosh", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tanh", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asinh", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acosh", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atanh", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan2", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Pow", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Exp", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Exp2", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log2", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Sqrt", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "InverseSqrt", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Determinant", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "MatrixInverse", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Modf", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "ModfStruct", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FMin", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMin", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMin", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FMax", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMax", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMax", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FClamp", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "UClamp", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "SClamp", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "FMix", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "IMix", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "Step", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SmoothStep", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fma", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "Frexp", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "FrexpStruct", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ldexp", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "PackSnorm4x8", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm4x8", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackSnorm2x16", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm2x16", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackHalf2x16", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackDouble2x32", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "UnpackSnorm2x16", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm2x16", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackHalf2x16", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "UnpackSnorm4x8", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm4x8", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackDouble2x32", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "Length", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Distance", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "Cross", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Normalize", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FaceForward", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'Nref'" } ] }, { "opname" : "Reflect", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" } ] }, { "opname" : "Refract", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'eta'" } ] }, { "opname" : "FindILsb", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindSMsb", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindUMsb", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "InterpolateAtCentroid", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtSample", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'sample'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtOffset", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'offset'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "NMin", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NMax", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NClamp", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/extinst.opencl.std.100.grammar.json000066400000000000000000000713001463234063200267150ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "acos", "opcode" : 0, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acosh", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acospi", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asin", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinh", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinpi", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanh", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanpi", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2pi", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cbrt", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ceil", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "copysign", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cosh", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cospi", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erfc", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erf", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp2", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp10", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "expm1", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fabs", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fdim", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "floor", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fma", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fmax", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmod", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fract", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'ptr'" } ] }, { "opname" : "frexp", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "hypot", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "ilogb", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ldexp", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'k'" } ] }, { "opname" : "lgamma", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "lgamma_r", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'signp'" } ] }, { "opname" : "log", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log2", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log10", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log1p", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "logb", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "mad", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "maxmag", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "minmag", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "modf", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'iptr'" } ] }, { "opname" : "nan", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'nancode'" } ] }, { "opname" : "nextafter", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "pow", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y" } ] }, { "opname" : "pown", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "powr", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remainder", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remquo", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'quo'" } ] }, { "opname" : "rint", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rootn", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "round", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rsqrt", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sin", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sincos", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'cosval'" } ] }, { "opname" : "sinh", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sinpi", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sqrt", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tan", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanh", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanpi", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tgamma", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "trunc", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_cos", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_divide", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_exp", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp2", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp10", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log2", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log10", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_powr", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_recip", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_rsqrt", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sin", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sqrt", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_tan", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_cos", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_divide", "opcode" : 82, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_exp", "opcode" : 83, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp2", "opcode" : 84, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp10", "opcode" : 85, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log", "opcode" : 86, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log2", "opcode" : 87, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log10", "opcode" : 88, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_powr", "opcode" : 89, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_recip", "opcode" : 90, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_rsqrt", "opcode" : 91, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sin", "opcode" : 92, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sqrt", "opcode" : 93, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_tan", "opcode" : 94, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs", "opcode" : 141, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs_diff", "opcode" : 142, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_add_sat", "opcode" : 143, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_add_sat", "opcode" : 144, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_hadd", "opcode" : 145, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_hadd", "opcode" : 146, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_rhadd", "opcode" : 147, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_rhadd", "opcode" : 148, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_clamp", "opcode" : 149, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "u_clamp", "opcode" : 150, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "clz", "opcode" : 151, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ctz", "opcode" : 152, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad_hi", "opcode" : 153, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "u_mad_sat", "opcode" : 154, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mad_sat", "opcode" : 155, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_max", "opcode" : 156, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_max", "opcode" : 157, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_min", "opcode" : 158, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_min", "opcode" : 159, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_mul_hi", "opcode" : 160, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "rotate", "opcode" : 161, "operands" : [ { "kind" : "IdRef", "name" : "'v'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "s_sub_sat", "opcode" : 162, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_sub_sat", "opcode" : 163, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_upsample", "opcode" : 164, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "s_upsample", "opcode" : 165, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "popcount", "opcode" : 166, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad24", "opcode" : 167, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "u_mad24", "opcode" : 168, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mul24", "opcode" : 169, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul24", "opcode" : 170, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_abs", "opcode" : 201, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "u_abs_diff", "opcode" : 202, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul_hi", "opcode" : 203, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mad_hi", "opcode" : 204, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fclamp", "opcode" : 95, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "degrees", "opcode" :96, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "fmax_common", "opcode" : 97, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin_common", "opcode" : 98, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "mix", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "radians", "opcode" : 100, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "step", "opcode" : 101, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "smoothstep", "opcode" : 102, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sign", "opcode" : 103, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cross", "opcode" : 104, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "distance", "opcode" : 105, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "length", "opcode" : 106, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "normalize", "opcode" : 107, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_distance", "opcode" : 108, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "fast_length", "opcode" : 109, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_normalize", "opcode" : 110, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "bitselect", "opcode" : 186, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "select", "opcode" : 187, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "vloadn", "opcode" : 171, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstoren", "opcode" : 172, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_half", "opcode" : 173, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_halfn", "opcode" : 174, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstore_half", "opcode" : 175, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_half_r", "opcode" : 176, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vstore_halfn", "opcode" : 177, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_halfn_r", "opcode" : 178, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vloada_halfn", "opcode" : 179, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstorea_halfn", "opcode" : 180, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstorea_halfn_r", "opcode" : 181, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "shuffle", "opcode" : 182, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "shuffle2", "opcode" : 183, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "printf", "opcode" : 184, "operands" : [ { "kind" : "IdRef", "name" : "'format'" }, { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" } ] }, { "opname" : "prefetch", "opcode" : 185, "operands" : [ { "kind" : "IdRef", "name" : "'ptr'" }, { "kind" : "IdRef", "name" : "'num elements'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.core.grammar.json000066400000000000000000005122621463234063200247510ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "magic_number" : "0x07230203", "major_version" : 1, "minor_version" : 1, "revision" : 8, "instructions" : [ { "opname" : "OpNop", "opcode" : 0 }, { "opname" : "OpUndef", "opcode" : 1, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSourceContinued", "opcode" : 2, "operands" : [ { "kind" : "LiteralString", "name" : "'Continued Source'" } ] }, { "opname" : "OpSource", "opcode" : 3, "operands" : [ { "kind" : "SourceLanguage" }, { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" }, { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" } ] }, { "opname" : "OpSourceExtension", "opcode" : 4, "operands" : [ { "kind" : "LiteralString", "name" : "'Extension'" } ] }, { "opname" : "OpName", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpMemberName", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpString", "opcode" : 7, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'String'" } ] }, { "opname" : "OpLine", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "OpExtension", "opcode" : 10, "operands" : [ { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpExtInstImport", "opcode" : 11, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpExtInst", "opcode" : 12, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } ] }, { "opname" : "OpMemoryModel", "opcode" : 14, "operands" : [ { "kind" : "AddressingModel" }, { "kind" : "MemoryModel" } ] }, { "opname" : "OpEntryPoint", "opcode" : 15, "operands" : [ { "kind" : "ExecutionModel" }, { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" } ] }, { "opname" : "OpExecutionMode", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } ] }, { "opname" : "OpCapability", "opcode" : 17, "operands" : [ { "kind" : "Capability", "name" : "'Capability'" } ] }, { "opname" : "OpTypeVoid", "opcode" : 19, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeBool", "opcode" : 20, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeInt", "opcode" : 21, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" }, { "kind" : "LiteralInteger", "name" : "'Signedness'" } ] }, { "opname" : "OpTypeFloat", "opcode" : 22, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" } ] }, { "opname" : "OpTypeVector", "opcode" : 23, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } ] }, { "opname" : "OpTypeMatrix", "opcode" : 24, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Column Type'" }, { "kind" : "LiteralInteger", "name" : "'Column Count'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpTypeImage", "opcode" : 25, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Type'" }, { "kind" : "Dim" }, { "kind" : "LiteralInteger", "name" : "'Depth'" }, { "kind" : "LiteralInteger", "name" : "'Arrayed'" }, { "kind" : "LiteralInteger", "name" : "'MS'" }, { "kind" : "LiteralInteger", "name" : "'Sampled'" }, { "kind" : "ImageFormat" }, { "kind" : "AccessQualifier", "quantifier" : "?" } ] }, { "opname" : "OpTypeSampler", "opcode" : 26, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeSampledImage", "opcode" : 27, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } ] }, { "opname" : "OpTypeArray", "opcode" : 28, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" }, { "kind" : "IdRef", "name" : "'Length'" } ] }, { "opname" : "OpTypeRuntimeArray", "opcode" : 29, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpTypeStruct", "opcode" : 30, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ] }, { "opname" : "OpTypeOpaque", "opcode" : 31, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "The name of the opaque type." } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpTypePointer", "opcode" : 32, "operands" : [ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "name" : "'Type'" } ] }, { "opname" : "OpTypeFunction", "opcode" : 33, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." } ] }, { "opname" : "OpTypeEvent", "opcode" : 34, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpTypeDeviceEvent", "opcode" : 35, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpTypeReserveId", "opcode" : 36, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpTypeQueue", "opcode" : 37, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpTypePipe", "opcode" : 38, "operands" : [ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'Qualifier'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpTypeForwardPointer", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer Type'" }, { "kind" : "StorageClass" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpConstantTrue", "opcode" : 41, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpConstantFalse", "opcode" : 42, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpConstant", "opcode" : 43, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ] }, { "opname" : "OpConstantComposite", "opcode" : 44, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpConstantSampler", "opcode" : 45, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "SamplerAddressingMode" }, { "kind" : "LiteralInteger", "name" : "'Param'" }, { "kind" : "SamplerFilterMode" } ], "capabilities" : [ "LiteralSampler" ] }, { "opname" : "OpConstantNull", "opcode" : 46, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstantTrue", "opcode" : 48, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstantFalse", "opcode" : 49, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstant", "opcode" : 50, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ] }, { "opname" : "OpSpecConstantComposite", "opcode" : 51, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpSpecConstantOp", "opcode" : 52, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" } ] }, { "opname" : "OpFunction", "opcode" : 54, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "FunctionControl" }, { "kind" : "IdRef", "name" : "'Function Type'" } ] }, { "opname" : "OpFunctionParameter", "opcode" : 55, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpFunctionEnd", "opcode" : 56 }, { "opname" : "OpFunctionCall", "opcode" : 57, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." } ] }, { "opname" : "OpVariable", "opcode" : 59, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" } ] }, { "opname" : "OpImageTexelPointer", "opcode" : 60, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Sample'" } ] }, { "opname" : "OpLoad", "opcode" : 61, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpStore", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpCopyMemory", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpCopyMemorySized", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpAccessChain", "opcode" : 65, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpInBoundsAccessChain", "opcode" : 66, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpPtrAccessChain", "opcode" : 67, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ] }, { "opname" : "OpArrayLength", "opcode" : 68, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Structure'" }, { "kind" : "LiteralInteger", "name" : "'Array member'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpGenericPtrMemSemantics", "opcode" : 69, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpInBoundsPtrAccessChain", "opcode" : 70, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpDecorate", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpMemberDecorate", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'Structure Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpDecorationGroup", "opcode" : 73, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpGroupDecorate", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" } ] }, { "opname" : "OpGroupMemberDecorate", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" } ] }, { "opname" : "OpVectorExtractDynamic", "opcode" : 77, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Index'" } ] }, { "opname" : "OpVectorInsertDynamic", "opcode" : 78, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "IdRef", "name" : "'Index'" } ] }, { "opname" : "OpVectorShuffle", "opcode" : 79, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" } ] }, { "opname" : "OpCompositeConstruct", "opcode" : 80, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpCompositeExtract", "opcode" : 81, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpCompositeInsert", "opcode" : 82, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpCopyObject", "opcode" : 83, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpTranspose", "opcode" : 84, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpSampledImage", "opcode" : 86, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Sampler'" } ] }, { "opname" : "OpImageSampleImplicitLod", "opcode" : 87, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleExplicitLod", "opcode" : 88, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ] }, { "opname" : "OpImageSampleDrefImplicitLod", "opcode" : 89, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleDrefExplicitLod", "opcode" : 90, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjImplicitLod", "opcode" : 91, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjExplicitLod", "opcode" : 92, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjDrefImplicitLod", "opcode" : 93, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjDrefExplicitLod", "opcode" : 94, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageFetch", "opcode" : 95, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImageGather", "opcode" : 96, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageDrefGather", "opcode" : 97, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageRead", "opcode" : 98, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImageWrite", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Texel'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImage", "opcode" : 100, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" } ] }, { "opname" : "OpImageQueryFormat", "opcode" : 101, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageQueryOrder", "opcode" : 102, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageQuerySizeLod", "opcode" : 103, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Level of Detail'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQuerySize", "opcode" : 104, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQueryLod", "opcode" : 105, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "ImageQuery" ] }, { "opname" : "OpImageQueryLevels", "opcode" : 106, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQuerySamples", "opcode" : 107, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpConvertFToU", "opcode" : 109, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpConvertFToS", "opcode" : 110, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpConvertSToF", "opcode" : 111, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ] }, { "opname" : "OpConvertUToF", "opcode" : 112, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ] }, { "opname" : "OpUConvert", "opcode" : 113, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ] }, { "opname" : "OpSConvert", "opcode" : 114, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ] }, { "opname" : "OpFConvert", "opcode" : 115, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpQuantizeToF16", "opcode" : 116, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpConvertPtrToU", "opcode" : 117, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpSatConvertSToU", "opcode" : 118, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpSatConvertUToS", "opcode" : 119, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpConvertUToPtr", "opcode" : 120, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Integer Value'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpPtrCastToGeneric", "opcode" : 121, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGenericCastToPtr", "opcode" : 122, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGenericCastToPtrExplicit", "opcode" : 123, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "StorageClass", "name" : "'Storage'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpBitcast", "opcode" : 124, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpSNegate", "opcode" : 126, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpFNegate", "opcode" : 127, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpIAdd", "opcode" : 128, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFAdd", "opcode" : 129, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpISub", "opcode" : 130, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFSub", "opcode" : 131, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpIMul", "opcode" : 132, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFMul", "opcode" : 133, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUDiv", "opcode" : 134, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSDiv", "opcode" : 135, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFDiv", "opcode" : 136, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUMod", "opcode" : 137, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSRem", "opcode" : 138, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSMod", "opcode" : 139, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFRem", "opcode" : 140, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFMod", "opcode" : 141, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpVectorTimesScalar", "opcode" : 142, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ] }, { "opname" : "OpMatrixTimesScalar", "opcode" : 143, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpVectorTimesMatrix", "opcode" : 144, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpMatrixTimesVector", "opcode" : 145, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Vector'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpMatrixTimesMatrix", "opcode" : 146, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'LeftMatrix'" }, { "kind" : "IdRef", "name" : "'RightMatrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpOuterProduct", "opcode" : 147, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpDot", "opcode" : 148, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ] }, { "opname" : "OpIAddCarry", "opcode" : 149, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpISubBorrow", "opcode" : 150, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUMulExtended", "opcode" : 151, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSMulExtended", "opcode" : 152, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpAny", "opcode" : 154, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ] }, { "opname" : "OpAll", "opcode" : 155, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ] }, { "opname" : "OpIsNan", "opcode" : 156, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "OpIsInf", "opcode" : 157, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "OpIsFinite", "opcode" : 158, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpIsNormal", "opcode" : 159, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpSignBitSet", "opcode" : 160, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLessOrGreater", "opcode" : 161, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpOrdered", "opcode" : 162, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpUnordered", "opcode" : 163, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLogicalEqual", "opcode" : 164, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalNotEqual", "opcode" : 165, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalOr", "opcode" : 166, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalAnd", "opcode" : 167, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalNot", "opcode" : 168, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpSelect", "opcode" : 169, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'Object 1'" }, { "kind" : "IdRef", "name" : "'Object 2'" } ] }, { "opname" : "OpIEqual", "opcode" : 170, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpINotEqual", "opcode" : 171, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUGreaterThan", "opcode" : 172, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSGreaterThan", "opcode" : 173, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUGreaterThanEqual", "opcode" : 174, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSGreaterThanEqual", "opcode" : 175, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpULessThan", "opcode" : 176, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSLessThan", "opcode" : 177, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpULessThanEqual", "opcode" : 178, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSLessThanEqual", "opcode" : 179, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdEqual", "opcode" : 180, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordEqual", "opcode" : 181, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdNotEqual", "opcode" : 182, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordNotEqual", "opcode" : 183, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdLessThan", "opcode" : 184, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordLessThan", "opcode" : 185, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdGreaterThan", "opcode" : 186, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordGreaterThan", "opcode" : 187, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdLessThanEqual", "opcode" : 188, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordLessThanEqual", "opcode" : 189, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdGreaterThanEqual", "opcode" : 190, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordGreaterThanEqual", "opcode" : 191, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpShiftRightLogical", "opcode" : 194, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpShiftRightArithmetic", "opcode" : 195, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpShiftLeftLogical", "opcode" : 196, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpBitwiseOr", "opcode" : 197, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpBitwiseXor", "opcode" : 198, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpBitwiseAnd", "opcode" : 199, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpNot", "opcode" : 200, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpBitFieldInsert", "opcode" : 201, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Insert'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitFieldSExtract", "opcode" : 202, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitFieldUExtract", "opcode" : 203, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitReverse", "opcode" : 204, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitCount", "opcode" : 205, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ] }, { "opname" : "OpDPdx", "opcode" : 207, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpDPdy", "opcode" : 208, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpFwidth", "opcode" : 209, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpDPdxFine", "opcode" : 210, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdyFine", "opcode" : 211, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpFwidthFine", "opcode" : 212, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdxCoarse", "opcode" : 213, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdyCoarse", "opcode" : 214, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpFwidthCoarse", "opcode" : 215, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpEmitVertex", "opcode" : 218, "capabilities" : [ "Geometry" ] }, { "opname" : "OpEndPrimitive", "opcode" : 219, "capabilities" : [ "Geometry" ] }, { "opname" : "OpEmitStreamVertex", "opcode" : 220, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ] }, { "opname" : "OpEndStreamPrimitive", "opcode" : 221, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ] }, { "opname" : "OpControlBarrier", "opcode" : 224, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpMemoryBarrier", "opcode" : 225, "operands" : [ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicLoad", "opcode" : 227, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicStore", "opcode" : 228, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicExchange", "opcode" : 229, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicCompareExchange", "opcode" : 230, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ] }, { "opname" : "OpAtomicCompareExchangeWeak", "opcode" : 231, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpAtomicIIncrement", "opcode" : 232, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicIDecrement", "opcode" : 233, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicIAdd", "opcode" : 234, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicISub", "opcode" : 235, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicSMin", "opcode" : 236, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicUMin", "opcode" : 237, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicSMax", "opcode" : 238, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicUMax", "opcode" : 239, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicAnd", "opcode" : 240, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicOr", "opcode" : 241, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicXor", "opcode" : 242, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpPhi", "opcode" : 245, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" } ] }, { "opname" : "OpLoopMerge", "opcode" : 246, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "IdRef", "name" : "'Continue Target'" }, { "kind" : "LoopControl" } ] }, { "opname" : "OpSelectionMerge", "opcode" : 247, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "SelectionControl" } ] }, { "opname" : "OpLabel", "opcode" : 248, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpBranch", "opcode" : 249, "operands" : [ { "kind" : "IdRef", "name" : "'Target Label'" } ] }, { "opname" : "OpBranchConditional", "opcode" : 250, "operands" : [ { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'True Label'" }, { "kind" : "IdRef", "name" : "'False Label'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" } ] }, { "opname" : "OpSwitch", "opcode" : 251, "operands" : [ { "kind" : "IdRef", "name" : "'Selector'" }, { "kind" : "IdRef", "name" : "'Default'" }, { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" } ] }, { "opname" : "OpKill", "opcode" : 252, "capabilities" : [ "Shader" ] }, { "opname" : "OpReturn", "opcode" : 253 }, { "opname" : "OpReturnValue", "opcode" : 254, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpUnreachable", "opcode" : 255 }, { "opname" : "OpLifetimeStart", "opcode" : 256, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLifetimeStop", "opcode" : 257, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupAsyncCopy", "opcode" : 259, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Destination'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Num Elements'" }, { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupWaitEvents", "opcode" : 260, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Events List'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupAll", "opcode" : 261, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupAny", "opcode" : 262, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupBroadcast", "opcode" : 263, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'LocalId'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupIAdd", "opcode" : 264, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFAdd", "opcode" : 265, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMin", "opcode" : 266, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMin", "opcode" : 267, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMin", "opcode" : 268, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMax", "opcode" : 269, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMax", "opcode" : 270, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMax", "opcode" : 271, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpReadPipe", "opcode" : 274, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpWritePipe", "opcode" : 275, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReservedReadPipe", "opcode" : 276, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReservedWritePipe", "opcode" : 277, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReserveReadPipePackets", "opcode" : 278, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReserveWritePipePackets", "opcode" : 279, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpCommitReadPipe", "opcode" : 280, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpCommitWritePipe", "opcode" : 281, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpIsValidReserveId", "opcode" : 282, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reserve Id'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGetNumPipePackets", "opcode" : 283, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGetMaxPipePackets", "opcode" : 284, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupReserveReadPipePackets", "opcode" : 285, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupReserveWritePipePackets", "opcode" : 286, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupCommitReadPipe", "opcode" : 287, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupCommitWritePipe", "opcode" : 288, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpEnqueueMarker", "opcode" : 291, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpEnqueueKernel", "opcode" : 292, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelNDrangeSubGroupCount", "opcode" : 293, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelNDrangeMaxSubGroupSize", "opcode" : 294, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelWorkGroupSize", "opcode" : 295, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple", "opcode" : 296, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpRetainEvent", "opcode" : 297, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpReleaseEvent", "opcode" : 298, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpCreateUserEvent", "opcode" : 299, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpIsValidEvent", "opcode" : 300, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpSetUserEventStatus", "opcode" : 301, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Status'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpCaptureEventProfilingInfo", "opcode" : 302, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Profiling Info'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetDefaultQueue", "opcode" : 303, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpBuildNDRange", "opcode" : 304, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'GlobalWorkSize'" }, { "kind" : "IdRef", "name" : "'LocalWorkSize'" }, { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpImageSparseSampleImplicitLod", "opcode" : 305, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleExplicitLod", "opcode" : 306, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleDrefImplicitLod", "opcode" : 307, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleDrefExplicitLod", "opcode" : 308, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjImplicitLod", "opcode" : 309, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjExplicitLod", "opcode" : 310, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjDrefImplicitLod", "opcode" : 311, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjDrefExplicitLod", "opcode" : 312, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseFetch", "opcode" : 313, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseGather", "opcode" : 314, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseDrefGather", "opcode" : 315, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseTexelsResident", "opcode" : 316, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Resident Code'" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpNoLine", "opcode" : 317 }, { "opname" : "OpAtomicFlagTestAndSet", "opcode" : 318, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpAtomicFlagClear", "opcode" : 319, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageSparseRead", "opcode" : 320, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpSizeOf", "opcode" : 321, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpTypePipeStorage", "opcode" : 322, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "PipeStorage" ] }, { "opname" : "OpConstantPipeStorage", "opcode" : 323, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Packet Size'" }, { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" }, { "kind" : "LiteralInteger", "name" : "'Capacity'" } ], "capabilities" : [ "PipeStorage" ] }, { "opname" : "OpCreatePipeFromPipeStorage", "opcode" : 324, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe Storage'" } ], "capabilities" : [ "PipeStorage" ] }, { "opname" : "OpGetKernelLocalSizeForSubgroupCount", "opcode" : 325, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Subgroup Count'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "SubgroupDispatch" ] }, { "opname" : "OpGetKernelMaxNumSubgroups", "opcode" : 326, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "SubgroupDispatch" ] }, { "opname" : "OpTypeNamedBarrier", "opcode" : 327, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "NamedBarrier" ] }, { "opname" : "OpNamedBarrierInitialize", "opcode" : 328, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Subgroup Count'" } ], "capabilities" : [ "NamedBarrier" ] }, { "opname" : "OpMemoryNamedBarrier", "opcode" : 329, "operands" : [ { "kind" : "IdRef", "name" : "'Named Barrier'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "NamedBarrier" ] }, { "opname" : "OpModuleProcessed", "opcode" : 330, "operands" : [ { "kind" : "LiteralString", "name" : "'Process'" } ] }, { "opname" : "OpDecorateId", "opcode" : 332, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] }, { "opname" : "OpSubgroupBallotKHR", "opcode" : 4421, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpSubgroupFirstInvocationKHR", "opcode" : 4422, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpSubgroupAllKHR", "opcode" : 4428, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupAnyKHR", "opcode" : 4429, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupAllEqualKHR", "opcode" : 4430, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupReadInvocationKHR", "opcode" : 4432, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpGroupIAddNonUniformAMD", "opcode" : 5000, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFAddNonUniformAMD", "opcode" : 5001, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMinNonUniformAMD", "opcode" : 5002, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMinNonUniformAMD", "opcode" : 5003, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMinNonUniformAMD", "opcode" : 5004, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMaxNonUniformAMD", "opcode" : 5005, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMaxNonUniformAMD", "opcode" : 5006, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMaxNonUniformAMD", "opcode" : 5007, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpFragmentMaskFetchAMD", "opcode" : 5011, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "FragmentMaskAMD" ] }, { "opname" : "OpFragmentFetchAMD", "opcode" : 5012, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Fragment Index'" } ], "capabilities" : [ "FragmentMaskAMD" ] }, { "opname" : "OpSubgroupShuffleINTEL", "opcode" : 5571, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'InvocationId'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleDownINTEL", "opcode" : 5572, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Next'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleUpINTEL", "opcode" : 5573, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Previous'" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleXorINTEL", "opcode" : 5574, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupBlockReadINTEL", "opcode" : 5575, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Ptr'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ] }, { "opname" : "OpSubgroupBlockWriteINTEL", "opcode" : 5576, "operands" : [ { "kind" : "IdRef", "name" : "'Ptr'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ] }, { "opname" : "OpSubgroupImageBlockReadINTEL", "opcode" : 5577, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ] }, { "opname" : "OpSubgroupImageBlockWriteINTEL", "opcode" : 5578, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ] }, { "opname" : "OpDecorateStringGOOGLE", "opcode" : 5632, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string" ] }, { "opname" : "OpMemberDecorateStringGOOGLE", "opcode" : 5633, "operands" : [ { "kind" : "IdRef", "name" : "'Struct Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string" ] } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "ImageOperands", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Bias", "value" : "0x0001", "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Lod", "value" : "0x0002", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Grad", "value" : "0x0004", "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } ] }, { "enumerant" : "ConstOffset", "value" : "0x0008", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Offset", "value" : "0x0010", "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "ConstOffsets", "value" : "0x0020", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Sample", "value" : "0x0040", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "MinLod", "value" : "0x0080", "capabilities" : [ "MinLod" ], "parameters" : [ { "kind" : "IdRef" } ] } ] }, { "category" : "BitEnum", "kind" : "FPFastMathMode", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "NotNaN", "value" : "0x0001", "capabilities" : [ "Kernel" ] }, { "enumerant" : "NotInf", "value" : "0x0002", "capabilities" : [ "Kernel" ] }, { "enumerant" : "NSZ", "value" : "0x0004", "capabilities" : [ "Kernel" ] }, { "enumerant" : "AllowRecip", "value" : "0x0008", "capabilities" : [ "Kernel" ] }, { "enumerant" : "Fast", "value" : "0x0010", "capabilities" : [ "Kernel" ] } ] }, { "category" : "BitEnum", "kind" : "SelectionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Flatten", "value" : "0x0001" }, { "enumerant" : "DontFlatten", "value" : "0x0002" } ] }, { "category" : "BitEnum", "kind" : "LoopControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Unroll", "value" : "0x0001" }, { "enumerant" : "DontUnroll", "value" : "0x0002" }, { "enumerant" : "DependencyInfinite", "value" : "0x0004" }, { "enumerant" : "DependencyLength", "value" : "0x0008", "parameters" : [ { "kind" : "LiteralInteger" } ] } ] }, { "category" : "BitEnum", "kind" : "FunctionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Inline", "value" : "0x0001" }, { "enumerant" : "DontInline", "value" : "0x0002" }, { "enumerant" : "Pure", "value" : "0x0004" }, { "enumerant" : "Const", "value" : "0x0008" } ] }, { "category" : "BitEnum", "kind" : "MemorySemantics", "enumerants" : [ { "enumerant" : "Relaxed", "value" : "0x0000" }, { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Acquire", "value" : "0x0002" }, { "enumerant" : "Release", "value" : "0x0004" }, { "enumerant" : "AcquireRelease", "value" : "0x0008" }, { "enumerant" : "SequentiallyConsistent", "value" : "0x0010" }, { "enumerant" : "UniformMemory", "value" : "0x0040", "capabilities" : [ "Shader" ] }, { "enumerant" : "SubgroupMemory", "value" : "0x0080" }, { "enumerant" : "WorkgroupMemory", "value" : "0x0100" }, { "enumerant" : "CrossWorkgroupMemory", "value" : "0x0200" }, { "enumerant" : "AtomicCounterMemory", "value" : "0x0400", "capabilities" : [ "AtomicStorage" ] }, { "enumerant" : "ImageMemory", "value" : "0x0800" } ] }, { "category" : "BitEnum", "kind" : "MemoryAccess", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Volatile", "value" : "0x0001" }, { "enumerant" : "Aligned", "value" : "0x0002", "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Nontemporal", "value" : "0x0004" } ] }, { "category" : "BitEnum", "kind" : "KernelProfilingInfo", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "CmdExecTime", "value" : "0x0001", "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "SourceLanguage", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0 }, { "enumerant" : "ESSL", "value" : 1 }, { "enumerant" : "GLSL", "value" : 2 }, { "enumerant" : "OpenCL_C", "value" : 3 }, { "enumerant" : "OpenCL_CPP", "value" : 4 }, { "enumerant" : "HLSL", "value" : 5 } ] }, { "category" : "ValueEnum", "kind" : "ExecutionModel", "enumerants" : [ { "enumerant" : "Vertex", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "TessellationControl", "value" : 1, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessellationEvaluation", "value" : 2, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Geometry", "value" : 3, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Fragment", "value" : 4, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLCompute", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "Kernel", "value" : 6, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "AddressingModel", "enumerants" : [ { "enumerant" : "Logical", "value" : 0 }, { "enumerant" : "Physical32", "value" : 1, "capabilities" : [ "Addresses" ] }, { "enumerant" : "Physical64", "value" : 2, "capabilities" : [ "Addresses" ] } ] }, { "category" : "ValueEnum", "kind" : "MemoryModel", "enumerants" : [ { "enumerant" : "Simple", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLSL450", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "OpenCL", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ExecutionMode", "enumerants" : [ { "enumerant" : "Invocations", "value" : 0, "capabilities" : [ "Geometry" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of <>'" } ] }, { "enumerant" : "SpacingEqual", "value" : 1, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "SpacingFractionalEven", "value" : 2, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "SpacingFractionalOdd", "value" : 3, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "VertexOrderCw", "value" : 4, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "VertexOrderCcw", "value" : 5, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "PixelCenterInteger", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "OriginUpperLeft", "value" : 7, "capabilities" : [ "Shader" ] }, { "enumerant" : "OriginLowerLeft", "value" : 8, "capabilities" : [ "Shader" ] }, { "enumerant" : "EarlyFragmentTests", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointMode", "value" : 10, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Xfb", "value" : 11, "capabilities" : [ "TransformFeedback" ] }, { "enumerant" : "DepthReplacing", "value" : 12, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthGreater", "value" : 14, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthLess", "value" : 15, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthUnchanged", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "LocalSize", "value" : 17, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ] }, { "enumerant" : "LocalSizeHint", "value" : 18, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ] }, { "enumerant" : "InputPoints", "value" : 19, "capabilities" : [ "Geometry" ] }, { "enumerant" : "InputLines", "value" : 20, "capabilities" : [ "Geometry" ] }, { "enumerant" : "InputLinesAdjacency", "value" : 21, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Triangles", "value" : 22, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "InputTrianglesAdjacency", "value" : 23, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Quads", "value" : 24, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Isolines", "value" : 25, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "OutputVertices", "value" : 26, "capabilities" : [ "Geometry", "Tessellation" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vertex count'" } ] }, { "enumerant" : "OutputPoints", "value" : 27, "capabilities" : [ "Geometry" ] }, { "enumerant" : "OutputLineStrip", "value" : 28, "capabilities" : [ "Geometry" ] }, { "enumerant" : "OutputTriangleStrip", "value" : 29, "capabilities" : [ "Geometry" ] }, { "enumerant" : "VecTypeHint", "value" : 30, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vector type'" } ] }, { "enumerant" : "ContractionOff", "value" : 31, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Initializer", "value" : 33, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Finalizer", "value" : 34, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupSize", "value" : 35, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" } ] }, { "enumerant" : "SubgroupsPerWorkgroup", "value" : 36, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" } ] }, { "enumerant" : "PostDepthCoverage", "value" : 4446, "capabilities" : [ "SampleMaskPostDepthCoverage" ] }, { "enumerant" : "StencilRefReplacingEXT", "value" : 5027, "capabilities" : [ "StencilExportEXT" ] } ] }, { "category" : "ValueEnum", "kind" : "StorageClass", "enumerants" : [ { "enumerant" : "UniformConstant", "value" : 0 }, { "enumerant" : "Input", "value" : 1 }, { "enumerant" : "Uniform", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "Output", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Workgroup", "value" : 4 }, { "enumerant" : "CrossWorkgroup", "value" : 5 }, { "enumerant" : "Private", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "Function", "value" : 7 }, { "enumerant" : "Generic", "value" : 8, "capabilities" : [ "GenericPointer" ] }, { "enumerant" : "PushConstant", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "AtomicCounter", "value" : 10, "capabilities" : [ "AtomicStorage" ] }, { "enumerant" : "Image", "value" : 11 }, { "enumerant" : "StorageBuffer", "value" : 12, "extensions" : [ "SPV_KHR_storage_buffer_storage_class", "SPV_KHR_variable_pointers" ], "capabilities" : [ "Shader" ] } ] }, { "category" : "ValueEnum", "kind" : "Dim", "enumerants" : [ { "enumerant" : "1D", "value" : 0, "capabilities" : [ "Sampled1D" ] }, { "enumerant" : "2D", "value" : 1 }, { "enumerant" : "3D", "value" : 2 }, { "enumerant" : "Cube", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rect", "value" : 4, "capabilities" : [ "SampledRect" ] }, { "enumerant" : "Buffer", "value" : 5, "capabilities" : [ "SampledBuffer" ] }, { "enumerant" : "SubpassData", "value" : 6, "capabilities" : [ "InputAttachment" ] } ] }, { "category" : "ValueEnum", "kind" : "SamplerAddressingMode", "enumerants" : [ { "enumerant" : "None", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ClampToEdge", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Clamp", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Repeat", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RepeatMirrored", "value" : 4, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "SamplerFilterMode", "enumerants" : [ { "enumerant" : "Nearest", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Linear", "value" : 1, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageFormat", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0 }, { "enumerant" : "Rgba32f", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16f", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32f", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8", "value" : 4, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8Snorm", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rg32f", "value" : 6, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16f", "value" : 7, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R11fG11fB10f", "value" : 8, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16f", "value" : 9, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba16", "value" : 10, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgb10A2", "value" : 11, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16", "value" : 12, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8", "value" : 13, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16", "value" : 14, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8", "value" : 15, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba16Snorm", "value" : 16, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16Snorm", "value" : 17, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8Snorm", "value" : 18, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16Snorm", "value" : 19, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8Snorm", "value" : 20, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba32i", "value" : 21, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16i", "value" : 22, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8i", "value" : 23, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32i", "value" : 24, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rg32i", "value" : 25, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16i", "value" : 26, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8i", "value" : 27, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16i", "value" : 28, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8i", "value" : 29, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba32ui", "value" : 30, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16ui", "value" : 31, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8ui", "value" : 32, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32ui", "value" : 33, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgb10a2ui", "value" : 34, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg32ui", "value" : 35, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16ui", "value" : 36, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8ui", "value" : 37, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16ui", "value" : 38, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8ui", "value" : 39, "capabilities" : [ "StorageImageExtendedFormats" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelOrder", "enumerants" : [ { "enumerant" : "R", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "A", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RG", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RA", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGB", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGBA", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "BGRA", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ARGB", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Intensity", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Luminance", "value" : 9, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Rx", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGx", "value" : 11, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGBx", "value" : 12, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Depth", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "DepthStencil", "value" : 14, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGB", "value" : 15, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGBx", "value" : 16, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGBA", "value" : 17, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sBGRA", "value" : 18, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ABGR", "value" : 19, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelDataType", "enumerants" : [ { "enumerant" : "SnormInt8", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SnormInt16", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt8", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt16", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormShort565", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormShort555", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt101010", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt8", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt16", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt32", "value" : 9, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt8", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt16", "value" : 11, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt32", "value" : 12, "capabilities" : [ "Kernel" ] }, { "enumerant" : "HalfFloat", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float", "value" : 14, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt24", "value" : 15, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt101010_2", "value" : 16, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "FPRoundingMode", "enumerants" : [ { "enumerant" : "RTE", "value" : 0, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTZ", "value" : 1, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTP", "value" : 2, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTN", "value" : 3, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] } ] }, { "category" : "ValueEnum", "kind" : "LinkageType", "enumerants" : [ { "enumerant" : "Export", "value" : 0, "capabilities" : [ "Linkage" ] }, { "enumerant" : "Import", "value" : 1, "capabilities" : [ "Linkage" ] } ] }, { "category" : "ValueEnum", "kind" : "AccessQualifier", "enumerants" : [ { "enumerant" : "ReadOnly", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WriteOnly", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ReadWrite", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "FunctionParameterAttribute", "enumerants" : [ { "enumerant" : "Zext", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Sext", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ByVal", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Sret", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoAlias", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoCapture", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoWrite", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoReadWrite", "value" : 7, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "Decoration", "enumerants" : [ { "enumerant" : "RelaxedPrecision", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "SpecId", "value" : 1, "capabilities" : [ "Shader", "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" } ] }, { "enumerant" : "Block", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "BufferBlock", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "RowMajor", "value" : 4, "capabilities" : [ "Matrix" ] }, { "enumerant" : "ColMajor", "value" : 5, "capabilities" : [ "Matrix" ] }, { "enumerant" : "ArrayStride", "value" : 6, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Array Stride'" } ] }, { "enumerant" : "MatrixStride", "value" : 7, "capabilities" : [ "Matrix" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" } ] }, { "enumerant" : "GLSLShared", "value" : 8, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLSLPacked", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "CPacked", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "BuiltIn", "value" : 11, "parameters" : [ { "kind" : "BuiltIn" } ] }, { "enumerant" : "NoPerspective", "value" : 13, "capabilities" : [ "Shader" ] }, { "enumerant" : "Flat", "value" : 14, "capabilities" : [ "Shader" ] }, { "enumerant" : "Patch", "value" : 15, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Centroid", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "Sample", "value" : 17, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "Invariant", "value" : 18, "capabilities" : [ "Shader" ] }, { "enumerant" : "Restrict", "value" : 19 }, { "enumerant" : "Aliased", "value" : 20 }, { "enumerant" : "Volatile", "value" : 21 }, { "enumerant" : "Constant", "value" : 22, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Coherent", "value" : 23 }, { "enumerant" : "NonWritable", "value" : 24 }, { "enumerant" : "NonReadable", "value" : 25 }, { "enumerant" : "Uniform", "value" : 26, "capabilities" : [ "Shader" ] }, { "enumerant" : "SaturatedConversion", "value" : 28, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Stream", "value" : 29, "capabilities" : [ "GeometryStreams" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stream Number'" } ] }, { "enumerant" : "Location", "value" : 30, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Location'" } ] }, { "enumerant" : "Component", "value" : 31, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Component'" } ] }, { "enumerant" : "Index", "value" : 32, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Index'" } ] }, { "enumerant" : "Binding", "value" : 33, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Binding Point'" } ] }, { "enumerant" : "DescriptorSet", "value" : 34, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" } ] }, { "enumerant" : "Offset", "value" : 35, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" } ] }, { "enumerant" : "XfbBuffer", "value" : 36, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" } ] }, { "enumerant" : "XfbStride", "value" : 37, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" } ] }, { "enumerant" : "FuncParamAttr", "value" : 38, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" } ] }, { "enumerant" : "FPRoundingMode", "value" : 39, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ], "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } ] }, { "enumerant" : "FPFastMathMode", "value" : 40, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" } ] }, { "enumerant" : "LinkageAttributes", "value" : 41, "capabilities" : [ "Linkage" ], "parameters" : [ { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "LinkageType", "name" : "'Linkage Type'" } ] }, { "enumerant" : "NoContraction", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "InputAttachmentIndex", "value" : 43, "capabilities" : [ "InputAttachment" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" } ] }, { "enumerant" : "Alignment", "value" : 44, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Alignment'" } ] }, { "enumerant" : "MaxByteOffset", "value" : 45, "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" } ] }, { "enumerant" : "ExplicitInterpAMD", "value" : 4999 }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, "capabilities" : [ "SampleMaskOverrideCoverageNV" ] }, { "enumerant" : "PassthroughNV", "value" : 5250, "capabilities" : [ "GeometryShaderPassthroughNV" ] }, { "enumerant" : "ViewportRelativeNV", "value" : 5252, "capabilities" : [ "ShaderViewportMaskNV" ] }, { "enumerant" : "SecondaryViewportRelativeNV", "value" : 5256, "capabilities" : [ "ShaderStereoViewNV" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Offset'" } ] }, { "enumerant" : "HlslCounterBufferGOOGLE", "value" : 5634, "parameters" : [ { "kind" : "IdRef", "name" : "'Counter Buffer'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] }, { "enumerant" : "HlslSemanticGOOGLE", "value" : 5635, "parameters" : [ { "kind" : "LiteralString", "name" : "'Semantic'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] } ] }, { "category" : "ValueEnum", "kind" : "BuiltIn", "enumerants" : [ { "enumerant" : "Position", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointSize", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "ClipDistance", "value" : 3, "capabilities" : [ "ClipDistance" ] }, { "enumerant" : "CullDistance", "value" : 4, "capabilities" : [ "CullDistance" ] }, { "enumerant" : "VertexId", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "InstanceId", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "PrimitiveId", "value" : 7, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "InvocationId", "value" : 8, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "Layer", "value" : 9, "capabilities" : [ "Geometry" ] }, { "enumerant" : "ViewportIndex", "value" : 10, "capabilities" : [ "MultiViewport" ] }, { "enumerant" : "TessLevelOuter", "value" : 11, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessLevelInner", "value" : 12, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessCoord", "value" : 13, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "PatchVertices", "value" : 14, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "FragCoord", "value" : 15, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointCoord", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "FrontFacing", "value" : 17, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampleId", "value" : 18, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "SamplePosition", "value" : 19, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "SampleMask", "value" : 20, "capabilities" : [ "Shader" ] }, { "enumerant" : "FragDepth", "value" : 22, "capabilities" : [ "Shader" ] }, { "enumerant" : "HelperInvocation", "value" : 23, "capabilities" : [ "Shader" ] }, { "enumerant" : "NumWorkgroups", "value" : 24 }, { "enumerant" : "WorkgroupSize", "value" : 25 }, { "enumerant" : "WorkgroupId", "value" : 26 }, { "enumerant" : "LocalInvocationId", "value" : 27 }, { "enumerant" : "GlobalInvocationId", "value" : 28 }, { "enumerant" : "LocalInvocationIndex", "value" : 29 }, { "enumerant" : "WorkDim", "value" : 30, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalSize", "value" : 31, "capabilities" : [ "Kernel" ] }, { "enumerant" : "EnqueuedWorkgroupSize", "value" : 32, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalOffset", "value" : 33, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalLinearId", "value" : 34, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupSize", "value" : 36, "capabilities" : [ "Kernel", "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupMaxSize", "value" : 37, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NumSubgroups", "value" : 38, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NumEnqueuedSubgroups", "value" : 39, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupId", "value" : 40, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupLocalInvocationId", "value" : 41, "capabilities" : [ "Kernel", "SubgroupBallotKHR" ] }, { "enumerant" : "VertexIndex", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "InstanceIndex", "value" : 43, "capabilities" : [ "Shader" ] }, { "enumerant" : "SubgroupEqMaskKHR", "value" : 4416, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupGeMaskKHR", "value" : 4417, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupGtMaskKHR", "value" : 4418, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupLeMaskKHR", "value" : 4419, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupLtMaskKHR", "value" : 4420, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "BaseVertex", "value" : 4424, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "BaseInstance", "value" : 4425, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "DrawIndex", "value" : 4426, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "DeviceIndex", "value" : 4438, "capabilities" : [ "DeviceGroup" ] }, { "enumerant" : "ViewIndex", "value" : 4440, "capabilities" : [ "MultiView" ] }, { "enumerant" : "BaryCoordNoPerspAMD", "value" : 4992 }, { "enumerant" : "BaryCoordNoPerspCentroidAMD", "value" : 4993 }, { "enumerant" : "BaryCoordNoPerspSampleAMD", "value" : 4994 }, { "enumerant" : "BaryCoordSmoothAMD", "value" : 4995 }, { "enumerant" : "BaryCoordSmoothCentroidAMD", "value" : 4996 }, { "enumerant" : "BaryCoordSmoothSampleAMD", "value" : 4997 }, { "enumerant" : "BaryCoordPullModelAMD", "value" : 4998 }, { "enumerant" : "FragStencilRefEXT", "value" : 5014, "capabilities" : [ "StencilExportEXT" ] }, { "enumerant" : "ViewportMaskNV", "value" : 5253, "capabilities" : [ "ShaderViewportMaskNV" ] }, { "enumerant" : "SecondaryPositionNV", "value" : 5257, "capabilities" : [ "ShaderStereoViewNV" ] }, { "enumerant" : "SecondaryViewportMaskNV", "value" : 5258, "capabilities" : [ "ShaderStereoViewNV" ] }, { "enumerant" : "PositionPerViewNV", "value" : 5261, "capabilities" : [ "PerViewAttributesNV" ] }, { "enumerant" : "ViewportMaskPerViewNV", "value" : 5262, "capabilities" : [ "PerViewAttributesNV" ] } ] }, { "category" : "ValueEnum", "kind" : "Scope", "enumerants" : [ { "enumerant" : "CrossDevice", "value" : 0 }, { "enumerant" : "Device", "value" : 1 }, { "enumerant" : "Workgroup", "value" : 2 }, { "enumerant" : "Subgroup", "value" : 3 }, { "enumerant" : "Invocation", "value" : 4 } ] }, { "category" : "ValueEnum", "kind" : "GroupOperation", "enumerants" : [ { "enumerant" : "Reduce", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "InclusiveScan", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ExclusiveScan", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "KernelEnqueueFlags", "enumerants" : [ { "enumerant" : "NoWait", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WaitKernel", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WaitWorkGroup", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "Capability", "enumerants" : [ { "enumerant" : "Matrix", "value" : 0 }, { "enumerant" : "Shader", "value" : 1, "capabilities" : [ "Matrix" ] }, { "enumerant" : "Geometry", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "Tessellation", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Addresses", "value" : 4 }, { "enumerant" : "Linkage", "value" : 5 }, { "enumerant" : "Kernel", "value" : 6 }, { "enumerant" : "Vector16", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float16Buffer", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float16", "value" : 9 }, { "enumerant" : "Float64", "value" : 10 }, { "enumerant" : "Int64", "value" : 11 }, { "enumerant" : "Int64Atomics", "value" : 12, "capabilities" : [ "Int64" ] }, { "enumerant" : "ImageBasic", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ImageReadWrite", "value" : 14, "capabilities" : [ "ImageBasic" ] }, { "enumerant" : "ImageMipmap", "value" : 15, "capabilities" : [ "ImageBasic" ] }, { "enumerant" : "Pipes", "value" : 17, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Groups", "value" : 18 }, { "enumerant" : "DeviceEnqueue", "value" : 19, "capabilities" : [ "Kernel" ] }, { "enumerant" : "LiteralSampler", "value" : 20, "capabilities" : [ "Kernel" ] }, { "enumerant" : "AtomicStorage", "value" : 21, "capabilities" : [ "Shader" ] }, { "enumerant" : "Int16", "value" : 22 }, { "enumerant" : "TessellationPointSize", "value" : 23, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "GeometryPointSize", "value" : 24, "capabilities" : [ "Geometry" ] }, { "enumerant" : "ImageGatherExtended", "value" : 25, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageMultisample", "value" : 27, "capabilities" : [ "Shader" ] }, { "enumerant" : "UniformBufferArrayDynamicIndexing", "value" : 28, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampledImageArrayDynamicIndexing", "value" : 29, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageBufferArrayDynamicIndexing", "value" : 30, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageArrayDynamicIndexing", "value" : 31, "capabilities" : [ "Shader" ] }, { "enumerant" : "ClipDistance", "value" : 32, "capabilities" : [ "Shader" ] }, { "enumerant" : "CullDistance", "value" : 33, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageCubeArray", "value" : 34, "capabilities" : [ "SampledCubeArray" ] }, { "enumerant" : "SampleRateShading", "value" : 35, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageRect", "value" : 36, "capabilities" : [ "SampledRect" ] }, { "enumerant" : "SampledRect", "value" : 37, "capabilities" : [ "Shader" ] }, { "enumerant" : "GenericPointer", "value" : 38, "capabilities" : [ "Addresses" ] }, { "enumerant" : "Int8", "value" : 39, "capabilities" : [ "Kernel" ] }, { "enumerant" : "InputAttachment", "value" : 40, "capabilities" : [ "Shader" ] }, { "enumerant" : "SparseResidency", "value" : 41, "capabilities" : [ "Shader" ] }, { "enumerant" : "MinLod", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "Sampled1D", "value" : 43 }, { "enumerant" : "Image1D", "value" : 44, "capabilities" : [ "Sampled1D" ] }, { "enumerant" : "SampledCubeArray", "value" : 45, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampledBuffer", "value" : 46 }, { "enumerant" : "ImageBuffer", "value" : 47, "capabilities" : [ "SampledBuffer" ] }, { "enumerant" : "ImageMSArray", "value" : 48, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageExtendedFormats", "value" : 49, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageQuery", "value" : 50, "capabilities" : [ "Shader" ] }, { "enumerant" : "DerivativeControl", "value" : 51, "capabilities" : [ "Shader" ] }, { "enumerant" : "InterpolationFunction", "value" : 52, "capabilities" : [ "Shader" ] }, { "enumerant" : "TransformFeedback", "value" : 53, "capabilities" : [ "Shader" ] }, { "enumerant" : "GeometryStreams", "value" : 54, "capabilities" : [ "Geometry" ] }, { "enumerant" : "StorageImageReadWithoutFormat", "value" : 55, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageWriteWithoutFormat", "value" : 56, "capabilities" : [ "Shader" ] }, { "enumerant" : "MultiViewport", "value" : 57, "capabilities" : [ "Geometry" ] }, { "enumerant" : "SubgroupDispatch", "value" : 58, "capabilities" : [ "DeviceEnqueue" ] }, { "enumerant" : "NamedBarrier", "value" : 59, "capabilities" : [ "Kernel" ] }, { "enumerant" : "PipeStorage", "value" : 60, "capabilities" : [ "Pipes" ] }, { "enumerant" : "SubgroupBallotKHR", "value" : 4423, "extensions" : [ "SPV_KHR_shader_ballot" ] }, { "enumerant" : "DrawParameters", "value" : 4427, "extensions" : [ "SPV_KHR_shader_draw_parameters" ] }, { "enumerant" : "SubgroupVoteKHR", "value" : 4431, "extensions" : [ "SPV_KHR_subgroup_vote" ] }, { "enumerant" : "StorageBuffer16BitAccess", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageUniformBufferBlock16", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "UniformAndStorageBuffer16BitAccess", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageUniform16", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StoragePushConstant16", "value" : 4435, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageInputOutput16", "value" : 4436, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "DeviceGroup", "value" : 4437, "extensions" : [ "SPV_KHR_device_group" ] }, { "enumerant" : "MultiView", "value" : 4439, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_multiview" ] }, { "enumerant" : "VariablePointersStorageBuffer", "value" : 4441, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_variable_pointers" ] }, { "enumerant" : "VariablePointers", "value" : 4442, "capabilities" : [ "VariablePointersStorageBuffer" ], "extensions" : [ "SPV_KHR_variable_pointers" ] }, { "enumerant": "AtomicStorageOps", "value": 4445, "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ] }, { "enumerant" : "SampleMaskPostDepthCoverage", "value" : 4447, "extensions" : [ "SPV_KHR_post_depth_coverage" ] }, { "enumerant" : "ImageGatherBiasLodAMD", "value" : 5009, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ] }, { "enumerant" : "FragmentMaskAMD", "value" : 5010, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_fragment_mask" ] }, { "enumerant" : "StencilExportEXT", "value" : 5013, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_shader_stencil_export" ] }, { "enumerant" : "ImageReadWriteLodAMD", "value" : 5015, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ] }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, "capabilities" : [ "SampleRateShading" ], "extensions" : [ "SPV_NV_sample_mask_override_coverage" ] }, { "enumerant" : "GeometryShaderPassthroughNV", "value" : 5251, "capabilities" : [ "Geometry" ], "extensions" : [ "SPV_NV_geometry_shader_passthrough" ] }, { "enumerant" : "ShaderViewportIndexLayerEXT", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ] }, { "enumerant" : "ShaderViewportIndexLayerNV", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_NV_viewport_array2" ] }, { "enumerant" : "ShaderViewportMaskNV", "value" : 5255, "capabilities" : [ "ShaderViewportIndexLayerNV" ], "extensions" : [ "SPV_NV_viewport_array2" ] }, { "enumerant" : "ShaderStereoViewNV", "value" : 5259, "capabilities" : [ "ShaderViewportMaskNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ] }, { "enumerant" : "PerViewAttributesNV", "value" : 5260, "capabilities" : [ "MultiView" ], "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ] }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, "extensions" : [ "SPV_INTEL_subgroups" ] }, { "enumerant" : "SubgroupBufferBlockIOINTEL", "value" : 5569, "extensions" : [ "SPV_INTEL_subgroups" ] }, { "enumerant" : "SubgroupImageBlockIOINTEL", "value" : 5570, "extensions" : [ "SPV_INTEL_subgroups" ] } ] }, { "category" : "Id", "kind" : "IdResultType", "doc" : "Reference to an representing the result's type of the enclosing instruction" }, { "category" : "Id", "kind" : "IdResult", "doc" : "Definition of an representing the result of the enclosing instruction" }, { "category" : "Id", "kind" : "IdMemorySemantics", "doc" : "Reference to an representing a 32-bit integer that is a mask from the MemorySemantics operand kind" }, { "category" : "Id", "kind" : "IdScope", "doc" : "Reference to an representing a 32-bit integer that is a mask from the Scope operand kind" }, { "category" : "Id", "kind" : "IdRef", "doc" : "Reference to an " }, { "category" : "Literal", "kind" : "LiteralInteger", "doc" : "An integer consuming one or more words" }, { "category" : "Literal", "kind" : "LiteralString", "doc" : "A null-terminated stream of characters consuming an integral number of words" }, { "category" : "Literal", "kind" : "LiteralContextDependentNumber", "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction" }, { "category" : "Literal", "kind" : "LiteralExtInstInteger", "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)" }, { "category" : "Literal", "kind" : "LiteralSpecConstantOpInteger", "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)" }, { "category" : "Composite", "kind" : "PairLiteralIntegerIdRef", "bases" : [ "LiteralInteger", "IdRef" ] }, { "category" : "Composite", "kind" : "PairIdRefLiteralInteger", "bases" : [ "IdRef", "LiteralInteger" ] }, { "category" : "Composite", "kind" : "PairIdRefIdRef", "bases" : [ "IdRef", "IdRef" ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.cs000066400000000000000000000747401463234063200220350ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C# // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. namespace Spv { public static class Specification { public const uint MagicNumber = 0x07230203; public const uint Version = 0x00010100; public const uint Revision = 8; public const uint OpCodeMask = 0xffff; public const uint WordCountShift = 16; public enum SourceLanguage { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, } public enum ExecutionModel { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, } public enum AddressingModel { Logical = 0, Physical32 = 1, Physical64 = 2, } public enum MemoryModel { Simple = 0, GLSL450 = 1, OpenCL = 2, } public enum ExecutionMode { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, } public enum StorageClass { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, } public enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, } public enum SamplerAddressingMode { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, } public enum SamplerFilterMode { Nearest = 0, Linear = 1, } public enum ImageFormat { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, } public enum ImageChannelOrder { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, } public enum ImageChannelDataType { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, } public enum ImageOperandsShift { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, } public enum ImageOperandsMask { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, } public enum FPFastMathModeShift { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, } public enum FPFastMathModeMask { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, } public enum FPRoundingMode { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, } public enum LinkageType { Export = 0, Import = 1, } public enum AccessQualifier { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, } public enum FunctionParameterAttribute { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, } public enum Decoration { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, } public enum BuiltIn { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, } public enum SelectionControlShift { Flatten = 0, DontFlatten = 1, } public enum SelectionControlMask { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, } public enum LoopControlShift { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, } public enum LoopControlMask { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, } public enum FunctionControlShift { Inline = 0, DontInline = 1, Pure = 2, Const = 3, } public enum FunctionControlMask { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, } public enum MemorySemanticsShift { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, } public enum MemorySemanticsMask { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, } public enum MemoryAccessShift { Volatile = 0, Aligned = 1, Nontemporal = 2, } public enum MemoryAccessMask { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, } public enum Scope { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, } public enum GroupOperation { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, } public enum KernelEnqueueFlags { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, } public enum KernelProfilingInfoShift { CmdExecTime = 0, } public enum KernelProfilingInfoMask { MaskNone = 0, CmdExecTime = 0x00000001, } public enum Capability { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, } public enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, } } } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.h000066400000000000000000001030331463234063200216430ustar00rootroot00000000000000/* ** Copyright (c) 2014-2018 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ /* ** This header is automatically generated by the same tool that creates ** the Binary Section of the SPIR-V specification. */ /* ** Enumeration tokens for SPIR-V, in various styles: ** C, C++, C++11, JSON, Lua, Python ** ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] ** ** Some tokens act like mask values, which can be OR'd together, ** while others are mutually exclusive. The mask-like ones have ** "Mask" in their name, and a parallel enum that has the shift ** amount (1 << x) for each corresponding enumerant. */ #ifndef spirv_H #define spirv_H typedef unsigned int SpvId; #define SPV_VERSION 0x10100 #define SPV_REVISION 8 static const unsigned int SpvMagicNumber = 0x07230203; static const unsigned int SpvVersion = 0x00010100; static const unsigned int SpvRevision = 8; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; typedef enum SpvSourceLanguage_ { SpvSourceLanguageUnknown = 0, SpvSourceLanguageESSL = 1, SpvSourceLanguageGLSL = 2, SpvSourceLanguageOpenCL_C = 3, SpvSourceLanguageOpenCL_CPP = 4, SpvSourceLanguageHLSL = 5, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; typedef enum SpvExecutionModel_ { SpvExecutionModelVertex = 0, SpvExecutionModelTessellationControl = 1, SpvExecutionModelTessellationEvaluation = 2, SpvExecutionModelGeometry = 3, SpvExecutionModelFragment = 4, SpvExecutionModelGLCompute = 5, SpvExecutionModelKernel = 6, SpvExecutionModelMax = 0x7fffffff, } SpvExecutionModel; typedef enum SpvAddressingModel_ { SpvAddressingModelLogical = 0, SpvAddressingModelPhysical32 = 1, SpvAddressingModelPhysical64 = 2, SpvAddressingModelMax = 0x7fffffff, } SpvAddressingModel; typedef enum SpvMemoryModel_ { SpvMemoryModelSimple = 0, SpvMemoryModelGLSL450 = 1, SpvMemoryModelOpenCL = 2, SpvMemoryModelMax = 0x7fffffff, } SpvMemoryModel; typedef enum SpvExecutionMode_ { SpvExecutionModeInvocations = 0, SpvExecutionModeSpacingEqual = 1, SpvExecutionModeSpacingFractionalEven = 2, SpvExecutionModeSpacingFractionalOdd = 3, SpvExecutionModeVertexOrderCw = 4, SpvExecutionModeVertexOrderCcw = 5, SpvExecutionModePixelCenterInteger = 6, SpvExecutionModeOriginUpperLeft = 7, SpvExecutionModeOriginLowerLeft = 8, SpvExecutionModeEarlyFragmentTests = 9, SpvExecutionModePointMode = 10, SpvExecutionModeXfb = 11, SpvExecutionModeDepthReplacing = 12, SpvExecutionModeDepthGreater = 14, SpvExecutionModeDepthLess = 15, SpvExecutionModeDepthUnchanged = 16, SpvExecutionModeLocalSize = 17, SpvExecutionModeLocalSizeHint = 18, SpvExecutionModeInputPoints = 19, SpvExecutionModeInputLines = 20, SpvExecutionModeInputLinesAdjacency = 21, SpvExecutionModeTriangles = 22, SpvExecutionModeInputTrianglesAdjacency = 23, SpvExecutionModeQuads = 24, SpvExecutionModeIsolines = 25, SpvExecutionModeOutputVertices = 26, SpvExecutionModeOutputPoints = 27, SpvExecutionModeOutputLineStrip = 28, SpvExecutionModeOutputTriangleStrip = 29, SpvExecutionModeVecTypeHint = 30, SpvExecutionModeContractionOff = 31, SpvExecutionModeInitializer = 33, SpvExecutionModeFinalizer = 34, SpvExecutionModeSubgroupSize = 35, SpvExecutionModeSubgroupsPerWorkgroup = 36, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; typedef enum SpvStorageClass_ { SpvStorageClassUniformConstant = 0, SpvStorageClassInput = 1, SpvStorageClassUniform = 2, SpvStorageClassOutput = 3, SpvStorageClassWorkgroup = 4, SpvStorageClassCrossWorkgroup = 5, SpvStorageClassPrivate = 6, SpvStorageClassFunction = 7, SpvStorageClassGeneric = 8, SpvStorageClassPushConstant = 9, SpvStorageClassAtomicCounter = 10, SpvStorageClassImage = 11, SpvStorageClassStorageBuffer = 12, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; typedef enum SpvDim_ { SpvDim1D = 0, SpvDim2D = 1, SpvDim3D = 2, SpvDimCube = 3, SpvDimRect = 4, SpvDimBuffer = 5, SpvDimSubpassData = 6, SpvDimMax = 0x7fffffff, } SpvDim; typedef enum SpvSamplerAddressingMode_ { SpvSamplerAddressingModeNone = 0, SpvSamplerAddressingModeClampToEdge = 1, SpvSamplerAddressingModeClamp = 2, SpvSamplerAddressingModeRepeat = 3, SpvSamplerAddressingModeRepeatMirrored = 4, SpvSamplerAddressingModeMax = 0x7fffffff, } SpvSamplerAddressingMode; typedef enum SpvSamplerFilterMode_ { SpvSamplerFilterModeNearest = 0, SpvSamplerFilterModeLinear = 1, SpvSamplerFilterModeMax = 0x7fffffff, } SpvSamplerFilterMode; typedef enum SpvImageFormat_ { SpvImageFormatUnknown = 0, SpvImageFormatRgba32f = 1, SpvImageFormatRgba16f = 2, SpvImageFormatR32f = 3, SpvImageFormatRgba8 = 4, SpvImageFormatRgba8Snorm = 5, SpvImageFormatRg32f = 6, SpvImageFormatRg16f = 7, SpvImageFormatR11fG11fB10f = 8, SpvImageFormatR16f = 9, SpvImageFormatRgba16 = 10, SpvImageFormatRgb10A2 = 11, SpvImageFormatRg16 = 12, SpvImageFormatRg8 = 13, SpvImageFormatR16 = 14, SpvImageFormatR8 = 15, SpvImageFormatRgba16Snorm = 16, SpvImageFormatRg16Snorm = 17, SpvImageFormatRg8Snorm = 18, SpvImageFormatR16Snorm = 19, SpvImageFormatR8Snorm = 20, SpvImageFormatRgba32i = 21, SpvImageFormatRgba16i = 22, SpvImageFormatRgba8i = 23, SpvImageFormatR32i = 24, SpvImageFormatRg32i = 25, SpvImageFormatRg16i = 26, SpvImageFormatRg8i = 27, SpvImageFormatR16i = 28, SpvImageFormatR8i = 29, SpvImageFormatRgba32ui = 30, SpvImageFormatRgba16ui = 31, SpvImageFormatRgba8ui = 32, SpvImageFormatR32ui = 33, SpvImageFormatRgb10a2ui = 34, SpvImageFormatRg32ui = 35, SpvImageFormatRg16ui = 36, SpvImageFormatRg8ui = 37, SpvImageFormatR16ui = 38, SpvImageFormatR8ui = 39, SpvImageFormatMax = 0x7fffffff, } SpvImageFormat; typedef enum SpvImageChannelOrder_ { SpvImageChannelOrderR = 0, SpvImageChannelOrderA = 1, SpvImageChannelOrderRG = 2, SpvImageChannelOrderRA = 3, SpvImageChannelOrderRGB = 4, SpvImageChannelOrderRGBA = 5, SpvImageChannelOrderBGRA = 6, SpvImageChannelOrderARGB = 7, SpvImageChannelOrderIntensity = 8, SpvImageChannelOrderLuminance = 9, SpvImageChannelOrderRx = 10, SpvImageChannelOrderRGx = 11, SpvImageChannelOrderRGBx = 12, SpvImageChannelOrderDepth = 13, SpvImageChannelOrderDepthStencil = 14, SpvImageChannelOrdersRGB = 15, SpvImageChannelOrdersRGBx = 16, SpvImageChannelOrdersRGBA = 17, SpvImageChannelOrdersBGRA = 18, SpvImageChannelOrderABGR = 19, SpvImageChannelOrderMax = 0x7fffffff, } SpvImageChannelOrder; typedef enum SpvImageChannelDataType_ { SpvImageChannelDataTypeSnormInt8 = 0, SpvImageChannelDataTypeSnormInt16 = 1, SpvImageChannelDataTypeUnormInt8 = 2, SpvImageChannelDataTypeUnormInt16 = 3, SpvImageChannelDataTypeUnormShort565 = 4, SpvImageChannelDataTypeUnormShort555 = 5, SpvImageChannelDataTypeUnormInt101010 = 6, SpvImageChannelDataTypeSignedInt8 = 7, SpvImageChannelDataTypeSignedInt16 = 8, SpvImageChannelDataTypeSignedInt32 = 9, SpvImageChannelDataTypeUnsignedInt8 = 10, SpvImageChannelDataTypeUnsignedInt16 = 11, SpvImageChannelDataTypeUnsignedInt32 = 12, SpvImageChannelDataTypeHalfFloat = 13, SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt101010_2 = 16, SpvImageChannelDataTypeMax = 0x7fffffff, } SpvImageChannelDataType; typedef enum SpvImageOperandsShift_ { SpvImageOperandsBiasShift = 0, SpvImageOperandsLodShift = 1, SpvImageOperandsGradShift = 2, SpvImageOperandsConstOffsetShift = 3, SpvImageOperandsOffsetShift = 4, SpvImageOperandsConstOffsetsShift = 5, SpvImageOperandsSampleShift = 6, SpvImageOperandsMinLodShift = 7, SpvImageOperandsMax = 0x7fffffff, } SpvImageOperandsShift; typedef enum SpvImageOperandsMask_ { SpvImageOperandsMaskNone = 0, SpvImageOperandsBiasMask = 0x00000001, SpvImageOperandsLodMask = 0x00000002, SpvImageOperandsGradMask = 0x00000004, SpvImageOperandsConstOffsetMask = 0x00000008, SpvImageOperandsOffsetMask = 0x00000010, SpvImageOperandsConstOffsetsMask = 0x00000020, SpvImageOperandsSampleMask = 0x00000040, SpvImageOperandsMinLodMask = 0x00000080, } SpvImageOperandsMask; typedef enum SpvFPFastMathModeShift_ { SpvFPFastMathModeNotNaNShift = 0, SpvFPFastMathModeNotInfShift = 1, SpvFPFastMathModeNSZShift = 2, SpvFPFastMathModeAllowRecipShift = 3, SpvFPFastMathModeFastShift = 4, SpvFPFastMathModeMax = 0x7fffffff, } SpvFPFastMathModeShift; typedef enum SpvFPFastMathModeMask_ { SpvFPFastMathModeMaskNone = 0, SpvFPFastMathModeNotNaNMask = 0x00000001, SpvFPFastMathModeNotInfMask = 0x00000002, SpvFPFastMathModeNSZMask = 0x00000004, SpvFPFastMathModeAllowRecipMask = 0x00000008, SpvFPFastMathModeFastMask = 0x00000010, } SpvFPFastMathModeMask; typedef enum SpvFPRoundingMode_ { SpvFPRoundingModeRTE = 0, SpvFPRoundingModeRTZ = 1, SpvFPRoundingModeRTP = 2, SpvFPRoundingModeRTN = 3, SpvFPRoundingModeMax = 0x7fffffff, } SpvFPRoundingMode; typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; typedef enum SpvAccessQualifier_ { SpvAccessQualifierReadOnly = 0, SpvAccessQualifierWriteOnly = 1, SpvAccessQualifierReadWrite = 2, SpvAccessQualifierMax = 0x7fffffff, } SpvAccessQualifier; typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeZext = 0, SpvFunctionParameterAttributeSext = 1, SpvFunctionParameterAttributeByVal = 2, SpvFunctionParameterAttributeSret = 3, SpvFunctionParameterAttributeNoAlias = 4, SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; typedef enum SpvDecoration_ { SpvDecorationRelaxedPrecision = 0, SpvDecorationSpecId = 1, SpvDecorationBlock = 2, SpvDecorationBufferBlock = 3, SpvDecorationRowMajor = 4, SpvDecorationColMajor = 5, SpvDecorationArrayStride = 6, SpvDecorationMatrixStride = 7, SpvDecorationGLSLShared = 8, SpvDecorationGLSLPacked = 9, SpvDecorationCPacked = 10, SpvDecorationBuiltIn = 11, SpvDecorationNoPerspective = 13, SpvDecorationFlat = 14, SpvDecorationPatch = 15, SpvDecorationCentroid = 16, SpvDecorationSample = 17, SpvDecorationInvariant = 18, SpvDecorationRestrict = 19, SpvDecorationAliased = 20, SpvDecorationVolatile = 21, SpvDecorationConstant = 22, SpvDecorationCoherent = 23, SpvDecorationNonWritable = 24, SpvDecorationNonReadable = 25, SpvDecorationUniform = 26, SpvDecorationSaturatedConversion = 28, SpvDecorationStream = 29, SpvDecorationLocation = 30, SpvDecorationComponent = 31, SpvDecorationIndex = 32, SpvDecorationBinding = 33, SpvDecorationDescriptorSet = 34, SpvDecorationOffset = 35, SpvDecorationXfbBuffer = 36, SpvDecorationXfbStride = 37, SpvDecorationFuncParamAttr = 38, SpvDecorationFPRoundingMode = 39, SpvDecorationFPFastMathMode = 40, SpvDecorationLinkageAttributes = 41, SpvDecorationNoContraction = 42, SpvDecorationInputAttachmentIndex = 43, SpvDecorationAlignment = 44, SpvDecorationMaxByteOffset = 45, SpvDecorationExplicitInterpAMD = 4999, SpvDecorationOverrideCoverageNV = 5248, SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, SpvDecorationSecondaryViewportRelativeNV = 5256, SpvDecorationHlslCounterBufferGOOGLE = 5634, SpvDecorationHlslSemanticGOOGLE = 5635, SpvDecorationMax = 0x7fffffff, } SpvDecoration; typedef enum SpvBuiltIn_ { SpvBuiltInPosition = 0, SpvBuiltInPointSize = 1, SpvBuiltInClipDistance = 3, SpvBuiltInCullDistance = 4, SpvBuiltInVertexId = 5, SpvBuiltInInstanceId = 6, SpvBuiltInPrimitiveId = 7, SpvBuiltInInvocationId = 8, SpvBuiltInLayer = 9, SpvBuiltInViewportIndex = 10, SpvBuiltInTessLevelOuter = 11, SpvBuiltInTessLevelInner = 12, SpvBuiltInTessCoord = 13, SpvBuiltInPatchVertices = 14, SpvBuiltInFragCoord = 15, SpvBuiltInPointCoord = 16, SpvBuiltInFrontFacing = 17, SpvBuiltInSampleId = 18, SpvBuiltInSamplePosition = 19, SpvBuiltInSampleMask = 20, SpvBuiltInFragDepth = 22, SpvBuiltInHelperInvocation = 23, SpvBuiltInNumWorkgroups = 24, SpvBuiltInWorkgroupSize = 25, SpvBuiltInWorkgroupId = 26, SpvBuiltInLocalInvocationId = 27, SpvBuiltInGlobalInvocationId = 28, SpvBuiltInLocalInvocationIndex = 29, SpvBuiltInWorkDim = 30, SpvBuiltInGlobalSize = 31, SpvBuiltInEnqueuedWorkgroupSize = 32, SpvBuiltInGlobalOffset = 33, SpvBuiltInGlobalLinearId = 34, SpvBuiltInSubgroupSize = 36, SpvBuiltInSubgroupMaxSize = 37, SpvBuiltInNumSubgroups = 38, SpvBuiltInNumEnqueuedSubgroups = 39, SpvBuiltInSubgroupId = 40, SpvBuiltInSubgroupLocalInvocationId = 41, SpvBuiltInVertexIndex = 42, SpvBuiltInInstanceIndex = 43, SpvBuiltInSubgroupEqMaskKHR = 4416, SpvBuiltInSubgroupGeMaskKHR = 4417, SpvBuiltInSubgroupGtMaskKHR = 4418, SpvBuiltInSubgroupLeMaskKHR = 4419, SpvBuiltInSubgroupLtMaskKHR = 4420, SpvBuiltInBaseVertex = 4424, SpvBuiltInBaseInstance = 4425, SpvBuiltInDrawIndex = 4426, SpvBuiltInDeviceIndex = 4438, SpvBuiltInViewIndex = 4440, SpvBuiltInBaryCoordNoPerspAMD = 4992, SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, SpvBuiltInBaryCoordSmoothAMD = 4995, SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInPositionPerViewNV = 5261, SpvBuiltInViewportMaskPerViewNV = 5262, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; typedef enum SpvSelectionControlShift_ { SpvSelectionControlFlattenShift = 0, SpvSelectionControlDontFlattenShift = 1, SpvSelectionControlMax = 0x7fffffff, } SpvSelectionControlShift; typedef enum SpvSelectionControlMask_ { SpvSelectionControlMaskNone = 0, SpvSelectionControlFlattenMask = 0x00000001, SpvSelectionControlDontFlattenMask = 0x00000002, } SpvSelectionControlMask; typedef enum SpvLoopControlShift_ { SpvLoopControlUnrollShift = 0, SpvLoopControlDontUnrollShift = 1, SpvLoopControlDependencyInfiniteShift = 2, SpvLoopControlDependencyLengthShift = 3, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; typedef enum SpvLoopControlMask_ { SpvLoopControlMaskNone = 0, SpvLoopControlUnrollMask = 0x00000001, SpvLoopControlDontUnrollMask = 0x00000002, SpvLoopControlDependencyInfiniteMask = 0x00000004, SpvLoopControlDependencyLengthMask = 0x00000008, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { SpvFunctionControlInlineShift = 0, SpvFunctionControlDontInlineShift = 1, SpvFunctionControlPureShift = 2, SpvFunctionControlConstShift = 3, SpvFunctionControlMax = 0x7fffffff, } SpvFunctionControlShift; typedef enum SpvFunctionControlMask_ { SpvFunctionControlMaskNone = 0, SpvFunctionControlInlineMask = 0x00000001, SpvFunctionControlDontInlineMask = 0x00000002, SpvFunctionControlPureMask = 0x00000004, SpvFunctionControlConstMask = 0x00000008, } SpvFunctionControlMask; typedef enum SpvMemorySemanticsShift_ { SpvMemorySemanticsAcquireShift = 1, SpvMemorySemanticsReleaseShift = 2, SpvMemorySemanticsAcquireReleaseShift = 3, SpvMemorySemanticsSequentiallyConsistentShift = 4, SpvMemorySemanticsUniformMemoryShift = 6, SpvMemorySemanticsSubgroupMemoryShift = 7, SpvMemorySemanticsWorkgroupMemoryShift = 8, SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, SpvMemorySemanticsAtomicCounterMemoryShift = 10, SpvMemorySemanticsImageMemoryShift = 11, SpvMemorySemanticsMax = 0x7fffffff, } SpvMemorySemanticsShift; typedef enum SpvMemorySemanticsMask_ { SpvMemorySemanticsMaskNone = 0, SpvMemorySemanticsAcquireMask = 0x00000002, SpvMemorySemanticsReleaseMask = 0x00000004, SpvMemorySemanticsAcquireReleaseMask = 0x00000008, SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, SpvMemorySemanticsUniformMemoryMask = 0x00000040, SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, SpvMemorySemanticsImageMemoryMask = 0x00000800, } SpvMemorySemanticsMask; typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessVolatileShift = 0, SpvMemoryAccessAlignedShift = 1, SpvMemoryAccessNontemporalShift = 2, SpvMemoryAccessMax = 0x7fffffff, } SpvMemoryAccessShift; typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMaskNone = 0, SpvMemoryAccessVolatileMask = 0x00000001, SpvMemoryAccessAlignedMask = 0x00000002, SpvMemoryAccessNontemporalMask = 0x00000004, } SpvMemoryAccessMask; typedef enum SpvScope_ { SpvScopeCrossDevice = 0, SpvScopeDevice = 1, SpvScopeWorkgroup = 2, SpvScopeSubgroup = 3, SpvScopeInvocation = 4, SpvScopeMax = 0x7fffffff, } SpvScope; typedef enum SpvGroupOperation_ { SpvGroupOperationReduce = 0, SpvGroupOperationInclusiveScan = 1, SpvGroupOperationExclusiveScan = 2, SpvGroupOperationMax = 0x7fffffff, } SpvGroupOperation; typedef enum SpvKernelEnqueueFlags_ { SpvKernelEnqueueFlagsNoWait = 0, SpvKernelEnqueueFlagsWaitKernel = 1, SpvKernelEnqueueFlagsWaitWorkGroup = 2, SpvKernelEnqueueFlagsMax = 0x7fffffff, } SpvKernelEnqueueFlags; typedef enum SpvKernelProfilingInfoShift_ { SpvKernelProfilingInfoCmdExecTimeShift = 0, SpvKernelProfilingInfoMax = 0x7fffffff, } SpvKernelProfilingInfoShift; typedef enum SpvKernelProfilingInfoMask_ { SpvKernelProfilingInfoMaskNone = 0, SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, } SpvKernelProfilingInfoMask; typedef enum SpvCapability_ { SpvCapabilityMatrix = 0, SpvCapabilityShader = 1, SpvCapabilityGeometry = 2, SpvCapabilityTessellation = 3, SpvCapabilityAddresses = 4, SpvCapabilityLinkage = 5, SpvCapabilityKernel = 6, SpvCapabilityVector16 = 7, SpvCapabilityFloat16Buffer = 8, SpvCapabilityFloat16 = 9, SpvCapabilityFloat64 = 10, SpvCapabilityInt64 = 11, SpvCapabilityInt64Atomics = 12, SpvCapabilityImageBasic = 13, SpvCapabilityImageReadWrite = 14, SpvCapabilityImageMipmap = 15, SpvCapabilityPipes = 17, SpvCapabilityGroups = 18, SpvCapabilityDeviceEnqueue = 19, SpvCapabilityLiteralSampler = 20, SpvCapabilityAtomicStorage = 21, SpvCapabilityInt16 = 22, SpvCapabilityTessellationPointSize = 23, SpvCapabilityGeometryPointSize = 24, SpvCapabilityImageGatherExtended = 25, SpvCapabilityStorageImageMultisample = 27, SpvCapabilityUniformBufferArrayDynamicIndexing = 28, SpvCapabilitySampledImageArrayDynamicIndexing = 29, SpvCapabilityStorageBufferArrayDynamicIndexing = 30, SpvCapabilityStorageImageArrayDynamicIndexing = 31, SpvCapabilityClipDistance = 32, SpvCapabilityCullDistance = 33, SpvCapabilityImageCubeArray = 34, SpvCapabilitySampleRateShading = 35, SpvCapabilityImageRect = 36, SpvCapabilitySampledRect = 37, SpvCapabilityGenericPointer = 38, SpvCapabilityInt8 = 39, SpvCapabilityInputAttachment = 40, SpvCapabilitySparseResidency = 41, SpvCapabilityMinLod = 42, SpvCapabilitySampled1D = 43, SpvCapabilityImage1D = 44, SpvCapabilitySampledCubeArray = 45, SpvCapabilitySampledBuffer = 46, SpvCapabilityImageBuffer = 47, SpvCapabilityImageMSArray = 48, SpvCapabilityStorageImageExtendedFormats = 49, SpvCapabilityImageQuery = 50, SpvCapabilityDerivativeControl = 51, SpvCapabilityInterpolationFunction = 52, SpvCapabilityTransformFeedback = 53, SpvCapabilityGeometryStreams = 54, SpvCapabilityStorageImageReadWithoutFormat = 55, SpvCapabilityStorageImageWriteWithoutFormat = 56, SpvCapabilityMultiViewport = 57, SpvCapabilitySubgroupDispatch = 58, SpvCapabilityNamedBarrier = 59, SpvCapabilityPipeStorage = 60, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, SpvCapabilitySubgroupVoteKHR = 4431, SpvCapabilityStorageBuffer16BitAccess = 4433, SpvCapabilityStorageUniformBufferBlock16 = 4433, SpvCapabilityStorageUniform16 = 4434, SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, SpvCapabilityStoragePushConstant16 = 4435, SpvCapabilityStorageInputOutput16 = 4436, SpvCapabilityDeviceGroup = 4437, SpvCapabilityMultiView = 4439, SpvCapabilityVariablePointersStorageBuffer = 4441, SpvCapabilityVariablePointers = 4442, SpvCapabilityAtomicStorageOps = 4445, SpvCapabilitySampleMaskPostDepthCoverage = 4447, SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityFragmentMaskAMD = 5010, SpvCapabilityStencilExportEXT = 5013, SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerNV = 5254, SpvCapabilityShaderViewportMaskNV = 5255, SpvCapabilityShaderStereoViewNV = 5259, SpvCapabilityPerViewAttributesNV = 5260, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilityMax = 0x7fffffff, } SpvCapability; typedef enum SpvOp_ { SpvOpNop = 0, SpvOpUndef = 1, SpvOpSourceContinued = 2, SpvOpSource = 3, SpvOpSourceExtension = 4, SpvOpName = 5, SpvOpMemberName = 6, SpvOpString = 7, SpvOpLine = 8, SpvOpExtension = 10, SpvOpExtInstImport = 11, SpvOpExtInst = 12, SpvOpMemoryModel = 14, SpvOpEntryPoint = 15, SpvOpExecutionMode = 16, SpvOpCapability = 17, SpvOpTypeVoid = 19, SpvOpTypeBool = 20, SpvOpTypeInt = 21, SpvOpTypeFloat = 22, SpvOpTypeVector = 23, SpvOpTypeMatrix = 24, SpvOpTypeImage = 25, SpvOpTypeSampler = 26, SpvOpTypeSampledImage = 27, SpvOpTypeArray = 28, SpvOpTypeRuntimeArray = 29, SpvOpTypeStruct = 30, SpvOpTypeOpaque = 31, SpvOpTypePointer = 32, SpvOpTypeFunction = 33, SpvOpTypeEvent = 34, SpvOpTypeDeviceEvent = 35, SpvOpTypeReserveId = 36, SpvOpTypeQueue = 37, SpvOpTypePipe = 38, SpvOpTypeForwardPointer = 39, SpvOpConstantTrue = 41, SpvOpConstantFalse = 42, SpvOpConstant = 43, SpvOpConstantComposite = 44, SpvOpConstantSampler = 45, SpvOpConstantNull = 46, SpvOpSpecConstantTrue = 48, SpvOpSpecConstantFalse = 49, SpvOpSpecConstant = 50, SpvOpSpecConstantComposite = 51, SpvOpSpecConstantOp = 52, SpvOpFunction = 54, SpvOpFunctionParameter = 55, SpvOpFunctionEnd = 56, SpvOpFunctionCall = 57, SpvOpVariable = 59, SpvOpImageTexelPointer = 60, SpvOpLoad = 61, SpvOpStore = 62, SpvOpCopyMemory = 63, SpvOpCopyMemorySized = 64, SpvOpAccessChain = 65, SpvOpInBoundsAccessChain = 66, SpvOpPtrAccessChain = 67, SpvOpArrayLength = 68, SpvOpGenericPtrMemSemantics = 69, SpvOpInBoundsPtrAccessChain = 70, SpvOpDecorate = 71, SpvOpMemberDecorate = 72, SpvOpDecorationGroup = 73, SpvOpGroupDecorate = 74, SpvOpGroupMemberDecorate = 75, SpvOpVectorExtractDynamic = 77, SpvOpVectorInsertDynamic = 78, SpvOpVectorShuffle = 79, SpvOpCompositeConstruct = 80, SpvOpCompositeExtract = 81, SpvOpCompositeInsert = 82, SpvOpCopyObject = 83, SpvOpTranspose = 84, SpvOpSampledImage = 86, SpvOpImageSampleImplicitLod = 87, SpvOpImageSampleExplicitLod = 88, SpvOpImageSampleDrefImplicitLod = 89, SpvOpImageSampleDrefExplicitLod = 90, SpvOpImageSampleProjImplicitLod = 91, SpvOpImageSampleProjExplicitLod = 92, SpvOpImageSampleProjDrefImplicitLod = 93, SpvOpImageSampleProjDrefExplicitLod = 94, SpvOpImageFetch = 95, SpvOpImageGather = 96, SpvOpImageDrefGather = 97, SpvOpImageRead = 98, SpvOpImageWrite = 99, SpvOpImage = 100, SpvOpImageQueryFormat = 101, SpvOpImageQueryOrder = 102, SpvOpImageQuerySizeLod = 103, SpvOpImageQuerySize = 104, SpvOpImageQueryLod = 105, SpvOpImageQueryLevels = 106, SpvOpImageQuerySamples = 107, SpvOpConvertFToU = 109, SpvOpConvertFToS = 110, SpvOpConvertSToF = 111, SpvOpConvertUToF = 112, SpvOpUConvert = 113, SpvOpSConvert = 114, SpvOpFConvert = 115, SpvOpQuantizeToF16 = 116, SpvOpConvertPtrToU = 117, SpvOpSatConvertSToU = 118, SpvOpSatConvertUToS = 119, SpvOpConvertUToPtr = 120, SpvOpPtrCastToGeneric = 121, SpvOpGenericCastToPtr = 122, SpvOpGenericCastToPtrExplicit = 123, SpvOpBitcast = 124, SpvOpSNegate = 126, SpvOpFNegate = 127, SpvOpIAdd = 128, SpvOpFAdd = 129, SpvOpISub = 130, SpvOpFSub = 131, SpvOpIMul = 132, SpvOpFMul = 133, SpvOpUDiv = 134, SpvOpSDiv = 135, SpvOpFDiv = 136, SpvOpUMod = 137, SpvOpSRem = 138, SpvOpSMod = 139, SpvOpFRem = 140, SpvOpFMod = 141, SpvOpVectorTimesScalar = 142, SpvOpMatrixTimesScalar = 143, SpvOpVectorTimesMatrix = 144, SpvOpMatrixTimesVector = 145, SpvOpMatrixTimesMatrix = 146, SpvOpOuterProduct = 147, SpvOpDot = 148, SpvOpIAddCarry = 149, SpvOpISubBorrow = 150, SpvOpUMulExtended = 151, SpvOpSMulExtended = 152, SpvOpAny = 154, SpvOpAll = 155, SpvOpIsNan = 156, SpvOpIsInf = 157, SpvOpIsFinite = 158, SpvOpIsNormal = 159, SpvOpSignBitSet = 160, SpvOpLessOrGreater = 161, SpvOpOrdered = 162, SpvOpUnordered = 163, SpvOpLogicalEqual = 164, SpvOpLogicalNotEqual = 165, SpvOpLogicalOr = 166, SpvOpLogicalAnd = 167, SpvOpLogicalNot = 168, SpvOpSelect = 169, SpvOpIEqual = 170, SpvOpINotEqual = 171, SpvOpUGreaterThan = 172, SpvOpSGreaterThan = 173, SpvOpUGreaterThanEqual = 174, SpvOpSGreaterThanEqual = 175, SpvOpULessThan = 176, SpvOpSLessThan = 177, SpvOpULessThanEqual = 178, SpvOpSLessThanEqual = 179, SpvOpFOrdEqual = 180, SpvOpFUnordEqual = 181, SpvOpFOrdNotEqual = 182, SpvOpFUnordNotEqual = 183, SpvOpFOrdLessThan = 184, SpvOpFUnordLessThan = 185, SpvOpFOrdGreaterThan = 186, SpvOpFUnordGreaterThan = 187, SpvOpFOrdLessThanEqual = 188, SpvOpFUnordLessThanEqual = 189, SpvOpFOrdGreaterThanEqual = 190, SpvOpFUnordGreaterThanEqual = 191, SpvOpShiftRightLogical = 194, SpvOpShiftRightArithmetic = 195, SpvOpShiftLeftLogical = 196, SpvOpBitwiseOr = 197, SpvOpBitwiseXor = 198, SpvOpBitwiseAnd = 199, SpvOpNot = 200, SpvOpBitFieldInsert = 201, SpvOpBitFieldSExtract = 202, SpvOpBitFieldUExtract = 203, SpvOpBitReverse = 204, SpvOpBitCount = 205, SpvOpDPdx = 207, SpvOpDPdy = 208, SpvOpFwidth = 209, SpvOpDPdxFine = 210, SpvOpDPdyFine = 211, SpvOpFwidthFine = 212, SpvOpDPdxCoarse = 213, SpvOpDPdyCoarse = 214, SpvOpFwidthCoarse = 215, SpvOpEmitVertex = 218, SpvOpEndPrimitive = 219, SpvOpEmitStreamVertex = 220, SpvOpEndStreamPrimitive = 221, SpvOpControlBarrier = 224, SpvOpMemoryBarrier = 225, SpvOpAtomicLoad = 227, SpvOpAtomicStore = 228, SpvOpAtomicExchange = 229, SpvOpAtomicCompareExchange = 230, SpvOpAtomicCompareExchangeWeak = 231, SpvOpAtomicIIncrement = 232, SpvOpAtomicIDecrement = 233, SpvOpAtomicIAdd = 234, SpvOpAtomicISub = 235, SpvOpAtomicSMin = 236, SpvOpAtomicUMin = 237, SpvOpAtomicSMax = 238, SpvOpAtomicUMax = 239, SpvOpAtomicAnd = 240, SpvOpAtomicOr = 241, SpvOpAtomicXor = 242, SpvOpPhi = 245, SpvOpLoopMerge = 246, SpvOpSelectionMerge = 247, SpvOpLabel = 248, SpvOpBranch = 249, SpvOpBranchConditional = 250, SpvOpSwitch = 251, SpvOpKill = 252, SpvOpReturn = 253, SpvOpReturnValue = 254, SpvOpUnreachable = 255, SpvOpLifetimeStart = 256, SpvOpLifetimeStop = 257, SpvOpGroupAsyncCopy = 259, SpvOpGroupWaitEvents = 260, SpvOpGroupAll = 261, SpvOpGroupAny = 262, SpvOpGroupBroadcast = 263, SpvOpGroupIAdd = 264, SpvOpGroupFAdd = 265, SpvOpGroupFMin = 266, SpvOpGroupUMin = 267, SpvOpGroupSMin = 268, SpvOpGroupFMax = 269, SpvOpGroupUMax = 270, SpvOpGroupSMax = 271, SpvOpReadPipe = 274, SpvOpWritePipe = 275, SpvOpReservedReadPipe = 276, SpvOpReservedWritePipe = 277, SpvOpReserveReadPipePackets = 278, SpvOpReserveWritePipePackets = 279, SpvOpCommitReadPipe = 280, SpvOpCommitWritePipe = 281, SpvOpIsValidReserveId = 282, SpvOpGetNumPipePackets = 283, SpvOpGetMaxPipePackets = 284, SpvOpGroupReserveReadPipePackets = 285, SpvOpGroupReserveWritePipePackets = 286, SpvOpGroupCommitReadPipe = 287, SpvOpGroupCommitWritePipe = 288, SpvOpEnqueueMarker = 291, SpvOpEnqueueKernel = 292, SpvOpGetKernelNDrangeSubGroupCount = 293, SpvOpGetKernelNDrangeMaxSubGroupSize = 294, SpvOpGetKernelWorkGroupSize = 295, SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, SpvOpRetainEvent = 297, SpvOpReleaseEvent = 298, SpvOpCreateUserEvent = 299, SpvOpIsValidEvent = 300, SpvOpSetUserEventStatus = 301, SpvOpCaptureEventProfilingInfo = 302, SpvOpGetDefaultQueue = 303, SpvOpBuildNDRange = 304, SpvOpImageSparseSampleImplicitLod = 305, SpvOpImageSparseSampleExplicitLod = 306, SpvOpImageSparseSampleDrefImplicitLod = 307, SpvOpImageSparseSampleDrefExplicitLod = 308, SpvOpImageSparseSampleProjImplicitLod = 309, SpvOpImageSparseSampleProjExplicitLod = 310, SpvOpImageSparseSampleProjDrefImplicitLod = 311, SpvOpImageSparseSampleProjDrefExplicitLod = 312, SpvOpImageSparseFetch = 313, SpvOpImageSparseGather = 314, SpvOpImageSparseDrefGather = 315, SpvOpImageSparseTexelsResident = 316, SpvOpNoLine = 317, SpvOpAtomicFlagTestAndSet = 318, SpvOpAtomicFlagClear = 319, SpvOpImageSparseRead = 320, SpvOpSizeOf = 321, SpvOpTypePipeStorage = 322, SpvOpConstantPipeStorage = 323, SpvOpCreatePipeFromPipeStorage = 324, SpvOpGetKernelLocalSizeForSubgroupCount = 325, SpvOpGetKernelMaxNumSubgroups = 326, SpvOpTypeNamedBarrier = 327, SpvOpNamedBarrierInitialize = 328, SpvOpMemoryNamedBarrier = 329, SpvOpModuleProcessed = 330, SpvOpDecorateId = 332, SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupFirstInvocationKHR = 4422, SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, SpvOpGroupUMinNonUniformAMD = 5003, SpvOpGroupSMinNonUniformAMD = 5004, SpvOpGroupFMaxNonUniformAMD = 5005, SpvOpGroupUMaxNonUniformAMD = 5006, SpvOpGroupSMaxNonUniformAMD = 5007, SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentFetchAMD = 5012, SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleUpINTEL = 5573, SpvOpSubgroupShuffleXorINTEL = 5574, SpvOpSubgroupBlockReadINTEL = 5575, SpvOpSubgroupBlockWriteINTEL = 5576, SpvOpSubgroupImageBlockReadINTEL = 5577, SpvOpSubgroupImageBlockWriteINTEL = 5578, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateStringGOOGLE = 5633, SpvOpMax = 0x7fffffff, } SpvOp; #endif // #ifndef spirv_H spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.hpp000066400000000000000000000760371463234063200222200ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10100 #define SPV_REVISION 8 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010100; static const unsigned int Revision = 8; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum SourceLanguage { SourceLanguageUnknown = 0, SourceLanguageESSL = 1, SourceLanguageGLSL = 2, SourceLanguageOpenCL_C = 3, SourceLanguageOpenCL_CPP = 4, SourceLanguageHLSL = 5, SourceLanguageMax = 0x7fffffff, }; enum ExecutionModel { ExecutionModelVertex = 0, ExecutionModelTessellationControl = 1, ExecutionModelTessellationEvaluation = 2, ExecutionModelGeometry = 3, ExecutionModelFragment = 4, ExecutionModelGLCompute = 5, ExecutionModelKernel = 6, ExecutionModelMax = 0x7fffffff, }; enum AddressingModel { AddressingModelLogical = 0, AddressingModelPhysical32 = 1, AddressingModelPhysical64 = 2, AddressingModelMax = 0x7fffffff, }; enum MemoryModel { MemoryModelSimple = 0, MemoryModelGLSL450 = 1, MemoryModelOpenCL = 2, MemoryModelMax = 0x7fffffff, }; enum ExecutionMode { ExecutionModeInvocations = 0, ExecutionModeSpacingEqual = 1, ExecutionModeSpacingFractionalEven = 2, ExecutionModeSpacingFractionalOdd = 3, ExecutionModeVertexOrderCw = 4, ExecutionModeVertexOrderCcw = 5, ExecutionModePixelCenterInteger = 6, ExecutionModeOriginUpperLeft = 7, ExecutionModeOriginLowerLeft = 8, ExecutionModeEarlyFragmentTests = 9, ExecutionModePointMode = 10, ExecutionModeXfb = 11, ExecutionModeDepthReplacing = 12, ExecutionModeDepthGreater = 14, ExecutionModeDepthLess = 15, ExecutionModeDepthUnchanged = 16, ExecutionModeLocalSize = 17, ExecutionModeLocalSizeHint = 18, ExecutionModeInputPoints = 19, ExecutionModeInputLines = 20, ExecutionModeInputLinesAdjacency = 21, ExecutionModeTriangles = 22, ExecutionModeInputTrianglesAdjacency = 23, ExecutionModeQuads = 24, ExecutionModeIsolines = 25, ExecutionModeOutputVertices = 26, ExecutionModeOutputPoints = 27, ExecutionModeOutputLineStrip = 28, ExecutionModeOutputTriangleStrip = 29, ExecutionModeVecTypeHint = 30, ExecutionModeContractionOff = 31, ExecutionModeInitializer = 33, ExecutionModeFinalizer = 34, ExecutionModeSubgroupSize = 35, ExecutionModeSubgroupsPerWorkgroup = 36, ExecutionModePostDepthCoverage = 4446, ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeMax = 0x7fffffff, }; enum StorageClass { StorageClassUniformConstant = 0, StorageClassInput = 1, StorageClassUniform = 2, StorageClassOutput = 3, StorageClassWorkgroup = 4, StorageClassCrossWorkgroup = 5, StorageClassPrivate = 6, StorageClassFunction = 7, StorageClassGeneric = 8, StorageClassPushConstant = 9, StorageClassAtomicCounter = 10, StorageClassImage = 11, StorageClassStorageBuffer = 12, StorageClassMax = 0x7fffffff, }; enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, DimCube = 3, DimRect = 4, DimBuffer = 5, DimSubpassData = 6, DimMax = 0x7fffffff, }; enum SamplerAddressingMode { SamplerAddressingModeNone = 0, SamplerAddressingModeClampToEdge = 1, SamplerAddressingModeClamp = 2, SamplerAddressingModeRepeat = 3, SamplerAddressingModeRepeatMirrored = 4, SamplerAddressingModeMax = 0x7fffffff, }; enum SamplerFilterMode { SamplerFilterModeNearest = 0, SamplerFilterModeLinear = 1, SamplerFilterModeMax = 0x7fffffff, }; enum ImageFormat { ImageFormatUnknown = 0, ImageFormatRgba32f = 1, ImageFormatRgba16f = 2, ImageFormatR32f = 3, ImageFormatRgba8 = 4, ImageFormatRgba8Snorm = 5, ImageFormatRg32f = 6, ImageFormatRg16f = 7, ImageFormatR11fG11fB10f = 8, ImageFormatR16f = 9, ImageFormatRgba16 = 10, ImageFormatRgb10A2 = 11, ImageFormatRg16 = 12, ImageFormatRg8 = 13, ImageFormatR16 = 14, ImageFormatR8 = 15, ImageFormatRgba16Snorm = 16, ImageFormatRg16Snorm = 17, ImageFormatRg8Snorm = 18, ImageFormatR16Snorm = 19, ImageFormatR8Snorm = 20, ImageFormatRgba32i = 21, ImageFormatRgba16i = 22, ImageFormatRgba8i = 23, ImageFormatR32i = 24, ImageFormatRg32i = 25, ImageFormatRg16i = 26, ImageFormatRg8i = 27, ImageFormatR16i = 28, ImageFormatR8i = 29, ImageFormatRgba32ui = 30, ImageFormatRgba16ui = 31, ImageFormatRgba8ui = 32, ImageFormatR32ui = 33, ImageFormatRgb10a2ui = 34, ImageFormatRg32ui = 35, ImageFormatRg16ui = 36, ImageFormatRg8ui = 37, ImageFormatR16ui = 38, ImageFormatR8ui = 39, ImageFormatMax = 0x7fffffff, }; enum ImageChannelOrder { ImageChannelOrderR = 0, ImageChannelOrderA = 1, ImageChannelOrderRG = 2, ImageChannelOrderRA = 3, ImageChannelOrderRGB = 4, ImageChannelOrderRGBA = 5, ImageChannelOrderBGRA = 6, ImageChannelOrderARGB = 7, ImageChannelOrderIntensity = 8, ImageChannelOrderLuminance = 9, ImageChannelOrderRx = 10, ImageChannelOrderRGx = 11, ImageChannelOrderRGBx = 12, ImageChannelOrderDepth = 13, ImageChannelOrderDepthStencil = 14, ImageChannelOrdersRGB = 15, ImageChannelOrdersRGBx = 16, ImageChannelOrdersRGBA = 17, ImageChannelOrdersBGRA = 18, ImageChannelOrderABGR = 19, ImageChannelOrderMax = 0x7fffffff, }; enum ImageChannelDataType { ImageChannelDataTypeSnormInt8 = 0, ImageChannelDataTypeSnormInt16 = 1, ImageChannelDataTypeUnormInt8 = 2, ImageChannelDataTypeUnormInt16 = 3, ImageChannelDataTypeUnormShort565 = 4, ImageChannelDataTypeUnormShort555 = 5, ImageChannelDataTypeUnormInt101010 = 6, ImageChannelDataTypeSignedInt8 = 7, ImageChannelDataTypeSignedInt16 = 8, ImageChannelDataTypeSignedInt32 = 9, ImageChannelDataTypeUnsignedInt8 = 10, ImageChannelDataTypeUnsignedInt16 = 11, ImageChannelDataTypeUnsignedInt32 = 12, ImageChannelDataTypeHalfFloat = 13, ImageChannelDataTypeFloat = 14, ImageChannelDataTypeUnormInt24 = 15, ImageChannelDataTypeUnormInt101010_2 = 16, ImageChannelDataTypeMax = 0x7fffffff, }; enum ImageOperandsShift { ImageOperandsBiasShift = 0, ImageOperandsLodShift = 1, ImageOperandsGradShift = 2, ImageOperandsConstOffsetShift = 3, ImageOperandsOffsetShift = 4, ImageOperandsConstOffsetsShift = 5, ImageOperandsSampleShift = 6, ImageOperandsMinLodShift = 7, ImageOperandsMax = 0x7fffffff, }; enum ImageOperandsMask { ImageOperandsMaskNone = 0, ImageOperandsBiasMask = 0x00000001, ImageOperandsLodMask = 0x00000002, ImageOperandsGradMask = 0x00000004, ImageOperandsConstOffsetMask = 0x00000008, ImageOperandsOffsetMask = 0x00000010, ImageOperandsConstOffsetsMask = 0x00000020, ImageOperandsSampleMask = 0x00000040, ImageOperandsMinLodMask = 0x00000080, }; enum FPFastMathModeShift { FPFastMathModeNotNaNShift = 0, FPFastMathModeNotInfShift = 1, FPFastMathModeNSZShift = 2, FPFastMathModeAllowRecipShift = 3, FPFastMathModeFastShift = 4, FPFastMathModeMax = 0x7fffffff, }; enum FPFastMathModeMask { FPFastMathModeMaskNone = 0, FPFastMathModeNotNaNMask = 0x00000001, FPFastMathModeNotInfMask = 0x00000002, FPFastMathModeNSZMask = 0x00000004, FPFastMathModeAllowRecipMask = 0x00000008, FPFastMathModeFastMask = 0x00000010, }; enum FPRoundingMode { FPRoundingModeRTE = 0, FPRoundingModeRTZ = 1, FPRoundingModeRTP = 2, FPRoundingModeRTN = 3, FPRoundingModeMax = 0x7fffffff, }; enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, LinkageTypeMax = 0x7fffffff, }; enum AccessQualifier { AccessQualifierReadOnly = 0, AccessQualifierWriteOnly = 1, AccessQualifierReadWrite = 2, AccessQualifierMax = 0x7fffffff, }; enum FunctionParameterAttribute { FunctionParameterAttributeZext = 0, FunctionParameterAttributeSext = 1, FunctionParameterAttributeByVal = 2, FunctionParameterAttributeSret = 3, FunctionParameterAttributeNoAlias = 4, FunctionParameterAttributeNoCapture = 5, FunctionParameterAttributeNoWrite = 6, FunctionParameterAttributeNoReadWrite = 7, FunctionParameterAttributeMax = 0x7fffffff, }; enum Decoration { DecorationRelaxedPrecision = 0, DecorationSpecId = 1, DecorationBlock = 2, DecorationBufferBlock = 3, DecorationRowMajor = 4, DecorationColMajor = 5, DecorationArrayStride = 6, DecorationMatrixStride = 7, DecorationGLSLShared = 8, DecorationGLSLPacked = 9, DecorationCPacked = 10, DecorationBuiltIn = 11, DecorationNoPerspective = 13, DecorationFlat = 14, DecorationPatch = 15, DecorationCentroid = 16, DecorationSample = 17, DecorationInvariant = 18, DecorationRestrict = 19, DecorationAliased = 20, DecorationVolatile = 21, DecorationConstant = 22, DecorationCoherent = 23, DecorationNonWritable = 24, DecorationNonReadable = 25, DecorationUniform = 26, DecorationSaturatedConversion = 28, DecorationStream = 29, DecorationLocation = 30, DecorationComponent = 31, DecorationIndex = 32, DecorationBinding = 33, DecorationDescriptorSet = 34, DecorationOffset = 35, DecorationXfbBuffer = 36, DecorationXfbStride = 37, DecorationFuncParamAttr = 38, DecorationFPRoundingMode = 39, DecorationFPFastMathMode = 40, DecorationLinkageAttributes = 41, DecorationNoContraction = 42, DecorationInputAttachmentIndex = 43, DecorationAlignment = 44, DecorationMaxByteOffset = 45, DecorationExplicitInterpAMD = 4999, DecorationOverrideCoverageNV = 5248, DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, DecorationSecondaryViewportRelativeNV = 5256, DecorationHlslCounterBufferGOOGLE = 5634, DecorationHlslSemanticGOOGLE = 5635, DecorationMax = 0x7fffffff, }; enum BuiltIn { BuiltInPosition = 0, BuiltInPointSize = 1, BuiltInClipDistance = 3, BuiltInCullDistance = 4, BuiltInVertexId = 5, BuiltInInstanceId = 6, BuiltInPrimitiveId = 7, BuiltInInvocationId = 8, BuiltInLayer = 9, BuiltInViewportIndex = 10, BuiltInTessLevelOuter = 11, BuiltInTessLevelInner = 12, BuiltInTessCoord = 13, BuiltInPatchVertices = 14, BuiltInFragCoord = 15, BuiltInPointCoord = 16, BuiltInFrontFacing = 17, BuiltInSampleId = 18, BuiltInSamplePosition = 19, BuiltInSampleMask = 20, BuiltInFragDepth = 22, BuiltInHelperInvocation = 23, BuiltInNumWorkgroups = 24, BuiltInWorkgroupSize = 25, BuiltInWorkgroupId = 26, BuiltInLocalInvocationId = 27, BuiltInGlobalInvocationId = 28, BuiltInLocalInvocationIndex = 29, BuiltInWorkDim = 30, BuiltInGlobalSize = 31, BuiltInEnqueuedWorkgroupSize = 32, BuiltInGlobalOffset = 33, BuiltInGlobalLinearId = 34, BuiltInSubgroupSize = 36, BuiltInSubgroupMaxSize = 37, BuiltInNumSubgroups = 38, BuiltInNumEnqueuedSubgroups = 39, BuiltInSubgroupId = 40, BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, BuiltInSubgroupEqMaskKHR = 4416, BuiltInSubgroupGeMaskKHR = 4417, BuiltInSubgroupGtMaskKHR = 4418, BuiltInSubgroupLeMaskKHR = 4419, BuiltInSubgroupLtMaskKHR = 4420, BuiltInBaseVertex = 4424, BuiltInBaseInstance = 4425, BuiltInDrawIndex = 4426, BuiltInDeviceIndex = 4438, BuiltInViewIndex = 4440, BuiltInBaryCoordNoPerspAMD = 4992, BuiltInBaryCoordNoPerspCentroidAMD = 4993, BuiltInBaryCoordNoPerspSampleAMD = 4994, BuiltInBaryCoordSmoothAMD = 4995, BuiltInBaryCoordSmoothCentroidAMD = 4996, BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordPullModelAMD = 4998, BuiltInFragStencilRefEXT = 5014, BuiltInViewportMaskNV = 5253, BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryViewportMaskNV = 5258, BuiltInPositionPerViewNV = 5261, BuiltInViewportMaskPerViewNV = 5262, BuiltInMax = 0x7fffffff, }; enum SelectionControlShift { SelectionControlFlattenShift = 0, SelectionControlDontFlattenShift = 1, SelectionControlMax = 0x7fffffff, }; enum SelectionControlMask { SelectionControlMaskNone = 0, SelectionControlFlattenMask = 0x00000001, SelectionControlDontFlattenMask = 0x00000002, }; enum LoopControlShift { LoopControlUnrollShift = 0, LoopControlDontUnrollShift = 1, LoopControlDependencyInfiniteShift = 2, LoopControlDependencyLengthShift = 3, LoopControlMax = 0x7fffffff, }; enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, LoopControlDependencyInfiniteMask = 0x00000004, LoopControlDependencyLengthMask = 0x00000008, }; enum FunctionControlShift { FunctionControlInlineShift = 0, FunctionControlDontInlineShift = 1, FunctionControlPureShift = 2, FunctionControlConstShift = 3, FunctionControlMax = 0x7fffffff, }; enum FunctionControlMask { FunctionControlMaskNone = 0, FunctionControlInlineMask = 0x00000001, FunctionControlDontInlineMask = 0x00000002, FunctionControlPureMask = 0x00000004, FunctionControlConstMask = 0x00000008, }; enum MemorySemanticsShift { MemorySemanticsAcquireShift = 1, MemorySemanticsReleaseShift = 2, MemorySemanticsAcquireReleaseShift = 3, MemorySemanticsSequentiallyConsistentShift = 4, MemorySemanticsUniformMemoryShift = 6, MemorySemanticsSubgroupMemoryShift = 7, MemorySemanticsWorkgroupMemoryShift = 8, MemorySemanticsCrossWorkgroupMemoryShift = 9, MemorySemanticsAtomicCounterMemoryShift = 10, MemorySemanticsImageMemoryShift = 11, MemorySemanticsMax = 0x7fffffff, }; enum MemorySemanticsMask { MemorySemanticsMaskNone = 0, MemorySemanticsAcquireMask = 0x00000002, MemorySemanticsReleaseMask = 0x00000004, MemorySemanticsAcquireReleaseMask = 0x00000008, MemorySemanticsSequentiallyConsistentMask = 0x00000010, MemorySemanticsUniformMemoryMask = 0x00000040, MemorySemanticsSubgroupMemoryMask = 0x00000080, MemorySemanticsWorkgroupMemoryMask = 0x00000100, MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, MemorySemanticsAtomicCounterMemoryMask = 0x00000400, MemorySemanticsImageMemoryMask = 0x00000800, }; enum MemoryAccessShift { MemoryAccessVolatileShift = 0, MemoryAccessAlignedShift = 1, MemoryAccessNontemporalShift = 2, MemoryAccessMax = 0x7fffffff, }; enum MemoryAccessMask { MemoryAccessMaskNone = 0, MemoryAccessVolatileMask = 0x00000001, MemoryAccessAlignedMask = 0x00000002, MemoryAccessNontemporalMask = 0x00000004, }; enum Scope { ScopeCrossDevice = 0, ScopeDevice = 1, ScopeWorkgroup = 2, ScopeSubgroup = 3, ScopeInvocation = 4, ScopeMax = 0x7fffffff, }; enum GroupOperation { GroupOperationReduce = 0, GroupOperationInclusiveScan = 1, GroupOperationExclusiveScan = 2, GroupOperationMax = 0x7fffffff, }; enum KernelEnqueueFlags { KernelEnqueueFlagsNoWait = 0, KernelEnqueueFlagsWaitKernel = 1, KernelEnqueueFlagsWaitWorkGroup = 2, KernelEnqueueFlagsMax = 0x7fffffff, }; enum KernelProfilingInfoShift { KernelProfilingInfoCmdExecTimeShift = 0, KernelProfilingInfoMax = 0x7fffffff, }; enum KernelProfilingInfoMask { KernelProfilingInfoMaskNone = 0, KernelProfilingInfoCmdExecTimeMask = 0x00000001, }; enum Capability { CapabilityMatrix = 0, CapabilityShader = 1, CapabilityGeometry = 2, CapabilityTessellation = 3, CapabilityAddresses = 4, CapabilityLinkage = 5, CapabilityKernel = 6, CapabilityVector16 = 7, CapabilityFloat16Buffer = 8, CapabilityFloat16 = 9, CapabilityFloat64 = 10, CapabilityInt64 = 11, CapabilityInt64Atomics = 12, CapabilityImageBasic = 13, CapabilityImageReadWrite = 14, CapabilityImageMipmap = 15, CapabilityPipes = 17, CapabilityGroups = 18, CapabilityDeviceEnqueue = 19, CapabilityLiteralSampler = 20, CapabilityAtomicStorage = 21, CapabilityInt16 = 22, CapabilityTessellationPointSize = 23, CapabilityGeometryPointSize = 24, CapabilityImageGatherExtended = 25, CapabilityStorageImageMultisample = 27, CapabilityUniformBufferArrayDynamicIndexing = 28, CapabilitySampledImageArrayDynamicIndexing = 29, CapabilityStorageBufferArrayDynamicIndexing = 30, CapabilityStorageImageArrayDynamicIndexing = 31, CapabilityClipDistance = 32, CapabilityCullDistance = 33, CapabilityImageCubeArray = 34, CapabilitySampleRateShading = 35, CapabilityImageRect = 36, CapabilitySampledRect = 37, CapabilityGenericPointer = 38, CapabilityInt8 = 39, CapabilityInputAttachment = 40, CapabilitySparseResidency = 41, CapabilityMinLod = 42, CapabilitySampled1D = 43, CapabilityImage1D = 44, CapabilitySampledCubeArray = 45, CapabilitySampledBuffer = 46, CapabilityImageBuffer = 47, CapabilityImageMSArray = 48, CapabilityStorageImageExtendedFormats = 49, CapabilityImageQuery = 50, CapabilityDerivativeControl = 51, CapabilityInterpolationFunction = 52, CapabilityTransformFeedback = 53, CapabilityGeometryStreams = 54, CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, CapabilitySubgroupDispatch = 58, CapabilityNamedBarrier = 59, CapabilityPipeStorage = 60, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, CapabilitySubgroupVoteKHR = 4431, CapabilityStorageBuffer16BitAccess = 4433, CapabilityStorageUniformBufferBlock16 = 4433, CapabilityStorageUniform16 = 4434, CapabilityUniformAndStorageBuffer16BitAccess = 4434, CapabilityStoragePushConstant16 = 4435, CapabilityStorageInputOutput16 = 4436, CapabilityDeviceGroup = 4437, CapabilityMultiView = 4439, CapabilityVariablePointersStorageBuffer = 4441, CapabilityVariablePointers = 4442, CapabilityAtomicStorageOps = 4445, CapabilitySampleMaskPostDepthCoverage = 4447, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, CapabilityStencilExportEXT = 5013, CapabilityImageReadWriteLodAMD = 5015, CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilityGeometryShaderPassthroughNV = 5251, CapabilityShaderViewportIndexLayerEXT = 5254, CapabilityShaderViewportIndexLayerNV = 5254, CapabilityShaderViewportMaskNV = 5255, CapabilityShaderStereoViewNV = 5259, CapabilityPerViewAttributesNV = 5260, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilityMax = 0x7fffffff, }; enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, OpMax = 0x7fffffff, }; // Overload operator| for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.hpp11000066400000000000000000000627471463234063200223650ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10100 #define SPV_REVISION 8 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010100; static const unsigned int Revision = 8; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum class SourceLanguage : unsigned { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, Max = 0x7fffffff, }; enum class ExecutionModel : unsigned { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, Max = 0x7fffffff, }; enum class AddressingModel : unsigned { Logical = 0, Physical32 = 1, Physical64 = 2, Max = 0x7fffffff, }; enum class MemoryModel : unsigned { Simple = 0, GLSL450 = 1, OpenCL = 2, Max = 0x7fffffff, }; enum class ExecutionMode : unsigned { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, Max = 0x7fffffff, }; enum class StorageClass : unsigned { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, Max = 0x7fffffff, }; enum class Dim : unsigned { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, Max = 0x7fffffff, }; enum class SamplerAddressingMode : unsigned { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, Max = 0x7fffffff, }; enum class SamplerFilterMode : unsigned { Nearest = 0, Linear = 1, Max = 0x7fffffff, }; enum class ImageFormat : unsigned { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, Max = 0x7fffffff, }; enum class ImageChannelOrder : unsigned { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, Max = 0x7fffffff, }; enum class ImageChannelDataType : unsigned { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, Max = 0x7fffffff, }; enum class ImageOperandsShift : unsigned { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, Max = 0x7fffffff, }; enum class ImageOperandsMask : unsigned { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, }; enum class FPFastMathModeShift : unsigned { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, Max = 0x7fffffff, }; enum class FPFastMathModeMask : unsigned { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, }; enum class FPRoundingMode : unsigned { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, Max = 0x7fffffff, }; enum class LinkageType : unsigned { Export = 0, Import = 1, Max = 0x7fffffff, }; enum class AccessQualifier : unsigned { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, Max = 0x7fffffff, }; enum class FunctionParameterAttribute : unsigned { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, Max = 0x7fffffff, }; enum class Decoration : unsigned { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, Max = 0x7fffffff, }; enum class BuiltIn : unsigned { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, Max = 0x7fffffff, }; enum class SelectionControlShift : unsigned { Flatten = 0, DontFlatten = 1, Max = 0x7fffffff, }; enum class SelectionControlMask : unsigned { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }; enum class LoopControlShift : unsigned { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, Max = 0x7fffffff, }; enum class LoopControlMask : unsigned { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, }; enum class FunctionControlShift : unsigned { Inline = 0, DontInline = 1, Pure = 2, Const = 3, Max = 0x7fffffff, }; enum class FunctionControlMask : unsigned { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, }; enum class MemorySemanticsShift : unsigned { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, Max = 0x7fffffff, }; enum class MemorySemanticsMask : unsigned { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, }; enum class MemoryAccessShift : unsigned { Volatile = 0, Aligned = 1, Nontemporal = 2, Max = 0x7fffffff, }; enum class MemoryAccessMask : unsigned { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, }; enum class Scope : unsigned { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, Max = 0x7fffffff, }; enum class GroupOperation : unsigned { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, Max = 0x7fffffff, }; enum class KernelEnqueueFlags : unsigned { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, Max = 0x7fffffff, }; enum class KernelProfilingInfoShift : unsigned { CmdExecTime = 0, Max = 0x7fffffff, }; enum class KernelProfilingInfoMask : unsigned { MaskNone = 0, CmdExecTime = 0x00000001, }; enum class Capability : unsigned { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, Max = 0x7fffffff, }; enum class Op : unsigned { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, Max = 0x7fffffff, }; // Overload operator| for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.json000066400000000000000000001161711463234063200223740ustar00rootroot00000000000000{ "spv": { "meta": { "Comment": [ [ "Copyright (c) 2014-2018 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], [ "This header is automatically generated by the same tool that creates", "the Binary Section of the SPIR-V specification." ], [ "Enumeration tokens for SPIR-V, in various styles:", " C, C++, C++11, JSON, Lua, Python", "", "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL", "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL", "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL", "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL", "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']", "", "Some tokens act like mask values, which can be OR'd together,", "while others are mutually exclusive. The mask-like ones have", "\"Mask\" in their name, and a parallel enum that has the shift", "amount (1 << x) for each corresponding enumerant." ] ], "MagicNumber": 119734787, "Version": 65792, "Revision": 8, "OpCodeMask": 65535, "WordCountShift": 16 }, "enum": [ { "Name": "SourceLanguage", "Type": "Value", "Values": { "Unknown": 0, "ESSL": 1, "GLSL": 2, "OpenCL_C": 3, "OpenCL_CPP": 4, "HLSL": 5 } }, { "Name": "ExecutionModel", "Type": "Value", "Values": { "Vertex": 0, "TessellationControl": 1, "TessellationEvaluation": 2, "Geometry": 3, "Fragment": 4, "GLCompute": 5, "Kernel": 6 } }, { "Name": "AddressingModel", "Type": "Value", "Values": { "Logical": 0, "Physical32": 1, "Physical64": 2 } }, { "Name": "MemoryModel", "Type": "Value", "Values": { "Simple": 0, "GLSL450": 1, "OpenCL": 2 } }, { "Name": "ExecutionMode", "Type": "Value", "Values": { "Invocations": 0, "SpacingEqual": 1, "SpacingFractionalEven": 2, "SpacingFractionalOdd": 3, "VertexOrderCw": 4, "VertexOrderCcw": 5, "PixelCenterInteger": 6, "OriginUpperLeft": 7, "OriginLowerLeft": 8, "EarlyFragmentTests": 9, "PointMode": 10, "Xfb": 11, "DepthReplacing": 12, "DepthGreater": 14, "DepthLess": 15, "DepthUnchanged": 16, "LocalSize": 17, "LocalSizeHint": 18, "InputPoints": 19, "InputLines": 20, "InputLinesAdjacency": 21, "Triangles": 22, "InputTrianglesAdjacency": 23, "Quads": 24, "Isolines": 25, "OutputVertices": 26, "OutputPoints": 27, "OutputLineStrip": 28, "OutputTriangleStrip": 29, "VecTypeHint": 30, "ContractionOff": 31, "Initializer": 33, "Finalizer": 34, "SubgroupSize": 35, "SubgroupsPerWorkgroup": 36, "PostDepthCoverage": 4446, "StencilRefReplacingEXT": 5027 } }, { "Name": "StorageClass", "Type": "Value", "Values": { "UniformConstant": 0, "Input": 1, "Uniform": 2, "Output": 3, "Workgroup": 4, "CrossWorkgroup": 5, "Private": 6, "Function": 7, "Generic": 8, "PushConstant": 9, "AtomicCounter": 10, "Image": 11, "StorageBuffer": 12 } }, { "Name": "Dim", "Type": "Value", "Values": { "Dim1D": 0, "Dim2D": 1, "Dim3D": 2, "Cube": 3, "Rect": 4, "Buffer": 5, "SubpassData": 6 } }, { "Name": "SamplerAddressingMode", "Type": "Value", "Values": { "None": 0, "ClampToEdge": 1, "Clamp": 2, "Repeat": 3, "RepeatMirrored": 4 } }, { "Name": "SamplerFilterMode", "Type": "Value", "Values": { "Nearest": 0, "Linear": 1 } }, { "Name": "ImageFormat", "Type": "Value", "Values": { "Unknown": 0, "Rgba32f": 1, "Rgba16f": 2, "R32f": 3, "Rgba8": 4, "Rgba8Snorm": 5, "Rg32f": 6, "Rg16f": 7, "R11fG11fB10f": 8, "R16f": 9, "Rgba16": 10, "Rgb10A2": 11, "Rg16": 12, "Rg8": 13, "R16": 14, "R8": 15, "Rgba16Snorm": 16, "Rg16Snorm": 17, "Rg8Snorm": 18, "R16Snorm": 19, "R8Snorm": 20, "Rgba32i": 21, "Rgba16i": 22, "Rgba8i": 23, "R32i": 24, "Rg32i": 25, "Rg16i": 26, "Rg8i": 27, "R16i": 28, "R8i": 29, "Rgba32ui": 30, "Rgba16ui": 31, "Rgba8ui": 32, "R32ui": 33, "Rgb10a2ui": 34, "Rg32ui": 35, "Rg16ui": 36, "Rg8ui": 37, "R16ui": 38, "R8ui": 39 } }, { "Name": "ImageChannelOrder", "Type": "Value", "Values": { "R": 0, "A": 1, "RG": 2, "RA": 3, "RGB": 4, "RGBA": 5, "BGRA": 6, "ARGB": 7, "Intensity": 8, "Luminance": 9, "Rx": 10, "RGx": 11, "RGBx": 12, "Depth": 13, "DepthStencil": 14, "sRGB": 15, "sRGBx": 16, "sRGBA": 17, "sBGRA": 18, "ABGR": 19 } }, { "Name": "ImageChannelDataType", "Type": "Value", "Values": { "SnormInt8": 0, "SnormInt16": 1, "UnormInt8": 2, "UnormInt16": 3, "UnormShort565": 4, "UnormShort555": 5, "UnormInt101010": 6, "SignedInt8": 7, "SignedInt16": 8, "SignedInt32": 9, "UnsignedInt8": 10, "UnsignedInt16": 11, "UnsignedInt32": 12, "HalfFloat": 13, "Float": 14, "UnormInt24": 15, "UnormInt101010_2": 16 } }, { "Name": "ImageOperands", "Type": "Bit", "Values": { "Bias": 0, "Lod": 1, "Grad": 2, "ConstOffset": 3, "Offset": 4, "ConstOffsets": 5, "Sample": 6, "MinLod": 7 } }, { "Name": "FPFastMathMode", "Type": "Bit", "Values": { "NotNaN": 0, "NotInf": 1, "NSZ": 2, "AllowRecip": 3, "Fast": 4 } }, { "Name": "FPRoundingMode", "Type": "Value", "Values": { "RTE": 0, "RTZ": 1, "RTP": 2, "RTN": 3 } }, { "Name": "LinkageType", "Type": "Value", "Values": { "Export": 0, "Import": 1 } }, { "Name": "AccessQualifier", "Type": "Value", "Values": { "ReadOnly": 0, "WriteOnly": 1, "ReadWrite": 2 } }, { "Name": "FunctionParameterAttribute", "Type": "Value", "Values": { "Zext": 0, "Sext": 1, "ByVal": 2, "Sret": 3, "NoAlias": 4, "NoCapture": 5, "NoWrite": 6, "NoReadWrite": 7 } }, { "Name": "Decoration", "Type": "Value", "Values": { "RelaxedPrecision": 0, "SpecId": 1, "Block": 2, "BufferBlock": 3, "RowMajor": 4, "ColMajor": 5, "ArrayStride": 6, "MatrixStride": 7, "GLSLShared": 8, "GLSLPacked": 9, "CPacked": 10, "BuiltIn": 11, "NoPerspective": 13, "Flat": 14, "Patch": 15, "Centroid": 16, "Sample": 17, "Invariant": 18, "Restrict": 19, "Aliased": 20, "Volatile": 21, "Constant": 22, "Coherent": 23, "NonWritable": 24, "NonReadable": 25, "Uniform": 26, "SaturatedConversion": 28, "Stream": 29, "Location": 30, "Component": 31, "Index": 32, "Binding": 33, "DescriptorSet": 34, "Offset": 35, "XfbBuffer": 36, "XfbStride": 37, "FuncParamAttr": 38, "FPRoundingMode": 39, "FPFastMathMode": 40, "LinkageAttributes": 41, "NoContraction": 42, "InputAttachmentIndex": 43, "Alignment": 44, "MaxByteOffset": 45, "ExplicitInterpAMD": 4999, "OverrideCoverageNV": 5248, "PassthroughNV": 5250, "ViewportRelativeNV": 5252, "SecondaryViewportRelativeNV": 5256, "HlslCounterBufferGOOGLE": 5634, "HlslSemanticGOOGLE": 5635 } }, { "Name": "BuiltIn", "Type": "Value", "Values": { "Position": 0, "PointSize": 1, "ClipDistance": 3, "CullDistance": 4, "VertexId": 5, "InstanceId": 6, "PrimitiveId": 7, "InvocationId": 8, "Layer": 9, "ViewportIndex": 10, "TessLevelOuter": 11, "TessLevelInner": 12, "TessCoord": 13, "PatchVertices": 14, "FragCoord": 15, "PointCoord": 16, "FrontFacing": 17, "SampleId": 18, "SamplePosition": 19, "SampleMask": 20, "FragDepth": 22, "HelperInvocation": 23, "NumWorkgroups": 24, "WorkgroupSize": 25, "WorkgroupId": 26, "LocalInvocationId": 27, "GlobalInvocationId": 28, "LocalInvocationIndex": 29, "WorkDim": 30, "GlobalSize": 31, "EnqueuedWorkgroupSize": 32, "GlobalOffset": 33, "GlobalLinearId": 34, "SubgroupSize": 36, "SubgroupMaxSize": 37, "NumSubgroups": 38, "NumEnqueuedSubgroups": 39, "SubgroupId": 40, "SubgroupLocalInvocationId": 41, "VertexIndex": 42, "InstanceIndex": 43, "SubgroupEqMaskKHR": 4416, "SubgroupGeMaskKHR": 4417, "SubgroupGtMaskKHR": 4418, "SubgroupLeMaskKHR": 4419, "SubgroupLtMaskKHR": 4420, "BaseVertex": 4424, "BaseInstance": 4425, "DrawIndex": 4426, "DeviceIndex": 4438, "ViewIndex": 4440, "BaryCoordNoPerspAMD": 4992, "BaryCoordNoPerspCentroidAMD": 4993, "BaryCoordNoPerspSampleAMD": 4994, "BaryCoordSmoothAMD": 4995, "BaryCoordSmoothCentroidAMD": 4996, "BaryCoordSmoothSampleAMD": 4997, "BaryCoordPullModelAMD": 4998, "FragStencilRefEXT": 5014, "ViewportMaskNV": 5253, "SecondaryPositionNV": 5257, "SecondaryViewportMaskNV": 5258, "PositionPerViewNV": 5261, "ViewportMaskPerViewNV": 5262 } }, { "Name": "SelectionControl", "Type": "Bit", "Values": { "Flatten": 0, "DontFlatten": 1 } }, { "Name": "LoopControl", "Type": "Bit", "Values": { "Unroll": 0, "DontUnroll": 1, "DependencyInfinite": 2, "DependencyLength": 3 } }, { "Name": "FunctionControl", "Type": "Bit", "Values": { "Inline": 0, "DontInline": 1, "Pure": 2, "Const": 3 } }, { "Name": "MemorySemantics", "Type": "Bit", "Values": { "Acquire": 1, "Release": 2, "AcquireRelease": 3, "SequentiallyConsistent": 4, "UniformMemory": 6, "SubgroupMemory": 7, "WorkgroupMemory": 8, "CrossWorkgroupMemory": 9, "AtomicCounterMemory": 10, "ImageMemory": 11 } }, { "Name": "MemoryAccess", "Type": "Bit", "Values": { "Volatile": 0, "Aligned": 1, "Nontemporal": 2 } }, { "Name": "Scope", "Type": "Value", "Values": { "CrossDevice": 0, "Device": 1, "Workgroup": 2, "Subgroup": 3, "Invocation": 4 } }, { "Name": "GroupOperation", "Type": "Value", "Values": { "Reduce": 0, "InclusiveScan": 1, "ExclusiveScan": 2 } }, { "Name": "KernelEnqueueFlags", "Type": "Value", "Values": { "NoWait": 0, "WaitKernel": 1, "WaitWorkGroup": 2 } }, { "Name": "KernelProfilingInfo", "Type": "Bit", "Values": { "CmdExecTime": 0 } }, { "Name": "Capability", "Type": "Value", "Values": { "Matrix": 0, "Shader": 1, "Geometry": 2, "Tessellation": 3, "Addresses": 4, "Linkage": 5, "Kernel": 6, "Vector16": 7, "Float16Buffer": 8, "Float16": 9, "Float64": 10, "Int64": 11, "Int64Atomics": 12, "ImageBasic": 13, "ImageReadWrite": 14, "ImageMipmap": 15, "Pipes": 17, "Groups": 18, "DeviceEnqueue": 19, "LiteralSampler": 20, "AtomicStorage": 21, "Int16": 22, "TessellationPointSize": 23, "GeometryPointSize": 24, "ImageGatherExtended": 25, "StorageImageMultisample": 27, "UniformBufferArrayDynamicIndexing": 28, "SampledImageArrayDynamicIndexing": 29, "StorageBufferArrayDynamicIndexing": 30, "StorageImageArrayDynamicIndexing": 31, "ClipDistance": 32, "CullDistance": 33, "ImageCubeArray": 34, "SampleRateShading": 35, "ImageRect": 36, "SampledRect": 37, "GenericPointer": 38, "Int8": 39, "InputAttachment": 40, "SparseResidency": 41, "MinLod": 42, "Sampled1D": 43, "Image1D": 44, "SampledCubeArray": 45, "SampledBuffer": 46, "ImageBuffer": 47, "ImageMSArray": 48, "StorageImageExtendedFormats": 49, "ImageQuery": 50, "DerivativeControl": 51, "InterpolationFunction": 52, "TransformFeedback": 53, "GeometryStreams": 54, "StorageImageReadWithoutFormat": 55, "StorageImageWriteWithoutFormat": 56, "MultiViewport": 57, "SubgroupDispatch": 58, "NamedBarrier": 59, "PipeStorage": 60, "SubgroupBallotKHR": 4423, "DrawParameters": 4427, "SubgroupVoteKHR": 4431, "StorageBuffer16BitAccess": 4433, "StorageUniformBufferBlock16": 4433, "StorageUniform16": 4434, "UniformAndStorageBuffer16BitAccess": 4434, "StoragePushConstant16": 4435, "StorageInputOutput16": 4436, "DeviceGroup": 4437, "MultiView": 4439, "VariablePointersStorageBuffer": 4441, "VariablePointers": 4442, "AtomicStorageOps": 4445, "SampleMaskPostDepthCoverage": 4447, "ImageGatherBiasLodAMD": 5009, "FragmentMaskAMD": 5010, "StencilExportEXT": 5013, "ImageReadWriteLodAMD": 5015, "SampleMaskOverrideCoverageNV": 5249, "GeometryShaderPassthroughNV": 5251, "ShaderViewportIndexLayerEXT": 5254, "ShaderViewportIndexLayerNV": 5254, "ShaderViewportMaskNV": 5255, "ShaderStereoViewNV": 5259, "PerViewAttributesNV": 5260, "SubgroupShuffleINTEL": 5568, "SubgroupBufferBlockIOINTEL": 5569, "SubgroupImageBlockIOINTEL": 5570 } }, { "Name": "Op", "Type": "Value", "Values": { "OpNop": 0, "OpUndef": 1, "OpSourceContinued": 2, "OpSource": 3, "OpSourceExtension": 4, "OpName": 5, "OpMemberName": 6, "OpString": 7, "OpLine": 8, "OpExtension": 10, "OpExtInstImport": 11, "OpExtInst": 12, "OpMemoryModel": 14, "OpEntryPoint": 15, "OpExecutionMode": 16, "OpCapability": 17, "OpTypeVoid": 19, "OpTypeBool": 20, "OpTypeInt": 21, "OpTypeFloat": 22, "OpTypeVector": 23, "OpTypeMatrix": 24, "OpTypeImage": 25, "OpTypeSampler": 26, "OpTypeSampledImage": 27, "OpTypeArray": 28, "OpTypeRuntimeArray": 29, "OpTypeStruct": 30, "OpTypeOpaque": 31, "OpTypePointer": 32, "OpTypeFunction": 33, "OpTypeEvent": 34, "OpTypeDeviceEvent": 35, "OpTypeReserveId": 36, "OpTypeQueue": 37, "OpTypePipe": 38, "OpTypeForwardPointer": 39, "OpConstantTrue": 41, "OpConstantFalse": 42, "OpConstant": 43, "OpConstantComposite": 44, "OpConstantSampler": 45, "OpConstantNull": 46, "OpSpecConstantTrue": 48, "OpSpecConstantFalse": 49, "OpSpecConstant": 50, "OpSpecConstantComposite": 51, "OpSpecConstantOp": 52, "OpFunction": 54, "OpFunctionParameter": 55, "OpFunctionEnd": 56, "OpFunctionCall": 57, "OpVariable": 59, "OpImageTexelPointer": 60, "OpLoad": 61, "OpStore": 62, "OpCopyMemory": 63, "OpCopyMemorySized": 64, "OpAccessChain": 65, "OpInBoundsAccessChain": 66, "OpPtrAccessChain": 67, "OpArrayLength": 68, "OpGenericPtrMemSemantics": 69, "OpInBoundsPtrAccessChain": 70, "OpDecorate": 71, "OpMemberDecorate": 72, "OpDecorationGroup": 73, "OpGroupDecorate": 74, "OpGroupMemberDecorate": 75, "OpVectorExtractDynamic": 77, "OpVectorInsertDynamic": 78, "OpVectorShuffle": 79, "OpCompositeConstruct": 80, "OpCompositeExtract": 81, "OpCompositeInsert": 82, "OpCopyObject": 83, "OpTranspose": 84, "OpSampledImage": 86, "OpImageSampleImplicitLod": 87, "OpImageSampleExplicitLod": 88, "OpImageSampleDrefImplicitLod": 89, "OpImageSampleDrefExplicitLod": 90, "OpImageSampleProjImplicitLod": 91, "OpImageSampleProjExplicitLod": 92, "OpImageSampleProjDrefImplicitLod": 93, "OpImageSampleProjDrefExplicitLod": 94, "OpImageFetch": 95, "OpImageGather": 96, "OpImageDrefGather": 97, "OpImageRead": 98, "OpImageWrite": 99, "OpImage": 100, "OpImageQueryFormat": 101, "OpImageQueryOrder": 102, "OpImageQuerySizeLod": 103, "OpImageQuerySize": 104, "OpImageQueryLod": 105, "OpImageQueryLevels": 106, "OpImageQuerySamples": 107, "OpConvertFToU": 109, "OpConvertFToS": 110, "OpConvertSToF": 111, "OpConvertUToF": 112, "OpUConvert": 113, "OpSConvert": 114, "OpFConvert": 115, "OpQuantizeToF16": 116, "OpConvertPtrToU": 117, "OpSatConvertSToU": 118, "OpSatConvertUToS": 119, "OpConvertUToPtr": 120, "OpPtrCastToGeneric": 121, "OpGenericCastToPtr": 122, "OpGenericCastToPtrExplicit": 123, "OpBitcast": 124, "OpSNegate": 126, "OpFNegate": 127, "OpIAdd": 128, "OpFAdd": 129, "OpISub": 130, "OpFSub": 131, "OpIMul": 132, "OpFMul": 133, "OpUDiv": 134, "OpSDiv": 135, "OpFDiv": 136, "OpUMod": 137, "OpSRem": 138, "OpSMod": 139, "OpFRem": 140, "OpFMod": 141, "OpVectorTimesScalar": 142, "OpMatrixTimesScalar": 143, "OpVectorTimesMatrix": 144, "OpMatrixTimesVector": 145, "OpMatrixTimesMatrix": 146, "OpOuterProduct": 147, "OpDot": 148, "OpIAddCarry": 149, "OpISubBorrow": 150, "OpUMulExtended": 151, "OpSMulExtended": 152, "OpAny": 154, "OpAll": 155, "OpIsNan": 156, "OpIsInf": 157, "OpIsFinite": 158, "OpIsNormal": 159, "OpSignBitSet": 160, "OpLessOrGreater": 161, "OpOrdered": 162, "OpUnordered": 163, "OpLogicalEqual": 164, "OpLogicalNotEqual": 165, "OpLogicalOr": 166, "OpLogicalAnd": 167, "OpLogicalNot": 168, "OpSelect": 169, "OpIEqual": 170, "OpINotEqual": 171, "OpUGreaterThan": 172, "OpSGreaterThan": 173, "OpUGreaterThanEqual": 174, "OpSGreaterThanEqual": 175, "OpULessThan": 176, "OpSLessThan": 177, "OpULessThanEqual": 178, "OpSLessThanEqual": 179, "OpFOrdEqual": 180, "OpFUnordEqual": 181, "OpFOrdNotEqual": 182, "OpFUnordNotEqual": 183, "OpFOrdLessThan": 184, "OpFUnordLessThan": 185, "OpFOrdGreaterThan": 186, "OpFUnordGreaterThan": 187, "OpFOrdLessThanEqual": 188, "OpFUnordLessThanEqual": 189, "OpFOrdGreaterThanEqual": 190, "OpFUnordGreaterThanEqual": 191, "OpShiftRightLogical": 194, "OpShiftRightArithmetic": 195, "OpShiftLeftLogical": 196, "OpBitwiseOr": 197, "OpBitwiseXor": 198, "OpBitwiseAnd": 199, "OpNot": 200, "OpBitFieldInsert": 201, "OpBitFieldSExtract": 202, "OpBitFieldUExtract": 203, "OpBitReverse": 204, "OpBitCount": 205, "OpDPdx": 207, "OpDPdy": 208, "OpFwidth": 209, "OpDPdxFine": 210, "OpDPdyFine": 211, "OpFwidthFine": 212, "OpDPdxCoarse": 213, "OpDPdyCoarse": 214, "OpFwidthCoarse": 215, "OpEmitVertex": 218, "OpEndPrimitive": 219, "OpEmitStreamVertex": 220, "OpEndStreamPrimitive": 221, "OpControlBarrier": 224, "OpMemoryBarrier": 225, "OpAtomicLoad": 227, "OpAtomicStore": 228, "OpAtomicExchange": 229, "OpAtomicCompareExchange": 230, "OpAtomicCompareExchangeWeak": 231, "OpAtomicIIncrement": 232, "OpAtomicIDecrement": 233, "OpAtomicIAdd": 234, "OpAtomicISub": 235, "OpAtomicSMin": 236, "OpAtomicUMin": 237, "OpAtomicSMax": 238, "OpAtomicUMax": 239, "OpAtomicAnd": 240, "OpAtomicOr": 241, "OpAtomicXor": 242, "OpPhi": 245, "OpLoopMerge": 246, "OpSelectionMerge": 247, "OpLabel": 248, "OpBranch": 249, "OpBranchConditional": 250, "OpSwitch": 251, "OpKill": 252, "OpReturn": 253, "OpReturnValue": 254, "OpUnreachable": 255, "OpLifetimeStart": 256, "OpLifetimeStop": 257, "OpGroupAsyncCopy": 259, "OpGroupWaitEvents": 260, "OpGroupAll": 261, "OpGroupAny": 262, "OpGroupBroadcast": 263, "OpGroupIAdd": 264, "OpGroupFAdd": 265, "OpGroupFMin": 266, "OpGroupUMin": 267, "OpGroupSMin": 268, "OpGroupFMax": 269, "OpGroupUMax": 270, "OpGroupSMax": 271, "OpReadPipe": 274, "OpWritePipe": 275, "OpReservedReadPipe": 276, "OpReservedWritePipe": 277, "OpReserveReadPipePackets": 278, "OpReserveWritePipePackets": 279, "OpCommitReadPipe": 280, "OpCommitWritePipe": 281, "OpIsValidReserveId": 282, "OpGetNumPipePackets": 283, "OpGetMaxPipePackets": 284, "OpGroupReserveReadPipePackets": 285, "OpGroupReserveWritePipePackets": 286, "OpGroupCommitReadPipe": 287, "OpGroupCommitWritePipe": 288, "OpEnqueueMarker": 291, "OpEnqueueKernel": 292, "OpGetKernelNDrangeSubGroupCount": 293, "OpGetKernelNDrangeMaxSubGroupSize": 294, "OpGetKernelWorkGroupSize": 295, "OpGetKernelPreferredWorkGroupSizeMultiple": 296, "OpRetainEvent": 297, "OpReleaseEvent": 298, "OpCreateUserEvent": 299, "OpIsValidEvent": 300, "OpSetUserEventStatus": 301, "OpCaptureEventProfilingInfo": 302, "OpGetDefaultQueue": 303, "OpBuildNDRange": 304, "OpImageSparseSampleImplicitLod": 305, "OpImageSparseSampleExplicitLod": 306, "OpImageSparseSampleDrefImplicitLod": 307, "OpImageSparseSampleDrefExplicitLod": 308, "OpImageSparseSampleProjImplicitLod": 309, "OpImageSparseSampleProjExplicitLod": 310, "OpImageSparseSampleProjDrefImplicitLod": 311, "OpImageSparseSampleProjDrefExplicitLod": 312, "OpImageSparseFetch": 313, "OpImageSparseGather": 314, "OpImageSparseDrefGather": 315, "OpImageSparseTexelsResident": 316, "OpNoLine": 317, "OpAtomicFlagTestAndSet": 318, "OpAtomicFlagClear": 319, "OpImageSparseRead": 320, "OpSizeOf": 321, "OpTypePipeStorage": 322, "OpConstantPipeStorage": 323, "OpCreatePipeFromPipeStorage": 324, "OpGetKernelLocalSizeForSubgroupCount": 325, "OpGetKernelMaxNumSubgroups": 326, "OpTypeNamedBarrier": 327, "OpNamedBarrierInitialize": 328, "OpMemoryNamedBarrier": 329, "OpModuleProcessed": 330, "OpDecorateId": 332, "OpSubgroupBallotKHR": 4421, "OpSubgroupFirstInvocationKHR": 4422, "OpSubgroupAllKHR": 4428, "OpSubgroupAnyKHR": 4429, "OpSubgroupAllEqualKHR": 4430, "OpSubgroupReadInvocationKHR": 4432, "OpGroupIAddNonUniformAMD": 5000, "OpGroupFAddNonUniformAMD": 5001, "OpGroupFMinNonUniformAMD": 5002, "OpGroupUMinNonUniformAMD": 5003, "OpGroupSMinNonUniformAMD": 5004, "OpGroupFMaxNonUniformAMD": 5005, "OpGroupUMaxNonUniformAMD": 5006, "OpGroupSMaxNonUniformAMD": 5007, "OpFragmentMaskFetchAMD": 5011, "OpFragmentFetchAMD": 5012, "OpSubgroupShuffleINTEL": 5571, "OpSubgroupShuffleDownINTEL": 5572, "OpSubgroupShuffleUpINTEL": 5573, "OpSubgroupShuffleXorINTEL": 5574, "OpSubgroupBlockReadINTEL": 5575, "OpSubgroupBlockWriteINTEL": 5576, "OpSubgroupImageBlockReadINTEL": 5577, "OpSubgroupImageBlockWriteINTEL": 5578, "OpDecorateStringGOOGLE": 5632, "OpMemberDecorateStringGOOGLE": 5633 } } ] } } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.lua000066400000000000000000000641201463234063200222000ustar00rootroot00000000000000-- Copyright (c) 2014-2018 The Khronos Group Inc. -- -- Permission is hereby granted, free of charge, to any person obtaining a copy -- of this software and/or associated documentation files (the "Materials"), -- to deal in the Materials without restriction, including without limitation -- the rights to use, copy, modify, merge, publish, distribute, sublicense, -- and/or sell copies of the Materials, and to permit persons to whom the -- Materials are furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Materials. -- -- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -- -- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -- IN THE MATERIALS. -- This header is automatically generated by the same tool that creates -- the Binary Section of the SPIR-V specification. -- Enumeration tokens for SPIR-V, in various styles: -- C, C++, C++11, JSON, Lua, Python -- -- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -- -- Some tokens act like mask values, which can be OR'd together, -- while others are mutually exclusive. The mask-like ones have -- "Mask" in their name, and a parallel enum that has the shift -- amount (1 << x) for each corresponding enumerant. spv = { MagicNumber = 0x07230203, Version = 0x00010100, Revision = 8, OpCodeMask = 0xffff, WordCountShift = 16, SourceLanguage = { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, }, ExecutionModel = { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, }, AddressingModel = { Logical = 0, Physical32 = 1, Physical64 = 2, }, MemoryModel = { Simple = 0, GLSL450 = 1, OpenCL = 2, }, ExecutionMode = { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, }, StorageClass = { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, }, Dim = { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, }, SamplerAddressingMode = { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, }, SamplerFilterMode = { Nearest = 0, Linear = 1, }, ImageFormat = { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, }, ImageChannelOrder = { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, }, ImageChannelDataType = { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, }, ImageOperandsShift = { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, }, ImageOperandsMask = { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, }, FPFastMathModeShift = { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, }, FPFastMathModeMask = { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, }, FPRoundingMode = { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, }, LinkageType = { Export = 0, Import = 1, }, AccessQualifier = { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, }, FunctionParameterAttribute = { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, }, Decoration = { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, }, BuiltIn = { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, }, SelectionControlShift = { Flatten = 0, DontFlatten = 1, }, SelectionControlMask = { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }, LoopControlShift = { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, }, LoopControlMask = { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, }, FunctionControlShift = { Inline = 0, DontInline = 1, Pure = 2, Const = 3, }, FunctionControlMask = { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, }, MemorySemanticsShift = { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, }, MemorySemanticsMask = { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, }, MemoryAccessShift = { Volatile = 0, Aligned = 1, Nontemporal = 2, }, MemoryAccessMask = { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, }, Scope = { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, }, GroupOperation = { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, }, KernelEnqueueFlags = { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, }, KernelProfilingInfoShift = { CmdExecTime = 0, }, KernelProfilingInfoMask = { MaskNone = 0, CmdExecTime = 0x00000001, }, Capability = { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, }, Op = { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.1/spirv.py000066400000000000000000000673121463234063200220550ustar00rootroot00000000000000# Copyright (c) 2014-2018 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and/or associated documentation files (the "Materials"), # to deal in the Materials without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Materials, and to permit persons to whom the # Materials are furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS # STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND # HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS # IN THE MATERIALS. # This header is automatically generated by the same tool that creates # the Binary Section of the SPIR-V specification. # Enumeration tokens for SPIR-V, in various styles: # C, C++, C++11, JSON, Lua, Python # # - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL # - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL # - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL # - Lua will use tables, e.g.: spv.SourceLanguage.GLSL # - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] # # Some tokens act like mask values, which can be OR'd together, # while others are mutually exclusive. The mask-like ones have # "Mask" in their name, and a parallel enum that has the shift # amount (1 << x) for each corresponding enumerant. spv = { 'MagicNumber' : 0x07230203, 'Version' : 0x00010100, 'Revision' : 8, 'OpCodeMask' : 0xffff, 'WordCountShift' : 16, 'SourceLanguage' : { 'Unknown' : 0, 'ESSL' : 1, 'GLSL' : 2, 'OpenCL_C' : 3, 'OpenCL_CPP' : 4, 'HLSL' : 5, }, 'ExecutionModel' : { 'Vertex' : 0, 'TessellationControl' : 1, 'TessellationEvaluation' : 2, 'Geometry' : 3, 'Fragment' : 4, 'GLCompute' : 5, 'Kernel' : 6, }, 'AddressingModel' : { 'Logical' : 0, 'Physical32' : 1, 'Physical64' : 2, }, 'MemoryModel' : { 'Simple' : 0, 'GLSL450' : 1, 'OpenCL' : 2, }, 'ExecutionMode' : { 'Invocations' : 0, 'SpacingEqual' : 1, 'SpacingFractionalEven' : 2, 'SpacingFractionalOdd' : 3, 'VertexOrderCw' : 4, 'VertexOrderCcw' : 5, 'PixelCenterInteger' : 6, 'OriginUpperLeft' : 7, 'OriginLowerLeft' : 8, 'EarlyFragmentTests' : 9, 'PointMode' : 10, 'Xfb' : 11, 'DepthReplacing' : 12, 'DepthGreater' : 14, 'DepthLess' : 15, 'DepthUnchanged' : 16, 'LocalSize' : 17, 'LocalSizeHint' : 18, 'InputPoints' : 19, 'InputLines' : 20, 'InputLinesAdjacency' : 21, 'Triangles' : 22, 'InputTrianglesAdjacency' : 23, 'Quads' : 24, 'Isolines' : 25, 'OutputVertices' : 26, 'OutputPoints' : 27, 'OutputLineStrip' : 28, 'OutputTriangleStrip' : 29, 'VecTypeHint' : 30, 'ContractionOff' : 31, 'Initializer' : 33, 'Finalizer' : 34, 'SubgroupSize' : 35, 'SubgroupsPerWorkgroup' : 36, 'PostDepthCoverage' : 4446, 'StencilRefReplacingEXT' : 5027, }, 'StorageClass' : { 'UniformConstant' : 0, 'Input' : 1, 'Uniform' : 2, 'Output' : 3, 'Workgroup' : 4, 'CrossWorkgroup' : 5, 'Private' : 6, 'Function' : 7, 'Generic' : 8, 'PushConstant' : 9, 'AtomicCounter' : 10, 'Image' : 11, 'StorageBuffer' : 12, }, 'Dim' : { 'Dim1D' : 0, 'Dim2D' : 1, 'Dim3D' : 2, 'Cube' : 3, 'Rect' : 4, 'Buffer' : 5, 'SubpassData' : 6, }, 'SamplerAddressingMode' : { 'None' : 0, 'ClampToEdge' : 1, 'Clamp' : 2, 'Repeat' : 3, 'RepeatMirrored' : 4, }, 'SamplerFilterMode' : { 'Nearest' : 0, 'Linear' : 1, }, 'ImageFormat' : { 'Unknown' : 0, 'Rgba32f' : 1, 'Rgba16f' : 2, 'R32f' : 3, 'Rgba8' : 4, 'Rgba8Snorm' : 5, 'Rg32f' : 6, 'Rg16f' : 7, 'R11fG11fB10f' : 8, 'R16f' : 9, 'Rgba16' : 10, 'Rgb10A2' : 11, 'Rg16' : 12, 'Rg8' : 13, 'R16' : 14, 'R8' : 15, 'Rgba16Snorm' : 16, 'Rg16Snorm' : 17, 'Rg8Snorm' : 18, 'R16Snorm' : 19, 'R8Snorm' : 20, 'Rgba32i' : 21, 'Rgba16i' : 22, 'Rgba8i' : 23, 'R32i' : 24, 'Rg32i' : 25, 'Rg16i' : 26, 'Rg8i' : 27, 'R16i' : 28, 'R8i' : 29, 'Rgba32ui' : 30, 'Rgba16ui' : 31, 'Rgba8ui' : 32, 'R32ui' : 33, 'Rgb10a2ui' : 34, 'Rg32ui' : 35, 'Rg16ui' : 36, 'Rg8ui' : 37, 'R16ui' : 38, 'R8ui' : 39, }, 'ImageChannelOrder' : { 'R' : 0, 'A' : 1, 'RG' : 2, 'RA' : 3, 'RGB' : 4, 'RGBA' : 5, 'BGRA' : 6, 'ARGB' : 7, 'Intensity' : 8, 'Luminance' : 9, 'Rx' : 10, 'RGx' : 11, 'RGBx' : 12, 'Depth' : 13, 'DepthStencil' : 14, 'sRGB' : 15, 'sRGBx' : 16, 'sRGBA' : 17, 'sBGRA' : 18, 'ABGR' : 19, }, 'ImageChannelDataType' : { 'SnormInt8' : 0, 'SnormInt16' : 1, 'UnormInt8' : 2, 'UnormInt16' : 3, 'UnormShort565' : 4, 'UnormShort555' : 5, 'UnormInt101010' : 6, 'SignedInt8' : 7, 'SignedInt16' : 8, 'SignedInt32' : 9, 'UnsignedInt8' : 10, 'UnsignedInt16' : 11, 'UnsignedInt32' : 12, 'HalfFloat' : 13, 'Float' : 14, 'UnormInt24' : 15, 'UnormInt101010_2' : 16, }, 'ImageOperandsShift' : { 'Bias' : 0, 'Lod' : 1, 'Grad' : 2, 'ConstOffset' : 3, 'Offset' : 4, 'ConstOffsets' : 5, 'Sample' : 6, 'MinLod' : 7, }, 'ImageOperandsMask' : { 'MaskNone' : 0, 'Bias' : 0x00000001, 'Lod' : 0x00000002, 'Grad' : 0x00000004, 'ConstOffset' : 0x00000008, 'Offset' : 0x00000010, 'ConstOffsets' : 0x00000020, 'Sample' : 0x00000040, 'MinLod' : 0x00000080, }, 'FPFastMathModeShift' : { 'NotNaN' : 0, 'NotInf' : 1, 'NSZ' : 2, 'AllowRecip' : 3, 'Fast' : 4, }, 'FPFastMathModeMask' : { 'MaskNone' : 0, 'NotNaN' : 0x00000001, 'NotInf' : 0x00000002, 'NSZ' : 0x00000004, 'AllowRecip' : 0x00000008, 'Fast' : 0x00000010, }, 'FPRoundingMode' : { 'RTE' : 0, 'RTZ' : 1, 'RTP' : 2, 'RTN' : 3, }, 'LinkageType' : { 'Export' : 0, 'Import' : 1, }, 'AccessQualifier' : { 'ReadOnly' : 0, 'WriteOnly' : 1, 'ReadWrite' : 2, }, 'FunctionParameterAttribute' : { 'Zext' : 0, 'Sext' : 1, 'ByVal' : 2, 'Sret' : 3, 'NoAlias' : 4, 'NoCapture' : 5, 'NoWrite' : 6, 'NoReadWrite' : 7, }, 'Decoration' : { 'RelaxedPrecision' : 0, 'SpecId' : 1, 'Block' : 2, 'BufferBlock' : 3, 'RowMajor' : 4, 'ColMajor' : 5, 'ArrayStride' : 6, 'MatrixStride' : 7, 'GLSLShared' : 8, 'GLSLPacked' : 9, 'CPacked' : 10, 'BuiltIn' : 11, 'NoPerspective' : 13, 'Flat' : 14, 'Patch' : 15, 'Centroid' : 16, 'Sample' : 17, 'Invariant' : 18, 'Restrict' : 19, 'Aliased' : 20, 'Volatile' : 21, 'Constant' : 22, 'Coherent' : 23, 'NonWritable' : 24, 'NonReadable' : 25, 'Uniform' : 26, 'SaturatedConversion' : 28, 'Stream' : 29, 'Location' : 30, 'Component' : 31, 'Index' : 32, 'Binding' : 33, 'DescriptorSet' : 34, 'Offset' : 35, 'XfbBuffer' : 36, 'XfbStride' : 37, 'FuncParamAttr' : 38, 'FPRoundingMode' : 39, 'FPFastMathMode' : 40, 'LinkageAttributes' : 41, 'NoContraction' : 42, 'InputAttachmentIndex' : 43, 'Alignment' : 44, 'MaxByteOffset' : 45, 'ExplicitInterpAMD' : 4999, 'OverrideCoverageNV' : 5248, 'PassthroughNV' : 5250, 'ViewportRelativeNV' : 5252, 'SecondaryViewportRelativeNV' : 5256, 'HlslCounterBufferGOOGLE' : 5634, 'HlslSemanticGOOGLE' : 5635, }, 'BuiltIn' : { 'Position' : 0, 'PointSize' : 1, 'ClipDistance' : 3, 'CullDistance' : 4, 'VertexId' : 5, 'InstanceId' : 6, 'PrimitiveId' : 7, 'InvocationId' : 8, 'Layer' : 9, 'ViewportIndex' : 10, 'TessLevelOuter' : 11, 'TessLevelInner' : 12, 'TessCoord' : 13, 'PatchVertices' : 14, 'FragCoord' : 15, 'PointCoord' : 16, 'FrontFacing' : 17, 'SampleId' : 18, 'SamplePosition' : 19, 'SampleMask' : 20, 'FragDepth' : 22, 'HelperInvocation' : 23, 'NumWorkgroups' : 24, 'WorkgroupSize' : 25, 'WorkgroupId' : 26, 'LocalInvocationId' : 27, 'GlobalInvocationId' : 28, 'LocalInvocationIndex' : 29, 'WorkDim' : 30, 'GlobalSize' : 31, 'EnqueuedWorkgroupSize' : 32, 'GlobalOffset' : 33, 'GlobalLinearId' : 34, 'SubgroupSize' : 36, 'SubgroupMaxSize' : 37, 'NumSubgroups' : 38, 'NumEnqueuedSubgroups' : 39, 'SubgroupId' : 40, 'SubgroupLocalInvocationId' : 41, 'VertexIndex' : 42, 'InstanceIndex' : 43, 'SubgroupEqMaskKHR' : 4416, 'SubgroupGeMaskKHR' : 4417, 'SubgroupGtMaskKHR' : 4418, 'SubgroupLeMaskKHR' : 4419, 'SubgroupLtMaskKHR' : 4420, 'BaseVertex' : 4424, 'BaseInstance' : 4425, 'DrawIndex' : 4426, 'DeviceIndex' : 4438, 'ViewIndex' : 4440, 'BaryCoordNoPerspAMD' : 4992, 'BaryCoordNoPerspCentroidAMD' : 4993, 'BaryCoordNoPerspSampleAMD' : 4994, 'BaryCoordSmoothAMD' : 4995, 'BaryCoordSmoothCentroidAMD' : 4996, 'BaryCoordSmoothSampleAMD' : 4997, 'BaryCoordPullModelAMD' : 4998, 'FragStencilRefEXT' : 5014, 'ViewportMaskNV' : 5253, 'SecondaryPositionNV' : 5257, 'SecondaryViewportMaskNV' : 5258, 'PositionPerViewNV' : 5261, 'ViewportMaskPerViewNV' : 5262, }, 'SelectionControlShift' : { 'Flatten' : 0, 'DontFlatten' : 1, }, 'SelectionControlMask' : { 'MaskNone' : 0, 'Flatten' : 0x00000001, 'DontFlatten' : 0x00000002, }, 'LoopControlShift' : { 'Unroll' : 0, 'DontUnroll' : 1, 'DependencyInfinite' : 2, 'DependencyLength' : 3, }, 'LoopControlMask' : { 'MaskNone' : 0, 'Unroll' : 0x00000001, 'DontUnroll' : 0x00000002, 'DependencyInfinite' : 0x00000004, 'DependencyLength' : 0x00000008, }, 'FunctionControlShift' : { 'Inline' : 0, 'DontInline' : 1, 'Pure' : 2, 'Const' : 3, }, 'FunctionControlMask' : { 'MaskNone' : 0, 'Inline' : 0x00000001, 'DontInline' : 0x00000002, 'Pure' : 0x00000004, 'Const' : 0x00000008, }, 'MemorySemanticsShift' : { 'Acquire' : 1, 'Release' : 2, 'AcquireRelease' : 3, 'SequentiallyConsistent' : 4, 'UniformMemory' : 6, 'SubgroupMemory' : 7, 'WorkgroupMemory' : 8, 'CrossWorkgroupMemory' : 9, 'AtomicCounterMemory' : 10, 'ImageMemory' : 11, }, 'MemorySemanticsMask' : { 'MaskNone' : 0, 'Acquire' : 0x00000002, 'Release' : 0x00000004, 'AcquireRelease' : 0x00000008, 'SequentiallyConsistent' : 0x00000010, 'UniformMemory' : 0x00000040, 'SubgroupMemory' : 0x00000080, 'WorkgroupMemory' : 0x00000100, 'CrossWorkgroupMemory' : 0x00000200, 'AtomicCounterMemory' : 0x00000400, 'ImageMemory' : 0x00000800, }, 'MemoryAccessShift' : { 'Volatile' : 0, 'Aligned' : 1, 'Nontemporal' : 2, }, 'MemoryAccessMask' : { 'MaskNone' : 0, 'Volatile' : 0x00000001, 'Aligned' : 0x00000002, 'Nontemporal' : 0x00000004, }, 'Scope' : { 'CrossDevice' : 0, 'Device' : 1, 'Workgroup' : 2, 'Subgroup' : 3, 'Invocation' : 4, }, 'GroupOperation' : { 'Reduce' : 0, 'InclusiveScan' : 1, 'ExclusiveScan' : 2, }, 'KernelEnqueueFlags' : { 'NoWait' : 0, 'WaitKernel' : 1, 'WaitWorkGroup' : 2, }, 'KernelProfilingInfoShift' : { 'CmdExecTime' : 0, }, 'KernelProfilingInfoMask' : { 'MaskNone' : 0, 'CmdExecTime' : 0x00000001, }, 'Capability' : { 'Matrix' : 0, 'Shader' : 1, 'Geometry' : 2, 'Tessellation' : 3, 'Addresses' : 4, 'Linkage' : 5, 'Kernel' : 6, 'Vector16' : 7, 'Float16Buffer' : 8, 'Float16' : 9, 'Float64' : 10, 'Int64' : 11, 'Int64Atomics' : 12, 'ImageBasic' : 13, 'ImageReadWrite' : 14, 'ImageMipmap' : 15, 'Pipes' : 17, 'Groups' : 18, 'DeviceEnqueue' : 19, 'LiteralSampler' : 20, 'AtomicStorage' : 21, 'Int16' : 22, 'TessellationPointSize' : 23, 'GeometryPointSize' : 24, 'ImageGatherExtended' : 25, 'StorageImageMultisample' : 27, 'UniformBufferArrayDynamicIndexing' : 28, 'SampledImageArrayDynamicIndexing' : 29, 'StorageBufferArrayDynamicIndexing' : 30, 'StorageImageArrayDynamicIndexing' : 31, 'ClipDistance' : 32, 'CullDistance' : 33, 'ImageCubeArray' : 34, 'SampleRateShading' : 35, 'ImageRect' : 36, 'SampledRect' : 37, 'GenericPointer' : 38, 'Int8' : 39, 'InputAttachment' : 40, 'SparseResidency' : 41, 'MinLod' : 42, 'Sampled1D' : 43, 'Image1D' : 44, 'SampledCubeArray' : 45, 'SampledBuffer' : 46, 'ImageBuffer' : 47, 'ImageMSArray' : 48, 'StorageImageExtendedFormats' : 49, 'ImageQuery' : 50, 'DerivativeControl' : 51, 'InterpolationFunction' : 52, 'TransformFeedback' : 53, 'GeometryStreams' : 54, 'StorageImageReadWithoutFormat' : 55, 'StorageImageWriteWithoutFormat' : 56, 'MultiViewport' : 57, 'SubgroupDispatch' : 58, 'NamedBarrier' : 59, 'PipeStorage' : 60, 'SubgroupBallotKHR' : 4423, 'DrawParameters' : 4427, 'SubgroupVoteKHR' : 4431, 'StorageBuffer16BitAccess' : 4433, 'StorageUniformBufferBlock16' : 4433, 'StorageUniform16' : 4434, 'UniformAndStorageBuffer16BitAccess' : 4434, 'StoragePushConstant16' : 4435, 'StorageInputOutput16' : 4436, 'DeviceGroup' : 4437, 'MultiView' : 4439, 'VariablePointersStorageBuffer' : 4441, 'VariablePointers' : 4442, 'AtomicStorageOps' : 4445, 'SampleMaskPostDepthCoverage' : 4447, 'ImageGatherBiasLodAMD' : 5009, 'FragmentMaskAMD' : 5010, 'StencilExportEXT' : 5013, 'ImageReadWriteLodAMD' : 5015, 'SampleMaskOverrideCoverageNV' : 5249, 'GeometryShaderPassthroughNV' : 5251, 'ShaderViewportIndexLayerEXT' : 5254, 'ShaderViewportIndexLayerNV' : 5254, 'ShaderViewportMaskNV' : 5255, 'ShaderStereoViewNV' : 5259, 'PerViewAttributesNV' : 5260, 'SubgroupShuffleINTEL' : 5568, 'SubgroupBufferBlockIOINTEL' : 5569, 'SubgroupImageBlockIOINTEL' : 5570, }, 'Op' : { 'OpNop' : 0, 'OpUndef' : 1, 'OpSourceContinued' : 2, 'OpSource' : 3, 'OpSourceExtension' : 4, 'OpName' : 5, 'OpMemberName' : 6, 'OpString' : 7, 'OpLine' : 8, 'OpExtension' : 10, 'OpExtInstImport' : 11, 'OpExtInst' : 12, 'OpMemoryModel' : 14, 'OpEntryPoint' : 15, 'OpExecutionMode' : 16, 'OpCapability' : 17, 'OpTypeVoid' : 19, 'OpTypeBool' : 20, 'OpTypeInt' : 21, 'OpTypeFloat' : 22, 'OpTypeVector' : 23, 'OpTypeMatrix' : 24, 'OpTypeImage' : 25, 'OpTypeSampler' : 26, 'OpTypeSampledImage' : 27, 'OpTypeArray' : 28, 'OpTypeRuntimeArray' : 29, 'OpTypeStruct' : 30, 'OpTypeOpaque' : 31, 'OpTypePointer' : 32, 'OpTypeFunction' : 33, 'OpTypeEvent' : 34, 'OpTypeDeviceEvent' : 35, 'OpTypeReserveId' : 36, 'OpTypeQueue' : 37, 'OpTypePipe' : 38, 'OpTypeForwardPointer' : 39, 'OpConstantTrue' : 41, 'OpConstantFalse' : 42, 'OpConstant' : 43, 'OpConstantComposite' : 44, 'OpConstantSampler' : 45, 'OpConstantNull' : 46, 'OpSpecConstantTrue' : 48, 'OpSpecConstantFalse' : 49, 'OpSpecConstant' : 50, 'OpSpecConstantComposite' : 51, 'OpSpecConstantOp' : 52, 'OpFunction' : 54, 'OpFunctionParameter' : 55, 'OpFunctionEnd' : 56, 'OpFunctionCall' : 57, 'OpVariable' : 59, 'OpImageTexelPointer' : 60, 'OpLoad' : 61, 'OpStore' : 62, 'OpCopyMemory' : 63, 'OpCopyMemorySized' : 64, 'OpAccessChain' : 65, 'OpInBoundsAccessChain' : 66, 'OpPtrAccessChain' : 67, 'OpArrayLength' : 68, 'OpGenericPtrMemSemantics' : 69, 'OpInBoundsPtrAccessChain' : 70, 'OpDecorate' : 71, 'OpMemberDecorate' : 72, 'OpDecorationGroup' : 73, 'OpGroupDecorate' : 74, 'OpGroupMemberDecorate' : 75, 'OpVectorExtractDynamic' : 77, 'OpVectorInsertDynamic' : 78, 'OpVectorShuffle' : 79, 'OpCompositeConstruct' : 80, 'OpCompositeExtract' : 81, 'OpCompositeInsert' : 82, 'OpCopyObject' : 83, 'OpTranspose' : 84, 'OpSampledImage' : 86, 'OpImageSampleImplicitLod' : 87, 'OpImageSampleExplicitLod' : 88, 'OpImageSampleDrefImplicitLod' : 89, 'OpImageSampleDrefExplicitLod' : 90, 'OpImageSampleProjImplicitLod' : 91, 'OpImageSampleProjExplicitLod' : 92, 'OpImageSampleProjDrefImplicitLod' : 93, 'OpImageSampleProjDrefExplicitLod' : 94, 'OpImageFetch' : 95, 'OpImageGather' : 96, 'OpImageDrefGather' : 97, 'OpImageRead' : 98, 'OpImageWrite' : 99, 'OpImage' : 100, 'OpImageQueryFormat' : 101, 'OpImageQueryOrder' : 102, 'OpImageQuerySizeLod' : 103, 'OpImageQuerySize' : 104, 'OpImageQueryLod' : 105, 'OpImageQueryLevels' : 106, 'OpImageQuerySamples' : 107, 'OpConvertFToU' : 109, 'OpConvertFToS' : 110, 'OpConvertSToF' : 111, 'OpConvertUToF' : 112, 'OpUConvert' : 113, 'OpSConvert' : 114, 'OpFConvert' : 115, 'OpQuantizeToF16' : 116, 'OpConvertPtrToU' : 117, 'OpSatConvertSToU' : 118, 'OpSatConvertUToS' : 119, 'OpConvertUToPtr' : 120, 'OpPtrCastToGeneric' : 121, 'OpGenericCastToPtr' : 122, 'OpGenericCastToPtrExplicit' : 123, 'OpBitcast' : 124, 'OpSNegate' : 126, 'OpFNegate' : 127, 'OpIAdd' : 128, 'OpFAdd' : 129, 'OpISub' : 130, 'OpFSub' : 131, 'OpIMul' : 132, 'OpFMul' : 133, 'OpUDiv' : 134, 'OpSDiv' : 135, 'OpFDiv' : 136, 'OpUMod' : 137, 'OpSRem' : 138, 'OpSMod' : 139, 'OpFRem' : 140, 'OpFMod' : 141, 'OpVectorTimesScalar' : 142, 'OpMatrixTimesScalar' : 143, 'OpVectorTimesMatrix' : 144, 'OpMatrixTimesVector' : 145, 'OpMatrixTimesMatrix' : 146, 'OpOuterProduct' : 147, 'OpDot' : 148, 'OpIAddCarry' : 149, 'OpISubBorrow' : 150, 'OpUMulExtended' : 151, 'OpSMulExtended' : 152, 'OpAny' : 154, 'OpAll' : 155, 'OpIsNan' : 156, 'OpIsInf' : 157, 'OpIsFinite' : 158, 'OpIsNormal' : 159, 'OpSignBitSet' : 160, 'OpLessOrGreater' : 161, 'OpOrdered' : 162, 'OpUnordered' : 163, 'OpLogicalEqual' : 164, 'OpLogicalNotEqual' : 165, 'OpLogicalOr' : 166, 'OpLogicalAnd' : 167, 'OpLogicalNot' : 168, 'OpSelect' : 169, 'OpIEqual' : 170, 'OpINotEqual' : 171, 'OpUGreaterThan' : 172, 'OpSGreaterThan' : 173, 'OpUGreaterThanEqual' : 174, 'OpSGreaterThanEqual' : 175, 'OpULessThan' : 176, 'OpSLessThan' : 177, 'OpULessThanEqual' : 178, 'OpSLessThanEqual' : 179, 'OpFOrdEqual' : 180, 'OpFUnordEqual' : 181, 'OpFOrdNotEqual' : 182, 'OpFUnordNotEqual' : 183, 'OpFOrdLessThan' : 184, 'OpFUnordLessThan' : 185, 'OpFOrdGreaterThan' : 186, 'OpFUnordGreaterThan' : 187, 'OpFOrdLessThanEqual' : 188, 'OpFUnordLessThanEqual' : 189, 'OpFOrdGreaterThanEqual' : 190, 'OpFUnordGreaterThanEqual' : 191, 'OpShiftRightLogical' : 194, 'OpShiftRightArithmetic' : 195, 'OpShiftLeftLogical' : 196, 'OpBitwiseOr' : 197, 'OpBitwiseXor' : 198, 'OpBitwiseAnd' : 199, 'OpNot' : 200, 'OpBitFieldInsert' : 201, 'OpBitFieldSExtract' : 202, 'OpBitFieldUExtract' : 203, 'OpBitReverse' : 204, 'OpBitCount' : 205, 'OpDPdx' : 207, 'OpDPdy' : 208, 'OpFwidth' : 209, 'OpDPdxFine' : 210, 'OpDPdyFine' : 211, 'OpFwidthFine' : 212, 'OpDPdxCoarse' : 213, 'OpDPdyCoarse' : 214, 'OpFwidthCoarse' : 215, 'OpEmitVertex' : 218, 'OpEndPrimitive' : 219, 'OpEmitStreamVertex' : 220, 'OpEndStreamPrimitive' : 221, 'OpControlBarrier' : 224, 'OpMemoryBarrier' : 225, 'OpAtomicLoad' : 227, 'OpAtomicStore' : 228, 'OpAtomicExchange' : 229, 'OpAtomicCompareExchange' : 230, 'OpAtomicCompareExchangeWeak' : 231, 'OpAtomicIIncrement' : 232, 'OpAtomicIDecrement' : 233, 'OpAtomicIAdd' : 234, 'OpAtomicISub' : 235, 'OpAtomicSMin' : 236, 'OpAtomicUMin' : 237, 'OpAtomicSMax' : 238, 'OpAtomicUMax' : 239, 'OpAtomicAnd' : 240, 'OpAtomicOr' : 241, 'OpAtomicXor' : 242, 'OpPhi' : 245, 'OpLoopMerge' : 246, 'OpSelectionMerge' : 247, 'OpLabel' : 248, 'OpBranch' : 249, 'OpBranchConditional' : 250, 'OpSwitch' : 251, 'OpKill' : 252, 'OpReturn' : 253, 'OpReturnValue' : 254, 'OpUnreachable' : 255, 'OpLifetimeStart' : 256, 'OpLifetimeStop' : 257, 'OpGroupAsyncCopy' : 259, 'OpGroupWaitEvents' : 260, 'OpGroupAll' : 261, 'OpGroupAny' : 262, 'OpGroupBroadcast' : 263, 'OpGroupIAdd' : 264, 'OpGroupFAdd' : 265, 'OpGroupFMin' : 266, 'OpGroupUMin' : 267, 'OpGroupSMin' : 268, 'OpGroupFMax' : 269, 'OpGroupUMax' : 270, 'OpGroupSMax' : 271, 'OpReadPipe' : 274, 'OpWritePipe' : 275, 'OpReservedReadPipe' : 276, 'OpReservedWritePipe' : 277, 'OpReserveReadPipePackets' : 278, 'OpReserveWritePipePackets' : 279, 'OpCommitReadPipe' : 280, 'OpCommitWritePipe' : 281, 'OpIsValidReserveId' : 282, 'OpGetNumPipePackets' : 283, 'OpGetMaxPipePackets' : 284, 'OpGroupReserveReadPipePackets' : 285, 'OpGroupReserveWritePipePackets' : 286, 'OpGroupCommitReadPipe' : 287, 'OpGroupCommitWritePipe' : 288, 'OpEnqueueMarker' : 291, 'OpEnqueueKernel' : 292, 'OpGetKernelNDrangeSubGroupCount' : 293, 'OpGetKernelNDrangeMaxSubGroupSize' : 294, 'OpGetKernelWorkGroupSize' : 295, 'OpGetKernelPreferredWorkGroupSizeMultiple' : 296, 'OpRetainEvent' : 297, 'OpReleaseEvent' : 298, 'OpCreateUserEvent' : 299, 'OpIsValidEvent' : 300, 'OpSetUserEventStatus' : 301, 'OpCaptureEventProfilingInfo' : 302, 'OpGetDefaultQueue' : 303, 'OpBuildNDRange' : 304, 'OpImageSparseSampleImplicitLod' : 305, 'OpImageSparseSampleExplicitLod' : 306, 'OpImageSparseSampleDrefImplicitLod' : 307, 'OpImageSparseSampleDrefExplicitLod' : 308, 'OpImageSparseSampleProjImplicitLod' : 309, 'OpImageSparseSampleProjExplicitLod' : 310, 'OpImageSparseSampleProjDrefImplicitLod' : 311, 'OpImageSparseSampleProjDrefExplicitLod' : 312, 'OpImageSparseFetch' : 313, 'OpImageSparseGather' : 314, 'OpImageSparseDrefGather' : 315, 'OpImageSparseTexelsResident' : 316, 'OpNoLine' : 317, 'OpAtomicFlagTestAndSet' : 318, 'OpAtomicFlagClear' : 319, 'OpImageSparseRead' : 320, 'OpSizeOf' : 321, 'OpTypePipeStorage' : 322, 'OpConstantPipeStorage' : 323, 'OpCreatePipeFromPipeStorage' : 324, 'OpGetKernelLocalSizeForSubgroupCount' : 325, 'OpGetKernelMaxNumSubgroups' : 326, 'OpTypeNamedBarrier' : 327, 'OpNamedBarrierInitialize' : 328, 'OpMemoryNamedBarrier' : 329, 'OpModuleProcessed' : 330, 'OpDecorateId' : 332, 'OpSubgroupBallotKHR' : 4421, 'OpSubgroupFirstInvocationKHR' : 4422, 'OpSubgroupAllKHR' : 4428, 'OpSubgroupAnyKHR' : 4429, 'OpSubgroupAllEqualKHR' : 4430, 'OpSubgroupReadInvocationKHR' : 4432, 'OpGroupIAddNonUniformAMD' : 5000, 'OpGroupFAddNonUniformAMD' : 5001, 'OpGroupFMinNonUniformAMD' : 5002, 'OpGroupUMinNonUniformAMD' : 5003, 'OpGroupSMinNonUniformAMD' : 5004, 'OpGroupFMaxNonUniformAMD' : 5005, 'OpGroupUMaxNonUniformAMD' : 5006, 'OpGroupSMaxNonUniformAMD' : 5007, 'OpFragmentMaskFetchAMD' : 5011, 'OpFragmentFetchAMD' : 5012, 'OpSubgroupShuffleINTEL' : 5571, 'OpSubgroupShuffleDownINTEL' : 5572, 'OpSubgroupShuffleUpINTEL' : 5573, 'OpSubgroupShuffleXorINTEL' : 5574, 'OpSubgroupBlockReadINTEL' : 5575, 'OpSubgroupBlockWriteINTEL' : 5576, 'OpSubgroupImageBlockReadINTEL' : 5577, 'OpSubgroupImageBlockWriteINTEL' : 5578, 'OpDecorateStringGOOGLE' : 5632, 'OpMemberDecorateStringGOOGLE' : 5633, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/000077500000000000000000000000001463234063200203305ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/GLSL.std.450.h000066400000000000000000000100371463234063200223430ustar00rootroot00000000000000/* ** Copyright (c) 2014-2016 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ #ifndef GLSLstd450_H #define GLSLstd450_H static const int GLSLstd450Version = 100; static const int GLSLstd450Revision = 3; enum GLSLstd450 { GLSLstd450Bad = 0, // Don't use GLSLstd450Round = 1, GLSLstd450RoundEven = 2, GLSLstd450Trunc = 3, GLSLstd450FAbs = 4, GLSLstd450SAbs = 5, GLSLstd450FSign = 6, GLSLstd450SSign = 7, GLSLstd450Floor = 8, GLSLstd450Ceil = 9, GLSLstd450Fract = 10, GLSLstd450Radians = 11, GLSLstd450Degrees = 12, GLSLstd450Sin = 13, GLSLstd450Cos = 14, GLSLstd450Tan = 15, GLSLstd450Asin = 16, GLSLstd450Acos = 17, GLSLstd450Atan = 18, GLSLstd450Sinh = 19, GLSLstd450Cosh = 20, GLSLstd450Tanh = 21, GLSLstd450Asinh = 22, GLSLstd450Acosh = 23, GLSLstd450Atanh = 24, GLSLstd450Atan2 = 25, GLSLstd450Pow = 26, GLSLstd450Exp = 27, GLSLstd450Log = 28, GLSLstd450Exp2 = 29, GLSLstd450Log2 = 30, GLSLstd450Sqrt = 31, GLSLstd450InverseSqrt = 32, GLSLstd450Determinant = 33, GLSLstd450MatrixInverse = 34, GLSLstd450Modf = 35, // second operand needs an OpVariable to write to GLSLstd450ModfStruct = 36, // no OpVariable operand GLSLstd450FMin = 37, GLSLstd450UMin = 38, GLSLstd450SMin = 39, GLSLstd450FMax = 40, GLSLstd450UMax = 41, GLSLstd450SMax = 42, GLSLstd450FClamp = 43, GLSLstd450UClamp = 44, GLSLstd450SClamp = 45, GLSLstd450FMix = 46, GLSLstd450IMix = 47, // Reserved GLSLstd450Step = 48, GLSLstd450SmoothStep = 49, GLSLstd450Fma = 50, GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to GLSLstd450FrexpStruct = 52, // no OpVariable operand GLSLstd450Ldexp = 53, GLSLstd450PackSnorm4x8 = 54, GLSLstd450PackUnorm4x8 = 55, GLSLstd450PackSnorm2x16 = 56, GLSLstd450PackUnorm2x16 = 57, GLSLstd450PackHalf2x16 = 58, GLSLstd450PackDouble2x32 = 59, GLSLstd450UnpackSnorm2x16 = 60, GLSLstd450UnpackUnorm2x16 = 61, GLSLstd450UnpackHalf2x16 = 62, GLSLstd450UnpackSnorm4x8 = 63, GLSLstd450UnpackUnorm4x8 = 64, GLSLstd450UnpackDouble2x32 = 65, GLSLstd450Length = 66, GLSLstd450Distance = 67, GLSLstd450Cross = 68, GLSLstd450Normalize = 69, GLSLstd450FaceForward = 70, GLSLstd450Reflect = 71, GLSLstd450Refract = 72, GLSLstd450FindILsb = 73, GLSLstd450FindSMsb = 74, GLSLstd450FindUMsb = 75, GLSLstd450InterpolateAtCentroid = 76, GLSLstd450InterpolateAtSample = 77, GLSLstd450InterpolateAtOffset = 78, GLSLstd450NMin = 79, GLSLstd450NMax = 80, GLSLstd450NClamp = 81, GLSLstd450Count }; #endif // #ifndef GLSLstd450_H spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/OpenCL.std.h000066400000000000000000000112641463234063200224160ustar00rootroot00000000000000/* ** Copyright (c) 2015-2017 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ namespace OpenCLLIB { enum Entrypoints { // Section 2.1: Math extended instructions Acos = 0, Acosh = 1, Acospi = 2, Asin = 3, Asinh = 4, Asinpi = 5, Atan = 6, Atan2 = 7, Atanh = 8, Atanpi = 9, Atan2pi = 10, Cbrt = 11, Ceil = 12, Copysign = 13, Cos = 14, Cosh = 15, Cospi = 16, Erfc = 17, Erf = 18, Exp = 19, Exp2 = 20, Exp10 = 21, Expm1 = 22, Fabs = 23, Fdim = 24, Floor = 25, Fma = 26, Fmax = 27, Fmin = 28, Fmod = 29, Fract = 30, Frexp = 31, Hypot = 32, Ilogb = 33, Ldexp = 34, Lgamma = 35, Lgamma_r = 36, Log = 37, Log2 = 38, Log10 = 39, Log1p = 40, Logb = 41, Mad = 42, Maxmag = 43, Minmag = 44, Modf = 45, Nan = 46, Nextafter = 47, Pow = 48, Pown = 49, Powr = 50, Remainder = 51, Remquo = 52, Rint = 53, Rootn = 54, Round = 55, Rsqrt = 56, Sin = 57, Sincos = 58, Sinh = 59, Sinpi = 60, Sqrt = 61, Tan = 62, Tanh = 63, Tanpi = 64, Tgamma = 65, Trunc = 66, Half_cos = 67, Half_divide = 68, Half_exp = 69, Half_exp2 = 70, Half_exp10 = 71, Half_log = 72, Half_log2 = 73, Half_log10 = 74, Half_powr = 75, Half_recip = 76, Half_rsqrt = 77, Half_sin = 78, Half_sqrt = 79, Half_tan = 80, Native_cos = 81, Native_divide = 82, Native_exp = 83, Native_exp2 = 84, Native_exp10 = 85, Native_log = 86, Native_log2 = 87, Native_log10 = 88, Native_powr = 89, Native_recip = 90, Native_rsqrt = 91, Native_sin = 92, Native_sqrt = 93, Native_tan = 94, // Section 2.2: Integer instructions SAbs = 141, SAbs_diff = 142, SAdd_sat = 143, UAdd_sat = 144, SHadd = 145, UHadd = 146, SRhadd = 147, URhadd = 148, SClamp = 149, UClamp = 150, Clz = 151, Ctz = 152, SMad_hi = 153, UMad_sat = 154, SMad_sat = 155, SMax = 156, UMax = 157, SMin = 158, UMin = 159, SMul_hi = 160, Rotate = 161, SSub_sat = 162, USub_sat = 163, U_Upsample = 164, S_Upsample = 165, Popcount = 166, SMad24 = 167, UMad24 = 168, SMul24 = 169, UMul24 = 170, UAbs = 201, UAbs_diff = 202, UMul_hi = 203, UMad_hi = 204, // Section 2.3: Common instructions FClamp = 95, Degrees = 96, FMax_common = 97, FMin_common = 98, Mix = 99, Radians = 100, Step = 101, Smoothstep = 102, Sign = 103, // Section 2.4: Geometric instructions Cross = 104, Distance = 105, Length = 106, Normalize = 107, Fast_distance = 108, Fast_length = 109, Fast_normalize = 110, // Section 2.5: Relational instructions Bitselect = 186, Select = 187, // Section 2.6: Vector Data Load and Store instructions Vloadn = 171, Vstoren = 172, Vload_half = 173, Vload_halfn = 174, Vstore_half = 175, Vstore_half_r = 176, Vstore_halfn = 177, Vstore_halfn_r = 178, Vloada_halfn = 179, Vstorea_halfn = 180, Vstorea_halfn_r = 181, // Section 2.7: Miscellaneous Vector instructions Shuffle = 182, Shuffle2 = 183, // Section 2.8: Misc instructions Printf = 184, Prefetch = 185, }; } // end namespace OpenCLLIB spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/extinst.glsl.std.450.grammar.json000066400000000000000000000346331463234063200264170ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "Round", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "RoundEven", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Trunc", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FAbs", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SAbs", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FSign", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SSign", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Floor", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ceil", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fract", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Radians", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "Degrees", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "Sin", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tan", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asin", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acos", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'y_over_x'" } ] }, { "opname" : "Sinh", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cosh", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tanh", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asinh", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acosh", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atanh", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan2", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Pow", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Exp", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Exp2", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log2", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Sqrt", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "InverseSqrt", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Determinant", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "MatrixInverse", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Modf", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "ModfStruct", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FMin", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMin", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMin", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FMax", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMax", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMax", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FClamp", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "UClamp", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "SClamp", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "FMix", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "IMix", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "Step", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SmoothStep", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fma", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "Frexp", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "FrexpStruct", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ldexp", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "PackSnorm4x8", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm4x8", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackSnorm2x16", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm2x16", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackHalf2x16", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackDouble2x32", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "UnpackSnorm2x16", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm2x16", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackHalf2x16", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "UnpackSnorm4x8", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm4x8", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackDouble2x32", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "Length", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Distance", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "Cross", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Normalize", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FaceForward", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'Nref'" } ] }, { "opname" : "Reflect", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" } ] }, { "opname" : "Refract", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'eta'" } ] }, { "opname" : "FindILsb", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindSMsb", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindUMsb", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "InterpolateAtCentroid", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtSample", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'sample'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtOffset", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'offset'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "NMin", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NMax", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NClamp", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/extinst.opencl.std.100.grammar.json000066400000000000000000000713001463234063200267160ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "acos", "opcode" : 0, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acosh", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acospi", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asin", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinh", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinpi", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanh", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanpi", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2pi", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cbrt", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ceil", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "copysign", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cosh", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cospi", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erfc", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erf", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp2", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp10", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "expm1", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fabs", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fdim", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "floor", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fma", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fmax", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmod", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fract", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'ptr'" } ] }, { "opname" : "frexp", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "hypot", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "ilogb", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ldexp", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'k'" } ] }, { "opname" : "lgamma", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "lgamma_r", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'signp'" } ] }, { "opname" : "log", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log2", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log10", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log1p", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "logb", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "mad", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "maxmag", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "minmag", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "modf", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'iptr'" } ] }, { "opname" : "nan", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'nancode'" } ] }, { "opname" : "nextafter", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "pow", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y" } ] }, { "opname" : "pown", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "powr", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remainder", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remquo", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'quo'" } ] }, { "opname" : "rint", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rootn", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "round", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rsqrt", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sin", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sincos", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'cosval'" } ] }, { "opname" : "sinh", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sinpi", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sqrt", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tan", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanh", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanpi", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tgamma", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "trunc", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_cos", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_divide", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_exp", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp2", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp10", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log2", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log10", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_powr", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_recip", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_rsqrt", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sin", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sqrt", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_tan", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_cos", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_divide", "opcode" : 82, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_exp", "opcode" : 83, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp2", "opcode" : 84, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp10", "opcode" : 85, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log", "opcode" : 86, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log2", "opcode" : 87, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log10", "opcode" : 88, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_powr", "opcode" : 89, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_recip", "opcode" : 90, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_rsqrt", "opcode" : 91, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sin", "opcode" : 92, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sqrt", "opcode" : 93, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_tan", "opcode" : 94, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs", "opcode" : 141, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs_diff", "opcode" : 142, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_add_sat", "opcode" : 143, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_add_sat", "opcode" : 144, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_hadd", "opcode" : 145, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_hadd", "opcode" : 146, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_rhadd", "opcode" : 147, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_rhadd", "opcode" : 148, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_clamp", "opcode" : 149, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "u_clamp", "opcode" : 150, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "clz", "opcode" : 151, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ctz", "opcode" : 152, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad_hi", "opcode" : 153, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "u_mad_sat", "opcode" : 154, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mad_sat", "opcode" : 155, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_max", "opcode" : 156, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_max", "opcode" : 157, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_min", "opcode" : 158, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_min", "opcode" : 159, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_mul_hi", "opcode" : 160, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "rotate", "opcode" : 161, "operands" : [ { "kind" : "IdRef", "name" : "'v'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "s_sub_sat", "opcode" : 162, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_sub_sat", "opcode" : 163, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_upsample", "opcode" : 164, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "s_upsample", "opcode" : 165, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "popcount", "opcode" : 166, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad24", "opcode" : 167, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "u_mad24", "opcode" : 168, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mul24", "opcode" : 169, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul24", "opcode" : 170, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_abs", "opcode" : 201, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "u_abs_diff", "opcode" : 202, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul_hi", "opcode" : 203, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mad_hi", "opcode" : 204, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fclamp", "opcode" : 95, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "degrees", "opcode" :96, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "fmax_common", "opcode" : 97, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin_common", "opcode" : 98, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "mix", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "radians", "opcode" : 100, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "step", "opcode" : 101, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "smoothstep", "opcode" : 102, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sign", "opcode" : 103, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cross", "opcode" : 104, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "distance", "opcode" : 105, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "length", "opcode" : 106, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "normalize", "opcode" : 107, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_distance", "opcode" : 108, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "fast_length", "opcode" : 109, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_normalize", "opcode" : 110, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "bitselect", "opcode" : 186, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "select", "opcode" : 187, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "vloadn", "opcode" : 171, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstoren", "opcode" : 172, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_half", "opcode" : 173, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_halfn", "opcode" : 174, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstore_half", "opcode" : 175, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_half_r", "opcode" : 176, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vstore_halfn", "opcode" : 177, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_halfn_r", "opcode" : 178, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vloada_halfn", "opcode" : 179, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstorea_halfn", "opcode" : 180, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstorea_halfn_r", "opcode" : 181, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "shuffle", "opcode" : 182, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "shuffle2", "opcode" : 183, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "printf", "opcode" : 184, "operands" : [ { "kind" : "IdRef", "name" : "'format'" }, { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" } ] }, { "opname" : "prefetch", "opcode" : 185, "operands" : [ { "kind" : "IdRef", "name" : "'ptr'" }, { "kind" : "IdRef", "name" : "'num elements'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.core.grammar.json000066400000000000000000005150541463234063200247540ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2016 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "magic_number" : "0x07230203", "major_version" : 1, "minor_version" : 2, "revision" : 2, "instructions" : [ { "opname" : "OpNop", "opcode" : 0 }, { "opname" : "OpUndef", "opcode" : 1, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSourceContinued", "opcode" : 2, "operands" : [ { "kind" : "LiteralString", "name" : "'Continued Source'" } ] }, { "opname" : "OpSource", "opcode" : 3, "operands" : [ { "kind" : "SourceLanguage" }, { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" }, { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" } ] }, { "opname" : "OpSourceExtension", "opcode" : 4, "operands" : [ { "kind" : "LiteralString", "name" : "'Extension'" } ] }, { "opname" : "OpName", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpMemberName", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpString", "opcode" : 7, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'String'" } ] }, { "opname" : "OpLine", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "OpExtension", "opcode" : 10, "operands" : [ { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpExtInstImport", "opcode" : 11, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Name'" } ] }, { "opname" : "OpExtInst", "opcode" : 12, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } ] }, { "opname" : "OpMemoryModel", "opcode" : 14, "operands" : [ { "kind" : "AddressingModel" }, { "kind" : "MemoryModel" } ] }, { "opname" : "OpEntryPoint", "opcode" : 15, "operands" : [ { "kind" : "ExecutionModel" }, { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" } ] }, { "opname" : "OpExecutionMode", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } ] }, { "opname" : "OpCapability", "opcode" : 17, "operands" : [ { "kind" : "Capability", "name" : "'Capability'" } ] }, { "opname" : "OpTypeVoid", "opcode" : 19, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeBool", "opcode" : 20, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeInt", "opcode" : 21, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" }, { "kind" : "LiteralInteger", "name" : "'Signedness'" } ] }, { "opname" : "OpTypeFloat", "opcode" : 22, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" } ] }, { "opname" : "OpTypeVector", "opcode" : 23, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } ] }, { "opname" : "OpTypeMatrix", "opcode" : 24, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Column Type'" }, { "kind" : "LiteralInteger", "name" : "'Column Count'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpTypeImage", "opcode" : 25, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Type'" }, { "kind" : "Dim" }, { "kind" : "LiteralInteger", "name" : "'Depth'" }, { "kind" : "LiteralInteger", "name" : "'Arrayed'" }, { "kind" : "LiteralInteger", "name" : "'MS'" }, { "kind" : "LiteralInteger", "name" : "'Sampled'" }, { "kind" : "ImageFormat" }, { "kind" : "AccessQualifier", "quantifier" : "?" } ] }, { "opname" : "OpTypeSampler", "opcode" : 26, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpTypeSampledImage", "opcode" : 27, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } ] }, { "opname" : "OpTypeArray", "opcode" : 28, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" }, { "kind" : "IdRef", "name" : "'Length'" } ] }, { "opname" : "OpTypeRuntimeArray", "opcode" : 29, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpTypeStruct", "opcode" : 30, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ] }, { "opname" : "OpTypeOpaque", "opcode" : 31, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "The name of the opaque type." } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpTypePointer", "opcode" : 32, "operands" : [ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "name" : "'Type'" } ] }, { "opname" : "OpTypeFunction", "opcode" : 33, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." } ] }, { "opname" : "OpTypeEvent", "opcode" : 34, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpTypeDeviceEvent", "opcode" : 35, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpTypeReserveId", "opcode" : 36, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpTypeQueue", "opcode" : 37, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpTypePipe", "opcode" : 38, "operands" : [ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'Qualifier'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpTypeForwardPointer", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer Type'" }, { "kind" : "StorageClass" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpConstantTrue", "opcode" : 41, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpConstantFalse", "opcode" : 42, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpConstant", "opcode" : 43, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ] }, { "opname" : "OpConstantComposite", "opcode" : 44, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpConstantSampler", "opcode" : 45, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "SamplerAddressingMode" }, { "kind" : "LiteralInteger", "name" : "'Param'" }, { "kind" : "SamplerFilterMode" } ], "capabilities" : [ "LiteralSampler" ] }, { "opname" : "OpConstantNull", "opcode" : 46, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstantTrue", "opcode" : 48, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstantFalse", "opcode" : 49, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpSpecConstant", "opcode" : 50, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ] }, { "opname" : "OpSpecConstantComposite", "opcode" : 51, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpSpecConstantOp", "opcode" : 52, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" } ] }, { "opname" : "OpFunction", "opcode" : 54, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "FunctionControl" }, { "kind" : "IdRef", "name" : "'Function Type'" } ] }, { "opname" : "OpFunctionParameter", "opcode" : 55, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ] }, { "opname" : "OpFunctionEnd", "opcode" : 56 }, { "opname" : "OpFunctionCall", "opcode" : 57, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." } ] }, { "opname" : "OpVariable", "opcode" : 59, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" } ] }, { "opname" : "OpImageTexelPointer", "opcode" : 60, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Sample'" } ] }, { "opname" : "OpLoad", "opcode" : 61, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpStore", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpCopyMemory", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ] }, { "opname" : "OpCopyMemorySized", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpAccessChain", "opcode" : 65, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpInBoundsAccessChain", "opcode" : 66, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpPtrAccessChain", "opcode" : 67, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ] }, { "opname" : "OpArrayLength", "opcode" : 68, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Structure'" }, { "kind" : "LiteralInteger", "name" : "'Array member'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpGenericPtrMemSemantics", "opcode" : 69, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpInBoundsPtrAccessChain", "opcode" : 70, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpDecorate", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpMemberDecorate", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'Structure Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpDecorationGroup", "opcode" : 73, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpGroupDecorate", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" } ] }, { "opname" : "OpGroupMemberDecorate", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" } ] }, { "opname" : "OpVectorExtractDynamic", "opcode" : 77, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Index'" } ] }, { "opname" : "OpVectorInsertDynamic", "opcode" : 78, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "IdRef", "name" : "'Index'" } ] }, { "opname" : "OpVectorShuffle", "opcode" : 79, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" } ] }, { "opname" : "OpCompositeConstruct", "opcode" : 80, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ] }, { "opname" : "OpCompositeExtract", "opcode" : 81, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpCompositeInsert", "opcode" : 82, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ] }, { "opname" : "OpCopyObject", "opcode" : 83, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpTranspose", "opcode" : 84, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpSampledImage", "opcode" : 86, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Sampler'" } ] }, { "opname" : "OpImageSampleImplicitLod", "opcode" : 87, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleExplicitLod", "opcode" : 88, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ] }, { "opname" : "OpImageSampleDrefImplicitLod", "opcode" : 89, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleDrefExplicitLod", "opcode" : 90, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjImplicitLod", "opcode" : 91, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjExplicitLod", "opcode" : 92, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjDrefImplicitLod", "opcode" : 93, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageSampleProjDrefExplicitLod", "opcode" : 94, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageFetch", "opcode" : 95, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImageGather", "opcode" : 96, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageDrefGather", "opcode" : 97, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpImageRead", "opcode" : 98, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImageWrite", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Texel'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ] }, { "opname" : "OpImage", "opcode" : 100, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" } ] }, { "opname" : "OpImageQueryFormat", "opcode" : 101, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageQueryOrder", "opcode" : 102, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageQuerySizeLod", "opcode" : 103, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Level of Detail'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQuerySize", "opcode" : 104, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQueryLod", "opcode" : 105, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "ImageQuery" ] }, { "opname" : "OpImageQueryLevels", "opcode" : 106, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpImageQuerySamples", "opcode" : 107, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ] }, { "opname" : "OpConvertFToU", "opcode" : 109, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpConvertFToS", "opcode" : 110, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpConvertSToF", "opcode" : 111, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ] }, { "opname" : "OpConvertUToF", "opcode" : 112, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ] }, { "opname" : "OpUConvert", "opcode" : 113, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ] }, { "opname" : "OpSConvert", "opcode" : 114, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ] }, { "opname" : "OpFConvert", "opcode" : 115, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ] }, { "opname" : "OpQuantizeToF16", "opcode" : 116, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpConvertPtrToU", "opcode" : 117, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpSatConvertSToU", "opcode" : 118, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpSatConvertUToS", "opcode" : 119, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpConvertUToPtr", "opcode" : 120, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Integer Value'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpPtrCastToGeneric", "opcode" : 121, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGenericCastToPtr", "opcode" : 122, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGenericCastToPtrExplicit", "opcode" : 123, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "StorageClass", "name" : "'Storage'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpBitcast", "opcode" : 124, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpSNegate", "opcode" : 126, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpFNegate", "opcode" : 127, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpIAdd", "opcode" : 128, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFAdd", "opcode" : 129, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpISub", "opcode" : 130, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFSub", "opcode" : 131, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpIMul", "opcode" : 132, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFMul", "opcode" : 133, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUDiv", "opcode" : 134, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSDiv", "opcode" : 135, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFDiv", "opcode" : 136, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUMod", "opcode" : 137, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSRem", "opcode" : 138, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSMod", "opcode" : 139, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFRem", "opcode" : 140, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFMod", "opcode" : 141, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpVectorTimesScalar", "opcode" : 142, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ] }, { "opname" : "OpMatrixTimesScalar", "opcode" : 143, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpVectorTimesMatrix", "opcode" : 144, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpMatrixTimesVector", "opcode" : 145, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Vector'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpMatrixTimesMatrix", "opcode" : 146, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'LeftMatrix'" }, { "kind" : "IdRef", "name" : "'RightMatrix'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpOuterProduct", "opcode" : 147, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], "capabilities" : [ "Matrix" ] }, { "opname" : "OpDot", "opcode" : 148, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ] }, { "opname" : "OpIAddCarry", "opcode" : 149, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpISubBorrow", "opcode" : 150, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUMulExtended", "opcode" : 151, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSMulExtended", "opcode" : 152, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpAny", "opcode" : 154, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ] }, { "opname" : "OpAll", "opcode" : 155, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ] }, { "opname" : "OpIsNan", "opcode" : 156, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "OpIsInf", "opcode" : 157, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "OpIsFinite", "opcode" : 158, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpIsNormal", "opcode" : 159, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpSignBitSet", "opcode" : 160, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLessOrGreater", "opcode" : 161, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpOrdered", "opcode" : 162, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpUnordered", "opcode" : 163, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLogicalEqual", "opcode" : 164, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalNotEqual", "opcode" : 165, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalOr", "opcode" : 166, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalAnd", "opcode" : 167, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpLogicalNot", "opcode" : 168, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpSelect", "opcode" : 169, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'Object 1'" }, { "kind" : "IdRef", "name" : "'Object 2'" } ] }, { "opname" : "OpIEqual", "opcode" : 170, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpINotEqual", "opcode" : 171, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUGreaterThan", "opcode" : 172, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSGreaterThan", "opcode" : 173, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpUGreaterThanEqual", "opcode" : 174, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSGreaterThanEqual", "opcode" : 175, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpULessThan", "opcode" : 176, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSLessThan", "opcode" : 177, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpULessThanEqual", "opcode" : 178, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpSLessThanEqual", "opcode" : 179, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdEqual", "opcode" : 180, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordEqual", "opcode" : 181, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdNotEqual", "opcode" : 182, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordNotEqual", "opcode" : 183, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdLessThan", "opcode" : 184, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordLessThan", "opcode" : 185, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdGreaterThan", "opcode" : 186, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordGreaterThan", "opcode" : 187, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdLessThanEqual", "opcode" : 188, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordLessThanEqual", "opcode" : 189, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFOrdGreaterThanEqual", "opcode" : 190, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpFUnordGreaterThanEqual", "opcode" : 191, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpShiftRightLogical", "opcode" : 194, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpShiftRightArithmetic", "opcode" : 195, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpShiftLeftLogical", "opcode" : 196, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ] }, { "opname" : "OpBitwiseOr", "opcode" : 197, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpBitwiseXor", "opcode" : 198, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpBitwiseAnd", "opcode" : 199, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ] }, { "opname" : "OpNot", "opcode" : 200, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ] }, { "opname" : "OpBitFieldInsert", "opcode" : 201, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Insert'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitFieldSExtract", "opcode" : 202, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitFieldUExtract", "opcode" : 203, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitReverse", "opcode" : 204, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpBitCount", "opcode" : 205, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ] }, { "opname" : "OpDPdx", "opcode" : 207, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpDPdy", "opcode" : 208, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpFwidth", "opcode" : 209, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ] }, { "opname" : "OpDPdxFine", "opcode" : 210, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdyFine", "opcode" : 211, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpFwidthFine", "opcode" : 212, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdxCoarse", "opcode" : 213, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpDPdyCoarse", "opcode" : 214, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpFwidthCoarse", "opcode" : 215, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ] }, { "opname" : "OpEmitVertex", "opcode" : 218, "capabilities" : [ "Geometry" ] }, { "opname" : "OpEndPrimitive", "opcode" : 219, "capabilities" : [ "Geometry" ] }, { "opname" : "OpEmitStreamVertex", "opcode" : 220, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ] }, { "opname" : "OpEndStreamPrimitive", "opcode" : 221, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ] }, { "opname" : "OpControlBarrier", "opcode" : 224, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpMemoryBarrier", "opcode" : 225, "operands" : [ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicLoad", "opcode" : 227, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicStore", "opcode" : 228, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicExchange", "opcode" : 229, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicCompareExchange", "opcode" : 230, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ] }, { "opname" : "OpAtomicCompareExchangeWeak", "opcode" : 231, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpAtomicIIncrement", "opcode" : 232, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicIDecrement", "opcode" : 233, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ] }, { "opname" : "OpAtomicIAdd", "opcode" : 234, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicISub", "opcode" : 235, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicSMin", "opcode" : 236, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicUMin", "opcode" : 237, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicSMax", "opcode" : 238, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicUMax", "opcode" : 239, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicAnd", "opcode" : 240, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicOr", "opcode" : 241, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpAtomicXor", "opcode" : 242, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpPhi", "opcode" : 245, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" } ] }, { "opname" : "OpLoopMerge", "opcode" : 246, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "IdRef", "name" : "'Continue Target'" }, { "kind" : "LoopControl" } ] }, { "opname" : "OpSelectionMerge", "opcode" : 247, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "SelectionControl" } ] }, { "opname" : "OpLabel", "opcode" : 248, "operands" : [ { "kind" : "IdResult" } ] }, { "opname" : "OpBranch", "opcode" : 249, "operands" : [ { "kind" : "IdRef", "name" : "'Target Label'" } ] }, { "opname" : "OpBranchConditional", "opcode" : 250, "operands" : [ { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'True Label'" }, { "kind" : "IdRef", "name" : "'False Label'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" } ] }, { "opname" : "OpSwitch", "opcode" : 251, "operands" : [ { "kind" : "IdRef", "name" : "'Selector'" }, { "kind" : "IdRef", "name" : "'Default'" }, { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" } ] }, { "opname" : "OpKill", "opcode" : 252, "capabilities" : [ "Shader" ] }, { "opname" : "OpReturn", "opcode" : 253 }, { "opname" : "OpReturnValue", "opcode" : 254, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "OpUnreachable", "opcode" : 255 }, { "opname" : "OpLifetimeStart", "opcode" : 256, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpLifetimeStop", "opcode" : 257, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupAsyncCopy", "opcode" : 259, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Destination'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Num Elements'" }, { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupWaitEvents", "opcode" : 260, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Events List'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpGroupAll", "opcode" : 261, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupAny", "opcode" : 262, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupBroadcast", "opcode" : 263, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'LocalId'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupIAdd", "opcode" : 264, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFAdd", "opcode" : 265, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMin", "opcode" : 266, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMin", "opcode" : 267, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMin", "opcode" : 268, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMax", "opcode" : 269, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMax", "opcode" : 270, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMax", "opcode" : 271, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpReadPipe", "opcode" : 274, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpWritePipe", "opcode" : 275, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReservedReadPipe", "opcode" : 276, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReservedWritePipe", "opcode" : 277, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReserveReadPipePackets", "opcode" : 278, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpReserveWritePipePackets", "opcode" : 279, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpCommitReadPipe", "opcode" : 280, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpCommitWritePipe", "opcode" : 281, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpIsValidReserveId", "opcode" : 282, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reserve Id'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGetNumPipePackets", "opcode" : 283, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGetMaxPipePackets", "opcode" : 284, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupReserveReadPipePackets", "opcode" : 285, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupReserveWritePipePackets", "opcode" : 286, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupCommitReadPipe", "opcode" : 287, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpGroupCommitWritePipe", "opcode" : 288, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ] }, { "opname" : "OpEnqueueMarker", "opcode" : 291, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpEnqueueKernel", "opcode" : 292, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelNDrangeSubGroupCount", "opcode" : 293, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelNDrangeMaxSubGroupSize", "opcode" : 294, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelWorkGroupSize", "opcode" : 295, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple", "opcode" : 296, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpRetainEvent", "opcode" : 297, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpReleaseEvent", "opcode" : 298, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpCreateUserEvent", "opcode" : 299, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpIsValidEvent", "opcode" : 300, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpSetUserEventStatus", "opcode" : 301, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Status'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpCaptureEventProfilingInfo", "opcode" : 302, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Profiling Info'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpGetDefaultQueue", "opcode" : 303, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpBuildNDRange", "opcode" : 304, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'GlobalWorkSize'" }, { "kind" : "IdRef", "name" : "'LocalWorkSize'" }, { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" } ], "capabilities" : [ "DeviceEnqueue" ] }, { "opname" : "OpImageSparseSampleImplicitLod", "opcode" : 305, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleExplicitLod", "opcode" : 306, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleDrefImplicitLod", "opcode" : 307, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleDrefExplicitLod", "opcode" : 308, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjImplicitLod", "opcode" : 309, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjExplicitLod", "opcode" : 310, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjDrefImplicitLod", "opcode" : 311, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseSampleProjDrefExplicitLod", "opcode" : 312, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseFetch", "opcode" : 313, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseGather", "opcode" : 314, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseDrefGather", "opcode" : 315, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpImageSparseTexelsResident", "opcode" : 316, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Resident Code'" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpNoLine", "opcode" : 317 }, { "opname" : "OpAtomicFlagTestAndSet", "opcode" : 318, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpAtomicFlagClear", "opcode" : 319, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ] }, { "opname" : "OpImageSparseRead", "opcode" : 320, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ] }, { "opname" : "OpSizeOf", "opcode" : 321, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses" ] }, { "opname" : "OpTypePipeStorage", "opcode" : 322, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "PipeStorage" ] }, { "opname" : "OpConstantPipeStorage", "opcode" : 323, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Packet Size'" }, { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" }, { "kind" : "LiteralInteger", "name" : "'Capacity'" } ], "capabilities" : [ "PipeStorage" ] }, { "opname" : "OpCreatePipeFromPipeStorage", "opcode" : 324, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe Storage'" } ], "capabilities" : [ "PipeStorage" ] }, { "opname" : "OpGetKernelLocalSizeForSubgroupCount", "opcode" : 325, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Subgroup Count'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "SubgroupDispatch" ] }, { "opname" : "OpGetKernelMaxNumSubgroups", "opcode" : 326, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "SubgroupDispatch" ] }, { "opname" : "OpTypeNamedBarrier", "opcode" : 327, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "NamedBarrier" ] }, { "opname" : "OpNamedBarrierInitialize", "opcode" : 328, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Subgroup Count'" } ], "capabilities" : [ "NamedBarrier" ] }, { "opname" : "OpMemoryNamedBarrier", "opcode" : 329, "operands" : [ { "kind" : "IdRef", "name" : "'Named Barrier'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "NamedBarrier" ] }, { "opname" : "OpModuleProcessed", "opcode" : 330, "operands" : [ { "kind" : "LiteralString", "name" : "'Process'" } ] }, { "opname" : "OpExecutionModeId", "opcode" : 331, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } ] }, { "opname" : "OpDecorateId", "opcode" : 332, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ] }, { "opname" : "OpSubgroupBallotKHR", "opcode" : 4421, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpSubgroupFirstInvocationKHR", "opcode" : 4422, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpSubgroupAllKHR", "opcode" : 4428, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupAnyKHR", "opcode" : 4429, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupAllEqualKHR", "opcode" : 4430, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupVoteKHR" ] }, { "opname" : "OpSubgroupReadInvocationKHR", "opcode" : 4432, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "capabilities" : [ "SubgroupBallotKHR" ] }, { "opname" : "OpGroupIAddNonUniformAMD", "opcode" : 5000, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFAddNonUniformAMD", "opcode" : 5001, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMinNonUniformAMD", "opcode" : 5002, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMinNonUniformAMD", "opcode" : 5003, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMinNonUniformAMD", "opcode" : 5004, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupFMaxNonUniformAMD", "opcode" : 5005, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupUMaxNonUniformAMD", "opcode" : 5006, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpGroupSMaxNonUniformAMD", "opcode" : 5007, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, { "opname" : "OpFragmentMaskFetchAMD", "opcode" : 5011, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "FragmentMaskAMD" ] }, { "opname" : "OpFragmentFetchAMD", "opcode" : 5012, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Fragment Index'" } ], "capabilities" : [ "FragmentMaskAMD" ] }, { "opname" : "OpSubgroupShuffleINTEL", "opcode" : 5571, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'InvocationId'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleDownINTEL", "opcode" : 5572, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Next'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleUpINTEL", "opcode" : 5573, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Previous'" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupShuffleXorINTEL", "opcode" : 5574, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ] }, { "opname" : "OpSubgroupBlockReadINTEL", "opcode" : 5575, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Ptr'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ] }, { "opname" : "OpSubgroupBlockWriteINTEL", "opcode" : 5576, "operands" : [ { "kind" : "IdRef", "name" : "'Ptr'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ] }, { "opname" : "OpSubgroupImageBlockReadINTEL", "opcode" : 5577, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ] }, { "opname" : "OpSubgroupImageBlockWriteINTEL", "opcode" : 5578, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ] }, { "opname" : "OpDecorateStringGOOGLE", "opcode" : 5632, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string" ] }, { "opname" : "OpMemberDecorateStringGOOGLE", "opcode" : 5633, "operands" : [ { "kind" : "IdRef", "name" : "'Struct Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string" ] } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "ImageOperands", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Bias", "value" : "0x0001", "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Lod", "value" : "0x0002", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Grad", "value" : "0x0004", "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } ] }, { "enumerant" : "ConstOffset", "value" : "0x0008", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Offset", "value" : "0x0010", "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "ConstOffsets", "value" : "0x0020", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Sample", "value" : "0x0040", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "MinLod", "value" : "0x0080", "capabilities" : [ "MinLod" ], "parameters" : [ { "kind" : "IdRef" } ] } ] }, { "category" : "BitEnum", "kind" : "FPFastMathMode", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "NotNaN", "value" : "0x0001", "capabilities" : [ "Kernel" ] }, { "enumerant" : "NotInf", "value" : "0x0002", "capabilities" : [ "Kernel" ] }, { "enumerant" : "NSZ", "value" : "0x0004", "capabilities" : [ "Kernel" ] }, { "enumerant" : "AllowRecip", "value" : "0x0008", "capabilities" : [ "Kernel" ] }, { "enumerant" : "Fast", "value" : "0x0010", "capabilities" : [ "Kernel" ] } ] }, { "category" : "BitEnum", "kind" : "SelectionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Flatten", "value" : "0x0001" }, { "enumerant" : "DontFlatten", "value" : "0x0002" } ] }, { "category" : "BitEnum", "kind" : "LoopControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Unroll", "value" : "0x0001" }, { "enumerant" : "DontUnroll", "value" : "0x0002" }, { "enumerant" : "DependencyInfinite", "value" : "0x0004" }, { "enumerant" : "DependencyLength", "value" : "0x0008", "parameters" : [ { "kind" : "LiteralInteger" } ] } ] }, { "category" : "BitEnum", "kind" : "FunctionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Inline", "value" : "0x0001" }, { "enumerant" : "DontInline", "value" : "0x0002" }, { "enumerant" : "Pure", "value" : "0x0004" }, { "enumerant" : "Const", "value" : "0x0008" } ] }, { "category" : "BitEnum", "kind" : "MemorySemantics", "enumerants" : [ { "enumerant" : "Relaxed", "value" : "0x0000" }, { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Acquire", "value" : "0x0002" }, { "enumerant" : "Release", "value" : "0x0004" }, { "enumerant" : "AcquireRelease", "value" : "0x0008" }, { "enumerant" : "SequentiallyConsistent", "value" : "0x0010" }, { "enumerant" : "UniformMemory", "value" : "0x0040", "capabilities" : [ "Shader" ] }, { "enumerant" : "SubgroupMemory", "value" : "0x0080" }, { "enumerant" : "WorkgroupMemory", "value" : "0x0100" }, { "enumerant" : "CrossWorkgroupMemory", "value" : "0x0200" }, { "enumerant" : "AtomicCounterMemory", "value" : "0x0400", "capabilities" : [ "AtomicStorage" ] }, { "enumerant" : "ImageMemory", "value" : "0x0800" } ] }, { "category" : "BitEnum", "kind" : "MemoryAccess", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Volatile", "value" : "0x0001" }, { "enumerant" : "Aligned", "value" : "0x0002", "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Nontemporal", "value" : "0x0004" } ] }, { "category" : "BitEnum", "kind" : "KernelProfilingInfo", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "CmdExecTime", "value" : "0x0001", "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "SourceLanguage", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0 }, { "enumerant" : "ESSL", "value" : 1 }, { "enumerant" : "GLSL", "value" : 2 }, { "enumerant" : "OpenCL_C", "value" : 3 }, { "enumerant" : "OpenCL_CPP", "value" : 4 }, { "enumerant" : "HLSL", "value" : 5 } ] }, { "category" : "ValueEnum", "kind" : "ExecutionModel", "enumerants" : [ { "enumerant" : "Vertex", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "TessellationControl", "value" : 1, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessellationEvaluation", "value" : 2, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Geometry", "value" : 3, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Fragment", "value" : 4, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLCompute", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "Kernel", "value" : 6, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "AddressingModel", "enumerants" : [ { "enumerant" : "Logical", "value" : 0 }, { "enumerant" : "Physical32", "value" : 1, "capabilities" : [ "Addresses" ] }, { "enumerant" : "Physical64", "value" : 2, "capabilities" : [ "Addresses" ] } ] }, { "category" : "ValueEnum", "kind" : "MemoryModel", "enumerants" : [ { "enumerant" : "Simple", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLSL450", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "OpenCL", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ExecutionMode", "enumerants" : [ { "enumerant" : "Invocations", "value" : 0, "capabilities" : [ "Geometry" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of <>'" } ] }, { "enumerant" : "SpacingEqual", "value" : 1, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "SpacingFractionalEven", "value" : 2, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "SpacingFractionalOdd", "value" : 3, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "VertexOrderCw", "value" : 4, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "VertexOrderCcw", "value" : 5, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "PixelCenterInteger", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "OriginUpperLeft", "value" : 7, "capabilities" : [ "Shader" ] }, { "enumerant" : "OriginLowerLeft", "value" : 8, "capabilities" : [ "Shader" ] }, { "enumerant" : "EarlyFragmentTests", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointMode", "value" : 10, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Xfb", "value" : 11, "capabilities" : [ "TransformFeedback" ] }, { "enumerant" : "DepthReplacing", "value" : 12, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthGreater", "value" : 14, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthLess", "value" : 15, "capabilities" : [ "Shader" ] }, { "enumerant" : "DepthUnchanged", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "LocalSize", "value" : 17, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ] }, { "enumerant" : "LocalSizeHint", "value" : 18, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ] }, { "enumerant" : "InputPoints", "value" : 19, "capabilities" : [ "Geometry" ] }, { "enumerant" : "InputLines", "value" : 20, "capabilities" : [ "Geometry" ] }, { "enumerant" : "InputLinesAdjacency", "value" : 21, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Triangles", "value" : 22, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "InputTrianglesAdjacency", "value" : 23, "capabilities" : [ "Geometry" ] }, { "enumerant" : "Quads", "value" : 24, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Isolines", "value" : 25, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "OutputVertices", "value" : 26, "capabilities" : [ "Geometry", "Tessellation" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vertex count'" } ] }, { "enumerant" : "OutputPoints", "value" : 27, "capabilities" : [ "Geometry" ] }, { "enumerant" : "OutputLineStrip", "value" : 28, "capabilities" : [ "Geometry" ] }, { "enumerant" : "OutputTriangleStrip", "value" : 29, "capabilities" : [ "Geometry" ] }, { "enumerant" : "VecTypeHint", "value" : 30, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vector type'" } ] }, { "enumerant" : "ContractionOff", "value" : 31, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Initializer", "value" : 33, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Finalizer", "value" : 34, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupSize", "value" : 35, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" } ] }, { "enumerant" : "SubgroupsPerWorkgroup", "value" : 36, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" } ] }, { "enumerant" : "SubgroupsPerWorkgroupId", "value" : 37, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" } ] }, { "enumerant" : "LocalSizeId", "value" : 38, "parameters" : [ { "kind" : "IdRef", "name" : "'x size'" }, { "kind" : "IdRef", "name" : "'y size'" }, { "kind" : "IdRef", "name" : "'z size'" } ] }, { "enumerant" : "LocalSizeHintId", "value" : 39, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Local Size Hint'" } ] }, { "enumerant" : "PostDepthCoverage", "value" : 4446, "capabilities" : [ "SampleMaskPostDepthCoverage" ] }, { "enumerant" : "StencilRefReplacingEXT", "value" : 5027, "capabilities" : [ "StencilExportEXT" ] } ] }, { "category" : "ValueEnum", "kind" : "StorageClass", "enumerants" : [ { "enumerant" : "UniformConstant", "value" : 0 }, { "enumerant" : "Input", "value" : 1 }, { "enumerant" : "Uniform", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "Output", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Workgroup", "value" : 4 }, { "enumerant" : "CrossWorkgroup", "value" : 5 }, { "enumerant" : "Private", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "Function", "value" : 7 }, { "enumerant" : "Generic", "value" : 8, "capabilities" : [ "GenericPointer" ] }, { "enumerant" : "PushConstant", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "AtomicCounter", "value" : 10, "capabilities" : [ "AtomicStorage" ] }, { "enumerant" : "Image", "value" : 11 }, { "enumerant" : "StorageBuffer", "value" : 12, "extensions" : [ "SPV_KHR_storage_buffer_storage_class", "SPV_KHR_variable_pointers" ], "capabilities" : [ "Shader" ] } ] }, { "category" : "ValueEnum", "kind" : "Dim", "enumerants" : [ { "enumerant" : "1D", "value" : 0, "capabilities" : [ "Sampled1D" ] }, { "enumerant" : "2D", "value" : 1 }, { "enumerant" : "3D", "value" : 2 }, { "enumerant" : "Cube", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rect", "value" : 4, "capabilities" : [ "SampledRect" ] }, { "enumerant" : "Buffer", "value" : 5, "capabilities" : [ "SampledBuffer" ] }, { "enumerant" : "SubpassData", "value" : 6, "capabilities" : [ "InputAttachment" ] } ] }, { "category" : "ValueEnum", "kind" : "SamplerAddressingMode", "enumerants" : [ { "enumerant" : "None", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ClampToEdge", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Clamp", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Repeat", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RepeatMirrored", "value" : 4, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "SamplerFilterMode", "enumerants" : [ { "enumerant" : "Nearest", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Linear", "value" : 1, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageFormat", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0 }, { "enumerant" : "Rgba32f", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16f", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32f", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8", "value" : 4, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8Snorm", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rg32f", "value" : 6, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16f", "value" : 7, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R11fG11fB10f", "value" : 8, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16f", "value" : 9, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba16", "value" : 10, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgb10A2", "value" : 11, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16", "value" : 12, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8", "value" : 13, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16", "value" : 14, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8", "value" : 15, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba16Snorm", "value" : 16, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16Snorm", "value" : 17, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8Snorm", "value" : 18, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16Snorm", "value" : 19, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8Snorm", "value" : 20, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba32i", "value" : 21, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16i", "value" : 22, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8i", "value" : 23, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32i", "value" : 24, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rg32i", "value" : 25, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16i", "value" : 26, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8i", "value" : 27, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16i", "value" : 28, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8i", "value" : 29, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rgba32ui", "value" : 30, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba16ui", "value" : 31, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgba8ui", "value" : 32, "capabilities" : [ "Shader" ] }, { "enumerant" : "R32ui", "value" : 33, "capabilities" : [ "Shader" ] }, { "enumerant" : "Rgb10a2ui", "value" : 34, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg32ui", "value" : 35, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg16ui", "value" : 36, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "Rg8ui", "value" : 37, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R16ui", "value" : 38, "capabilities" : [ "StorageImageExtendedFormats" ] }, { "enumerant" : "R8ui", "value" : 39, "capabilities" : [ "StorageImageExtendedFormats" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelOrder", "enumerants" : [ { "enumerant" : "R", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "A", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RG", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RA", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGB", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGBA", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "BGRA", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ARGB", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Intensity", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Luminance", "value" : 9, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Rx", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGx", "value" : 11, "capabilities" : [ "Kernel" ] }, { "enumerant" : "RGBx", "value" : 12, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Depth", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "DepthStencil", "value" : 14, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGB", "value" : 15, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGBx", "value" : 16, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sRGBA", "value" : 17, "capabilities" : [ "Kernel" ] }, { "enumerant" : "sBGRA", "value" : 18, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ABGR", "value" : 19, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelDataType", "enumerants" : [ { "enumerant" : "SnormInt8", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SnormInt16", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt8", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt16", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormShort565", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormShort555", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt101010", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt8", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt16", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SignedInt32", "value" : 9, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt8", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt16", "value" : 11, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnsignedInt32", "value" : 12, "capabilities" : [ "Kernel" ] }, { "enumerant" : "HalfFloat", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float", "value" : 14, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt24", "value" : 15, "capabilities" : [ "Kernel" ] }, { "enumerant" : "UnormInt101010_2", "value" : 16, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "FPRoundingMode", "enumerants" : [ { "enumerant" : "RTE", "value" : 0, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTZ", "value" : 1, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTP", "value" : 2, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] }, { "enumerant" : "RTN", "value" : 3, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ] } ] }, { "category" : "ValueEnum", "kind" : "LinkageType", "enumerants" : [ { "enumerant" : "Export", "value" : 0, "capabilities" : [ "Linkage" ] }, { "enumerant" : "Import", "value" : 1, "capabilities" : [ "Linkage" ] } ] }, { "category" : "ValueEnum", "kind" : "AccessQualifier", "enumerants" : [ { "enumerant" : "ReadOnly", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WriteOnly", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ReadWrite", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "FunctionParameterAttribute", "enumerants" : [ { "enumerant" : "Zext", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Sext", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ByVal", "value" : 2, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Sret", "value" : 3, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoAlias", "value" : 4, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoCapture", "value" : 5, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoWrite", "value" : 6, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NoReadWrite", "value" : 7, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "Decoration", "enumerants" : [ { "enumerant" : "RelaxedPrecision", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "SpecId", "value" : 1, "capabilities" : [ "Shader", "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" } ] }, { "enumerant" : "Block", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "BufferBlock", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "RowMajor", "value" : 4, "capabilities" : [ "Matrix" ] }, { "enumerant" : "ColMajor", "value" : 5, "capabilities" : [ "Matrix" ] }, { "enumerant" : "ArrayStride", "value" : 6, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Array Stride'" } ] }, { "enumerant" : "MatrixStride", "value" : 7, "capabilities" : [ "Matrix" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" } ] }, { "enumerant" : "GLSLShared", "value" : 8, "capabilities" : [ "Shader" ] }, { "enumerant" : "GLSLPacked", "value" : 9, "capabilities" : [ "Shader" ] }, { "enumerant" : "CPacked", "value" : 10, "capabilities" : [ "Kernel" ] }, { "enumerant" : "BuiltIn", "value" : 11, "parameters" : [ { "kind" : "BuiltIn" } ] }, { "enumerant" : "NoPerspective", "value" : 13, "capabilities" : [ "Shader" ] }, { "enumerant" : "Flat", "value" : 14, "capabilities" : [ "Shader" ] }, { "enumerant" : "Patch", "value" : 15, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "Centroid", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "Sample", "value" : 17, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "Invariant", "value" : 18, "capabilities" : [ "Shader" ] }, { "enumerant" : "Restrict", "value" : 19 }, { "enumerant" : "Aliased", "value" : 20 }, { "enumerant" : "Volatile", "value" : 21 }, { "enumerant" : "Constant", "value" : 22, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Coherent", "value" : 23 }, { "enumerant" : "NonWritable", "value" : 24 }, { "enumerant" : "NonReadable", "value" : 25 }, { "enumerant" : "Uniform", "value" : 26, "capabilities" : [ "Shader" ] }, { "enumerant" : "SaturatedConversion", "value" : 28, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Stream", "value" : 29, "capabilities" : [ "GeometryStreams" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stream Number'" } ] }, { "enumerant" : "Location", "value" : 30, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Location'" } ] }, { "enumerant" : "Component", "value" : 31, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Component'" } ] }, { "enumerant" : "Index", "value" : 32, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Index'" } ] }, { "enumerant" : "Binding", "value" : 33, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Binding Point'" } ] }, { "enumerant" : "DescriptorSet", "value" : 34, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" } ] }, { "enumerant" : "Offset", "value" : 35, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" } ] }, { "enumerant" : "XfbBuffer", "value" : 36, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" } ] }, { "enumerant" : "XfbStride", "value" : 37, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" } ] }, { "enumerant" : "FuncParamAttr", "value" : 38, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" } ] }, { "enumerant" : "FPRoundingMode", "value" : 39, "capabilities" : [ "Kernel", "StorageUniformBufferBlock16", "StorageUniform16", "StoragePushConstant16", "StorageInputOutput16" ], "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } ] }, { "enumerant" : "FPFastMathMode", "value" : 40, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" } ] }, { "enumerant" : "LinkageAttributes", "value" : 41, "capabilities" : [ "Linkage" ], "parameters" : [ { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "LinkageType", "name" : "'Linkage Type'" } ] }, { "enumerant" : "NoContraction", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "InputAttachmentIndex", "value" : 43, "capabilities" : [ "InputAttachment" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" } ] }, { "enumerant" : "Alignment", "value" : 44, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Alignment'" } ] }, { "enumerant" : "MaxByteOffset", "value" : 45, "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" } ] }, { "enumerant" : "AlignmentId", "value" : 46, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Alignment'" } ] }, { "enumerant" : "MaxByteOffsetId", "value" : 47, "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Max Byte Offset'" } ] }, { "enumerant" : "ExplicitInterpAMD", "value" : 4999 }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, "capabilities" : [ "SampleMaskOverrideCoverageNV" ] }, { "enumerant" : "PassthroughNV", "value" : 5250, "capabilities" : [ "GeometryShaderPassthroughNV" ] }, { "enumerant" : "ViewportRelativeNV", "value" : 5252, "capabilities" : [ "ShaderViewportMaskNV" ] }, { "enumerant" : "SecondaryViewportRelativeNV", "value" : 5256, "capabilities" : [ "ShaderStereoViewNV" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Offset'" } ] }, { "enumerant" : "HlslCounterBufferGOOGLE", "value" : 5634, "parameters" : [ { "kind" : "IdRef", "name" : "'Counter Buffer'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] }, { "enumerant" : "HlslSemanticGOOGLE", "value" : 5635, "parameters" : [ { "kind" : "LiteralString", "name" : "'Semantic'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ] } ] }, { "category" : "ValueEnum", "kind" : "BuiltIn", "enumerants" : [ { "enumerant" : "Position", "value" : 0, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointSize", "value" : 1, "capabilities" : [ "Shader" ] }, { "enumerant" : "ClipDistance", "value" : 3, "capabilities" : [ "ClipDistance" ] }, { "enumerant" : "CullDistance", "value" : 4, "capabilities" : [ "CullDistance" ] }, { "enumerant" : "VertexId", "value" : 5, "capabilities" : [ "Shader" ] }, { "enumerant" : "InstanceId", "value" : 6, "capabilities" : [ "Shader" ] }, { "enumerant" : "PrimitiveId", "value" : 7, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "InvocationId", "value" : 8, "capabilities" : [ "Geometry", "Tessellation" ] }, { "enumerant" : "Layer", "value" : 9, "capabilities" : [ "Geometry" ] }, { "enumerant" : "ViewportIndex", "value" : 10, "capabilities" : [ "MultiViewport" ] }, { "enumerant" : "TessLevelOuter", "value" : 11, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessLevelInner", "value" : 12, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "TessCoord", "value" : 13, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "PatchVertices", "value" : 14, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "FragCoord", "value" : 15, "capabilities" : [ "Shader" ] }, { "enumerant" : "PointCoord", "value" : 16, "capabilities" : [ "Shader" ] }, { "enumerant" : "FrontFacing", "value" : 17, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampleId", "value" : 18, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "SamplePosition", "value" : 19, "capabilities" : [ "SampleRateShading" ] }, { "enumerant" : "SampleMask", "value" : 20, "capabilities" : [ "Shader" ] }, { "enumerant" : "FragDepth", "value" : 22, "capabilities" : [ "Shader" ] }, { "enumerant" : "HelperInvocation", "value" : 23, "capabilities" : [ "Shader" ] }, { "enumerant" : "NumWorkgroups", "value" : 24 }, { "enumerant" : "WorkgroupSize", "value" : 25 }, { "enumerant" : "WorkgroupId", "value" : 26 }, { "enumerant" : "LocalInvocationId", "value" : 27 }, { "enumerant" : "GlobalInvocationId", "value" : 28 }, { "enumerant" : "LocalInvocationIndex", "value" : 29 }, { "enumerant" : "WorkDim", "value" : 30, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalSize", "value" : 31, "capabilities" : [ "Kernel" ] }, { "enumerant" : "EnqueuedWorkgroupSize", "value" : 32, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalOffset", "value" : 33, "capabilities" : [ "Kernel" ] }, { "enumerant" : "GlobalLinearId", "value" : 34, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupSize", "value" : 36, "capabilities" : [ "Kernel", "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupMaxSize", "value" : 37, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NumSubgroups", "value" : 38, "capabilities" : [ "Kernel" ] }, { "enumerant" : "NumEnqueuedSubgroups", "value" : 39, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupId", "value" : 40, "capabilities" : [ "Kernel" ] }, { "enumerant" : "SubgroupLocalInvocationId", "value" : 41, "capabilities" : [ "Kernel", "SubgroupBallotKHR" ] }, { "enumerant" : "VertexIndex", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "InstanceIndex", "value" : 43, "capabilities" : [ "Shader" ] }, { "enumerant" : "SubgroupEqMaskKHR", "value" : 4416, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupGeMaskKHR", "value" : 4417, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupGtMaskKHR", "value" : 4418, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupLeMaskKHR", "value" : 4419, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "SubgroupLtMaskKHR", "value" : 4420, "capabilities" : [ "SubgroupBallotKHR" ] }, { "enumerant" : "BaseVertex", "value" : 4424, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "BaseInstance", "value" : 4425, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "DrawIndex", "value" : 4426, "capabilities" : [ "DrawParameters" ] }, { "enumerant" : "DeviceIndex", "value" : 4438, "capabilities" : [ "DeviceGroup" ] }, { "enumerant" : "ViewIndex", "value" : 4440, "capabilities" : [ "MultiView" ] }, { "enumerant" : "BaryCoordNoPerspAMD", "value" : 4992 }, { "enumerant" : "BaryCoordNoPerspCentroidAMD", "value" : 4993 }, { "enumerant" : "BaryCoordNoPerspSampleAMD", "value" : 4994 }, { "enumerant" : "BaryCoordSmoothAMD", "value" : 4995 }, { "enumerant" : "BaryCoordSmoothCentroidAMD", "value" : 4996 }, { "enumerant" : "BaryCoordSmoothSampleAMD", "value" : 4997 }, { "enumerant" : "BaryCoordPullModelAMD", "value" : 4998 }, { "enumerant" : "FragStencilRefEXT", "value" : 5014, "capabilities" : [ "StencilExportEXT" ] }, { "enumerant" : "ViewportMaskNV", "value" : 5253, "capabilities" : [ "ShaderViewportMaskNV" ] }, { "enumerant" : "SecondaryPositionNV", "value" : 5257, "capabilities" : [ "ShaderStereoViewNV" ] }, { "enumerant" : "SecondaryViewportMaskNV", "value" : 5258, "capabilities" : [ "ShaderStereoViewNV" ] }, { "enumerant" : "PositionPerViewNV", "value" : 5261, "capabilities" : [ "PerViewAttributesNV" ] }, { "enumerant" : "ViewportMaskPerViewNV", "value" : 5262, "capabilities" : [ "PerViewAttributesNV" ] } ] }, { "category" : "ValueEnum", "kind" : "Scope", "enumerants" : [ { "enumerant" : "CrossDevice", "value" : 0 }, { "enumerant" : "Device", "value" : 1 }, { "enumerant" : "Workgroup", "value" : 2 }, { "enumerant" : "Subgroup", "value" : 3 }, { "enumerant" : "Invocation", "value" : 4 } ] }, { "category" : "ValueEnum", "kind" : "GroupOperation", "enumerants" : [ { "enumerant" : "Reduce", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "InclusiveScan", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ExclusiveScan", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "KernelEnqueueFlags", "enumerants" : [ { "enumerant" : "NoWait", "value" : 0, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WaitKernel", "value" : 1, "capabilities" : [ "Kernel" ] }, { "enumerant" : "WaitWorkGroup", "value" : 2, "capabilities" : [ "Kernel" ] } ] }, { "category" : "ValueEnum", "kind" : "Capability", "enumerants" : [ { "enumerant" : "Matrix", "value" : 0 }, { "enumerant" : "Shader", "value" : 1, "capabilities" : [ "Matrix" ] }, { "enumerant" : "Geometry", "value" : 2, "capabilities" : [ "Shader" ] }, { "enumerant" : "Tessellation", "value" : 3, "capabilities" : [ "Shader" ] }, { "enumerant" : "Addresses", "value" : 4 }, { "enumerant" : "Linkage", "value" : 5 }, { "enumerant" : "Kernel", "value" : 6 }, { "enumerant" : "Vector16", "value" : 7, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float16Buffer", "value" : 8, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Float16", "value" : 9 }, { "enumerant" : "Float64", "value" : 10 }, { "enumerant" : "Int64", "value" : 11 }, { "enumerant" : "Int64Atomics", "value" : 12, "capabilities" : [ "Int64" ] }, { "enumerant" : "ImageBasic", "value" : 13, "capabilities" : [ "Kernel" ] }, { "enumerant" : "ImageReadWrite", "value" : 14, "capabilities" : [ "ImageBasic" ] }, { "enumerant" : "ImageMipmap", "value" : 15, "capabilities" : [ "ImageBasic" ] }, { "enumerant" : "Pipes", "value" : 17, "capabilities" : [ "Kernel" ] }, { "enumerant" : "Groups", "value" : 18 }, { "enumerant" : "DeviceEnqueue", "value" : 19, "capabilities" : [ "Kernel" ] }, { "enumerant" : "LiteralSampler", "value" : 20, "capabilities" : [ "Kernel" ] }, { "enumerant" : "AtomicStorage", "value" : 21, "capabilities" : [ "Shader" ] }, { "enumerant" : "Int16", "value" : 22 }, { "enumerant" : "TessellationPointSize", "value" : 23, "capabilities" : [ "Tessellation" ] }, { "enumerant" : "GeometryPointSize", "value" : 24, "capabilities" : [ "Geometry" ] }, { "enumerant" : "ImageGatherExtended", "value" : 25, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageMultisample", "value" : 27, "capabilities" : [ "Shader" ] }, { "enumerant" : "UniformBufferArrayDynamicIndexing", "value" : 28, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampledImageArrayDynamicIndexing", "value" : 29, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageBufferArrayDynamicIndexing", "value" : 30, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageArrayDynamicIndexing", "value" : 31, "capabilities" : [ "Shader" ] }, { "enumerant" : "ClipDistance", "value" : 32, "capabilities" : [ "Shader" ] }, { "enumerant" : "CullDistance", "value" : 33, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageCubeArray", "value" : 34, "capabilities" : [ "SampledCubeArray" ] }, { "enumerant" : "SampleRateShading", "value" : 35, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageRect", "value" : 36, "capabilities" : [ "SampledRect" ] }, { "enumerant" : "SampledRect", "value" : 37, "capabilities" : [ "Shader" ] }, { "enumerant" : "GenericPointer", "value" : 38, "capabilities" : [ "Addresses" ] }, { "enumerant" : "Int8", "value" : 39, "capabilities" : [ "Kernel" ] }, { "enumerant" : "InputAttachment", "value" : 40, "capabilities" : [ "Shader" ] }, { "enumerant" : "SparseResidency", "value" : 41, "capabilities" : [ "Shader" ] }, { "enumerant" : "MinLod", "value" : 42, "capabilities" : [ "Shader" ] }, { "enumerant" : "Sampled1D", "value" : 43 }, { "enumerant" : "Image1D", "value" : 44, "capabilities" : [ "Sampled1D" ] }, { "enumerant" : "SampledCubeArray", "value" : 45, "capabilities" : [ "Shader" ] }, { "enumerant" : "SampledBuffer", "value" : 46 }, { "enumerant" : "ImageBuffer", "value" : 47, "capabilities" : [ "SampledBuffer" ] }, { "enumerant" : "ImageMSArray", "value" : 48, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageExtendedFormats", "value" : 49, "capabilities" : [ "Shader" ] }, { "enumerant" : "ImageQuery", "value" : 50, "capabilities" : [ "Shader" ] }, { "enumerant" : "DerivativeControl", "value" : 51, "capabilities" : [ "Shader" ] }, { "enumerant" : "InterpolationFunction", "value" : 52, "capabilities" : [ "Shader" ] }, { "enumerant" : "TransformFeedback", "value" : 53, "capabilities" : [ "Shader" ] }, { "enumerant" : "GeometryStreams", "value" : 54, "capabilities" : [ "Geometry" ] }, { "enumerant" : "StorageImageReadWithoutFormat", "value" : 55, "capabilities" : [ "Shader" ] }, { "enumerant" : "StorageImageWriteWithoutFormat", "value" : 56, "capabilities" : [ "Shader" ] }, { "enumerant" : "MultiViewport", "value" : 57, "capabilities" : [ "Geometry" ] }, { "enumerant" : "SubgroupDispatch", "value" : 58, "capabilities" : [ "DeviceEnqueue" ] }, { "enumerant" : "NamedBarrier", "value" : 59, "capabilities" : [ "Kernel" ] }, { "enumerant" : "PipeStorage", "value" : 60, "capabilities" : [ "Pipes" ] }, { "enumerant" : "SubgroupBallotKHR", "value" : 4423, "extensions" : [ "SPV_KHR_shader_ballot" ] }, { "enumerant" : "DrawParameters", "value" : 4427, "extensions" : [ "SPV_KHR_shader_draw_parameters" ] }, { "enumerant" : "SubgroupVoteKHR", "value" : 4431, "extensions" : [ "SPV_KHR_subgroup_vote" ] }, { "enumerant" : "StorageBuffer16BitAccess", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageUniformBufferBlock16", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "UniformAndStorageBuffer16BitAccess", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageUniform16", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StoragePushConstant16", "value" : 4435, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "StorageInputOutput16", "value" : 4436, "extensions" : [ "SPV_KHR_16bit_storage" ] }, { "enumerant" : "DeviceGroup", "value" : 4437, "extensions" : [ "SPV_KHR_device_group" ] }, { "enumerant" : "MultiView", "value" : 4439, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_multiview" ] }, { "enumerant" : "VariablePointersStorageBuffer", "value" : 4441, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_variable_pointers" ] }, { "enumerant" : "VariablePointers", "value" : 4442, "capabilities" : [ "VariablePointersStorageBuffer" ], "extensions" : [ "SPV_KHR_variable_pointers" ] }, { "enumerant": "AtomicStorageOps", "value": 4445, "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ] }, { "enumerant" : "SampleMaskPostDepthCoverage", "value" : 4447, "extensions" : [ "SPV_KHR_post_depth_coverage" ] }, { "enumerant" : "ImageGatherBiasLodAMD", "value" : 5009, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ] }, { "enumerant" : "FragmentMaskAMD", "value" : 5010, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_fragment_mask" ] }, { "enumerant" : "StencilExportEXT", "value" : 5013, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_shader_stencil_export" ] }, { "enumerant" : "ImageReadWriteLodAMD", "value" : 5015, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ] }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, "capabilities" : [ "SampleRateShading" ], "extensions" : [ "SPV_NV_sample_mask_override_coverage" ] }, { "enumerant" : "GeometryShaderPassthroughNV", "value" : 5251, "capabilities" : [ "Geometry" ], "extensions" : [ "SPV_NV_geometry_shader_passthrough" ] }, { "enumerant" : "ShaderViewportIndexLayerEXT", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ] }, { "enumerant" : "ShaderViewportIndexLayerNV", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_NV_viewport_array2" ] }, { "enumerant" : "ShaderViewportMaskNV", "value" : 5255, "capabilities" : [ "ShaderViewportIndexLayerNV" ], "extensions" : [ "SPV_NV_viewport_array2" ] }, { "enumerant" : "ShaderStereoViewNV", "value" : 5259, "capabilities" : [ "ShaderViewportMaskNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ] }, { "enumerant" : "PerViewAttributesNV", "value" : 5260, "capabilities" : [ "MultiView" ], "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ] }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, "extensions" : [ "SPV_INTEL_subgroups" ] }, { "enumerant" : "SubgroupBufferBlockIOINTEL", "value" : 5569, "extensions" : [ "SPV_INTEL_subgroups" ] }, { "enumerant" : "SubgroupImageBlockIOINTEL", "value" : 5570, "extensions" : [ "SPV_INTEL_subgroups" ] } ] }, { "category" : "Id", "kind" : "IdResultType", "doc" : "Reference to an representing the result's type of the enclosing instruction" }, { "category" : "Id", "kind" : "IdResult", "doc" : "Definition of an representing the result of the enclosing instruction" }, { "category" : "Id", "kind" : "IdMemorySemantics", "doc" : "Reference to an representing a 32-bit integer that is a mask from the MemorySemantics operand kind" }, { "category" : "Id", "kind" : "IdScope", "doc" : "Reference to an representing a 32-bit integer that is a mask from the Scope operand kind" }, { "category" : "Id", "kind" : "IdRef", "doc" : "Reference to an " }, { "category" : "Literal", "kind" : "LiteralInteger", "doc" : "An integer consuming one or more words" }, { "category" : "Literal", "kind" : "LiteralString", "doc" : "A null-terminated stream of characters consuming an integral number of words" }, { "category" : "Literal", "kind" : "LiteralContextDependentNumber", "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction" }, { "category" : "Literal", "kind" : "LiteralExtInstInteger", "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)" }, { "category" : "Literal", "kind" : "LiteralSpecConstantOpInteger", "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)" }, { "category" : "Composite", "kind" : "PairLiteralIntegerIdRef", "bases" : [ "LiteralInteger", "IdRef" ] }, { "category" : "Composite", "kind" : "PairIdRefLiteralInteger", "bases" : [ "IdRef", "LiteralInteger" ] }, { "category" : "Composite", "kind" : "PairIdRefIdRef", "bases" : [ "IdRef", "IdRef" ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.cs000066400000000000000000000752571463234063200220420ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C# // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. namespace Spv { public static class Specification { public const uint MagicNumber = 0x07230203; public const uint Version = 0x00010200; public const uint Revision = 2; public const uint OpCodeMask = 0xffff; public const uint WordCountShift = 16; public enum SourceLanguage { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, } public enum ExecutionModel { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, } public enum AddressingModel { Logical = 0, Physical32 = 1, Physical64 = 2, } public enum MemoryModel { Simple = 0, GLSL450 = 1, OpenCL = 2, } public enum ExecutionMode { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, } public enum StorageClass { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, } public enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, } public enum SamplerAddressingMode { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, } public enum SamplerFilterMode { Nearest = 0, Linear = 1, } public enum ImageFormat { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, } public enum ImageChannelOrder { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, } public enum ImageChannelDataType { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, } public enum ImageOperandsShift { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, } public enum ImageOperandsMask { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, } public enum FPFastMathModeShift { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, } public enum FPFastMathModeMask { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, } public enum FPRoundingMode { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, } public enum LinkageType { Export = 0, Import = 1, } public enum AccessQualifier { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, } public enum FunctionParameterAttribute { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, } public enum Decoration { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, } public enum BuiltIn { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, } public enum SelectionControlShift { Flatten = 0, DontFlatten = 1, } public enum SelectionControlMask { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, } public enum LoopControlShift { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, } public enum LoopControlMask { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, } public enum FunctionControlShift { Inline = 0, DontInline = 1, Pure = 2, Const = 3, } public enum FunctionControlMask { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, } public enum MemorySemanticsShift { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, } public enum MemorySemanticsMask { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, } public enum MemoryAccessShift { Volatile = 0, Aligned = 1, Nontemporal = 2, } public enum MemoryAccessMask { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, } public enum Scope { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, } public enum GroupOperation { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, } public enum KernelEnqueueFlags { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, } public enum KernelProfilingInfoShift { CmdExecTime = 0, } public enum KernelProfilingInfoMask { MaskNone = 0, CmdExecTime = 0x00000001, } public enum Capability { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, } public enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, } } } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.h000066400000000000000000001034071463234063200216510ustar00rootroot00000000000000/* ** Copyright (c) 2014-2018 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ /* ** This header is automatically generated by the same tool that creates ** the Binary Section of the SPIR-V specification. */ /* ** Enumeration tokens for SPIR-V, in various styles: ** C, C++, C++11, JSON, Lua, Python ** ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] ** ** Some tokens act like mask values, which can be OR'd together, ** while others are mutually exclusive. The mask-like ones have ** "Mask" in their name, and a parallel enum that has the shift ** amount (1 << x) for each corresponding enumerant. */ #ifndef spirv_H #define spirv_H typedef unsigned int SpvId; #define SPV_VERSION 0x10200 #define SPV_REVISION 2 static const unsigned int SpvMagicNumber = 0x07230203; static const unsigned int SpvVersion = 0x00010200; static const unsigned int SpvRevision = 2; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; typedef enum SpvSourceLanguage_ { SpvSourceLanguageUnknown = 0, SpvSourceLanguageESSL = 1, SpvSourceLanguageGLSL = 2, SpvSourceLanguageOpenCL_C = 3, SpvSourceLanguageOpenCL_CPP = 4, SpvSourceLanguageHLSL = 5, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; typedef enum SpvExecutionModel_ { SpvExecutionModelVertex = 0, SpvExecutionModelTessellationControl = 1, SpvExecutionModelTessellationEvaluation = 2, SpvExecutionModelGeometry = 3, SpvExecutionModelFragment = 4, SpvExecutionModelGLCompute = 5, SpvExecutionModelKernel = 6, SpvExecutionModelMax = 0x7fffffff, } SpvExecutionModel; typedef enum SpvAddressingModel_ { SpvAddressingModelLogical = 0, SpvAddressingModelPhysical32 = 1, SpvAddressingModelPhysical64 = 2, SpvAddressingModelMax = 0x7fffffff, } SpvAddressingModel; typedef enum SpvMemoryModel_ { SpvMemoryModelSimple = 0, SpvMemoryModelGLSL450 = 1, SpvMemoryModelOpenCL = 2, SpvMemoryModelMax = 0x7fffffff, } SpvMemoryModel; typedef enum SpvExecutionMode_ { SpvExecutionModeInvocations = 0, SpvExecutionModeSpacingEqual = 1, SpvExecutionModeSpacingFractionalEven = 2, SpvExecutionModeSpacingFractionalOdd = 3, SpvExecutionModeVertexOrderCw = 4, SpvExecutionModeVertexOrderCcw = 5, SpvExecutionModePixelCenterInteger = 6, SpvExecutionModeOriginUpperLeft = 7, SpvExecutionModeOriginLowerLeft = 8, SpvExecutionModeEarlyFragmentTests = 9, SpvExecutionModePointMode = 10, SpvExecutionModeXfb = 11, SpvExecutionModeDepthReplacing = 12, SpvExecutionModeDepthGreater = 14, SpvExecutionModeDepthLess = 15, SpvExecutionModeDepthUnchanged = 16, SpvExecutionModeLocalSize = 17, SpvExecutionModeLocalSizeHint = 18, SpvExecutionModeInputPoints = 19, SpvExecutionModeInputLines = 20, SpvExecutionModeInputLinesAdjacency = 21, SpvExecutionModeTriangles = 22, SpvExecutionModeInputTrianglesAdjacency = 23, SpvExecutionModeQuads = 24, SpvExecutionModeIsolines = 25, SpvExecutionModeOutputVertices = 26, SpvExecutionModeOutputPoints = 27, SpvExecutionModeOutputLineStrip = 28, SpvExecutionModeOutputTriangleStrip = 29, SpvExecutionModeVecTypeHint = 30, SpvExecutionModeContractionOff = 31, SpvExecutionModeInitializer = 33, SpvExecutionModeFinalizer = 34, SpvExecutionModeSubgroupSize = 35, SpvExecutionModeSubgroupsPerWorkgroup = 36, SpvExecutionModeSubgroupsPerWorkgroupId = 37, SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeHintId = 39, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; typedef enum SpvStorageClass_ { SpvStorageClassUniformConstant = 0, SpvStorageClassInput = 1, SpvStorageClassUniform = 2, SpvStorageClassOutput = 3, SpvStorageClassWorkgroup = 4, SpvStorageClassCrossWorkgroup = 5, SpvStorageClassPrivate = 6, SpvStorageClassFunction = 7, SpvStorageClassGeneric = 8, SpvStorageClassPushConstant = 9, SpvStorageClassAtomicCounter = 10, SpvStorageClassImage = 11, SpvStorageClassStorageBuffer = 12, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; typedef enum SpvDim_ { SpvDim1D = 0, SpvDim2D = 1, SpvDim3D = 2, SpvDimCube = 3, SpvDimRect = 4, SpvDimBuffer = 5, SpvDimSubpassData = 6, SpvDimMax = 0x7fffffff, } SpvDim; typedef enum SpvSamplerAddressingMode_ { SpvSamplerAddressingModeNone = 0, SpvSamplerAddressingModeClampToEdge = 1, SpvSamplerAddressingModeClamp = 2, SpvSamplerAddressingModeRepeat = 3, SpvSamplerAddressingModeRepeatMirrored = 4, SpvSamplerAddressingModeMax = 0x7fffffff, } SpvSamplerAddressingMode; typedef enum SpvSamplerFilterMode_ { SpvSamplerFilterModeNearest = 0, SpvSamplerFilterModeLinear = 1, SpvSamplerFilterModeMax = 0x7fffffff, } SpvSamplerFilterMode; typedef enum SpvImageFormat_ { SpvImageFormatUnknown = 0, SpvImageFormatRgba32f = 1, SpvImageFormatRgba16f = 2, SpvImageFormatR32f = 3, SpvImageFormatRgba8 = 4, SpvImageFormatRgba8Snorm = 5, SpvImageFormatRg32f = 6, SpvImageFormatRg16f = 7, SpvImageFormatR11fG11fB10f = 8, SpvImageFormatR16f = 9, SpvImageFormatRgba16 = 10, SpvImageFormatRgb10A2 = 11, SpvImageFormatRg16 = 12, SpvImageFormatRg8 = 13, SpvImageFormatR16 = 14, SpvImageFormatR8 = 15, SpvImageFormatRgba16Snorm = 16, SpvImageFormatRg16Snorm = 17, SpvImageFormatRg8Snorm = 18, SpvImageFormatR16Snorm = 19, SpvImageFormatR8Snorm = 20, SpvImageFormatRgba32i = 21, SpvImageFormatRgba16i = 22, SpvImageFormatRgba8i = 23, SpvImageFormatR32i = 24, SpvImageFormatRg32i = 25, SpvImageFormatRg16i = 26, SpvImageFormatRg8i = 27, SpvImageFormatR16i = 28, SpvImageFormatR8i = 29, SpvImageFormatRgba32ui = 30, SpvImageFormatRgba16ui = 31, SpvImageFormatRgba8ui = 32, SpvImageFormatR32ui = 33, SpvImageFormatRgb10a2ui = 34, SpvImageFormatRg32ui = 35, SpvImageFormatRg16ui = 36, SpvImageFormatRg8ui = 37, SpvImageFormatR16ui = 38, SpvImageFormatR8ui = 39, SpvImageFormatMax = 0x7fffffff, } SpvImageFormat; typedef enum SpvImageChannelOrder_ { SpvImageChannelOrderR = 0, SpvImageChannelOrderA = 1, SpvImageChannelOrderRG = 2, SpvImageChannelOrderRA = 3, SpvImageChannelOrderRGB = 4, SpvImageChannelOrderRGBA = 5, SpvImageChannelOrderBGRA = 6, SpvImageChannelOrderARGB = 7, SpvImageChannelOrderIntensity = 8, SpvImageChannelOrderLuminance = 9, SpvImageChannelOrderRx = 10, SpvImageChannelOrderRGx = 11, SpvImageChannelOrderRGBx = 12, SpvImageChannelOrderDepth = 13, SpvImageChannelOrderDepthStencil = 14, SpvImageChannelOrdersRGB = 15, SpvImageChannelOrdersRGBx = 16, SpvImageChannelOrdersRGBA = 17, SpvImageChannelOrdersBGRA = 18, SpvImageChannelOrderABGR = 19, SpvImageChannelOrderMax = 0x7fffffff, } SpvImageChannelOrder; typedef enum SpvImageChannelDataType_ { SpvImageChannelDataTypeSnormInt8 = 0, SpvImageChannelDataTypeSnormInt16 = 1, SpvImageChannelDataTypeUnormInt8 = 2, SpvImageChannelDataTypeUnormInt16 = 3, SpvImageChannelDataTypeUnormShort565 = 4, SpvImageChannelDataTypeUnormShort555 = 5, SpvImageChannelDataTypeUnormInt101010 = 6, SpvImageChannelDataTypeSignedInt8 = 7, SpvImageChannelDataTypeSignedInt16 = 8, SpvImageChannelDataTypeSignedInt32 = 9, SpvImageChannelDataTypeUnsignedInt8 = 10, SpvImageChannelDataTypeUnsignedInt16 = 11, SpvImageChannelDataTypeUnsignedInt32 = 12, SpvImageChannelDataTypeHalfFloat = 13, SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt101010_2 = 16, SpvImageChannelDataTypeMax = 0x7fffffff, } SpvImageChannelDataType; typedef enum SpvImageOperandsShift_ { SpvImageOperandsBiasShift = 0, SpvImageOperandsLodShift = 1, SpvImageOperandsGradShift = 2, SpvImageOperandsConstOffsetShift = 3, SpvImageOperandsOffsetShift = 4, SpvImageOperandsConstOffsetsShift = 5, SpvImageOperandsSampleShift = 6, SpvImageOperandsMinLodShift = 7, SpvImageOperandsMax = 0x7fffffff, } SpvImageOperandsShift; typedef enum SpvImageOperandsMask_ { SpvImageOperandsMaskNone = 0, SpvImageOperandsBiasMask = 0x00000001, SpvImageOperandsLodMask = 0x00000002, SpvImageOperandsGradMask = 0x00000004, SpvImageOperandsConstOffsetMask = 0x00000008, SpvImageOperandsOffsetMask = 0x00000010, SpvImageOperandsConstOffsetsMask = 0x00000020, SpvImageOperandsSampleMask = 0x00000040, SpvImageOperandsMinLodMask = 0x00000080, } SpvImageOperandsMask; typedef enum SpvFPFastMathModeShift_ { SpvFPFastMathModeNotNaNShift = 0, SpvFPFastMathModeNotInfShift = 1, SpvFPFastMathModeNSZShift = 2, SpvFPFastMathModeAllowRecipShift = 3, SpvFPFastMathModeFastShift = 4, SpvFPFastMathModeMax = 0x7fffffff, } SpvFPFastMathModeShift; typedef enum SpvFPFastMathModeMask_ { SpvFPFastMathModeMaskNone = 0, SpvFPFastMathModeNotNaNMask = 0x00000001, SpvFPFastMathModeNotInfMask = 0x00000002, SpvFPFastMathModeNSZMask = 0x00000004, SpvFPFastMathModeAllowRecipMask = 0x00000008, SpvFPFastMathModeFastMask = 0x00000010, } SpvFPFastMathModeMask; typedef enum SpvFPRoundingMode_ { SpvFPRoundingModeRTE = 0, SpvFPRoundingModeRTZ = 1, SpvFPRoundingModeRTP = 2, SpvFPRoundingModeRTN = 3, SpvFPRoundingModeMax = 0x7fffffff, } SpvFPRoundingMode; typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; typedef enum SpvAccessQualifier_ { SpvAccessQualifierReadOnly = 0, SpvAccessQualifierWriteOnly = 1, SpvAccessQualifierReadWrite = 2, SpvAccessQualifierMax = 0x7fffffff, } SpvAccessQualifier; typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeZext = 0, SpvFunctionParameterAttributeSext = 1, SpvFunctionParameterAttributeByVal = 2, SpvFunctionParameterAttributeSret = 3, SpvFunctionParameterAttributeNoAlias = 4, SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; typedef enum SpvDecoration_ { SpvDecorationRelaxedPrecision = 0, SpvDecorationSpecId = 1, SpvDecorationBlock = 2, SpvDecorationBufferBlock = 3, SpvDecorationRowMajor = 4, SpvDecorationColMajor = 5, SpvDecorationArrayStride = 6, SpvDecorationMatrixStride = 7, SpvDecorationGLSLShared = 8, SpvDecorationGLSLPacked = 9, SpvDecorationCPacked = 10, SpvDecorationBuiltIn = 11, SpvDecorationNoPerspective = 13, SpvDecorationFlat = 14, SpvDecorationPatch = 15, SpvDecorationCentroid = 16, SpvDecorationSample = 17, SpvDecorationInvariant = 18, SpvDecorationRestrict = 19, SpvDecorationAliased = 20, SpvDecorationVolatile = 21, SpvDecorationConstant = 22, SpvDecorationCoherent = 23, SpvDecorationNonWritable = 24, SpvDecorationNonReadable = 25, SpvDecorationUniform = 26, SpvDecorationSaturatedConversion = 28, SpvDecorationStream = 29, SpvDecorationLocation = 30, SpvDecorationComponent = 31, SpvDecorationIndex = 32, SpvDecorationBinding = 33, SpvDecorationDescriptorSet = 34, SpvDecorationOffset = 35, SpvDecorationXfbBuffer = 36, SpvDecorationXfbStride = 37, SpvDecorationFuncParamAttr = 38, SpvDecorationFPRoundingMode = 39, SpvDecorationFPFastMathMode = 40, SpvDecorationLinkageAttributes = 41, SpvDecorationNoContraction = 42, SpvDecorationInputAttachmentIndex = 43, SpvDecorationAlignment = 44, SpvDecorationMaxByteOffset = 45, SpvDecorationAlignmentId = 46, SpvDecorationMaxByteOffsetId = 47, SpvDecorationExplicitInterpAMD = 4999, SpvDecorationOverrideCoverageNV = 5248, SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, SpvDecorationSecondaryViewportRelativeNV = 5256, SpvDecorationHlslCounterBufferGOOGLE = 5634, SpvDecorationHlslSemanticGOOGLE = 5635, SpvDecorationMax = 0x7fffffff, } SpvDecoration; typedef enum SpvBuiltIn_ { SpvBuiltInPosition = 0, SpvBuiltInPointSize = 1, SpvBuiltInClipDistance = 3, SpvBuiltInCullDistance = 4, SpvBuiltInVertexId = 5, SpvBuiltInInstanceId = 6, SpvBuiltInPrimitiveId = 7, SpvBuiltInInvocationId = 8, SpvBuiltInLayer = 9, SpvBuiltInViewportIndex = 10, SpvBuiltInTessLevelOuter = 11, SpvBuiltInTessLevelInner = 12, SpvBuiltInTessCoord = 13, SpvBuiltInPatchVertices = 14, SpvBuiltInFragCoord = 15, SpvBuiltInPointCoord = 16, SpvBuiltInFrontFacing = 17, SpvBuiltInSampleId = 18, SpvBuiltInSamplePosition = 19, SpvBuiltInSampleMask = 20, SpvBuiltInFragDepth = 22, SpvBuiltInHelperInvocation = 23, SpvBuiltInNumWorkgroups = 24, SpvBuiltInWorkgroupSize = 25, SpvBuiltInWorkgroupId = 26, SpvBuiltInLocalInvocationId = 27, SpvBuiltInGlobalInvocationId = 28, SpvBuiltInLocalInvocationIndex = 29, SpvBuiltInWorkDim = 30, SpvBuiltInGlobalSize = 31, SpvBuiltInEnqueuedWorkgroupSize = 32, SpvBuiltInGlobalOffset = 33, SpvBuiltInGlobalLinearId = 34, SpvBuiltInSubgroupSize = 36, SpvBuiltInSubgroupMaxSize = 37, SpvBuiltInNumSubgroups = 38, SpvBuiltInNumEnqueuedSubgroups = 39, SpvBuiltInSubgroupId = 40, SpvBuiltInSubgroupLocalInvocationId = 41, SpvBuiltInVertexIndex = 42, SpvBuiltInInstanceIndex = 43, SpvBuiltInSubgroupEqMaskKHR = 4416, SpvBuiltInSubgroupGeMaskKHR = 4417, SpvBuiltInSubgroupGtMaskKHR = 4418, SpvBuiltInSubgroupLeMaskKHR = 4419, SpvBuiltInSubgroupLtMaskKHR = 4420, SpvBuiltInBaseVertex = 4424, SpvBuiltInBaseInstance = 4425, SpvBuiltInDrawIndex = 4426, SpvBuiltInDeviceIndex = 4438, SpvBuiltInViewIndex = 4440, SpvBuiltInBaryCoordNoPerspAMD = 4992, SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, SpvBuiltInBaryCoordSmoothAMD = 4995, SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInPositionPerViewNV = 5261, SpvBuiltInViewportMaskPerViewNV = 5262, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; typedef enum SpvSelectionControlShift_ { SpvSelectionControlFlattenShift = 0, SpvSelectionControlDontFlattenShift = 1, SpvSelectionControlMax = 0x7fffffff, } SpvSelectionControlShift; typedef enum SpvSelectionControlMask_ { SpvSelectionControlMaskNone = 0, SpvSelectionControlFlattenMask = 0x00000001, SpvSelectionControlDontFlattenMask = 0x00000002, } SpvSelectionControlMask; typedef enum SpvLoopControlShift_ { SpvLoopControlUnrollShift = 0, SpvLoopControlDontUnrollShift = 1, SpvLoopControlDependencyInfiniteShift = 2, SpvLoopControlDependencyLengthShift = 3, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; typedef enum SpvLoopControlMask_ { SpvLoopControlMaskNone = 0, SpvLoopControlUnrollMask = 0x00000001, SpvLoopControlDontUnrollMask = 0x00000002, SpvLoopControlDependencyInfiniteMask = 0x00000004, SpvLoopControlDependencyLengthMask = 0x00000008, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { SpvFunctionControlInlineShift = 0, SpvFunctionControlDontInlineShift = 1, SpvFunctionControlPureShift = 2, SpvFunctionControlConstShift = 3, SpvFunctionControlMax = 0x7fffffff, } SpvFunctionControlShift; typedef enum SpvFunctionControlMask_ { SpvFunctionControlMaskNone = 0, SpvFunctionControlInlineMask = 0x00000001, SpvFunctionControlDontInlineMask = 0x00000002, SpvFunctionControlPureMask = 0x00000004, SpvFunctionControlConstMask = 0x00000008, } SpvFunctionControlMask; typedef enum SpvMemorySemanticsShift_ { SpvMemorySemanticsAcquireShift = 1, SpvMemorySemanticsReleaseShift = 2, SpvMemorySemanticsAcquireReleaseShift = 3, SpvMemorySemanticsSequentiallyConsistentShift = 4, SpvMemorySemanticsUniformMemoryShift = 6, SpvMemorySemanticsSubgroupMemoryShift = 7, SpvMemorySemanticsWorkgroupMemoryShift = 8, SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, SpvMemorySemanticsAtomicCounterMemoryShift = 10, SpvMemorySemanticsImageMemoryShift = 11, SpvMemorySemanticsMax = 0x7fffffff, } SpvMemorySemanticsShift; typedef enum SpvMemorySemanticsMask_ { SpvMemorySemanticsMaskNone = 0, SpvMemorySemanticsAcquireMask = 0x00000002, SpvMemorySemanticsReleaseMask = 0x00000004, SpvMemorySemanticsAcquireReleaseMask = 0x00000008, SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, SpvMemorySemanticsUniformMemoryMask = 0x00000040, SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, SpvMemorySemanticsImageMemoryMask = 0x00000800, } SpvMemorySemanticsMask; typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessVolatileShift = 0, SpvMemoryAccessAlignedShift = 1, SpvMemoryAccessNontemporalShift = 2, SpvMemoryAccessMax = 0x7fffffff, } SpvMemoryAccessShift; typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMaskNone = 0, SpvMemoryAccessVolatileMask = 0x00000001, SpvMemoryAccessAlignedMask = 0x00000002, SpvMemoryAccessNontemporalMask = 0x00000004, } SpvMemoryAccessMask; typedef enum SpvScope_ { SpvScopeCrossDevice = 0, SpvScopeDevice = 1, SpvScopeWorkgroup = 2, SpvScopeSubgroup = 3, SpvScopeInvocation = 4, SpvScopeMax = 0x7fffffff, } SpvScope; typedef enum SpvGroupOperation_ { SpvGroupOperationReduce = 0, SpvGroupOperationInclusiveScan = 1, SpvGroupOperationExclusiveScan = 2, SpvGroupOperationMax = 0x7fffffff, } SpvGroupOperation; typedef enum SpvKernelEnqueueFlags_ { SpvKernelEnqueueFlagsNoWait = 0, SpvKernelEnqueueFlagsWaitKernel = 1, SpvKernelEnqueueFlagsWaitWorkGroup = 2, SpvKernelEnqueueFlagsMax = 0x7fffffff, } SpvKernelEnqueueFlags; typedef enum SpvKernelProfilingInfoShift_ { SpvKernelProfilingInfoCmdExecTimeShift = 0, SpvKernelProfilingInfoMax = 0x7fffffff, } SpvKernelProfilingInfoShift; typedef enum SpvKernelProfilingInfoMask_ { SpvKernelProfilingInfoMaskNone = 0, SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, } SpvKernelProfilingInfoMask; typedef enum SpvCapability_ { SpvCapabilityMatrix = 0, SpvCapabilityShader = 1, SpvCapabilityGeometry = 2, SpvCapabilityTessellation = 3, SpvCapabilityAddresses = 4, SpvCapabilityLinkage = 5, SpvCapabilityKernel = 6, SpvCapabilityVector16 = 7, SpvCapabilityFloat16Buffer = 8, SpvCapabilityFloat16 = 9, SpvCapabilityFloat64 = 10, SpvCapabilityInt64 = 11, SpvCapabilityInt64Atomics = 12, SpvCapabilityImageBasic = 13, SpvCapabilityImageReadWrite = 14, SpvCapabilityImageMipmap = 15, SpvCapabilityPipes = 17, SpvCapabilityGroups = 18, SpvCapabilityDeviceEnqueue = 19, SpvCapabilityLiteralSampler = 20, SpvCapabilityAtomicStorage = 21, SpvCapabilityInt16 = 22, SpvCapabilityTessellationPointSize = 23, SpvCapabilityGeometryPointSize = 24, SpvCapabilityImageGatherExtended = 25, SpvCapabilityStorageImageMultisample = 27, SpvCapabilityUniformBufferArrayDynamicIndexing = 28, SpvCapabilitySampledImageArrayDynamicIndexing = 29, SpvCapabilityStorageBufferArrayDynamicIndexing = 30, SpvCapabilityStorageImageArrayDynamicIndexing = 31, SpvCapabilityClipDistance = 32, SpvCapabilityCullDistance = 33, SpvCapabilityImageCubeArray = 34, SpvCapabilitySampleRateShading = 35, SpvCapabilityImageRect = 36, SpvCapabilitySampledRect = 37, SpvCapabilityGenericPointer = 38, SpvCapabilityInt8 = 39, SpvCapabilityInputAttachment = 40, SpvCapabilitySparseResidency = 41, SpvCapabilityMinLod = 42, SpvCapabilitySampled1D = 43, SpvCapabilityImage1D = 44, SpvCapabilitySampledCubeArray = 45, SpvCapabilitySampledBuffer = 46, SpvCapabilityImageBuffer = 47, SpvCapabilityImageMSArray = 48, SpvCapabilityStorageImageExtendedFormats = 49, SpvCapabilityImageQuery = 50, SpvCapabilityDerivativeControl = 51, SpvCapabilityInterpolationFunction = 52, SpvCapabilityTransformFeedback = 53, SpvCapabilityGeometryStreams = 54, SpvCapabilityStorageImageReadWithoutFormat = 55, SpvCapabilityStorageImageWriteWithoutFormat = 56, SpvCapabilityMultiViewport = 57, SpvCapabilitySubgroupDispatch = 58, SpvCapabilityNamedBarrier = 59, SpvCapabilityPipeStorage = 60, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, SpvCapabilitySubgroupVoteKHR = 4431, SpvCapabilityStorageBuffer16BitAccess = 4433, SpvCapabilityStorageUniformBufferBlock16 = 4433, SpvCapabilityStorageUniform16 = 4434, SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, SpvCapabilityStoragePushConstant16 = 4435, SpvCapabilityStorageInputOutput16 = 4436, SpvCapabilityDeviceGroup = 4437, SpvCapabilityMultiView = 4439, SpvCapabilityVariablePointersStorageBuffer = 4441, SpvCapabilityVariablePointers = 4442, SpvCapabilityAtomicStorageOps = 4445, SpvCapabilitySampleMaskPostDepthCoverage = 4447, SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityFragmentMaskAMD = 5010, SpvCapabilityStencilExportEXT = 5013, SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerNV = 5254, SpvCapabilityShaderViewportMaskNV = 5255, SpvCapabilityShaderStereoViewNV = 5259, SpvCapabilityPerViewAttributesNV = 5260, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilityMax = 0x7fffffff, } SpvCapability; typedef enum SpvOp_ { SpvOpNop = 0, SpvOpUndef = 1, SpvOpSourceContinued = 2, SpvOpSource = 3, SpvOpSourceExtension = 4, SpvOpName = 5, SpvOpMemberName = 6, SpvOpString = 7, SpvOpLine = 8, SpvOpExtension = 10, SpvOpExtInstImport = 11, SpvOpExtInst = 12, SpvOpMemoryModel = 14, SpvOpEntryPoint = 15, SpvOpExecutionMode = 16, SpvOpCapability = 17, SpvOpTypeVoid = 19, SpvOpTypeBool = 20, SpvOpTypeInt = 21, SpvOpTypeFloat = 22, SpvOpTypeVector = 23, SpvOpTypeMatrix = 24, SpvOpTypeImage = 25, SpvOpTypeSampler = 26, SpvOpTypeSampledImage = 27, SpvOpTypeArray = 28, SpvOpTypeRuntimeArray = 29, SpvOpTypeStruct = 30, SpvOpTypeOpaque = 31, SpvOpTypePointer = 32, SpvOpTypeFunction = 33, SpvOpTypeEvent = 34, SpvOpTypeDeviceEvent = 35, SpvOpTypeReserveId = 36, SpvOpTypeQueue = 37, SpvOpTypePipe = 38, SpvOpTypeForwardPointer = 39, SpvOpConstantTrue = 41, SpvOpConstantFalse = 42, SpvOpConstant = 43, SpvOpConstantComposite = 44, SpvOpConstantSampler = 45, SpvOpConstantNull = 46, SpvOpSpecConstantTrue = 48, SpvOpSpecConstantFalse = 49, SpvOpSpecConstant = 50, SpvOpSpecConstantComposite = 51, SpvOpSpecConstantOp = 52, SpvOpFunction = 54, SpvOpFunctionParameter = 55, SpvOpFunctionEnd = 56, SpvOpFunctionCall = 57, SpvOpVariable = 59, SpvOpImageTexelPointer = 60, SpvOpLoad = 61, SpvOpStore = 62, SpvOpCopyMemory = 63, SpvOpCopyMemorySized = 64, SpvOpAccessChain = 65, SpvOpInBoundsAccessChain = 66, SpvOpPtrAccessChain = 67, SpvOpArrayLength = 68, SpvOpGenericPtrMemSemantics = 69, SpvOpInBoundsPtrAccessChain = 70, SpvOpDecorate = 71, SpvOpMemberDecorate = 72, SpvOpDecorationGroup = 73, SpvOpGroupDecorate = 74, SpvOpGroupMemberDecorate = 75, SpvOpVectorExtractDynamic = 77, SpvOpVectorInsertDynamic = 78, SpvOpVectorShuffle = 79, SpvOpCompositeConstruct = 80, SpvOpCompositeExtract = 81, SpvOpCompositeInsert = 82, SpvOpCopyObject = 83, SpvOpTranspose = 84, SpvOpSampledImage = 86, SpvOpImageSampleImplicitLod = 87, SpvOpImageSampleExplicitLod = 88, SpvOpImageSampleDrefImplicitLod = 89, SpvOpImageSampleDrefExplicitLod = 90, SpvOpImageSampleProjImplicitLod = 91, SpvOpImageSampleProjExplicitLod = 92, SpvOpImageSampleProjDrefImplicitLod = 93, SpvOpImageSampleProjDrefExplicitLod = 94, SpvOpImageFetch = 95, SpvOpImageGather = 96, SpvOpImageDrefGather = 97, SpvOpImageRead = 98, SpvOpImageWrite = 99, SpvOpImage = 100, SpvOpImageQueryFormat = 101, SpvOpImageQueryOrder = 102, SpvOpImageQuerySizeLod = 103, SpvOpImageQuerySize = 104, SpvOpImageQueryLod = 105, SpvOpImageQueryLevels = 106, SpvOpImageQuerySamples = 107, SpvOpConvertFToU = 109, SpvOpConvertFToS = 110, SpvOpConvertSToF = 111, SpvOpConvertUToF = 112, SpvOpUConvert = 113, SpvOpSConvert = 114, SpvOpFConvert = 115, SpvOpQuantizeToF16 = 116, SpvOpConvertPtrToU = 117, SpvOpSatConvertSToU = 118, SpvOpSatConvertUToS = 119, SpvOpConvertUToPtr = 120, SpvOpPtrCastToGeneric = 121, SpvOpGenericCastToPtr = 122, SpvOpGenericCastToPtrExplicit = 123, SpvOpBitcast = 124, SpvOpSNegate = 126, SpvOpFNegate = 127, SpvOpIAdd = 128, SpvOpFAdd = 129, SpvOpISub = 130, SpvOpFSub = 131, SpvOpIMul = 132, SpvOpFMul = 133, SpvOpUDiv = 134, SpvOpSDiv = 135, SpvOpFDiv = 136, SpvOpUMod = 137, SpvOpSRem = 138, SpvOpSMod = 139, SpvOpFRem = 140, SpvOpFMod = 141, SpvOpVectorTimesScalar = 142, SpvOpMatrixTimesScalar = 143, SpvOpVectorTimesMatrix = 144, SpvOpMatrixTimesVector = 145, SpvOpMatrixTimesMatrix = 146, SpvOpOuterProduct = 147, SpvOpDot = 148, SpvOpIAddCarry = 149, SpvOpISubBorrow = 150, SpvOpUMulExtended = 151, SpvOpSMulExtended = 152, SpvOpAny = 154, SpvOpAll = 155, SpvOpIsNan = 156, SpvOpIsInf = 157, SpvOpIsFinite = 158, SpvOpIsNormal = 159, SpvOpSignBitSet = 160, SpvOpLessOrGreater = 161, SpvOpOrdered = 162, SpvOpUnordered = 163, SpvOpLogicalEqual = 164, SpvOpLogicalNotEqual = 165, SpvOpLogicalOr = 166, SpvOpLogicalAnd = 167, SpvOpLogicalNot = 168, SpvOpSelect = 169, SpvOpIEqual = 170, SpvOpINotEqual = 171, SpvOpUGreaterThan = 172, SpvOpSGreaterThan = 173, SpvOpUGreaterThanEqual = 174, SpvOpSGreaterThanEqual = 175, SpvOpULessThan = 176, SpvOpSLessThan = 177, SpvOpULessThanEqual = 178, SpvOpSLessThanEqual = 179, SpvOpFOrdEqual = 180, SpvOpFUnordEqual = 181, SpvOpFOrdNotEqual = 182, SpvOpFUnordNotEqual = 183, SpvOpFOrdLessThan = 184, SpvOpFUnordLessThan = 185, SpvOpFOrdGreaterThan = 186, SpvOpFUnordGreaterThan = 187, SpvOpFOrdLessThanEqual = 188, SpvOpFUnordLessThanEqual = 189, SpvOpFOrdGreaterThanEqual = 190, SpvOpFUnordGreaterThanEqual = 191, SpvOpShiftRightLogical = 194, SpvOpShiftRightArithmetic = 195, SpvOpShiftLeftLogical = 196, SpvOpBitwiseOr = 197, SpvOpBitwiseXor = 198, SpvOpBitwiseAnd = 199, SpvOpNot = 200, SpvOpBitFieldInsert = 201, SpvOpBitFieldSExtract = 202, SpvOpBitFieldUExtract = 203, SpvOpBitReverse = 204, SpvOpBitCount = 205, SpvOpDPdx = 207, SpvOpDPdy = 208, SpvOpFwidth = 209, SpvOpDPdxFine = 210, SpvOpDPdyFine = 211, SpvOpFwidthFine = 212, SpvOpDPdxCoarse = 213, SpvOpDPdyCoarse = 214, SpvOpFwidthCoarse = 215, SpvOpEmitVertex = 218, SpvOpEndPrimitive = 219, SpvOpEmitStreamVertex = 220, SpvOpEndStreamPrimitive = 221, SpvOpControlBarrier = 224, SpvOpMemoryBarrier = 225, SpvOpAtomicLoad = 227, SpvOpAtomicStore = 228, SpvOpAtomicExchange = 229, SpvOpAtomicCompareExchange = 230, SpvOpAtomicCompareExchangeWeak = 231, SpvOpAtomicIIncrement = 232, SpvOpAtomicIDecrement = 233, SpvOpAtomicIAdd = 234, SpvOpAtomicISub = 235, SpvOpAtomicSMin = 236, SpvOpAtomicUMin = 237, SpvOpAtomicSMax = 238, SpvOpAtomicUMax = 239, SpvOpAtomicAnd = 240, SpvOpAtomicOr = 241, SpvOpAtomicXor = 242, SpvOpPhi = 245, SpvOpLoopMerge = 246, SpvOpSelectionMerge = 247, SpvOpLabel = 248, SpvOpBranch = 249, SpvOpBranchConditional = 250, SpvOpSwitch = 251, SpvOpKill = 252, SpvOpReturn = 253, SpvOpReturnValue = 254, SpvOpUnreachable = 255, SpvOpLifetimeStart = 256, SpvOpLifetimeStop = 257, SpvOpGroupAsyncCopy = 259, SpvOpGroupWaitEvents = 260, SpvOpGroupAll = 261, SpvOpGroupAny = 262, SpvOpGroupBroadcast = 263, SpvOpGroupIAdd = 264, SpvOpGroupFAdd = 265, SpvOpGroupFMin = 266, SpvOpGroupUMin = 267, SpvOpGroupSMin = 268, SpvOpGroupFMax = 269, SpvOpGroupUMax = 270, SpvOpGroupSMax = 271, SpvOpReadPipe = 274, SpvOpWritePipe = 275, SpvOpReservedReadPipe = 276, SpvOpReservedWritePipe = 277, SpvOpReserveReadPipePackets = 278, SpvOpReserveWritePipePackets = 279, SpvOpCommitReadPipe = 280, SpvOpCommitWritePipe = 281, SpvOpIsValidReserveId = 282, SpvOpGetNumPipePackets = 283, SpvOpGetMaxPipePackets = 284, SpvOpGroupReserveReadPipePackets = 285, SpvOpGroupReserveWritePipePackets = 286, SpvOpGroupCommitReadPipe = 287, SpvOpGroupCommitWritePipe = 288, SpvOpEnqueueMarker = 291, SpvOpEnqueueKernel = 292, SpvOpGetKernelNDrangeSubGroupCount = 293, SpvOpGetKernelNDrangeMaxSubGroupSize = 294, SpvOpGetKernelWorkGroupSize = 295, SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, SpvOpRetainEvent = 297, SpvOpReleaseEvent = 298, SpvOpCreateUserEvent = 299, SpvOpIsValidEvent = 300, SpvOpSetUserEventStatus = 301, SpvOpCaptureEventProfilingInfo = 302, SpvOpGetDefaultQueue = 303, SpvOpBuildNDRange = 304, SpvOpImageSparseSampleImplicitLod = 305, SpvOpImageSparseSampleExplicitLod = 306, SpvOpImageSparseSampleDrefImplicitLod = 307, SpvOpImageSparseSampleDrefExplicitLod = 308, SpvOpImageSparseSampleProjImplicitLod = 309, SpvOpImageSparseSampleProjExplicitLod = 310, SpvOpImageSparseSampleProjDrefImplicitLod = 311, SpvOpImageSparseSampleProjDrefExplicitLod = 312, SpvOpImageSparseFetch = 313, SpvOpImageSparseGather = 314, SpvOpImageSparseDrefGather = 315, SpvOpImageSparseTexelsResident = 316, SpvOpNoLine = 317, SpvOpAtomicFlagTestAndSet = 318, SpvOpAtomicFlagClear = 319, SpvOpImageSparseRead = 320, SpvOpSizeOf = 321, SpvOpTypePipeStorage = 322, SpvOpConstantPipeStorage = 323, SpvOpCreatePipeFromPipeStorage = 324, SpvOpGetKernelLocalSizeForSubgroupCount = 325, SpvOpGetKernelMaxNumSubgroups = 326, SpvOpTypeNamedBarrier = 327, SpvOpNamedBarrierInitialize = 328, SpvOpMemoryNamedBarrier = 329, SpvOpModuleProcessed = 330, SpvOpExecutionModeId = 331, SpvOpDecorateId = 332, SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupFirstInvocationKHR = 4422, SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, SpvOpGroupUMinNonUniformAMD = 5003, SpvOpGroupSMinNonUniformAMD = 5004, SpvOpGroupFMaxNonUniformAMD = 5005, SpvOpGroupUMaxNonUniformAMD = 5006, SpvOpGroupSMaxNonUniformAMD = 5007, SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentFetchAMD = 5012, SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleUpINTEL = 5573, SpvOpSubgroupShuffleXorINTEL = 5574, SpvOpSubgroupBlockReadINTEL = 5575, SpvOpSubgroupBlockWriteINTEL = 5576, SpvOpSubgroupImageBlockReadINTEL = 5577, SpvOpSubgroupImageBlockWriteINTEL = 5578, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateStringGOOGLE = 5633, SpvOpMax = 0x7fffffff, } SpvOp; #endif // #ifndef spirv_H spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.hpp000066400000000000000000000763711463234063200222220ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10200 #define SPV_REVISION 2 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010200; static const unsigned int Revision = 2; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum SourceLanguage { SourceLanguageUnknown = 0, SourceLanguageESSL = 1, SourceLanguageGLSL = 2, SourceLanguageOpenCL_C = 3, SourceLanguageOpenCL_CPP = 4, SourceLanguageHLSL = 5, SourceLanguageMax = 0x7fffffff, }; enum ExecutionModel { ExecutionModelVertex = 0, ExecutionModelTessellationControl = 1, ExecutionModelTessellationEvaluation = 2, ExecutionModelGeometry = 3, ExecutionModelFragment = 4, ExecutionModelGLCompute = 5, ExecutionModelKernel = 6, ExecutionModelMax = 0x7fffffff, }; enum AddressingModel { AddressingModelLogical = 0, AddressingModelPhysical32 = 1, AddressingModelPhysical64 = 2, AddressingModelMax = 0x7fffffff, }; enum MemoryModel { MemoryModelSimple = 0, MemoryModelGLSL450 = 1, MemoryModelOpenCL = 2, MemoryModelMax = 0x7fffffff, }; enum ExecutionMode { ExecutionModeInvocations = 0, ExecutionModeSpacingEqual = 1, ExecutionModeSpacingFractionalEven = 2, ExecutionModeSpacingFractionalOdd = 3, ExecutionModeVertexOrderCw = 4, ExecutionModeVertexOrderCcw = 5, ExecutionModePixelCenterInteger = 6, ExecutionModeOriginUpperLeft = 7, ExecutionModeOriginLowerLeft = 8, ExecutionModeEarlyFragmentTests = 9, ExecutionModePointMode = 10, ExecutionModeXfb = 11, ExecutionModeDepthReplacing = 12, ExecutionModeDepthGreater = 14, ExecutionModeDepthLess = 15, ExecutionModeDepthUnchanged = 16, ExecutionModeLocalSize = 17, ExecutionModeLocalSizeHint = 18, ExecutionModeInputPoints = 19, ExecutionModeInputLines = 20, ExecutionModeInputLinesAdjacency = 21, ExecutionModeTriangles = 22, ExecutionModeInputTrianglesAdjacency = 23, ExecutionModeQuads = 24, ExecutionModeIsolines = 25, ExecutionModeOutputVertices = 26, ExecutionModeOutputPoints = 27, ExecutionModeOutputLineStrip = 28, ExecutionModeOutputTriangleStrip = 29, ExecutionModeVecTypeHint = 30, ExecutionModeContractionOff = 31, ExecutionModeInitializer = 33, ExecutionModeFinalizer = 34, ExecutionModeSubgroupSize = 35, ExecutionModeSubgroupsPerWorkgroup = 36, ExecutionModeSubgroupsPerWorkgroupId = 37, ExecutionModeLocalSizeId = 38, ExecutionModeLocalSizeHintId = 39, ExecutionModePostDepthCoverage = 4446, ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeMax = 0x7fffffff, }; enum StorageClass { StorageClassUniformConstant = 0, StorageClassInput = 1, StorageClassUniform = 2, StorageClassOutput = 3, StorageClassWorkgroup = 4, StorageClassCrossWorkgroup = 5, StorageClassPrivate = 6, StorageClassFunction = 7, StorageClassGeneric = 8, StorageClassPushConstant = 9, StorageClassAtomicCounter = 10, StorageClassImage = 11, StorageClassStorageBuffer = 12, StorageClassMax = 0x7fffffff, }; enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, DimCube = 3, DimRect = 4, DimBuffer = 5, DimSubpassData = 6, DimMax = 0x7fffffff, }; enum SamplerAddressingMode { SamplerAddressingModeNone = 0, SamplerAddressingModeClampToEdge = 1, SamplerAddressingModeClamp = 2, SamplerAddressingModeRepeat = 3, SamplerAddressingModeRepeatMirrored = 4, SamplerAddressingModeMax = 0x7fffffff, }; enum SamplerFilterMode { SamplerFilterModeNearest = 0, SamplerFilterModeLinear = 1, SamplerFilterModeMax = 0x7fffffff, }; enum ImageFormat { ImageFormatUnknown = 0, ImageFormatRgba32f = 1, ImageFormatRgba16f = 2, ImageFormatR32f = 3, ImageFormatRgba8 = 4, ImageFormatRgba8Snorm = 5, ImageFormatRg32f = 6, ImageFormatRg16f = 7, ImageFormatR11fG11fB10f = 8, ImageFormatR16f = 9, ImageFormatRgba16 = 10, ImageFormatRgb10A2 = 11, ImageFormatRg16 = 12, ImageFormatRg8 = 13, ImageFormatR16 = 14, ImageFormatR8 = 15, ImageFormatRgba16Snorm = 16, ImageFormatRg16Snorm = 17, ImageFormatRg8Snorm = 18, ImageFormatR16Snorm = 19, ImageFormatR8Snorm = 20, ImageFormatRgba32i = 21, ImageFormatRgba16i = 22, ImageFormatRgba8i = 23, ImageFormatR32i = 24, ImageFormatRg32i = 25, ImageFormatRg16i = 26, ImageFormatRg8i = 27, ImageFormatR16i = 28, ImageFormatR8i = 29, ImageFormatRgba32ui = 30, ImageFormatRgba16ui = 31, ImageFormatRgba8ui = 32, ImageFormatR32ui = 33, ImageFormatRgb10a2ui = 34, ImageFormatRg32ui = 35, ImageFormatRg16ui = 36, ImageFormatRg8ui = 37, ImageFormatR16ui = 38, ImageFormatR8ui = 39, ImageFormatMax = 0x7fffffff, }; enum ImageChannelOrder { ImageChannelOrderR = 0, ImageChannelOrderA = 1, ImageChannelOrderRG = 2, ImageChannelOrderRA = 3, ImageChannelOrderRGB = 4, ImageChannelOrderRGBA = 5, ImageChannelOrderBGRA = 6, ImageChannelOrderARGB = 7, ImageChannelOrderIntensity = 8, ImageChannelOrderLuminance = 9, ImageChannelOrderRx = 10, ImageChannelOrderRGx = 11, ImageChannelOrderRGBx = 12, ImageChannelOrderDepth = 13, ImageChannelOrderDepthStencil = 14, ImageChannelOrdersRGB = 15, ImageChannelOrdersRGBx = 16, ImageChannelOrdersRGBA = 17, ImageChannelOrdersBGRA = 18, ImageChannelOrderABGR = 19, ImageChannelOrderMax = 0x7fffffff, }; enum ImageChannelDataType { ImageChannelDataTypeSnormInt8 = 0, ImageChannelDataTypeSnormInt16 = 1, ImageChannelDataTypeUnormInt8 = 2, ImageChannelDataTypeUnormInt16 = 3, ImageChannelDataTypeUnormShort565 = 4, ImageChannelDataTypeUnormShort555 = 5, ImageChannelDataTypeUnormInt101010 = 6, ImageChannelDataTypeSignedInt8 = 7, ImageChannelDataTypeSignedInt16 = 8, ImageChannelDataTypeSignedInt32 = 9, ImageChannelDataTypeUnsignedInt8 = 10, ImageChannelDataTypeUnsignedInt16 = 11, ImageChannelDataTypeUnsignedInt32 = 12, ImageChannelDataTypeHalfFloat = 13, ImageChannelDataTypeFloat = 14, ImageChannelDataTypeUnormInt24 = 15, ImageChannelDataTypeUnormInt101010_2 = 16, ImageChannelDataTypeMax = 0x7fffffff, }; enum ImageOperandsShift { ImageOperandsBiasShift = 0, ImageOperandsLodShift = 1, ImageOperandsGradShift = 2, ImageOperandsConstOffsetShift = 3, ImageOperandsOffsetShift = 4, ImageOperandsConstOffsetsShift = 5, ImageOperandsSampleShift = 6, ImageOperandsMinLodShift = 7, ImageOperandsMax = 0x7fffffff, }; enum ImageOperandsMask { ImageOperandsMaskNone = 0, ImageOperandsBiasMask = 0x00000001, ImageOperandsLodMask = 0x00000002, ImageOperandsGradMask = 0x00000004, ImageOperandsConstOffsetMask = 0x00000008, ImageOperandsOffsetMask = 0x00000010, ImageOperandsConstOffsetsMask = 0x00000020, ImageOperandsSampleMask = 0x00000040, ImageOperandsMinLodMask = 0x00000080, }; enum FPFastMathModeShift { FPFastMathModeNotNaNShift = 0, FPFastMathModeNotInfShift = 1, FPFastMathModeNSZShift = 2, FPFastMathModeAllowRecipShift = 3, FPFastMathModeFastShift = 4, FPFastMathModeMax = 0x7fffffff, }; enum FPFastMathModeMask { FPFastMathModeMaskNone = 0, FPFastMathModeNotNaNMask = 0x00000001, FPFastMathModeNotInfMask = 0x00000002, FPFastMathModeNSZMask = 0x00000004, FPFastMathModeAllowRecipMask = 0x00000008, FPFastMathModeFastMask = 0x00000010, }; enum FPRoundingMode { FPRoundingModeRTE = 0, FPRoundingModeRTZ = 1, FPRoundingModeRTP = 2, FPRoundingModeRTN = 3, FPRoundingModeMax = 0x7fffffff, }; enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, LinkageTypeMax = 0x7fffffff, }; enum AccessQualifier { AccessQualifierReadOnly = 0, AccessQualifierWriteOnly = 1, AccessQualifierReadWrite = 2, AccessQualifierMax = 0x7fffffff, }; enum FunctionParameterAttribute { FunctionParameterAttributeZext = 0, FunctionParameterAttributeSext = 1, FunctionParameterAttributeByVal = 2, FunctionParameterAttributeSret = 3, FunctionParameterAttributeNoAlias = 4, FunctionParameterAttributeNoCapture = 5, FunctionParameterAttributeNoWrite = 6, FunctionParameterAttributeNoReadWrite = 7, FunctionParameterAttributeMax = 0x7fffffff, }; enum Decoration { DecorationRelaxedPrecision = 0, DecorationSpecId = 1, DecorationBlock = 2, DecorationBufferBlock = 3, DecorationRowMajor = 4, DecorationColMajor = 5, DecorationArrayStride = 6, DecorationMatrixStride = 7, DecorationGLSLShared = 8, DecorationGLSLPacked = 9, DecorationCPacked = 10, DecorationBuiltIn = 11, DecorationNoPerspective = 13, DecorationFlat = 14, DecorationPatch = 15, DecorationCentroid = 16, DecorationSample = 17, DecorationInvariant = 18, DecorationRestrict = 19, DecorationAliased = 20, DecorationVolatile = 21, DecorationConstant = 22, DecorationCoherent = 23, DecorationNonWritable = 24, DecorationNonReadable = 25, DecorationUniform = 26, DecorationSaturatedConversion = 28, DecorationStream = 29, DecorationLocation = 30, DecorationComponent = 31, DecorationIndex = 32, DecorationBinding = 33, DecorationDescriptorSet = 34, DecorationOffset = 35, DecorationXfbBuffer = 36, DecorationXfbStride = 37, DecorationFuncParamAttr = 38, DecorationFPRoundingMode = 39, DecorationFPFastMathMode = 40, DecorationLinkageAttributes = 41, DecorationNoContraction = 42, DecorationInputAttachmentIndex = 43, DecorationAlignment = 44, DecorationMaxByteOffset = 45, DecorationAlignmentId = 46, DecorationMaxByteOffsetId = 47, DecorationExplicitInterpAMD = 4999, DecorationOverrideCoverageNV = 5248, DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, DecorationSecondaryViewportRelativeNV = 5256, DecorationHlslCounterBufferGOOGLE = 5634, DecorationHlslSemanticGOOGLE = 5635, DecorationMax = 0x7fffffff, }; enum BuiltIn { BuiltInPosition = 0, BuiltInPointSize = 1, BuiltInClipDistance = 3, BuiltInCullDistance = 4, BuiltInVertexId = 5, BuiltInInstanceId = 6, BuiltInPrimitiveId = 7, BuiltInInvocationId = 8, BuiltInLayer = 9, BuiltInViewportIndex = 10, BuiltInTessLevelOuter = 11, BuiltInTessLevelInner = 12, BuiltInTessCoord = 13, BuiltInPatchVertices = 14, BuiltInFragCoord = 15, BuiltInPointCoord = 16, BuiltInFrontFacing = 17, BuiltInSampleId = 18, BuiltInSamplePosition = 19, BuiltInSampleMask = 20, BuiltInFragDepth = 22, BuiltInHelperInvocation = 23, BuiltInNumWorkgroups = 24, BuiltInWorkgroupSize = 25, BuiltInWorkgroupId = 26, BuiltInLocalInvocationId = 27, BuiltInGlobalInvocationId = 28, BuiltInLocalInvocationIndex = 29, BuiltInWorkDim = 30, BuiltInGlobalSize = 31, BuiltInEnqueuedWorkgroupSize = 32, BuiltInGlobalOffset = 33, BuiltInGlobalLinearId = 34, BuiltInSubgroupSize = 36, BuiltInSubgroupMaxSize = 37, BuiltInNumSubgroups = 38, BuiltInNumEnqueuedSubgroups = 39, BuiltInSubgroupId = 40, BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, BuiltInSubgroupEqMaskKHR = 4416, BuiltInSubgroupGeMaskKHR = 4417, BuiltInSubgroupGtMaskKHR = 4418, BuiltInSubgroupLeMaskKHR = 4419, BuiltInSubgroupLtMaskKHR = 4420, BuiltInBaseVertex = 4424, BuiltInBaseInstance = 4425, BuiltInDrawIndex = 4426, BuiltInDeviceIndex = 4438, BuiltInViewIndex = 4440, BuiltInBaryCoordNoPerspAMD = 4992, BuiltInBaryCoordNoPerspCentroidAMD = 4993, BuiltInBaryCoordNoPerspSampleAMD = 4994, BuiltInBaryCoordSmoothAMD = 4995, BuiltInBaryCoordSmoothCentroidAMD = 4996, BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordPullModelAMD = 4998, BuiltInFragStencilRefEXT = 5014, BuiltInViewportMaskNV = 5253, BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryViewportMaskNV = 5258, BuiltInPositionPerViewNV = 5261, BuiltInViewportMaskPerViewNV = 5262, BuiltInMax = 0x7fffffff, }; enum SelectionControlShift { SelectionControlFlattenShift = 0, SelectionControlDontFlattenShift = 1, SelectionControlMax = 0x7fffffff, }; enum SelectionControlMask { SelectionControlMaskNone = 0, SelectionControlFlattenMask = 0x00000001, SelectionControlDontFlattenMask = 0x00000002, }; enum LoopControlShift { LoopControlUnrollShift = 0, LoopControlDontUnrollShift = 1, LoopControlDependencyInfiniteShift = 2, LoopControlDependencyLengthShift = 3, LoopControlMax = 0x7fffffff, }; enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, LoopControlDependencyInfiniteMask = 0x00000004, LoopControlDependencyLengthMask = 0x00000008, }; enum FunctionControlShift { FunctionControlInlineShift = 0, FunctionControlDontInlineShift = 1, FunctionControlPureShift = 2, FunctionControlConstShift = 3, FunctionControlMax = 0x7fffffff, }; enum FunctionControlMask { FunctionControlMaskNone = 0, FunctionControlInlineMask = 0x00000001, FunctionControlDontInlineMask = 0x00000002, FunctionControlPureMask = 0x00000004, FunctionControlConstMask = 0x00000008, }; enum MemorySemanticsShift { MemorySemanticsAcquireShift = 1, MemorySemanticsReleaseShift = 2, MemorySemanticsAcquireReleaseShift = 3, MemorySemanticsSequentiallyConsistentShift = 4, MemorySemanticsUniformMemoryShift = 6, MemorySemanticsSubgroupMemoryShift = 7, MemorySemanticsWorkgroupMemoryShift = 8, MemorySemanticsCrossWorkgroupMemoryShift = 9, MemorySemanticsAtomicCounterMemoryShift = 10, MemorySemanticsImageMemoryShift = 11, MemorySemanticsMax = 0x7fffffff, }; enum MemorySemanticsMask { MemorySemanticsMaskNone = 0, MemorySemanticsAcquireMask = 0x00000002, MemorySemanticsReleaseMask = 0x00000004, MemorySemanticsAcquireReleaseMask = 0x00000008, MemorySemanticsSequentiallyConsistentMask = 0x00000010, MemorySemanticsUniformMemoryMask = 0x00000040, MemorySemanticsSubgroupMemoryMask = 0x00000080, MemorySemanticsWorkgroupMemoryMask = 0x00000100, MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, MemorySemanticsAtomicCounterMemoryMask = 0x00000400, MemorySemanticsImageMemoryMask = 0x00000800, }; enum MemoryAccessShift { MemoryAccessVolatileShift = 0, MemoryAccessAlignedShift = 1, MemoryAccessNontemporalShift = 2, MemoryAccessMax = 0x7fffffff, }; enum MemoryAccessMask { MemoryAccessMaskNone = 0, MemoryAccessVolatileMask = 0x00000001, MemoryAccessAlignedMask = 0x00000002, MemoryAccessNontemporalMask = 0x00000004, }; enum Scope { ScopeCrossDevice = 0, ScopeDevice = 1, ScopeWorkgroup = 2, ScopeSubgroup = 3, ScopeInvocation = 4, ScopeMax = 0x7fffffff, }; enum GroupOperation { GroupOperationReduce = 0, GroupOperationInclusiveScan = 1, GroupOperationExclusiveScan = 2, GroupOperationMax = 0x7fffffff, }; enum KernelEnqueueFlags { KernelEnqueueFlagsNoWait = 0, KernelEnqueueFlagsWaitKernel = 1, KernelEnqueueFlagsWaitWorkGroup = 2, KernelEnqueueFlagsMax = 0x7fffffff, }; enum KernelProfilingInfoShift { KernelProfilingInfoCmdExecTimeShift = 0, KernelProfilingInfoMax = 0x7fffffff, }; enum KernelProfilingInfoMask { KernelProfilingInfoMaskNone = 0, KernelProfilingInfoCmdExecTimeMask = 0x00000001, }; enum Capability { CapabilityMatrix = 0, CapabilityShader = 1, CapabilityGeometry = 2, CapabilityTessellation = 3, CapabilityAddresses = 4, CapabilityLinkage = 5, CapabilityKernel = 6, CapabilityVector16 = 7, CapabilityFloat16Buffer = 8, CapabilityFloat16 = 9, CapabilityFloat64 = 10, CapabilityInt64 = 11, CapabilityInt64Atomics = 12, CapabilityImageBasic = 13, CapabilityImageReadWrite = 14, CapabilityImageMipmap = 15, CapabilityPipes = 17, CapabilityGroups = 18, CapabilityDeviceEnqueue = 19, CapabilityLiteralSampler = 20, CapabilityAtomicStorage = 21, CapabilityInt16 = 22, CapabilityTessellationPointSize = 23, CapabilityGeometryPointSize = 24, CapabilityImageGatherExtended = 25, CapabilityStorageImageMultisample = 27, CapabilityUniformBufferArrayDynamicIndexing = 28, CapabilitySampledImageArrayDynamicIndexing = 29, CapabilityStorageBufferArrayDynamicIndexing = 30, CapabilityStorageImageArrayDynamicIndexing = 31, CapabilityClipDistance = 32, CapabilityCullDistance = 33, CapabilityImageCubeArray = 34, CapabilitySampleRateShading = 35, CapabilityImageRect = 36, CapabilitySampledRect = 37, CapabilityGenericPointer = 38, CapabilityInt8 = 39, CapabilityInputAttachment = 40, CapabilitySparseResidency = 41, CapabilityMinLod = 42, CapabilitySampled1D = 43, CapabilityImage1D = 44, CapabilitySampledCubeArray = 45, CapabilitySampledBuffer = 46, CapabilityImageBuffer = 47, CapabilityImageMSArray = 48, CapabilityStorageImageExtendedFormats = 49, CapabilityImageQuery = 50, CapabilityDerivativeControl = 51, CapabilityInterpolationFunction = 52, CapabilityTransformFeedback = 53, CapabilityGeometryStreams = 54, CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, CapabilitySubgroupDispatch = 58, CapabilityNamedBarrier = 59, CapabilityPipeStorage = 60, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, CapabilitySubgroupVoteKHR = 4431, CapabilityStorageBuffer16BitAccess = 4433, CapabilityStorageUniformBufferBlock16 = 4433, CapabilityStorageUniform16 = 4434, CapabilityUniformAndStorageBuffer16BitAccess = 4434, CapabilityStoragePushConstant16 = 4435, CapabilityStorageInputOutput16 = 4436, CapabilityDeviceGroup = 4437, CapabilityMultiView = 4439, CapabilityVariablePointersStorageBuffer = 4441, CapabilityVariablePointers = 4442, CapabilityAtomicStorageOps = 4445, CapabilitySampleMaskPostDepthCoverage = 4447, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, CapabilityStencilExportEXT = 5013, CapabilityImageReadWriteLodAMD = 5015, CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilityGeometryShaderPassthroughNV = 5251, CapabilityShaderViewportIndexLayerEXT = 5254, CapabilityShaderViewportIndexLayerNV = 5254, CapabilityShaderViewportMaskNV = 5255, CapabilityShaderStereoViewNV = 5259, CapabilityPerViewAttributesNV = 5260, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilityMax = 0x7fffffff, }; enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, OpMax = 0x7fffffff, }; // Overload operator| for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.hpp11000066400000000000000000000632061463234063200223550ustar00rootroot00000000000000// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10200 #define SPV_REVISION 2 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010200; static const unsigned int Revision = 2; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum class SourceLanguage : unsigned { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, Max = 0x7fffffff, }; enum class ExecutionModel : unsigned { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, Max = 0x7fffffff, }; enum class AddressingModel : unsigned { Logical = 0, Physical32 = 1, Physical64 = 2, Max = 0x7fffffff, }; enum class MemoryModel : unsigned { Simple = 0, GLSL450 = 1, OpenCL = 2, Max = 0x7fffffff, }; enum class ExecutionMode : unsigned { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, Max = 0x7fffffff, }; enum class StorageClass : unsigned { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, Max = 0x7fffffff, }; enum class Dim : unsigned { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, Max = 0x7fffffff, }; enum class SamplerAddressingMode : unsigned { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, Max = 0x7fffffff, }; enum class SamplerFilterMode : unsigned { Nearest = 0, Linear = 1, Max = 0x7fffffff, }; enum class ImageFormat : unsigned { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, Max = 0x7fffffff, }; enum class ImageChannelOrder : unsigned { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, Max = 0x7fffffff, }; enum class ImageChannelDataType : unsigned { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, Max = 0x7fffffff, }; enum class ImageOperandsShift : unsigned { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, Max = 0x7fffffff, }; enum class ImageOperandsMask : unsigned { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, }; enum class FPFastMathModeShift : unsigned { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, Max = 0x7fffffff, }; enum class FPFastMathModeMask : unsigned { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, }; enum class FPRoundingMode : unsigned { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, Max = 0x7fffffff, }; enum class LinkageType : unsigned { Export = 0, Import = 1, Max = 0x7fffffff, }; enum class AccessQualifier : unsigned { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, Max = 0x7fffffff, }; enum class FunctionParameterAttribute : unsigned { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, Max = 0x7fffffff, }; enum class Decoration : unsigned { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, Max = 0x7fffffff, }; enum class BuiltIn : unsigned { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, Max = 0x7fffffff, }; enum class SelectionControlShift : unsigned { Flatten = 0, DontFlatten = 1, Max = 0x7fffffff, }; enum class SelectionControlMask : unsigned { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }; enum class LoopControlShift : unsigned { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, Max = 0x7fffffff, }; enum class LoopControlMask : unsigned { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, }; enum class FunctionControlShift : unsigned { Inline = 0, DontInline = 1, Pure = 2, Const = 3, Max = 0x7fffffff, }; enum class FunctionControlMask : unsigned { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, }; enum class MemorySemanticsShift : unsigned { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, Max = 0x7fffffff, }; enum class MemorySemanticsMask : unsigned { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, }; enum class MemoryAccessShift : unsigned { Volatile = 0, Aligned = 1, Nontemporal = 2, Max = 0x7fffffff, }; enum class MemoryAccessMask : unsigned { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, }; enum class Scope : unsigned { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, Max = 0x7fffffff, }; enum class GroupOperation : unsigned { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, Max = 0x7fffffff, }; enum class KernelEnqueueFlags : unsigned { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, Max = 0x7fffffff, }; enum class KernelProfilingInfoShift : unsigned { CmdExecTime = 0, Max = 0x7fffffff, }; enum class KernelProfilingInfoMask : unsigned { MaskNone = 0, CmdExecTime = 0x00000001, }; enum class Capability : unsigned { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, Max = 0x7fffffff, }; enum class Op : unsigned { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, Max = 0x7fffffff, }; // Overload operator| for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.json000066400000000000000000001165761463234063200224060ustar00rootroot00000000000000{ "spv": { "meta": { "Comment": [ [ "Copyright (c) 2014-2018 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], [ "This header is automatically generated by the same tool that creates", "the Binary Section of the SPIR-V specification." ], [ "Enumeration tokens for SPIR-V, in various styles:", " C, C++, C++11, JSON, Lua, Python", "", "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL", "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL", "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL", "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL", "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']", "", "Some tokens act like mask values, which can be OR'd together,", "while others are mutually exclusive. The mask-like ones have", "\"Mask\" in their name, and a parallel enum that has the shift", "amount (1 << x) for each corresponding enumerant." ] ], "MagicNumber": 119734787, "Version": 66048, "Revision": 2, "OpCodeMask": 65535, "WordCountShift": 16 }, "enum": [ { "Name": "SourceLanguage", "Type": "Value", "Values": { "Unknown": 0, "ESSL": 1, "GLSL": 2, "OpenCL_C": 3, "OpenCL_CPP": 4, "HLSL": 5 } }, { "Name": "ExecutionModel", "Type": "Value", "Values": { "Vertex": 0, "TessellationControl": 1, "TessellationEvaluation": 2, "Geometry": 3, "Fragment": 4, "GLCompute": 5, "Kernel": 6 } }, { "Name": "AddressingModel", "Type": "Value", "Values": { "Logical": 0, "Physical32": 1, "Physical64": 2 } }, { "Name": "MemoryModel", "Type": "Value", "Values": { "Simple": 0, "GLSL450": 1, "OpenCL": 2 } }, { "Name": "ExecutionMode", "Type": "Value", "Values": { "Invocations": 0, "SpacingEqual": 1, "SpacingFractionalEven": 2, "SpacingFractionalOdd": 3, "VertexOrderCw": 4, "VertexOrderCcw": 5, "PixelCenterInteger": 6, "OriginUpperLeft": 7, "OriginLowerLeft": 8, "EarlyFragmentTests": 9, "PointMode": 10, "Xfb": 11, "DepthReplacing": 12, "DepthGreater": 14, "DepthLess": 15, "DepthUnchanged": 16, "LocalSize": 17, "LocalSizeHint": 18, "InputPoints": 19, "InputLines": 20, "InputLinesAdjacency": 21, "Triangles": 22, "InputTrianglesAdjacency": 23, "Quads": 24, "Isolines": 25, "OutputVertices": 26, "OutputPoints": 27, "OutputLineStrip": 28, "OutputTriangleStrip": 29, "VecTypeHint": 30, "ContractionOff": 31, "Initializer": 33, "Finalizer": 34, "SubgroupSize": 35, "SubgroupsPerWorkgroup": 36, "SubgroupsPerWorkgroupId": 37, "LocalSizeId": 38, "LocalSizeHintId": 39, "PostDepthCoverage": 4446, "StencilRefReplacingEXT": 5027 } }, { "Name": "StorageClass", "Type": "Value", "Values": { "UniformConstant": 0, "Input": 1, "Uniform": 2, "Output": 3, "Workgroup": 4, "CrossWorkgroup": 5, "Private": 6, "Function": 7, "Generic": 8, "PushConstant": 9, "AtomicCounter": 10, "Image": 11, "StorageBuffer": 12 } }, { "Name": "Dim", "Type": "Value", "Values": { "Dim1D": 0, "Dim2D": 1, "Dim3D": 2, "Cube": 3, "Rect": 4, "Buffer": 5, "SubpassData": 6 } }, { "Name": "SamplerAddressingMode", "Type": "Value", "Values": { "None": 0, "ClampToEdge": 1, "Clamp": 2, "Repeat": 3, "RepeatMirrored": 4 } }, { "Name": "SamplerFilterMode", "Type": "Value", "Values": { "Nearest": 0, "Linear": 1 } }, { "Name": "ImageFormat", "Type": "Value", "Values": { "Unknown": 0, "Rgba32f": 1, "Rgba16f": 2, "R32f": 3, "Rgba8": 4, "Rgba8Snorm": 5, "Rg32f": 6, "Rg16f": 7, "R11fG11fB10f": 8, "R16f": 9, "Rgba16": 10, "Rgb10A2": 11, "Rg16": 12, "Rg8": 13, "R16": 14, "R8": 15, "Rgba16Snorm": 16, "Rg16Snorm": 17, "Rg8Snorm": 18, "R16Snorm": 19, "R8Snorm": 20, "Rgba32i": 21, "Rgba16i": 22, "Rgba8i": 23, "R32i": 24, "Rg32i": 25, "Rg16i": 26, "Rg8i": 27, "R16i": 28, "R8i": 29, "Rgba32ui": 30, "Rgba16ui": 31, "Rgba8ui": 32, "R32ui": 33, "Rgb10a2ui": 34, "Rg32ui": 35, "Rg16ui": 36, "Rg8ui": 37, "R16ui": 38, "R8ui": 39 } }, { "Name": "ImageChannelOrder", "Type": "Value", "Values": { "R": 0, "A": 1, "RG": 2, "RA": 3, "RGB": 4, "RGBA": 5, "BGRA": 6, "ARGB": 7, "Intensity": 8, "Luminance": 9, "Rx": 10, "RGx": 11, "RGBx": 12, "Depth": 13, "DepthStencil": 14, "sRGB": 15, "sRGBx": 16, "sRGBA": 17, "sBGRA": 18, "ABGR": 19 } }, { "Name": "ImageChannelDataType", "Type": "Value", "Values": { "SnormInt8": 0, "SnormInt16": 1, "UnormInt8": 2, "UnormInt16": 3, "UnormShort565": 4, "UnormShort555": 5, "UnormInt101010": 6, "SignedInt8": 7, "SignedInt16": 8, "SignedInt32": 9, "UnsignedInt8": 10, "UnsignedInt16": 11, "UnsignedInt32": 12, "HalfFloat": 13, "Float": 14, "UnormInt24": 15, "UnormInt101010_2": 16 } }, { "Name": "ImageOperands", "Type": "Bit", "Values": { "Bias": 0, "Lod": 1, "Grad": 2, "ConstOffset": 3, "Offset": 4, "ConstOffsets": 5, "Sample": 6, "MinLod": 7 } }, { "Name": "FPFastMathMode", "Type": "Bit", "Values": { "NotNaN": 0, "NotInf": 1, "NSZ": 2, "AllowRecip": 3, "Fast": 4 } }, { "Name": "FPRoundingMode", "Type": "Value", "Values": { "RTE": 0, "RTZ": 1, "RTP": 2, "RTN": 3 } }, { "Name": "LinkageType", "Type": "Value", "Values": { "Export": 0, "Import": 1 } }, { "Name": "AccessQualifier", "Type": "Value", "Values": { "ReadOnly": 0, "WriteOnly": 1, "ReadWrite": 2 } }, { "Name": "FunctionParameterAttribute", "Type": "Value", "Values": { "Zext": 0, "Sext": 1, "ByVal": 2, "Sret": 3, "NoAlias": 4, "NoCapture": 5, "NoWrite": 6, "NoReadWrite": 7 } }, { "Name": "Decoration", "Type": "Value", "Values": { "RelaxedPrecision": 0, "SpecId": 1, "Block": 2, "BufferBlock": 3, "RowMajor": 4, "ColMajor": 5, "ArrayStride": 6, "MatrixStride": 7, "GLSLShared": 8, "GLSLPacked": 9, "CPacked": 10, "BuiltIn": 11, "NoPerspective": 13, "Flat": 14, "Patch": 15, "Centroid": 16, "Sample": 17, "Invariant": 18, "Restrict": 19, "Aliased": 20, "Volatile": 21, "Constant": 22, "Coherent": 23, "NonWritable": 24, "NonReadable": 25, "Uniform": 26, "SaturatedConversion": 28, "Stream": 29, "Location": 30, "Component": 31, "Index": 32, "Binding": 33, "DescriptorSet": 34, "Offset": 35, "XfbBuffer": 36, "XfbStride": 37, "FuncParamAttr": 38, "FPRoundingMode": 39, "FPFastMathMode": 40, "LinkageAttributes": 41, "NoContraction": 42, "InputAttachmentIndex": 43, "Alignment": 44, "MaxByteOffset": 45, "AlignmentId": 46, "MaxByteOffsetId": 47, "ExplicitInterpAMD": 4999, "OverrideCoverageNV": 5248, "PassthroughNV": 5250, "ViewportRelativeNV": 5252, "SecondaryViewportRelativeNV": 5256, "HlslCounterBufferGOOGLE": 5634, "HlslSemanticGOOGLE": 5635 } }, { "Name": "BuiltIn", "Type": "Value", "Values": { "Position": 0, "PointSize": 1, "ClipDistance": 3, "CullDistance": 4, "VertexId": 5, "InstanceId": 6, "PrimitiveId": 7, "InvocationId": 8, "Layer": 9, "ViewportIndex": 10, "TessLevelOuter": 11, "TessLevelInner": 12, "TessCoord": 13, "PatchVertices": 14, "FragCoord": 15, "PointCoord": 16, "FrontFacing": 17, "SampleId": 18, "SamplePosition": 19, "SampleMask": 20, "FragDepth": 22, "HelperInvocation": 23, "NumWorkgroups": 24, "WorkgroupSize": 25, "WorkgroupId": 26, "LocalInvocationId": 27, "GlobalInvocationId": 28, "LocalInvocationIndex": 29, "WorkDim": 30, "GlobalSize": 31, "EnqueuedWorkgroupSize": 32, "GlobalOffset": 33, "GlobalLinearId": 34, "SubgroupSize": 36, "SubgroupMaxSize": 37, "NumSubgroups": 38, "NumEnqueuedSubgroups": 39, "SubgroupId": 40, "SubgroupLocalInvocationId": 41, "VertexIndex": 42, "InstanceIndex": 43, "SubgroupEqMaskKHR": 4416, "SubgroupGeMaskKHR": 4417, "SubgroupGtMaskKHR": 4418, "SubgroupLeMaskKHR": 4419, "SubgroupLtMaskKHR": 4420, "BaseVertex": 4424, "BaseInstance": 4425, "DrawIndex": 4426, "DeviceIndex": 4438, "ViewIndex": 4440, "BaryCoordNoPerspAMD": 4992, "BaryCoordNoPerspCentroidAMD": 4993, "BaryCoordNoPerspSampleAMD": 4994, "BaryCoordSmoothAMD": 4995, "BaryCoordSmoothCentroidAMD": 4996, "BaryCoordSmoothSampleAMD": 4997, "BaryCoordPullModelAMD": 4998, "FragStencilRefEXT": 5014, "ViewportMaskNV": 5253, "SecondaryPositionNV": 5257, "SecondaryViewportMaskNV": 5258, "PositionPerViewNV": 5261, "ViewportMaskPerViewNV": 5262 } }, { "Name": "SelectionControl", "Type": "Bit", "Values": { "Flatten": 0, "DontFlatten": 1 } }, { "Name": "LoopControl", "Type": "Bit", "Values": { "Unroll": 0, "DontUnroll": 1, "DependencyInfinite": 2, "DependencyLength": 3 } }, { "Name": "FunctionControl", "Type": "Bit", "Values": { "Inline": 0, "DontInline": 1, "Pure": 2, "Const": 3 } }, { "Name": "MemorySemantics", "Type": "Bit", "Values": { "Acquire": 1, "Release": 2, "AcquireRelease": 3, "SequentiallyConsistent": 4, "UniformMemory": 6, "SubgroupMemory": 7, "WorkgroupMemory": 8, "CrossWorkgroupMemory": 9, "AtomicCounterMemory": 10, "ImageMemory": 11 } }, { "Name": "MemoryAccess", "Type": "Bit", "Values": { "Volatile": 0, "Aligned": 1, "Nontemporal": 2 } }, { "Name": "Scope", "Type": "Value", "Values": { "CrossDevice": 0, "Device": 1, "Workgroup": 2, "Subgroup": 3, "Invocation": 4 } }, { "Name": "GroupOperation", "Type": "Value", "Values": { "Reduce": 0, "InclusiveScan": 1, "ExclusiveScan": 2 } }, { "Name": "KernelEnqueueFlags", "Type": "Value", "Values": { "NoWait": 0, "WaitKernel": 1, "WaitWorkGroup": 2 } }, { "Name": "KernelProfilingInfo", "Type": "Bit", "Values": { "CmdExecTime": 0 } }, { "Name": "Capability", "Type": "Value", "Values": { "Matrix": 0, "Shader": 1, "Geometry": 2, "Tessellation": 3, "Addresses": 4, "Linkage": 5, "Kernel": 6, "Vector16": 7, "Float16Buffer": 8, "Float16": 9, "Float64": 10, "Int64": 11, "Int64Atomics": 12, "ImageBasic": 13, "ImageReadWrite": 14, "ImageMipmap": 15, "Pipes": 17, "Groups": 18, "DeviceEnqueue": 19, "LiteralSampler": 20, "AtomicStorage": 21, "Int16": 22, "TessellationPointSize": 23, "GeometryPointSize": 24, "ImageGatherExtended": 25, "StorageImageMultisample": 27, "UniformBufferArrayDynamicIndexing": 28, "SampledImageArrayDynamicIndexing": 29, "StorageBufferArrayDynamicIndexing": 30, "StorageImageArrayDynamicIndexing": 31, "ClipDistance": 32, "CullDistance": 33, "ImageCubeArray": 34, "SampleRateShading": 35, "ImageRect": 36, "SampledRect": 37, "GenericPointer": 38, "Int8": 39, "InputAttachment": 40, "SparseResidency": 41, "MinLod": 42, "Sampled1D": 43, "Image1D": 44, "SampledCubeArray": 45, "SampledBuffer": 46, "ImageBuffer": 47, "ImageMSArray": 48, "StorageImageExtendedFormats": 49, "ImageQuery": 50, "DerivativeControl": 51, "InterpolationFunction": 52, "TransformFeedback": 53, "GeometryStreams": 54, "StorageImageReadWithoutFormat": 55, "StorageImageWriteWithoutFormat": 56, "MultiViewport": 57, "SubgroupDispatch": 58, "NamedBarrier": 59, "PipeStorage": 60, "SubgroupBallotKHR": 4423, "DrawParameters": 4427, "SubgroupVoteKHR": 4431, "StorageBuffer16BitAccess": 4433, "StorageUniformBufferBlock16": 4433, "StorageUniform16": 4434, "UniformAndStorageBuffer16BitAccess": 4434, "StoragePushConstant16": 4435, "StorageInputOutput16": 4436, "DeviceGroup": 4437, "MultiView": 4439, "VariablePointersStorageBuffer": 4441, "VariablePointers": 4442, "AtomicStorageOps": 4445, "SampleMaskPostDepthCoverage": 4447, "ImageGatherBiasLodAMD": 5009, "FragmentMaskAMD": 5010, "StencilExportEXT": 5013, "ImageReadWriteLodAMD": 5015, "SampleMaskOverrideCoverageNV": 5249, "GeometryShaderPassthroughNV": 5251, "ShaderViewportIndexLayerEXT": 5254, "ShaderViewportIndexLayerNV": 5254, "ShaderViewportMaskNV": 5255, "ShaderStereoViewNV": 5259, "PerViewAttributesNV": 5260, "SubgroupShuffleINTEL": 5568, "SubgroupBufferBlockIOINTEL": 5569, "SubgroupImageBlockIOINTEL": 5570 } }, { "Name": "Op", "Type": "Value", "Values": { "OpNop": 0, "OpUndef": 1, "OpSourceContinued": 2, "OpSource": 3, "OpSourceExtension": 4, "OpName": 5, "OpMemberName": 6, "OpString": 7, "OpLine": 8, "OpExtension": 10, "OpExtInstImport": 11, "OpExtInst": 12, "OpMemoryModel": 14, "OpEntryPoint": 15, "OpExecutionMode": 16, "OpCapability": 17, "OpTypeVoid": 19, "OpTypeBool": 20, "OpTypeInt": 21, "OpTypeFloat": 22, "OpTypeVector": 23, "OpTypeMatrix": 24, "OpTypeImage": 25, "OpTypeSampler": 26, "OpTypeSampledImage": 27, "OpTypeArray": 28, "OpTypeRuntimeArray": 29, "OpTypeStruct": 30, "OpTypeOpaque": 31, "OpTypePointer": 32, "OpTypeFunction": 33, "OpTypeEvent": 34, "OpTypeDeviceEvent": 35, "OpTypeReserveId": 36, "OpTypeQueue": 37, "OpTypePipe": 38, "OpTypeForwardPointer": 39, "OpConstantTrue": 41, "OpConstantFalse": 42, "OpConstant": 43, "OpConstantComposite": 44, "OpConstantSampler": 45, "OpConstantNull": 46, "OpSpecConstantTrue": 48, "OpSpecConstantFalse": 49, "OpSpecConstant": 50, "OpSpecConstantComposite": 51, "OpSpecConstantOp": 52, "OpFunction": 54, "OpFunctionParameter": 55, "OpFunctionEnd": 56, "OpFunctionCall": 57, "OpVariable": 59, "OpImageTexelPointer": 60, "OpLoad": 61, "OpStore": 62, "OpCopyMemory": 63, "OpCopyMemorySized": 64, "OpAccessChain": 65, "OpInBoundsAccessChain": 66, "OpPtrAccessChain": 67, "OpArrayLength": 68, "OpGenericPtrMemSemantics": 69, "OpInBoundsPtrAccessChain": 70, "OpDecorate": 71, "OpMemberDecorate": 72, "OpDecorationGroup": 73, "OpGroupDecorate": 74, "OpGroupMemberDecorate": 75, "OpVectorExtractDynamic": 77, "OpVectorInsertDynamic": 78, "OpVectorShuffle": 79, "OpCompositeConstruct": 80, "OpCompositeExtract": 81, "OpCompositeInsert": 82, "OpCopyObject": 83, "OpTranspose": 84, "OpSampledImage": 86, "OpImageSampleImplicitLod": 87, "OpImageSampleExplicitLod": 88, "OpImageSampleDrefImplicitLod": 89, "OpImageSampleDrefExplicitLod": 90, "OpImageSampleProjImplicitLod": 91, "OpImageSampleProjExplicitLod": 92, "OpImageSampleProjDrefImplicitLod": 93, "OpImageSampleProjDrefExplicitLod": 94, "OpImageFetch": 95, "OpImageGather": 96, "OpImageDrefGather": 97, "OpImageRead": 98, "OpImageWrite": 99, "OpImage": 100, "OpImageQueryFormat": 101, "OpImageQueryOrder": 102, "OpImageQuerySizeLod": 103, "OpImageQuerySize": 104, "OpImageQueryLod": 105, "OpImageQueryLevels": 106, "OpImageQuerySamples": 107, "OpConvertFToU": 109, "OpConvertFToS": 110, "OpConvertSToF": 111, "OpConvertUToF": 112, "OpUConvert": 113, "OpSConvert": 114, "OpFConvert": 115, "OpQuantizeToF16": 116, "OpConvertPtrToU": 117, "OpSatConvertSToU": 118, "OpSatConvertUToS": 119, "OpConvertUToPtr": 120, "OpPtrCastToGeneric": 121, "OpGenericCastToPtr": 122, "OpGenericCastToPtrExplicit": 123, "OpBitcast": 124, "OpSNegate": 126, "OpFNegate": 127, "OpIAdd": 128, "OpFAdd": 129, "OpISub": 130, "OpFSub": 131, "OpIMul": 132, "OpFMul": 133, "OpUDiv": 134, "OpSDiv": 135, "OpFDiv": 136, "OpUMod": 137, "OpSRem": 138, "OpSMod": 139, "OpFRem": 140, "OpFMod": 141, "OpVectorTimesScalar": 142, "OpMatrixTimesScalar": 143, "OpVectorTimesMatrix": 144, "OpMatrixTimesVector": 145, "OpMatrixTimesMatrix": 146, "OpOuterProduct": 147, "OpDot": 148, "OpIAddCarry": 149, "OpISubBorrow": 150, "OpUMulExtended": 151, "OpSMulExtended": 152, "OpAny": 154, "OpAll": 155, "OpIsNan": 156, "OpIsInf": 157, "OpIsFinite": 158, "OpIsNormal": 159, "OpSignBitSet": 160, "OpLessOrGreater": 161, "OpOrdered": 162, "OpUnordered": 163, "OpLogicalEqual": 164, "OpLogicalNotEqual": 165, "OpLogicalOr": 166, "OpLogicalAnd": 167, "OpLogicalNot": 168, "OpSelect": 169, "OpIEqual": 170, "OpINotEqual": 171, "OpUGreaterThan": 172, "OpSGreaterThan": 173, "OpUGreaterThanEqual": 174, "OpSGreaterThanEqual": 175, "OpULessThan": 176, "OpSLessThan": 177, "OpULessThanEqual": 178, "OpSLessThanEqual": 179, "OpFOrdEqual": 180, "OpFUnordEqual": 181, "OpFOrdNotEqual": 182, "OpFUnordNotEqual": 183, "OpFOrdLessThan": 184, "OpFUnordLessThan": 185, "OpFOrdGreaterThan": 186, "OpFUnordGreaterThan": 187, "OpFOrdLessThanEqual": 188, "OpFUnordLessThanEqual": 189, "OpFOrdGreaterThanEqual": 190, "OpFUnordGreaterThanEqual": 191, "OpShiftRightLogical": 194, "OpShiftRightArithmetic": 195, "OpShiftLeftLogical": 196, "OpBitwiseOr": 197, "OpBitwiseXor": 198, "OpBitwiseAnd": 199, "OpNot": 200, "OpBitFieldInsert": 201, "OpBitFieldSExtract": 202, "OpBitFieldUExtract": 203, "OpBitReverse": 204, "OpBitCount": 205, "OpDPdx": 207, "OpDPdy": 208, "OpFwidth": 209, "OpDPdxFine": 210, "OpDPdyFine": 211, "OpFwidthFine": 212, "OpDPdxCoarse": 213, "OpDPdyCoarse": 214, "OpFwidthCoarse": 215, "OpEmitVertex": 218, "OpEndPrimitive": 219, "OpEmitStreamVertex": 220, "OpEndStreamPrimitive": 221, "OpControlBarrier": 224, "OpMemoryBarrier": 225, "OpAtomicLoad": 227, "OpAtomicStore": 228, "OpAtomicExchange": 229, "OpAtomicCompareExchange": 230, "OpAtomicCompareExchangeWeak": 231, "OpAtomicIIncrement": 232, "OpAtomicIDecrement": 233, "OpAtomicIAdd": 234, "OpAtomicISub": 235, "OpAtomicSMin": 236, "OpAtomicUMin": 237, "OpAtomicSMax": 238, "OpAtomicUMax": 239, "OpAtomicAnd": 240, "OpAtomicOr": 241, "OpAtomicXor": 242, "OpPhi": 245, "OpLoopMerge": 246, "OpSelectionMerge": 247, "OpLabel": 248, "OpBranch": 249, "OpBranchConditional": 250, "OpSwitch": 251, "OpKill": 252, "OpReturn": 253, "OpReturnValue": 254, "OpUnreachable": 255, "OpLifetimeStart": 256, "OpLifetimeStop": 257, "OpGroupAsyncCopy": 259, "OpGroupWaitEvents": 260, "OpGroupAll": 261, "OpGroupAny": 262, "OpGroupBroadcast": 263, "OpGroupIAdd": 264, "OpGroupFAdd": 265, "OpGroupFMin": 266, "OpGroupUMin": 267, "OpGroupSMin": 268, "OpGroupFMax": 269, "OpGroupUMax": 270, "OpGroupSMax": 271, "OpReadPipe": 274, "OpWritePipe": 275, "OpReservedReadPipe": 276, "OpReservedWritePipe": 277, "OpReserveReadPipePackets": 278, "OpReserveWritePipePackets": 279, "OpCommitReadPipe": 280, "OpCommitWritePipe": 281, "OpIsValidReserveId": 282, "OpGetNumPipePackets": 283, "OpGetMaxPipePackets": 284, "OpGroupReserveReadPipePackets": 285, "OpGroupReserveWritePipePackets": 286, "OpGroupCommitReadPipe": 287, "OpGroupCommitWritePipe": 288, "OpEnqueueMarker": 291, "OpEnqueueKernel": 292, "OpGetKernelNDrangeSubGroupCount": 293, "OpGetKernelNDrangeMaxSubGroupSize": 294, "OpGetKernelWorkGroupSize": 295, "OpGetKernelPreferredWorkGroupSizeMultiple": 296, "OpRetainEvent": 297, "OpReleaseEvent": 298, "OpCreateUserEvent": 299, "OpIsValidEvent": 300, "OpSetUserEventStatus": 301, "OpCaptureEventProfilingInfo": 302, "OpGetDefaultQueue": 303, "OpBuildNDRange": 304, "OpImageSparseSampleImplicitLod": 305, "OpImageSparseSampleExplicitLod": 306, "OpImageSparseSampleDrefImplicitLod": 307, "OpImageSparseSampleDrefExplicitLod": 308, "OpImageSparseSampleProjImplicitLod": 309, "OpImageSparseSampleProjExplicitLod": 310, "OpImageSparseSampleProjDrefImplicitLod": 311, "OpImageSparseSampleProjDrefExplicitLod": 312, "OpImageSparseFetch": 313, "OpImageSparseGather": 314, "OpImageSparseDrefGather": 315, "OpImageSparseTexelsResident": 316, "OpNoLine": 317, "OpAtomicFlagTestAndSet": 318, "OpAtomicFlagClear": 319, "OpImageSparseRead": 320, "OpSizeOf": 321, "OpTypePipeStorage": 322, "OpConstantPipeStorage": 323, "OpCreatePipeFromPipeStorage": 324, "OpGetKernelLocalSizeForSubgroupCount": 325, "OpGetKernelMaxNumSubgroups": 326, "OpTypeNamedBarrier": 327, "OpNamedBarrierInitialize": 328, "OpMemoryNamedBarrier": 329, "OpModuleProcessed": 330, "OpExecutionModeId": 331, "OpDecorateId": 332, "OpSubgroupBallotKHR": 4421, "OpSubgroupFirstInvocationKHR": 4422, "OpSubgroupAllKHR": 4428, "OpSubgroupAnyKHR": 4429, "OpSubgroupAllEqualKHR": 4430, "OpSubgroupReadInvocationKHR": 4432, "OpGroupIAddNonUniformAMD": 5000, "OpGroupFAddNonUniformAMD": 5001, "OpGroupFMinNonUniformAMD": 5002, "OpGroupUMinNonUniformAMD": 5003, "OpGroupSMinNonUniformAMD": 5004, "OpGroupFMaxNonUniformAMD": 5005, "OpGroupUMaxNonUniformAMD": 5006, "OpGroupSMaxNonUniformAMD": 5007, "OpFragmentMaskFetchAMD": 5011, "OpFragmentFetchAMD": 5012, "OpSubgroupShuffleINTEL": 5571, "OpSubgroupShuffleDownINTEL": 5572, "OpSubgroupShuffleUpINTEL": 5573, "OpSubgroupShuffleXorINTEL": 5574, "OpSubgroupBlockReadINTEL": 5575, "OpSubgroupBlockWriteINTEL": 5576, "OpSubgroupImageBlockReadINTEL": 5577, "OpSubgroupImageBlockWriteINTEL": 5578, "OpDecorateStringGOOGLE": 5632, "OpMemberDecorateStringGOOGLE": 5633 } } ] } } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.lua000066400000000000000000000644071463234063200222110ustar00rootroot00000000000000-- Copyright (c) 2014-2018 The Khronos Group Inc. -- -- Permission is hereby granted, free of charge, to any person obtaining a copy -- of this software and/or associated documentation files (the "Materials"), -- to deal in the Materials without restriction, including without limitation -- the rights to use, copy, modify, merge, publish, distribute, sublicense, -- and/or sell copies of the Materials, and to permit persons to whom the -- Materials are furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Materials. -- -- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -- -- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -- IN THE MATERIALS. -- This header is automatically generated by the same tool that creates -- the Binary Section of the SPIR-V specification. -- Enumeration tokens for SPIR-V, in various styles: -- C, C++, C++11, JSON, Lua, Python -- -- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -- -- Some tokens act like mask values, which can be OR'd together, -- while others are mutually exclusive. The mask-like ones have -- "Mask" in their name, and a parallel enum that has the shift -- amount (1 << x) for each corresponding enumerant. spv = { MagicNumber = 0x07230203, Version = 0x00010200, Revision = 2, OpCodeMask = 0xffff, WordCountShift = 16, SourceLanguage = { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, }, ExecutionModel = { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, }, AddressingModel = { Logical = 0, Physical32 = 1, Physical64 = 2, }, MemoryModel = { Simple = 0, GLSL450 = 1, OpenCL = 2, }, ExecutionMode = { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, PostDepthCoverage = 4446, StencilRefReplacingEXT = 5027, }, StorageClass = { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, }, Dim = { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, }, SamplerAddressingMode = { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, }, SamplerFilterMode = { Nearest = 0, Linear = 1, }, ImageFormat = { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, }, ImageChannelOrder = { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, }, ImageChannelDataType = { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, }, ImageOperandsShift = { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, }, ImageOperandsMask = { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, }, FPFastMathModeShift = { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, }, FPFastMathModeMask = { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, }, FPRoundingMode = { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, }, LinkageType = { Export = 0, Import = 1, }, AccessQualifier = { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, }, FunctionParameterAttribute = { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, }, Decoration = { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, ExplicitInterpAMD = 4999, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, }, BuiltIn = { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, SubgroupEqMaskKHR = 4416, SubgroupGeMaskKHR = 4417, SubgroupGtMaskKHR = 4418, SubgroupLeMaskKHR = 4419, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, DeviceIndex = 4438, ViewIndex = 4440, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, }, SelectionControlShift = { Flatten = 0, DontFlatten = 1, }, SelectionControlMask = { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }, LoopControlShift = { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, }, LoopControlMask = { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, }, FunctionControlShift = { Inline = 0, DontInline = 1, Pure = 2, Const = 3, }, FunctionControlMask = { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, }, MemorySemanticsShift = { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, }, MemorySemanticsMask = { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, }, MemoryAccessShift = { Volatile = 0, Aligned = 1, Nontemporal = 2, }, MemoryAccessMask = { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, }, Scope = { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, }, GroupOperation = { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, }, KernelEnqueueFlags = { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, }, KernelProfilingInfoShift = { CmdExecTime = 0, }, KernelProfilingInfoMask = { MaskNone = 0, CmdExecTime = 0x00000001, }, Capability = { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, SubgroupBallotKHR = 4423, DrawParameters = 4427, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, }, Op = { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpDecorateStringGOOGLE = 5632, OpMemberDecorateStringGOOGLE = 5633, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/1.2/spirv.py000066400000000000000000000676151463234063200220640ustar00rootroot00000000000000# Copyright (c) 2014-2018 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and/or associated documentation files (the "Materials"), # to deal in the Materials without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Materials, and to permit persons to whom the # Materials are furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS # STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND # HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS # IN THE MATERIALS. # This header is automatically generated by the same tool that creates # the Binary Section of the SPIR-V specification. # Enumeration tokens for SPIR-V, in various styles: # C, C++, C++11, JSON, Lua, Python # # - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL # - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL # - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL # - Lua will use tables, e.g.: spv.SourceLanguage.GLSL # - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] # # Some tokens act like mask values, which can be OR'd together, # while others are mutually exclusive. The mask-like ones have # "Mask" in their name, and a parallel enum that has the shift # amount (1 << x) for each corresponding enumerant. spv = { 'MagicNumber' : 0x07230203, 'Version' : 0x00010200, 'Revision' : 2, 'OpCodeMask' : 0xffff, 'WordCountShift' : 16, 'SourceLanguage' : { 'Unknown' : 0, 'ESSL' : 1, 'GLSL' : 2, 'OpenCL_C' : 3, 'OpenCL_CPP' : 4, 'HLSL' : 5, }, 'ExecutionModel' : { 'Vertex' : 0, 'TessellationControl' : 1, 'TessellationEvaluation' : 2, 'Geometry' : 3, 'Fragment' : 4, 'GLCompute' : 5, 'Kernel' : 6, }, 'AddressingModel' : { 'Logical' : 0, 'Physical32' : 1, 'Physical64' : 2, }, 'MemoryModel' : { 'Simple' : 0, 'GLSL450' : 1, 'OpenCL' : 2, }, 'ExecutionMode' : { 'Invocations' : 0, 'SpacingEqual' : 1, 'SpacingFractionalEven' : 2, 'SpacingFractionalOdd' : 3, 'VertexOrderCw' : 4, 'VertexOrderCcw' : 5, 'PixelCenterInteger' : 6, 'OriginUpperLeft' : 7, 'OriginLowerLeft' : 8, 'EarlyFragmentTests' : 9, 'PointMode' : 10, 'Xfb' : 11, 'DepthReplacing' : 12, 'DepthGreater' : 14, 'DepthLess' : 15, 'DepthUnchanged' : 16, 'LocalSize' : 17, 'LocalSizeHint' : 18, 'InputPoints' : 19, 'InputLines' : 20, 'InputLinesAdjacency' : 21, 'Triangles' : 22, 'InputTrianglesAdjacency' : 23, 'Quads' : 24, 'Isolines' : 25, 'OutputVertices' : 26, 'OutputPoints' : 27, 'OutputLineStrip' : 28, 'OutputTriangleStrip' : 29, 'VecTypeHint' : 30, 'ContractionOff' : 31, 'Initializer' : 33, 'Finalizer' : 34, 'SubgroupSize' : 35, 'SubgroupsPerWorkgroup' : 36, 'SubgroupsPerWorkgroupId' : 37, 'LocalSizeId' : 38, 'LocalSizeHintId' : 39, 'PostDepthCoverage' : 4446, 'StencilRefReplacingEXT' : 5027, }, 'StorageClass' : { 'UniformConstant' : 0, 'Input' : 1, 'Uniform' : 2, 'Output' : 3, 'Workgroup' : 4, 'CrossWorkgroup' : 5, 'Private' : 6, 'Function' : 7, 'Generic' : 8, 'PushConstant' : 9, 'AtomicCounter' : 10, 'Image' : 11, 'StorageBuffer' : 12, }, 'Dim' : { 'Dim1D' : 0, 'Dim2D' : 1, 'Dim3D' : 2, 'Cube' : 3, 'Rect' : 4, 'Buffer' : 5, 'SubpassData' : 6, }, 'SamplerAddressingMode' : { 'None' : 0, 'ClampToEdge' : 1, 'Clamp' : 2, 'Repeat' : 3, 'RepeatMirrored' : 4, }, 'SamplerFilterMode' : { 'Nearest' : 0, 'Linear' : 1, }, 'ImageFormat' : { 'Unknown' : 0, 'Rgba32f' : 1, 'Rgba16f' : 2, 'R32f' : 3, 'Rgba8' : 4, 'Rgba8Snorm' : 5, 'Rg32f' : 6, 'Rg16f' : 7, 'R11fG11fB10f' : 8, 'R16f' : 9, 'Rgba16' : 10, 'Rgb10A2' : 11, 'Rg16' : 12, 'Rg8' : 13, 'R16' : 14, 'R8' : 15, 'Rgba16Snorm' : 16, 'Rg16Snorm' : 17, 'Rg8Snorm' : 18, 'R16Snorm' : 19, 'R8Snorm' : 20, 'Rgba32i' : 21, 'Rgba16i' : 22, 'Rgba8i' : 23, 'R32i' : 24, 'Rg32i' : 25, 'Rg16i' : 26, 'Rg8i' : 27, 'R16i' : 28, 'R8i' : 29, 'Rgba32ui' : 30, 'Rgba16ui' : 31, 'Rgba8ui' : 32, 'R32ui' : 33, 'Rgb10a2ui' : 34, 'Rg32ui' : 35, 'Rg16ui' : 36, 'Rg8ui' : 37, 'R16ui' : 38, 'R8ui' : 39, }, 'ImageChannelOrder' : { 'R' : 0, 'A' : 1, 'RG' : 2, 'RA' : 3, 'RGB' : 4, 'RGBA' : 5, 'BGRA' : 6, 'ARGB' : 7, 'Intensity' : 8, 'Luminance' : 9, 'Rx' : 10, 'RGx' : 11, 'RGBx' : 12, 'Depth' : 13, 'DepthStencil' : 14, 'sRGB' : 15, 'sRGBx' : 16, 'sRGBA' : 17, 'sBGRA' : 18, 'ABGR' : 19, }, 'ImageChannelDataType' : { 'SnormInt8' : 0, 'SnormInt16' : 1, 'UnormInt8' : 2, 'UnormInt16' : 3, 'UnormShort565' : 4, 'UnormShort555' : 5, 'UnormInt101010' : 6, 'SignedInt8' : 7, 'SignedInt16' : 8, 'SignedInt32' : 9, 'UnsignedInt8' : 10, 'UnsignedInt16' : 11, 'UnsignedInt32' : 12, 'HalfFloat' : 13, 'Float' : 14, 'UnormInt24' : 15, 'UnormInt101010_2' : 16, }, 'ImageOperandsShift' : { 'Bias' : 0, 'Lod' : 1, 'Grad' : 2, 'ConstOffset' : 3, 'Offset' : 4, 'ConstOffsets' : 5, 'Sample' : 6, 'MinLod' : 7, }, 'ImageOperandsMask' : { 'MaskNone' : 0, 'Bias' : 0x00000001, 'Lod' : 0x00000002, 'Grad' : 0x00000004, 'ConstOffset' : 0x00000008, 'Offset' : 0x00000010, 'ConstOffsets' : 0x00000020, 'Sample' : 0x00000040, 'MinLod' : 0x00000080, }, 'FPFastMathModeShift' : { 'NotNaN' : 0, 'NotInf' : 1, 'NSZ' : 2, 'AllowRecip' : 3, 'Fast' : 4, }, 'FPFastMathModeMask' : { 'MaskNone' : 0, 'NotNaN' : 0x00000001, 'NotInf' : 0x00000002, 'NSZ' : 0x00000004, 'AllowRecip' : 0x00000008, 'Fast' : 0x00000010, }, 'FPRoundingMode' : { 'RTE' : 0, 'RTZ' : 1, 'RTP' : 2, 'RTN' : 3, }, 'LinkageType' : { 'Export' : 0, 'Import' : 1, }, 'AccessQualifier' : { 'ReadOnly' : 0, 'WriteOnly' : 1, 'ReadWrite' : 2, }, 'FunctionParameterAttribute' : { 'Zext' : 0, 'Sext' : 1, 'ByVal' : 2, 'Sret' : 3, 'NoAlias' : 4, 'NoCapture' : 5, 'NoWrite' : 6, 'NoReadWrite' : 7, }, 'Decoration' : { 'RelaxedPrecision' : 0, 'SpecId' : 1, 'Block' : 2, 'BufferBlock' : 3, 'RowMajor' : 4, 'ColMajor' : 5, 'ArrayStride' : 6, 'MatrixStride' : 7, 'GLSLShared' : 8, 'GLSLPacked' : 9, 'CPacked' : 10, 'BuiltIn' : 11, 'NoPerspective' : 13, 'Flat' : 14, 'Patch' : 15, 'Centroid' : 16, 'Sample' : 17, 'Invariant' : 18, 'Restrict' : 19, 'Aliased' : 20, 'Volatile' : 21, 'Constant' : 22, 'Coherent' : 23, 'NonWritable' : 24, 'NonReadable' : 25, 'Uniform' : 26, 'SaturatedConversion' : 28, 'Stream' : 29, 'Location' : 30, 'Component' : 31, 'Index' : 32, 'Binding' : 33, 'DescriptorSet' : 34, 'Offset' : 35, 'XfbBuffer' : 36, 'XfbStride' : 37, 'FuncParamAttr' : 38, 'FPRoundingMode' : 39, 'FPFastMathMode' : 40, 'LinkageAttributes' : 41, 'NoContraction' : 42, 'InputAttachmentIndex' : 43, 'Alignment' : 44, 'MaxByteOffset' : 45, 'AlignmentId' : 46, 'MaxByteOffsetId' : 47, 'ExplicitInterpAMD' : 4999, 'OverrideCoverageNV' : 5248, 'PassthroughNV' : 5250, 'ViewportRelativeNV' : 5252, 'SecondaryViewportRelativeNV' : 5256, 'HlslCounterBufferGOOGLE' : 5634, 'HlslSemanticGOOGLE' : 5635, }, 'BuiltIn' : { 'Position' : 0, 'PointSize' : 1, 'ClipDistance' : 3, 'CullDistance' : 4, 'VertexId' : 5, 'InstanceId' : 6, 'PrimitiveId' : 7, 'InvocationId' : 8, 'Layer' : 9, 'ViewportIndex' : 10, 'TessLevelOuter' : 11, 'TessLevelInner' : 12, 'TessCoord' : 13, 'PatchVertices' : 14, 'FragCoord' : 15, 'PointCoord' : 16, 'FrontFacing' : 17, 'SampleId' : 18, 'SamplePosition' : 19, 'SampleMask' : 20, 'FragDepth' : 22, 'HelperInvocation' : 23, 'NumWorkgroups' : 24, 'WorkgroupSize' : 25, 'WorkgroupId' : 26, 'LocalInvocationId' : 27, 'GlobalInvocationId' : 28, 'LocalInvocationIndex' : 29, 'WorkDim' : 30, 'GlobalSize' : 31, 'EnqueuedWorkgroupSize' : 32, 'GlobalOffset' : 33, 'GlobalLinearId' : 34, 'SubgroupSize' : 36, 'SubgroupMaxSize' : 37, 'NumSubgroups' : 38, 'NumEnqueuedSubgroups' : 39, 'SubgroupId' : 40, 'SubgroupLocalInvocationId' : 41, 'VertexIndex' : 42, 'InstanceIndex' : 43, 'SubgroupEqMaskKHR' : 4416, 'SubgroupGeMaskKHR' : 4417, 'SubgroupGtMaskKHR' : 4418, 'SubgroupLeMaskKHR' : 4419, 'SubgroupLtMaskKHR' : 4420, 'BaseVertex' : 4424, 'BaseInstance' : 4425, 'DrawIndex' : 4426, 'DeviceIndex' : 4438, 'ViewIndex' : 4440, 'BaryCoordNoPerspAMD' : 4992, 'BaryCoordNoPerspCentroidAMD' : 4993, 'BaryCoordNoPerspSampleAMD' : 4994, 'BaryCoordSmoothAMD' : 4995, 'BaryCoordSmoothCentroidAMD' : 4996, 'BaryCoordSmoothSampleAMD' : 4997, 'BaryCoordPullModelAMD' : 4998, 'FragStencilRefEXT' : 5014, 'ViewportMaskNV' : 5253, 'SecondaryPositionNV' : 5257, 'SecondaryViewportMaskNV' : 5258, 'PositionPerViewNV' : 5261, 'ViewportMaskPerViewNV' : 5262, }, 'SelectionControlShift' : { 'Flatten' : 0, 'DontFlatten' : 1, }, 'SelectionControlMask' : { 'MaskNone' : 0, 'Flatten' : 0x00000001, 'DontFlatten' : 0x00000002, }, 'LoopControlShift' : { 'Unroll' : 0, 'DontUnroll' : 1, 'DependencyInfinite' : 2, 'DependencyLength' : 3, }, 'LoopControlMask' : { 'MaskNone' : 0, 'Unroll' : 0x00000001, 'DontUnroll' : 0x00000002, 'DependencyInfinite' : 0x00000004, 'DependencyLength' : 0x00000008, }, 'FunctionControlShift' : { 'Inline' : 0, 'DontInline' : 1, 'Pure' : 2, 'Const' : 3, }, 'FunctionControlMask' : { 'MaskNone' : 0, 'Inline' : 0x00000001, 'DontInline' : 0x00000002, 'Pure' : 0x00000004, 'Const' : 0x00000008, }, 'MemorySemanticsShift' : { 'Acquire' : 1, 'Release' : 2, 'AcquireRelease' : 3, 'SequentiallyConsistent' : 4, 'UniformMemory' : 6, 'SubgroupMemory' : 7, 'WorkgroupMemory' : 8, 'CrossWorkgroupMemory' : 9, 'AtomicCounterMemory' : 10, 'ImageMemory' : 11, }, 'MemorySemanticsMask' : { 'MaskNone' : 0, 'Acquire' : 0x00000002, 'Release' : 0x00000004, 'AcquireRelease' : 0x00000008, 'SequentiallyConsistent' : 0x00000010, 'UniformMemory' : 0x00000040, 'SubgroupMemory' : 0x00000080, 'WorkgroupMemory' : 0x00000100, 'CrossWorkgroupMemory' : 0x00000200, 'AtomicCounterMemory' : 0x00000400, 'ImageMemory' : 0x00000800, }, 'MemoryAccessShift' : { 'Volatile' : 0, 'Aligned' : 1, 'Nontemporal' : 2, }, 'MemoryAccessMask' : { 'MaskNone' : 0, 'Volatile' : 0x00000001, 'Aligned' : 0x00000002, 'Nontemporal' : 0x00000004, }, 'Scope' : { 'CrossDevice' : 0, 'Device' : 1, 'Workgroup' : 2, 'Subgroup' : 3, 'Invocation' : 4, }, 'GroupOperation' : { 'Reduce' : 0, 'InclusiveScan' : 1, 'ExclusiveScan' : 2, }, 'KernelEnqueueFlags' : { 'NoWait' : 0, 'WaitKernel' : 1, 'WaitWorkGroup' : 2, }, 'KernelProfilingInfoShift' : { 'CmdExecTime' : 0, }, 'KernelProfilingInfoMask' : { 'MaskNone' : 0, 'CmdExecTime' : 0x00000001, }, 'Capability' : { 'Matrix' : 0, 'Shader' : 1, 'Geometry' : 2, 'Tessellation' : 3, 'Addresses' : 4, 'Linkage' : 5, 'Kernel' : 6, 'Vector16' : 7, 'Float16Buffer' : 8, 'Float16' : 9, 'Float64' : 10, 'Int64' : 11, 'Int64Atomics' : 12, 'ImageBasic' : 13, 'ImageReadWrite' : 14, 'ImageMipmap' : 15, 'Pipes' : 17, 'Groups' : 18, 'DeviceEnqueue' : 19, 'LiteralSampler' : 20, 'AtomicStorage' : 21, 'Int16' : 22, 'TessellationPointSize' : 23, 'GeometryPointSize' : 24, 'ImageGatherExtended' : 25, 'StorageImageMultisample' : 27, 'UniformBufferArrayDynamicIndexing' : 28, 'SampledImageArrayDynamicIndexing' : 29, 'StorageBufferArrayDynamicIndexing' : 30, 'StorageImageArrayDynamicIndexing' : 31, 'ClipDistance' : 32, 'CullDistance' : 33, 'ImageCubeArray' : 34, 'SampleRateShading' : 35, 'ImageRect' : 36, 'SampledRect' : 37, 'GenericPointer' : 38, 'Int8' : 39, 'InputAttachment' : 40, 'SparseResidency' : 41, 'MinLod' : 42, 'Sampled1D' : 43, 'Image1D' : 44, 'SampledCubeArray' : 45, 'SampledBuffer' : 46, 'ImageBuffer' : 47, 'ImageMSArray' : 48, 'StorageImageExtendedFormats' : 49, 'ImageQuery' : 50, 'DerivativeControl' : 51, 'InterpolationFunction' : 52, 'TransformFeedback' : 53, 'GeometryStreams' : 54, 'StorageImageReadWithoutFormat' : 55, 'StorageImageWriteWithoutFormat' : 56, 'MultiViewport' : 57, 'SubgroupDispatch' : 58, 'NamedBarrier' : 59, 'PipeStorage' : 60, 'SubgroupBallotKHR' : 4423, 'DrawParameters' : 4427, 'SubgroupVoteKHR' : 4431, 'StorageBuffer16BitAccess' : 4433, 'StorageUniformBufferBlock16' : 4433, 'StorageUniform16' : 4434, 'UniformAndStorageBuffer16BitAccess' : 4434, 'StoragePushConstant16' : 4435, 'StorageInputOutput16' : 4436, 'DeviceGroup' : 4437, 'MultiView' : 4439, 'VariablePointersStorageBuffer' : 4441, 'VariablePointers' : 4442, 'AtomicStorageOps' : 4445, 'SampleMaskPostDepthCoverage' : 4447, 'ImageGatherBiasLodAMD' : 5009, 'FragmentMaskAMD' : 5010, 'StencilExportEXT' : 5013, 'ImageReadWriteLodAMD' : 5015, 'SampleMaskOverrideCoverageNV' : 5249, 'GeometryShaderPassthroughNV' : 5251, 'ShaderViewportIndexLayerEXT' : 5254, 'ShaderViewportIndexLayerNV' : 5254, 'ShaderViewportMaskNV' : 5255, 'ShaderStereoViewNV' : 5259, 'PerViewAttributesNV' : 5260, 'SubgroupShuffleINTEL' : 5568, 'SubgroupBufferBlockIOINTEL' : 5569, 'SubgroupImageBlockIOINTEL' : 5570, }, 'Op' : { 'OpNop' : 0, 'OpUndef' : 1, 'OpSourceContinued' : 2, 'OpSource' : 3, 'OpSourceExtension' : 4, 'OpName' : 5, 'OpMemberName' : 6, 'OpString' : 7, 'OpLine' : 8, 'OpExtension' : 10, 'OpExtInstImport' : 11, 'OpExtInst' : 12, 'OpMemoryModel' : 14, 'OpEntryPoint' : 15, 'OpExecutionMode' : 16, 'OpCapability' : 17, 'OpTypeVoid' : 19, 'OpTypeBool' : 20, 'OpTypeInt' : 21, 'OpTypeFloat' : 22, 'OpTypeVector' : 23, 'OpTypeMatrix' : 24, 'OpTypeImage' : 25, 'OpTypeSampler' : 26, 'OpTypeSampledImage' : 27, 'OpTypeArray' : 28, 'OpTypeRuntimeArray' : 29, 'OpTypeStruct' : 30, 'OpTypeOpaque' : 31, 'OpTypePointer' : 32, 'OpTypeFunction' : 33, 'OpTypeEvent' : 34, 'OpTypeDeviceEvent' : 35, 'OpTypeReserveId' : 36, 'OpTypeQueue' : 37, 'OpTypePipe' : 38, 'OpTypeForwardPointer' : 39, 'OpConstantTrue' : 41, 'OpConstantFalse' : 42, 'OpConstant' : 43, 'OpConstantComposite' : 44, 'OpConstantSampler' : 45, 'OpConstantNull' : 46, 'OpSpecConstantTrue' : 48, 'OpSpecConstantFalse' : 49, 'OpSpecConstant' : 50, 'OpSpecConstantComposite' : 51, 'OpSpecConstantOp' : 52, 'OpFunction' : 54, 'OpFunctionParameter' : 55, 'OpFunctionEnd' : 56, 'OpFunctionCall' : 57, 'OpVariable' : 59, 'OpImageTexelPointer' : 60, 'OpLoad' : 61, 'OpStore' : 62, 'OpCopyMemory' : 63, 'OpCopyMemorySized' : 64, 'OpAccessChain' : 65, 'OpInBoundsAccessChain' : 66, 'OpPtrAccessChain' : 67, 'OpArrayLength' : 68, 'OpGenericPtrMemSemantics' : 69, 'OpInBoundsPtrAccessChain' : 70, 'OpDecorate' : 71, 'OpMemberDecorate' : 72, 'OpDecorationGroup' : 73, 'OpGroupDecorate' : 74, 'OpGroupMemberDecorate' : 75, 'OpVectorExtractDynamic' : 77, 'OpVectorInsertDynamic' : 78, 'OpVectorShuffle' : 79, 'OpCompositeConstruct' : 80, 'OpCompositeExtract' : 81, 'OpCompositeInsert' : 82, 'OpCopyObject' : 83, 'OpTranspose' : 84, 'OpSampledImage' : 86, 'OpImageSampleImplicitLod' : 87, 'OpImageSampleExplicitLod' : 88, 'OpImageSampleDrefImplicitLod' : 89, 'OpImageSampleDrefExplicitLod' : 90, 'OpImageSampleProjImplicitLod' : 91, 'OpImageSampleProjExplicitLod' : 92, 'OpImageSampleProjDrefImplicitLod' : 93, 'OpImageSampleProjDrefExplicitLod' : 94, 'OpImageFetch' : 95, 'OpImageGather' : 96, 'OpImageDrefGather' : 97, 'OpImageRead' : 98, 'OpImageWrite' : 99, 'OpImage' : 100, 'OpImageQueryFormat' : 101, 'OpImageQueryOrder' : 102, 'OpImageQuerySizeLod' : 103, 'OpImageQuerySize' : 104, 'OpImageQueryLod' : 105, 'OpImageQueryLevels' : 106, 'OpImageQuerySamples' : 107, 'OpConvertFToU' : 109, 'OpConvertFToS' : 110, 'OpConvertSToF' : 111, 'OpConvertUToF' : 112, 'OpUConvert' : 113, 'OpSConvert' : 114, 'OpFConvert' : 115, 'OpQuantizeToF16' : 116, 'OpConvertPtrToU' : 117, 'OpSatConvertSToU' : 118, 'OpSatConvertUToS' : 119, 'OpConvertUToPtr' : 120, 'OpPtrCastToGeneric' : 121, 'OpGenericCastToPtr' : 122, 'OpGenericCastToPtrExplicit' : 123, 'OpBitcast' : 124, 'OpSNegate' : 126, 'OpFNegate' : 127, 'OpIAdd' : 128, 'OpFAdd' : 129, 'OpISub' : 130, 'OpFSub' : 131, 'OpIMul' : 132, 'OpFMul' : 133, 'OpUDiv' : 134, 'OpSDiv' : 135, 'OpFDiv' : 136, 'OpUMod' : 137, 'OpSRem' : 138, 'OpSMod' : 139, 'OpFRem' : 140, 'OpFMod' : 141, 'OpVectorTimesScalar' : 142, 'OpMatrixTimesScalar' : 143, 'OpVectorTimesMatrix' : 144, 'OpMatrixTimesVector' : 145, 'OpMatrixTimesMatrix' : 146, 'OpOuterProduct' : 147, 'OpDot' : 148, 'OpIAddCarry' : 149, 'OpISubBorrow' : 150, 'OpUMulExtended' : 151, 'OpSMulExtended' : 152, 'OpAny' : 154, 'OpAll' : 155, 'OpIsNan' : 156, 'OpIsInf' : 157, 'OpIsFinite' : 158, 'OpIsNormal' : 159, 'OpSignBitSet' : 160, 'OpLessOrGreater' : 161, 'OpOrdered' : 162, 'OpUnordered' : 163, 'OpLogicalEqual' : 164, 'OpLogicalNotEqual' : 165, 'OpLogicalOr' : 166, 'OpLogicalAnd' : 167, 'OpLogicalNot' : 168, 'OpSelect' : 169, 'OpIEqual' : 170, 'OpINotEqual' : 171, 'OpUGreaterThan' : 172, 'OpSGreaterThan' : 173, 'OpUGreaterThanEqual' : 174, 'OpSGreaterThanEqual' : 175, 'OpULessThan' : 176, 'OpSLessThan' : 177, 'OpULessThanEqual' : 178, 'OpSLessThanEqual' : 179, 'OpFOrdEqual' : 180, 'OpFUnordEqual' : 181, 'OpFOrdNotEqual' : 182, 'OpFUnordNotEqual' : 183, 'OpFOrdLessThan' : 184, 'OpFUnordLessThan' : 185, 'OpFOrdGreaterThan' : 186, 'OpFUnordGreaterThan' : 187, 'OpFOrdLessThanEqual' : 188, 'OpFUnordLessThanEqual' : 189, 'OpFOrdGreaterThanEqual' : 190, 'OpFUnordGreaterThanEqual' : 191, 'OpShiftRightLogical' : 194, 'OpShiftRightArithmetic' : 195, 'OpShiftLeftLogical' : 196, 'OpBitwiseOr' : 197, 'OpBitwiseXor' : 198, 'OpBitwiseAnd' : 199, 'OpNot' : 200, 'OpBitFieldInsert' : 201, 'OpBitFieldSExtract' : 202, 'OpBitFieldUExtract' : 203, 'OpBitReverse' : 204, 'OpBitCount' : 205, 'OpDPdx' : 207, 'OpDPdy' : 208, 'OpFwidth' : 209, 'OpDPdxFine' : 210, 'OpDPdyFine' : 211, 'OpFwidthFine' : 212, 'OpDPdxCoarse' : 213, 'OpDPdyCoarse' : 214, 'OpFwidthCoarse' : 215, 'OpEmitVertex' : 218, 'OpEndPrimitive' : 219, 'OpEmitStreamVertex' : 220, 'OpEndStreamPrimitive' : 221, 'OpControlBarrier' : 224, 'OpMemoryBarrier' : 225, 'OpAtomicLoad' : 227, 'OpAtomicStore' : 228, 'OpAtomicExchange' : 229, 'OpAtomicCompareExchange' : 230, 'OpAtomicCompareExchangeWeak' : 231, 'OpAtomicIIncrement' : 232, 'OpAtomicIDecrement' : 233, 'OpAtomicIAdd' : 234, 'OpAtomicISub' : 235, 'OpAtomicSMin' : 236, 'OpAtomicUMin' : 237, 'OpAtomicSMax' : 238, 'OpAtomicUMax' : 239, 'OpAtomicAnd' : 240, 'OpAtomicOr' : 241, 'OpAtomicXor' : 242, 'OpPhi' : 245, 'OpLoopMerge' : 246, 'OpSelectionMerge' : 247, 'OpLabel' : 248, 'OpBranch' : 249, 'OpBranchConditional' : 250, 'OpSwitch' : 251, 'OpKill' : 252, 'OpReturn' : 253, 'OpReturnValue' : 254, 'OpUnreachable' : 255, 'OpLifetimeStart' : 256, 'OpLifetimeStop' : 257, 'OpGroupAsyncCopy' : 259, 'OpGroupWaitEvents' : 260, 'OpGroupAll' : 261, 'OpGroupAny' : 262, 'OpGroupBroadcast' : 263, 'OpGroupIAdd' : 264, 'OpGroupFAdd' : 265, 'OpGroupFMin' : 266, 'OpGroupUMin' : 267, 'OpGroupSMin' : 268, 'OpGroupFMax' : 269, 'OpGroupUMax' : 270, 'OpGroupSMax' : 271, 'OpReadPipe' : 274, 'OpWritePipe' : 275, 'OpReservedReadPipe' : 276, 'OpReservedWritePipe' : 277, 'OpReserveReadPipePackets' : 278, 'OpReserveWritePipePackets' : 279, 'OpCommitReadPipe' : 280, 'OpCommitWritePipe' : 281, 'OpIsValidReserveId' : 282, 'OpGetNumPipePackets' : 283, 'OpGetMaxPipePackets' : 284, 'OpGroupReserveReadPipePackets' : 285, 'OpGroupReserveWritePipePackets' : 286, 'OpGroupCommitReadPipe' : 287, 'OpGroupCommitWritePipe' : 288, 'OpEnqueueMarker' : 291, 'OpEnqueueKernel' : 292, 'OpGetKernelNDrangeSubGroupCount' : 293, 'OpGetKernelNDrangeMaxSubGroupSize' : 294, 'OpGetKernelWorkGroupSize' : 295, 'OpGetKernelPreferredWorkGroupSizeMultiple' : 296, 'OpRetainEvent' : 297, 'OpReleaseEvent' : 298, 'OpCreateUserEvent' : 299, 'OpIsValidEvent' : 300, 'OpSetUserEventStatus' : 301, 'OpCaptureEventProfilingInfo' : 302, 'OpGetDefaultQueue' : 303, 'OpBuildNDRange' : 304, 'OpImageSparseSampleImplicitLod' : 305, 'OpImageSparseSampleExplicitLod' : 306, 'OpImageSparseSampleDrefImplicitLod' : 307, 'OpImageSparseSampleDrefExplicitLod' : 308, 'OpImageSparseSampleProjImplicitLod' : 309, 'OpImageSparseSampleProjExplicitLod' : 310, 'OpImageSparseSampleProjDrefImplicitLod' : 311, 'OpImageSparseSampleProjDrefExplicitLod' : 312, 'OpImageSparseFetch' : 313, 'OpImageSparseGather' : 314, 'OpImageSparseDrefGather' : 315, 'OpImageSparseTexelsResident' : 316, 'OpNoLine' : 317, 'OpAtomicFlagTestAndSet' : 318, 'OpAtomicFlagClear' : 319, 'OpImageSparseRead' : 320, 'OpSizeOf' : 321, 'OpTypePipeStorage' : 322, 'OpConstantPipeStorage' : 323, 'OpCreatePipeFromPipeStorage' : 324, 'OpGetKernelLocalSizeForSubgroupCount' : 325, 'OpGetKernelMaxNumSubgroups' : 326, 'OpTypeNamedBarrier' : 327, 'OpNamedBarrierInitialize' : 328, 'OpMemoryNamedBarrier' : 329, 'OpModuleProcessed' : 330, 'OpExecutionModeId' : 331, 'OpDecorateId' : 332, 'OpSubgroupBallotKHR' : 4421, 'OpSubgroupFirstInvocationKHR' : 4422, 'OpSubgroupAllKHR' : 4428, 'OpSubgroupAnyKHR' : 4429, 'OpSubgroupAllEqualKHR' : 4430, 'OpSubgroupReadInvocationKHR' : 4432, 'OpGroupIAddNonUniformAMD' : 5000, 'OpGroupFAddNonUniformAMD' : 5001, 'OpGroupFMinNonUniformAMD' : 5002, 'OpGroupUMinNonUniformAMD' : 5003, 'OpGroupSMinNonUniformAMD' : 5004, 'OpGroupFMaxNonUniformAMD' : 5005, 'OpGroupUMaxNonUniformAMD' : 5006, 'OpGroupSMaxNonUniformAMD' : 5007, 'OpFragmentMaskFetchAMD' : 5011, 'OpFragmentFetchAMD' : 5012, 'OpSubgroupShuffleINTEL' : 5571, 'OpSubgroupShuffleDownINTEL' : 5572, 'OpSubgroupShuffleUpINTEL' : 5573, 'OpSubgroupShuffleXorINTEL' : 5574, 'OpSubgroupBlockReadINTEL' : 5575, 'OpSubgroupBlockWriteINTEL' : 5576, 'OpSubgroupImageBlockReadINTEL' : 5577, 'OpSubgroupImageBlockWriteINTEL' : 5578, 'OpDecorateStringGOOGLE' : 5632, 'OpMemberDecorateStringGOOGLE' : 5633, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/spir-v.xml000066400000000000000000000530431463234063200217770ustar00rootroot00000000000000 spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/000077500000000000000000000000001463234063200215345ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/AMD_gcn_shader.h000066400000000000000000000035301463234063200244640ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_AMD_gcn_shader_H_ #define SPIRV_UNIFIED1_AMD_gcn_shader_H_ #ifdef __cplusplus extern "C" { #endif enum { AMD_gcn_shaderRevision = 2, AMD_gcn_shaderRevision_BitWidthPadding = 0x7fffffff }; enum AMD_gcn_shaderInstructions { AMD_gcn_shaderCubeFaceIndexAMD = 1, AMD_gcn_shaderCubeFaceCoordAMD = 2, AMD_gcn_shaderTimeAMD = 3, AMD_gcn_shaderInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_AMD_gcn_shader_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/AMD_shader_ballot.h000066400000000000000000000036641463234063200252020ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_AMD_shader_ballot_H_ #define SPIRV_UNIFIED1_AMD_shader_ballot_H_ #ifdef __cplusplus extern "C" { #endif enum { AMD_shader_ballotRevision = 5, AMD_shader_ballotRevision_BitWidthPadding = 0x7fffffff }; enum AMD_shader_ballotInstructions { AMD_shader_ballotSwizzleInvocationsAMD = 1, AMD_shader_ballotSwizzleInvocationsMaskedAMD = 2, AMD_shader_ballotWriteInvocationAMD = 3, AMD_shader_ballotMbcntAMD = 4, AMD_shader_ballotInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_AMD_shader_ballot_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h000066400000000000000000000037071463234063200312010ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_AMD_shader_explicit_vertex_parameter_H_ #define SPIRV_UNIFIED1_AMD_shader_explicit_vertex_parameter_H_ #ifdef __cplusplus extern "C" { #endif enum { AMD_shader_explicit_vertex_parameterRevision = 4, AMD_shader_explicit_vertex_parameterRevision_BitWidthPadding = 0x7fffffff }; enum AMD_shader_explicit_vertex_parameterInstructions { AMD_shader_explicit_vertex_parameterInterpolateAtVertexAMD = 1, AMD_shader_explicit_vertex_parameterInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_AMD_shader_explicit_vertex_parameter_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/AMD_shader_trinary_minmax.h000066400000000000000000000042711463234063200267610ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_AMD_shader_trinary_minmax_H_ #define SPIRV_UNIFIED1_AMD_shader_trinary_minmax_H_ #ifdef __cplusplus extern "C" { #endif enum { AMD_shader_trinary_minmaxRevision = 4, AMD_shader_trinary_minmaxRevision_BitWidthPadding = 0x7fffffff }; enum AMD_shader_trinary_minmaxInstructions { AMD_shader_trinary_minmaxFMin3AMD = 1, AMD_shader_trinary_minmaxUMin3AMD = 2, AMD_shader_trinary_minmaxSMin3AMD = 3, AMD_shader_trinary_minmaxFMax3AMD = 4, AMD_shader_trinary_minmaxUMax3AMD = 5, AMD_shader_trinary_minmaxSMax3AMD = 6, AMD_shader_trinary_minmaxFMid3AMD = 7, AMD_shader_trinary_minmaxUMid3AMD = 8, AMD_shader_trinary_minmaxSMid3AMD = 9, AMD_shader_trinary_minmaxInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_AMD_shader_trinary_minmax_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/DebugInfo.h000066400000000000000000000111521463234063200235470ustar00rootroot00000000000000// Copyright (c) 2017-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. #ifndef SPIRV_UNIFIED1_DebugInfo_H_ #define SPIRV_UNIFIED1_DebugInfo_H_ #ifdef __cplusplus extern "C" { #endif enum { DebugInfoVersion = 100, DebugInfoVersion_BitWidthPadding = 0x7fffffff }; enum { DebugInfoRevision = 1, DebugInfoRevision_BitWidthPadding = 0x7fffffff }; enum DebugInfoInstructions { DebugInfoDebugInfoNone = 0, DebugInfoDebugCompilationUnit = 1, DebugInfoDebugTypeBasic = 2, DebugInfoDebugTypePointer = 3, DebugInfoDebugTypeQualifier = 4, DebugInfoDebugTypeArray = 5, DebugInfoDebugTypeVector = 6, DebugInfoDebugTypedef = 7, DebugInfoDebugTypeFunction = 8, DebugInfoDebugTypeEnum = 9, DebugInfoDebugTypeComposite = 10, DebugInfoDebugTypeMember = 11, DebugInfoDebugTypeInheritance = 12, DebugInfoDebugTypePtrToMember = 13, DebugInfoDebugTypeTemplate = 14, DebugInfoDebugTypeTemplateParameter = 15, DebugInfoDebugTypeTemplateTemplateParameter = 16, DebugInfoDebugTypeTemplateParameterPack = 17, DebugInfoDebugGlobalVariable = 18, DebugInfoDebugFunctionDeclaration = 19, DebugInfoDebugFunction = 20, DebugInfoDebugLexicalBlock = 21, DebugInfoDebugLexicalBlockDiscriminator = 22, DebugInfoDebugScope = 23, DebugInfoDebugNoScope = 24, DebugInfoDebugInlinedAt = 25, DebugInfoDebugLocalVariable = 26, DebugInfoDebugInlinedVariable = 27, DebugInfoDebugDeclare = 28, DebugInfoDebugValue = 29, DebugInfoDebugOperation = 30, DebugInfoDebugExpression = 31, DebugInfoDebugMacroDef = 32, DebugInfoDebugMacroUndef = 33, DebugInfoInstructionsMax = 0x7fffffff }; enum DebugInfoDebugInfoFlags { DebugInfoNone = 0x0000, DebugInfoFlagIsProtected = 0x01, DebugInfoFlagIsPrivate = 0x02, DebugInfoFlagIsPublic = 0x03, DebugInfoFlagIsLocal = 0x04, DebugInfoFlagIsDefinition = 0x08, DebugInfoFlagFwdDecl = 0x10, DebugInfoFlagArtificial = 0x20, DebugInfoFlagExplicit = 0x40, DebugInfoFlagPrototyped = 0x80, DebugInfoFlagObjectPointer = 0x100, DebugInfoFlagStaticMember = 0x200, DebugInfoFlagIndirectVariable = 0x400, DebugInfoFlagLValueReference = 0x800, DebugInfoFlagRValueReference = 0x1000, DebugInfoFlagIsOptimized = 0x2000, DebugInfoDebugInfoFlagsMax = 0x7fffffff }; enum DebugInfoDebugBaseTypeAttributeEncoding { DebugInfoUnspecified = 0, DebugInfoAddress = 1, DebugInfoBoolean = 2, DebugInfoFloat = 4, DebugInfoSigned = 5, DebugInfoSignedChar = 6, DebugInfoUnsigned = 7, DebugInfoUnsignedChar = 8, DebugInfoDebugBaseTypeAttributeEncodingMax = 0x7fffffff }; enum DebugInfoDebugCompositeType { DebugInfoClass = 0, DebugInfoStructure = 1, DebugInfoUnion = 2, DebugInfoDebugCompositeTypeMax = 0x7fffffff }; enum DebugInfoDebugTypeQualifier { DebugInfoConstType = 0, DebugInfoVolatileType = 1, DebugInfoRestrictType = 2, DebugInfoDebugTypeQualifierMax = 0x7fffffff }; enum DebugInfoDebugOperation { DebugInfoDeref = 0, DebugInfoPlus = 1, DebugInfoMinus = 2, DebugInfoPlusUconst = 3, DebugInfoBitPiece = 4, DebugInfoSwap = 5, DebugInfoXderef = 6, DebugInfoStackValue = 7, DebugInfoConstu = 8, DebugInfoDebugOperationMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_DebugInfo_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/GLSL.std.450.h000066400000000000000000000100371463234063200235470ustar00rootroot00000000000000/* ** Copyright (c) 2014-2024 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ #ifndef GLSLstd450_H #define GLSLstd450_H static const int GLSLstd450Version = 100; static const int GLSLstd450Revision = 3; enum GLSLstd450 { GLSLstd450Bad = 0, // Don't use GLSLstd450Round = 1, GLSLstd450RoundEven = 2, GLSLstd450Trunc = 3, GLSLstd450FAbs = 4, GLSLstd450SAbs = 5, GLSLstd450FSign = 6, GLSLstd450SSign = 7, GLSLstd450Floor = 8, GLSLstd450Ceil = 9, GLSLstd450Fract = 10, GLSLstd450Radians = 11, GLSLstd450Degrees = 12, GLSLstd450Sin = 13, GLSLstd450Cos = 14, GLSLstd450Tan = 15, GLSLstd450Asin = 16, GLSLstd450Acos = 17, GLSLstd450Atan = 18, GLSLstd450Sinh = 19, GLSLstd450Cosh = 20, GLSLstd450Tanh = 21, GLSLstd450Asinh = 22, GLSLstd450Acosh = 23, GLSLstd450Atanh = 24, GLSLstd450Atan2 = 25, GLSLstd450Pow = 26, GLSLstd450Exp = 27, GLSLstd450Log = 28, GLSLstd450Exp2 = 29, GLSLstd450Log2 = 30, GLSLstd450Sqrt = 31, GLSLstd450InverseSqrt = 32, GLSLstd450Determinant = 33, GLSLstd450MatrixInverse = 34, GLSLstd450Modf = 35, // second operand needs an OpVariable to write to GLSLstd450ModfStruct = 36, // no OpVariable operand GLSLstd450FMin = 37, GLSLstd450UMin = 38, GLSLstd450SMin = 39, GLSLstd450FMax = 40, GLSLstd450UMax = 41, GLSLstd450SMax = 42, GLSLstd450FClamp = 43, GLSLstd450UClamp = 44, GLSLstd450SClamp = 45, GLSLstd450FMix = 46, GLSLstd450IMix = 47, // Reserved GLSLstd450Step = 48, GLSLstd450SmoothStep = 49, GLSLstd450Fma = 50, GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to GLSLstd450FrexpStruct = 52, // no OpVariable operand GLSLstd450Ldexp = 53, GLSLstd450PackSnorm4x8 = 54, GLSLstd450PackUnorm4x8 = 55, GLSLstd450PackSnorm2x16 = 56, GLSLstd450PackUnorm2x16 = 57, GLSLstd450PackHalf2x16 = 58, GLSLstd450PackDouble2x32 = 59, GLSLstd450UnpackSnorm2x16 = 60, GLSLstd450UnpackUnorm2x16 = 61, GLSLstd450UnpackHalf2x16 = 62, GLSLstd450UnpackSnorm4x8 = 63, GLSLstd450UnpackUnorm4x8 = 64, GLSLstd450UnpackDouble2x32 = 65, GLSLstd450Length = 66, GLSLstd450Distance = 67, GLSLstd450Cross = 68, GLSLstd450Normalize = 69, GLSLstd450FaceForward = 70, GLSLstd450Reflect = 71, GLSLstd450Refract = 72, GLSLstd450FindILsb = 73, GLSLstd450FindSMsb = 74, GLSLstd450FindUMsb = 75, GLSLstd450InterpolateAtCentroid = 76, GLSLstd450InterpolateAtSample = 77, GLSLstd450InterpolateAtOffset = 78, GLSLstd450NMin = 79, GLSLstd450NMax = 80, GLSLstd450NClamp = 81, GLSLstd450Count }; #endif // #ifndef GLSLstd450_H spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/NonSemanticClspvReflection.h000066400000000000000000000107741463234063200271570ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_NonSemanticClspvReflection_H_ #define SPIRV_UNIFIED1_NonSemanticClspvReflection_H_ #ifdef __cplusplus extern "C" { #endif enum { NonSemanticClspvReflectionRevision = 6, NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff }; enum NonSemanticClspvReflectionInstructions { NonSemanticClspvReflectionKernel = 1, NonSemanticClspvReflectionArgumentInfo = 2, NonSemanticClspvReflectionArgumentStorageBuffer = 3, NonSemanticClspvReflectionArgumentUniform = 4, NonSemanticClspvReflectionArgumentPodStorageBuffer = 5, NonSemanticClspvReflectionArgumentPodUniform = 6, NonSemanticClspvReflectionArgumentPodPushConstant = 7, NonSemanticClspvReflectionArgumentSampledImage = 8, NonSemanticClspvReflectionArgumentStorageImage = 9, NonSemanticClspvReflectionArgumentSampler = 10, NonSemanticClspvReflectionArgumentWorkgroup = 11, NonSemanticClspvReflectionSpecConstantWorkgroupSize = 12, NonSemanticClspvReflectionSpecConstantGlobalOffset = 13, NonSemanticClspvReflectionSpecConstantWorkDim = 14, NonSemanticClspvReflectionPushConstantGlobalOffset = 15, NonSemanticClspvReflectionPushConstantEnqueuedLocalSize = 16, NonSemanticClspvReflectionPushConstantGlobalSize = 17, NonSemanticClspvReflectionPushConstantRegionOffset = 18, NonSemanticClspvReflectionPushConstantNumWorkgroups = 19, NonSemanticClspvReflectionPushConstantRegionGroupOffset = 20, NonSemanticClspvReflectionConstantDataStorageBuffer = 21, NonSemanticClspvReflectionConstantDataUniform = 22, NonSemanticClspvReflectionLiteralSampler = 23, NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24, NonSemanticClspvReflectionSpecConstantSubgroupMaxSize = 25, NonSemanticClspvReflectionArgumentPointerPushConstant = 26, NonSemanticClspvReflectionArgumentPointerUniform = 27, NonSemanticClspvReflectionProgramScopeVariablesStorageBuffer = 28, NonSemanticClspvReflectionProgramScopeVariablePointerRelocation = 29, NonSemanticClspvReflectionImageArgumentInfoChannelOrderPushConstant = 30, NonSemanticClspvReflectionImageArgumentInfoChannelDataTypePushConstant = 31, NonSemanticClspvReflectionImageArgumentInfoChannelOrderUniform = 32, NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33, NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34, NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35, NonSemanticClspvReflectionConstantDataPointerPushConstant = 36, NonSemanticClspvReflectionProgramScopeVariablePointerPushConstant = 37, NonSemanticClspvReflectionPrintfInfo = 38, NonSemanticClspvReflectionPrintfBufferStorageBuffer = 39, NonSemanticClspvReflectionPrintfBufferPointerPushConstant = 40, NonSemanticClspvReflectionNormalizedSamplerMaskPushConstant = 41, NonSemanticClspvReflectionInstructionsMax = 0x7fffffff }; enum NonSemanticClspvReflectionKernelPropertyFlags { NonSemanticClspvReflectionNone = 0x0, NonSemanticClspvReflectionMayUsePrintf = 0x1, NonSemanticClspvReflectionKernelPropertyFlagsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_NonSemanticClspvReflection_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/NonSemanticDebugBreak.h000066400000000000000000000035031463234063200260400ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_NonSemanticDebugBreak_H_ #define SPIRV_UNIFIED1_NonSemanticDebugBreak_H_ #ifdef __cplusplus extern "C" { #endif enum { NonSemanticDebugBreakRevision = 1, NonSemanticDebugBreakRevision_BitWidthPadding = 0x7fffffff }; enum NonSemanticDebugBreakInstructions { NonSemanticDebugBreakDebugBreak = 1, NonSemanticDebugBreakInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_NonSemanticDebugBreak_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/NonSemanticDebugPrintf.h000066400000000000000000000035141463234063200262600ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_ #define SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_ #ifdef __cplusplus extern "C" { #endif enum { NonSemanticDebugPrintfRevision = 1, NonSemanticDebugPrintfRevision_BitWidthPadding = 0x7fffffff }; enum NonSemanticDebugPrintfInstructions { NonSemanticDebugPrintfDebugPrintf = 1, NonSemanticDebugPrintfInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/NonSemanticShaderDebugInfo100.h000066400000000000000000000173561463234063200272720ustar00rootroot00000000000000// Copyright (c) 2018-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. #ifndef SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_ #define SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_ #ifdef __cplusplus extern "C" { #endif enum { NonSemanticShaderDebugInfo100Version = 100, NonSemanticShaderDebugInfo100Version_BitWidthPadding = 0x7fffffff }; enum { NonSemanticShaderDebugInfo100Revision = 6, NonSemanticShaderDebugInfo100Revision_BitWidthPadding = 0x7fffffff }; enum NonSemanticShaderDebugInfo100Instructions { NonSemanticShaderDebugInfo100DebugInfoNone = 0, NonSemanticShaderDebugInfo100DebugCompilationUnit = 1, NonSemanticShaderDebugInfo100DebugTypeBasic = 2, NonSemanticShaderDebugInfo100DebugTypePointer = 3, NonSemanticShaderDebugInfo100DebugTypeQualifier = 4, NonSemanticShaderDebugInfo100DebugTypeArray = 5, NonSemanticShaderDebugInfo100DebugTypeVector = 6, NonSemanticShaderDebugInfo100DebugTypedef = 7, NonSemanticShaderDebugInfo100DebugTypeFunction = 8, NonSemanticShaderDebugInfo100DebugTypeEnum = 9, NonSemanticShaderDebugInfo100DebugTypeComposite = 10, NonSemanticShaderDebugInfo100DebugTypeMember = 11, NonSemanticShaderDebugInfo100DebugTypeInheritance = 12, NonSemanticShaderDebugInfo100DebugTypePtrToMember = 13, NonSemanticShaderDebugInfo100DebugTypeTemplate = 14, NonSemanticShaderDebugInfo100DebugTypeTemplateParameter = 15, NonSemanticShaderDebugInfo100DebugTypeTemplateTemplateParameter = 16, NonSemanticShaderDebugInfo100DebugTypeTemplateParameterPack = 17, NonSemanticShaderDebugInfo100DebugGlobalVariable = 18, NonSemanticShaderDebugInfo100DebugFunctionDeclaration = 19, NonSemanticShaderDebugInfo100DebugFunction = 20, NonSemanticShaderDebugInfo100DebugLexicalBlock = 21, NonSemanticShaderDebugInfo100DebugLexicalBlockDiscriminator = 22, NonSemanticShaderDebugInfo100DebugScope = 23, NonSemanticShaderDebugInfo100DebugNoScope = 24, NonSemanticShaderDebugInfo100DebugInlinedAt = 25, NonSemanticShaderDebugInfo100DebugLocalVariable = 26, NonSemanticShaderDebugInfo100DebugInlinedVariable = 27, NonSemanticShaderDebugInfo100DebugDeclare = 28, NonSemanticShaderDebugInfo100DebugValue = 29, NonSemanticShaderDebugInfo100DebugOperation = 30, NonSemanticShaderDebugInfo100DebugExpression = 31, NonSemanticShaderDebugInfo100DebugMacroDef = 32, NonSemanticShaderDebugInfo100DebugMacroUndef = 33, NonSemanticShaderDebugInfo100DebugImportedEntity = 34, NonSemanticShaderDebugInfo100DebugSource = 35, NonSemanticShaderDebugInfo100DebugFunctionDefinition = 101, NonSemanticShaderDebugInfo100DebugSourceContinued = 102, NonSemanticShaderDebugInfo100DebugLine = 103, NonSemanticShaderDebugInfo100DebugNoLine = 104, NonSemanticShaderDebugInfo100DebugBuildIdentifier = 105, NonSemanticShaderDebugInfo100DebugStoragePath = 106, NonSemanticShaderDebugInfo100DebugEntryPoint = 107, NonSemanticShaderDebugInfo100DebugTypeMatrix = 108, NonSemanticShaderDebugInfo100InstructionsMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100DebugInfoFlags { NonSemanticShaderDebugInfo100None = 0x0000, NonSemanticShaderDebugInfo100FlagIsProtected = 0x01, NonSemanticShaderDebugInfo100FlagIsPrivate = 0x02, NonSemanticShaderDebugInfo100FlagIsPublic = 0x03, NonSemanticShaderDebugInfo100FlagIsLocal = 0x04, NonSemanticShaderDebugInfo100FlagIsDefinition = 0x08, NonSemanticShaderDebugInfo100FlagFwdDecl = 0x10, NonSemanticShaderDebugInfo100FlagArtificial = 0x20, NonSemanticShaderDebugInfo100FlagExplicit = 0x40, NonSemanticShaderDebugInfo100FlagPrototyped = 0x80, NonSemanticShaderDebugInfo100FlagObjectPointer = 0x100, NonSemanticShaderDebugInfo100FlagStaticMember = 0x200, NonSemanticShaderDebugInfo100FlagIndirectVariable = 0x400, NonSemanticShaderDebugInfo100FlagLValueReference = 0x800, NonSemanticShaderDebugInfo100FlagRValueReference = 0x1000, NonSemanticShaderDebugInfo100FlagIsOptimized = 0x2000, NonSemanticShaderDebugInfo100FlagIsEnumClass = 0x4000, NonSemanticShaderDebugInfo100FlagTypePassByValue = 0x8000, NonSemanticShaderDebugInfo100FlagTypePassByReference = 0x10000, NonSemanticShaderDebugInfo100FlagUnknownPhysicalLayout = 0x20000, NonSemanticShaderDebugInfo100DebugInfoFlagsMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100BuildIdentifierFlags { NonSemanticShaderDebugInfo100IdentifierPossibleDuplicates = 0x01, NonSemanticShaderDebugInfo100BuildIdentifierFlagsMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncoding { NonSemanticShaderDebugInfo100Unspecified = 0, NonSemanticShaderDebugInfo100Address = 1, NonSemanticShaderDebugInfo100Boolean = 2, NonSemanticShaderDebugInfo100Float = 3, NonSemanticShaderDebugInfo100Signed = 4, NonSemanticShaderDebugInfo100SignedChar = 5, NonSemanticShaderDebugInfo100Unsigned = 6, NonSemanticShaderDebugInfo100UnsignedChar = 7, NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100DebugCompositeType { NonSemanticShaderDebugInfo100Class = 0, NonSemanticShaderDebugInfo100Structure = 1, NonSemanticShaderDebugInfo100Union = 2, NonSemanticShaderDebugInfo100DebugCompositeTypeMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100DebugTypeQualifier { NonSemanticShaderDebugInfo100ConstType = 0, NonSemanticShaderDebugInfo100VolatileType = 1, NonSemanticShaderDebugInfo100RestrictType = 2, NonSemanticShaderDebugInfo100AtomicType = 3, NonSemanticShaderDebugInfo100DebugTypeQualifierMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100DebugOperation { NonSemanticShaderDebugInfo100Deref = 0, NonSemanticShaderDebugInfo100Plus = 1, NonSemanticShaderDebugInfo100Minus = 2, NonSemanticShaderDebugInfo100PlusUconst = 3, NonSemanticShaderDebugInfo100BitPiece = 4, NonSemanticShaderDebugInfo100Swap = 5, NonSemanticShaderDebugInfo100Xderef = 6, NonSemanticShaderDebugInfo100StackValue = 7, NonSemanticShaderDebugInfo100Constu = 8, NonSemanticShaderDebugInfo100Fragment = 9, NonSemanticShaderDebugInfo100DebugOperationMax = 0x7fffffff }; enum NonSemanticShaderDebugInfo100DebugImportedEntity { NonSemanticShaderDebugInfo100ImportedModule = 0, NonSemanticShaderDebugInfo100ImportedDeclaration = 1, NonSemanticShaderDebugInfo100DebugImportedEntityMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/NonSemanticVkspReflection.h000066400000000000000000000043161463234063200270060ustar00rootroot00000000000000// Copyright (c) 2020-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. // #ifndef SPIRV_UNIFIED1_NonSemanticVkspReflection_H_ #define SPIRV_UNIFIED1_NonSemanticVkspReflection_H_ #ifdef __cplusplus extern "C" { #endif enum { NonSemanticVkspReflectionRevision = 2, NonSemanticVkspReflectionRevision_BitWidthPadding = 0x7fffffff }; enum NonSemanticVkspReflectionInstructions { NonSemanticVkspReflectionConfiguration = 1, NonSemanticVkspReflectionStartCounter = 2, NonSemanticVkspReflectionStopCounter = 3, NonSemanticVkspReflectionPushConstants = 4, NonSemanticVkspReflectionSpecializationMapEntry = 5, NonSemanticVkspReflectionDescriptorSetBuffer = 6, NonSemanticVkspReflectionDescriptorSetImage = 7, NonSemanticVkspReflectionDescriptorSetSampler = 8, NonSemanticVkspReflectionInstructionsMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_NonSemanticVkspReflection_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/OpenCL.std.h000066400000000000000000000232331463234063200236210ustar00rootroot00000000000000/* ** Copyright (c) 2015-2024 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ #ifndef OPENCLstd_H #define OPENCLstd_H #ifdef __cplusplus namespace OpenCLLIB { enum Entrypoints { // Section 2.1: Math extended instructions Acos = 0, Acosh = 1, Acospi = 2, Asin = 3, Asinh = 4, Asinpi = 5, Atan = 6, Atan2 = 7, Atanh = 8, Atanpi = 9, Atan2pi = 10, Cbrt = 11, Ceil = 12, Copysign = 13, Cos = 14, Cosh = 15, Cospi = 16, Erfc = 17, Erf = 18, Exp = 19, Exp2 = 20, Exp10 = 21, Expm1 = 22, Fabs = 23, Fdim = 24, Floor = 25, Fma = 26, Fmax = 27, Fmin = 28, Fmod = 29, Fract = 30, Frexp = 31, Hypot = 32, Ilogb = 33, Ldexp = 34, Lgamma = 35, Lgamma_r = 36, Log = 37, Log2 = 38, Log10 = 39, Log1p = 40, Logb = 41, Mad = 42, Maxmag = 43, Minmag = 44, Modf = 45, Nan = 46, Nextafter = 47, Pow = 48, Pown = 49, Powr = 50, Remainder = 51, Remquo = 52, Rint = 53, Rootn = 54, Round = 55, Rsqrt = 56, Sin = 57, Sincos = 58, Sinh = 59, Sinpi = 60, Sqrt = 61, Tan = 62, Tanh = 63, Tanpi = 64, Tgamma = 65, Trunc = 66, Half_cos = 67, Half_divide = 68, Half_exp = 69, Half_exp2 = 70, Half_exp10 = 71, Half_log = 72, Half_log2 = 73, Half_log10 = 74, Half_powr = 75, Half_recip = 76, Half_rsqrt = 77, Half_sin = 78, Half_sqrt = 79, Half_tan = 80, Native_cos = 81, Native_divide = 82, Native_exp = 83, Native_exp2 = 84, Native_exp10 = 85, Native_log = 86, Native_log2 = 87, Native_log10 = 88, Native_powr = 89, Native_recip = 90, Native_rsqrt = 91, Native_sin = 92, Native_sqrt = 93, Native_tan = 94, // Section 2.2: Integer instructions SAbs = 141, SAbs_diff = 142, SAdd_sat = 143, UAdd_sat = 144, SHadd = 145, UHadd = 146, SRhadd = 147, URhadd = 148, SClamp = 149, UClamp = 150, Clz = 151, Ctz = 152, SMad_hi = 153, UMad_sat = 154, SMad_sat = 155, SMax = 156, UMax = 157, SMin = 158, UMin = 159, SMul_hi = 160, Rotate = 161, SSub_sat = 162, USub_sat = 163, U_Upsample = 164, S_Upsample = 165, Popcount = 166, SMad24 = 167, UMad24 = 168, SMul24 = 169, UMul24 = 170, UAbs = 201, UAbs_diff = 202, UMul_hi = 203, UMad_hi = 204, // Section 2.3: Common instructions FClamp = 95, Degrees = 96, FMax_common = 97, FMin_common = 98, Mix = 99, Radians = 100, Step = 101, Smoothstep = 102, Sign = 103, // Section 2.4: Geometric instructions Cross = 104, Distance = 105, Length = 106, Normalize = 107, Fast_distance = 108, Fast_length = 109, Fast_normalize = 110, // Section 2.5: Relational instructions Bitselect = 186, Select = 187, // Section 2.6: Vector Data Load and Store instructions Vloadn = 171, Vstoren = 172, Vload_half = 173, Vload_halfn = 174, Vstore_half = 175, Vstore_half_r = 176, Vstore_halfn = 177, Vstore_halfn_r = 178, Vloada_halfn = 179, Vstorea_halfn = 180, Vstorea_halfn_r = 181, // Section 2.7: Miscellaneous Vector instructions Shuffle = 182, Shuffle2 = 183, // Section 2.8: Misc instructions Printf = 184, Prefetch = 185, }; } // end namespace OpenCLLIB #else enum OpenCLstd_Entrypoints { // Section 2.1: Math extended instructions OpenCLstd_Acos = 0, OpenCLstd_Acosh = 1, OpenCLstd_Acospi = 2, OpenCLstd_Asin = 3, OpenCLstd_Asinh = 4, OpenCLstd_Asinpi = 5, OpenCLstd_Atan = 6, OpenCLstd_Atan2 = 7, OpenCLstd_Atanh = 8, OpenCLstd_Atanpi = 9, OpenCLstd_Atan2pi = 10, OpenCLstd_Cbrt = 11, OpenCLstd_Ceil = 12, OpenCLstd_Copysign = 13, OpenCLstd_Cos = 14, OpenCLstd_Cosh = 15, OpenCLstd_Cospi = 16, OpenCLstd_Erfc = 17, OpenCLstd_Erf = 18, OpenCLstd_Exp = 19, OpenCLstd_Exp2 = 20, OpenCLstd_Exp10 = 21, OpenCLstd_Expm1 = 22, OpenCLstd_Fabs = 23, OpenCLstd_Fdim = 24, OpenCLstd_Floor = 25, OpenCLstd_Fma = 26, OpenCLstd_Fmax = 27, OpenCLstd_Fmin = 28, OpenCLstd_Fmod = 29, OpenCLstd_Fract = 30, OpenCLstd_Frexp = 31, OpenCLstd_Hypot = 32, OpenCLstd_Ilogb = 33, OpenCLstd_Ldexp = 34, OpenCLstd_Lgamma = 35, OpenCLstd_Lgamma_r = 36, OpenCLstd_Log = 37, OpenCLstd_Log2 = 38, OpenCLstd_Log10 = 39, OpenCLstd_Log1p = 40, OpenCLstd_Logb = 41, OpenCLstd_Mad = 42, OpenCLstd_Maxmag = 43, OpenCLstd_Minmag = 44, OpenCLstd_Modf = 45, OpenCLstd_Nan = 46, OpenCLstd_Nextafter = 47, OpenCLstd_Pow = 48, OpenCLstd_Pown = 49, OpenCLstd_Powr = 50, OpenCLstd_Remainder = 51, OpenCLstd_Remquo = 52, OpenCLstd_Rint = 53, OpenCLstd_Rootn = 54, OpenCLstd_Round = 55, OpenCLstd_Rsqrt = 56, OpenCLstd_Sin = 57, OpenCLstd_Sincos = 58, OpenCLstd_Sinh = 59, OpenCLstd_Sinpi = 60, OpenCLstd_Sqrt = 61, OpenCLstd_Tan = 62, OpenCLstd_Tanh = 63, OpenCLstd_Tanpi = 64, OpenCLstd_Tgamma = 65, OpenCLstd_Trunc = 66, OpenCLstd_Half_cos = 67, OpenCLstd_Half_divide = 68, OpenCLstd_Half_exp = 69, OpenCLstd_Half_exp2 = 70, OpenCLstd_Half_exp10 = 71, OpenCLstd_Half_log = 72, OpenCLstd_Half_log2 = 73, OpenCLstd_Half_log10 = 74, OpenCLstd_Half_powr = 75, OpenCLstd_Half_recip = 76, OpenCLstd_Half_rsqrt = 77, OpenCLstd_Half_sin = 78, OpenCLstd_Half_sqrt = 79, OpenCLstd_Half_tan = 80, OpenCLstd_Native_cos = 81, OpenCLstd_Native_divide = 82, OpenCLstd_Native_exp = 83, OpenCLstd_Native_exp2 = 84, OpenCLstd_Native_exp10 = 85, OpenCLstd_Native_log = 86, OpenCLstd_Native_log2 = 87, OpenCLstd_Native_log10 = 88, OpenCLstd_Native_powr = 89, OpenCLstd_Native_recip = 90, OpenCLstd_Native_rsqrt = 91, OpenCLstd_Native_sin = 92, OpenCLstd_Native_sqrt = 93, OpenCLstd_Native_tan = 94, // Section 2.2: Integer instructions OpenCLstd_SAbs = 141, OpenCLstd_SAbs_diff = 142, OpenCLstd_SAdd_sat = 143, OpenCLstd_UAdd_sat = 144, OpenCLstd_SHadd = 145, OpenCLstd_UHadd = 146, OpenCLstd_SRhadd = 147, OpenCLstd_URhadd = 148, OpenCLstd_SClamp = 149, OpenCLstd_UClamp = 150, OpenCLstd_Clz = 151, OpenCLstd_Ctz = 152, OpenCLstd_SMad_hi = 153, OpenCLstd_UMad_sat = 154, OpenCLstd_SMad_sat = 155, OpenCLstd_SMax = 156, OpenCLstd_UMax = 157, OpenCLstd_SMin = 158, OpenCLstd_UMin = 159, OpenCLstd_SMul_hi = 160, OpenCLstd_Rotate = 161, OpenCLstd_SSub_sat = 162, OpenCLstd_USub_sat = 163, OpenCLstd_U_Upsample = 164, OpenCLstd_S_Upsample = 165, OpenCLstd_Popcount = 166, OpenCLstd_SMad24 = 167, OpenCLstd_UMad24 = 168, OpenCLstd_SMul24 = 169, OpenCLstd_UMul24 = 170, OpenCLstd_UAbs = 201, OpenCLstd_UAbs_diff = 202, OpenCLstd_UMul_hi = 203, OpenCLstd_UMad_hi = 204, // Section 2.3: Common instructions OpenCLstd_FClamp = 95, OpenCLstd_Degrees = 96, OpenCLstd_FMax_common = 97, OpenCLstd_FMin_common = 98, OpenCLstd_Mix = 99, OpenCLstd_Radians = 100, OpenCLstd_Step = 101, OpenCLstd_Smoothstep = 102, OpenCLstd_Sign = 103, // Section 2.4: Geometric instructions OpenCLstd_Cross = 104, OpenCLstd_Distance = 105, OpenCLstd_Length = 106, OpenCLstd_Normalize = 107, OpenCLstd_Fast_distance = 108, OpenCLstd_Fast_length = 109, OpenCLstd_Fast_normalize = 110, // Section 2.5: Relational instructions OpenCLstd_Bitselect = 186, OpenCLstd_Select = 187, // Section 2.6: Vector Data Load and Store instructions OpenCLstd_Vloadn = 171, OpenCLstd_Vstoren = 172, OpenCLstd_Vload_half = 173, OpenCLstd_Vload_halfn = 174, OpenCLstd_Vstore_half = 175, OpenCLstd_Vstore_half_r = 176, OpenCLstd_Vstore_halfn = 177, OpenCLstd_Vstore_halfn_r = 178, OpenCLstd_Vloada_halfn = 179, OpenCLstd_Vstorea_halfn = 180, OpenCLstd_Vstorea_halfn_r = 181, // Section 2.7: Miscellaneous Vector instructions OpenCLstd_Shuffle = 182, OpenCLstd_Shuffle2 = 183, // Section 2.8: Misc instructions OpenCLstd_Printf = 184, OpenCLstd_Prefetch = 185, }; #endif #endif // #ifndef OPENCLstd_H spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/OpenCLDebugInfo100.h000066400000000000000000000137261463234063200250420ustar00rootroot00000000000000// Copyright (c) 2018-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. #ifndef SPIRV_UNIFIED1_OpenCLDebugInfo100_H_ #define SPIRV_UNIFIED1_OpenCLDebugInfo100_H_ #ifdef __cplusplus extern "C" { #endif enum { OpenCLDebugInfo100Version = 200, OpenCLDebugInfo100Version_BitWidthPadding = 0x7fffffff }; enum { OpenCLDebugInfo100Revision = 2, OpenCLDebugInfo100Revision_BitWidthPadding = 0x7fffffff }; enum OpenCLDebugInfo100Instructions { OpenCLDebugInfo100DebugInfoNone = 0, OpenCLDebugInfo100DebugCompilationUnit = 1, OpenCLDebugInfo100DebugTypeBasic = 2, OpenCLDebugInfo100DebugTypePointer = 3, OpenCLDebugInfo100DebugTypeQualifier = 4, OpenCLDebugInfo100DebugTypeArray = 5, OpenCLDebugInfo100DebugTypeVector = 6, OpenCLDebugInfo100DebugTypedef = 7, OpenCLDebugInfo100DebugTypeFunction = 8, OpenCLDebugInfo100DebugTypeEnum = 9, OpenCLDebugInfo100DebugTypeComposite = 10, OpenCLDebugInfo100DebugTypeMember = 11, OpenCLDebugInfo100DebugTypeInheritance = 12, OpenCLDebugInfo100DebugTypePtrToMember = 13, OpenCLDebugInfo100DebugTypeTemplate = 14, OpenCLDebugInfo100DebugTypeTemplateParameter = 15, OpenCLDebugInfo100DebugTypeTemplateTemplateParameter = 16, OpenCLDebugInfo100DebugTypeTemplateParameterPack = 17, OpenCLDebugInfo100DebugGlobalVariable = 18, OpenCLDebugInfo100DebugFunctionDeclaration = 19, OpenCLDebugInfo100DebugFunction = 20, OpenCLDebugInfo100DebugLexicalBlock = 21, OpenCLDebugInfo100DebugLexicalBlockDiscriminator = 22, OpenCLDebugInfo100DebugScope = 23, OpenCLDebugInfo100DebugNoScope = 24, OpenCLDebugInfo100DebugInlinedAt = 25, OpenCLDebugInfo100DebugLocalVariable = 26, OpenCLDebugInfo100DebugInlinedVariable = 27, OpenCLDebugInfo100DebugDeclare = 28, OpenCLDebugInfo100DebugValue = 29, OpenCLDebugInfo100DebugOperation = 30, OpenCLDebugInfo100DebugExpression = 31, OpenCLDebugInfo100DebugMacroDef = 32, OpenCLDebugInfo100DebugMacroUndef = 33, OpenCLDebugInfo100DebugImportedEntity = 34, OpenCLDebugInfo100DebugSource = 35, OpenCLDebugInfo100DebugModuleINTEL = 36, OpenCLDebugInfo100InstructionsMax = 0x7fffffff }; enum OpenCLDebugInfo100DebugInfoFlags { OpenCLDebugInfo100None = 0x0000, OpenCLDebugInfo100FlagIsProtected = 0x01, OpenCLDebugInfo100FlagIsPrivate = 0x02, OpenCLDebugInfo100FlagIsPublic = 0x03, OpenCLDebugInfo100FlagIsLocal = 0x04, OpenCLDebugInfo100FlagIsDefinition = 0x08, OpenCLDebugInfo100FlagFwdDecl = 0x10, OpenCLDebugInfo100FlagArtificial = 0x20, OpenCLDebugInfo100FlagExplicit = 0x40, OpenCLDebugInfo100FlagPrototyped = 0x80, OpenCLDebugInfo100FlagObjectPointer = 0x100, OpenCLDebugInfo100FlagStaticMember = 0x200, OpenCLDebugInfo100FlagIndirectVariable = 0x400, OpenCLDebugInfo100FlagLValueReference = 0x800, OpenCLDebugInfo100FlagRValueReference = 0x1000, OpenCLDebugInfo100FlagIsOptimized = 0x2000, OpenCLDebugInfo100FlagIsEnumClass = 0x4000, OpenCLDebugInfo100FlagTypePassByValue = 0x8000, OpenCLDebugInfo100FlagTypePassByReference = 0x10000, OpenCLDebugInfo100DebugInfoFlagsMax = 0x7fffffff }; enum OpenCLDebugInfo100DebugBaseTypeAttributeEncoding { OpenCLDebugInfo100Unspecified = 0, OpenCLDebugInfo100Address = 1, OpenCLDebugInfo100Boolean = 2, OpenCLDebugInfo100Float = 3, OpenCLDebugInfo100Signed = 4, OpenCLDebugInfo100SignedChar = 5, OpenCLDebugInfo100Unsigned = 6, OpenCLDebugInfo100UnsignedChar = 7, OpenCLDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff }; enum OpenCLDebugInfo100DebugCompositeType { OpenCLDebugInfo100Class = 0, OpenCLDebugInfo100Structure = 1, OpenCLDebugInfo100Union = 2, OpenCLDebugInfo100DebugCompositeTypeMax = 0x7fffffff }; enum OpenCLDebugInfo100DebugTypeQualifier { OpenCLDebugInfo100ConstType = 0, OpenCLDebugInfo100VolatileType = 1, OpenCLDebugInfo100RestrictType = 2, OpenCLDebugInfo100AtomicType = 3, OpenCLDebugInfo100DebugTypeQualifierMax = 0x7fffffff }; enum OpenCLDebugInfo100DebugOperation { OpenCLDebugInfo100Deref = 0, OpenCLDebugInfo100Plus = 1, OpenCLDebugInfo100Minus = 2, OpenCLDebugInfo100PlusUconst = 3, OpenCLDebugInfo100BitPiece = 4, OpenCLDebugInfo100Swap = 5, OpenCLDebugInfo100Xderef = 6, OpenCLDebugInfo100StackValue = 7, OpenCLDebugInfo100Constu = 8, OpenCLDebugInfo100Fragment = 9, OpenCLDebugInfo100DebugOperationMax = 0x7fffffff }; enum OpenCLDebugInfo100DebugImportedEntity { OpenCLDebugInfo100ImportedModule = 0, OpenCLDebugInfo100ImportedDeclaration = 1, OpenCLDebugInfo100DebugImportedEntityMax = 0x7fffffff }; #ifdef __cplusplus } #endif #endif // SPIRV_UNIFIED1_OpenCLDebugInfo100_H_ spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.debuginfo.grammar.json000066400000000000000000000416561463234063200275270ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2017-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 1, "instructions" : [ { "opname" : "DebugInfoNone", "opcode" : 0 }, { "opname" : "DebugCompilationUnit", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "LiteralInteger", "name" : "'DWARF Version'" } ] }, { "opname" : "DebugTypeBasic", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugBaseTypeAttributeEncoding", "name" : "'Encoding'" } ] }, { "opname" : "DebugTypePointer", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "StorageClass", "name" : "'Storage Class'" }, { "kind" : "DebugInfoFlags", "name" : "'Literal Flags'" } ] }, { "opname" : "DebugTypeQualifier", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "DebugTypeQualifier", "name" : "'Type Qualifier'" } ] }, { "opname" : "DebugTypeArray", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeVector", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } ] }, { "opname" : "DebugTypedef", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugTypeFunction", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "name" : "'Paramter Types'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeEnum", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Underlying Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeComposite", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "DebugCompositeType", "name" : "'Tag'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeMember", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" } ] }, { "opname" : "DebugTypeInheritance", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'Child'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" } ] }, { "opname" : "DebugTypePtrToMember", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'Member Type'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugTypeTemplate", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeTemplateParameter", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Actual Type'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "DebugTypeTemplateTemplateParameter", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Template Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "DebugTypeTemplateParameterPack", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" } ] }, { "opname" : "DebugGlobalVariable", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" } ] }, { "opname" : "DebugFunctionDeclaration", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" } ] }, { "opname" : "DebugFunction", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "LiteralInteger", "name" : "'Scope Line'" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" } ] }, { "opname" : "DebugLexicalBlock", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" } ] }, { "opname" : "DebugLexicalBlockDiscriminator", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "LiteralInteger", "name" : "'Discriminator'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugScope", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" } ] }, { "opname" : "DebugNoScope", "opcode" : 24 }, { "opname" : "DebugInlinedAt", "opcode" : 25, "operands" : [ { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" } ] }, { "opname" : "DebugLocalVariable", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "LiteralInteger", "name" : "'Arg Number'", "quantifier" : "?" } ] }, { "opname" : "DebugInlinedVariable", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Inlined'" } ] }, { "opname" : "DebugDeclare", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'Local Variable'" }, { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Expression'" } ] }, { "opname" : "DebugValue", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Expression'" }, { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" } ] }, { "opname" : "DebugOperation", "opcode" : 30, "operands" : [ { "kind" : "DebugOperation", "name" : "'OpCode'" }, { "kind" : "LiteralInteger", "name" : "'Operands ...'", "quantifier" : "*" } ] }, { "opname" : "DebugExpression", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" } ] }, { "opname" : "DebugMacroDef", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" } ] }, { "opname" : "DebugMacroUndef", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Macro'" } ] } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "DebugInfoFlags", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "FlagIsProtected", "value" : "0x01" }, { "enumerant" : "FlagIsPrivate", "value" : "0x02" }, { "enumerant" : "FlagIsPublic", "value" : "0x03" }, { "enumerant" : "FlagIsLocal", "value" : "0x04" }, { "enumerant" : "FlagIsDefinition", "value" : "0x08" }, { "enumerant" : "FlagFwdDecl", "value" : "0x10" }, { "enumerant" : "FlagArtificial", "value" : "0x20" }, { "enumerant" : "FlagExplicit", "value" : "0x40" }, { "enumerant" : "FlagPrototyped", "value" : "0x80" }, { "enumerant" : "FlagObjectPointer", "value" : "0x100" }, { "enumerant" : "FlagStaticMember", "value" : "0x200" }, { "enumerant" : "FlagIndirectVariable", "value" : "0x400" }, { "enumerant" : "FlagLValueReference", "value" : "0x800" }, { "enumerant" : "FlagRValueReference", "value" : "0x1000" }, { "enumerant" : "FlagIsOptimized", "value" : "0x2000" } ] }, { "category" : "ValueEnum", "kind" : "DebugBaseTypeAttributeEncoding", "enumerants" : [ { "enumerant" : "Unspecified", "value" : "0" }, { "enumerant" : "Address", "value" : "1" }, { "enumerant" : "Boolean", "value" : "2" }, { "enumerant" : "Float", "value" : "4" }, { "enumerant" : "Signed", "value" : "5" }, { "enumerant" : "SignedChar", "value" : "6" }, { "enumerant" : "Unsigned", "value" : "7" }, { "enumerant" : "UnsignedChar", "value" : "8" } ] }, { "category" : "ValueEnum", "kind" : "DebugCompositeType", "enumerants" : [ { "enumerant" : "Class", "value" : "0" }, { "enumerant" : "Structure", "value" : "1" }, { "enumerant" : "Union", "value" : "2" } ] }, { "category" : "ValueEnum", "kind" : "DebugTypeQualifier", "enumerants" : [ { "enumerant" : "ConstType", "value" : "0" }, { "enumerant" : "VolatileType", "value" : "1" }, { "enumerant" : "RestrictType", "value" : "2" } ] }, { "category" : "ValueEnum", "kind" : "DebugOperation", "enumerants" : [ { "enumerant" : "Deref", "value" : "0" }, { "enumerant" : "Plus", "value" : "1" }, { "enumerant" : "Minus", "value" : "2" }, { "enumerant" : "PlusUconst", "value" : "3", "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "BitPiece", "value" : "4", "parameters" : [ { "kind" : "LiteralInteger" }, { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Swap", "value" : "5" }, { "enumerant" : "Xderef", "value" : "6" }, { "enumerant" : "StackValue", "value" : "7" }, { "enumerant" : "Constu", "value" : "8", "parameters" : [ { "kind" : "LiteralInteger" } ] } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.glsl.std.450.grammar.json000066400000000000000000000346331463234063200276230ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "Round", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "RoundEven", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Trunc", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FAbs", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SAbs", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FSign", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SSign", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Floor", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ceil", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fract", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Radians", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "Degrees", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "Sin", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tan", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asin", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acos", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'y_over_x'" } ] }, { "opname" : "Sinh", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Cosh", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Tanh", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Asinh", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Acosh", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atanh", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Atan2", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Pow", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Exp", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Exp2", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Log2", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Sqrt", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "InverseSqrt", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Determinant", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "MatrixInverse", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Modf", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "ModfStruct", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FMin", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMin", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMin", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FMax", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "UMax", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "SMax", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "FClamp", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "UClamp", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "SClamp", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] }, { "opname" : "FMix", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "IMix", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "Step", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "SmoothStep", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Fma", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "Frexp", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "FrexpStruct", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Ldexp", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "PackSnorm4x8", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm4x8", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackSnorm2x16", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackUnorm2x16", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackHalf2x16", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "PackDouble2x32", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "UnpackSnorm2x16", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm2x16", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackHalf2x16", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ] }, { "opname" : "UnpackSnorm4x8", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackUnorm4x8", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "UnpackDouble2x32", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'v'" } ], "capabilities" : [ "Float64" ] }, { "opname" : "Length", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "Distance", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "Cross", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "Normalize", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "FaceForward", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'Nref'" } ] }, { "opname" : "Reflect", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" } ] }, { "opname" : "Refract", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'I'" }, { "kind" : "IdRef", "name" : "'N'" }, { "kind" : "IdRef", "name" : "'eta'" } ] }, { "opname" : "FindILsb", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindSMsb", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "FindUMsb", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ] }, { "opname" : "InterpolateAtCentroid", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtSample", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'sample'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "InterpolateAtOffset", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'offset'" } ], "capabilities" : [ "InterpolationFunction" ] }, { "opname" : "NMin", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NMax", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "NClamp", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minVal'" }, { "kind" : "IdRef", "name" : "'maxVal'" } ] } ] } extinst.nonsemantic.clspvreflection.grammar.json000066400000000000000000000314121463234063200332120ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1{ "revision" : 6, "instructions" : [ { "opname" : "Kernel", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Name" }, { "kind" : "IdRef", "name" : "NumArguments", "quantifier" : "?" }, { "kind" : "IdRef", "name" : "Flags", "quantifier" : "?" }, { "kind" : "IdRef", "name" : "Attributes", "quantifier" : "?" } ] }, { "opname" : "ArgumentInfo", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "Name" }, { "kind" : "IdRef", "name" : "Type Name", "quantifier" : "?" }, { "kind" : "IdRef", "name" : "Address Qualifier", "quantifier" : "?" }, { "kind" : "IdRef", "name" : "Access Qualifier", "quantifier" : "?" }, { "kind" : "IdRef", "name" : "Type Qualifier", "quantifier" : "?" } ] }, { "opname" : "ArgumentStorageBuffer", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentUniform", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentPodStorageBuffer", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentPodUniform", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentPodPushConstant", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentSampledImage", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentStorageImage", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentSampler", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentWorkgroup", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "SpecId" }, { "kind" : "IdRef", "name" : "ElemSize" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "SpecConstantWorkgroupSize", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "X" }, { "kind" : "IdRef", "name" : "Y" }, { "kind" : "IdRef", "name" : "Z" } ] }, { "opname" : "SpecConstantGlobalOffset", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "X" }, { "kind" : "IdRef", "name" : "Y" }, { "kind" : "IdRef", "name" : "Z" } ] }, { "opname" : "SpecConstantWorkDim", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "Dim" } ] }, { "opname" : "PushConstantGlobalOffset", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "PushConstantEnqueuedLocalSize", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "PushConstantGlobalSize", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "PushConstantRegionOffset", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "PushConstantNumWorkgroups", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "PushConstantRegionGroupOffset", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "ConstantDataStorageBuffer", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Data" } ] }, { "opname" : "ConstantDataUniform", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Data" } ] }, { "opname" : "LiteralSampler", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Mask" } ] }, { "opname" : "PropertyRequiredWorkgroupSize", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "X" }, { "kind" : "IdRef", "name" : "Y" }, { "kind" : "IdRef", "name" : "Z" } ] }, { "opname" : "SpecConstantSubgroupMaxSize", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "ArgumentPointerPushConstant", "opcode" : 26, "operands": [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentPointerUniform", "opcode" : 27, "operands": [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ProgramScopeVariablesStorageBuffer", "opcode" : 28, "operands": [ { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Data" } ] }, { "opname" : "ProgramScopeVariablePointerRelocation", "opcode" : 29, "operands": [ { "kind" : "IdRef", "name" : "ObjectOffset" }, { "kind" : "IdRef", "name" : "PointerOffset" }, { "kind" : "IdRef", "name" : "PointerSize" } ] }, { "opname" : "ImageArgumentInfoChannelOrderPushConstant", "opcode" : 30, "operands": [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "ImageArgumentInfoChannelDataTypePushConstant", "opcode" : 31, "operands": [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "ImageArgumentInfoChannelOrderUniform", "opcode" : 32, "operands": [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "ImageArgumentInfoChannelDataTypeUniform", "opcode" : 33, "operands": [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] }, { "opname" : "ArgumentStorageTexelBuffer", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ArgumentUniformTexelBuffer", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "Decl" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } ] }, { "opname" : "ConstantDataPointerPushConstant", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "Offset"}, { "kind" : "IdRef", "name" : "Size"}, { "kind" : "IdRef", "name" : "Data" } ] }, { "opname" : "ProgramScopeVariablePointerPushConstant", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "Offset"}, { "kind" : "IdRef", "name" : "Size"}, { "kind" : "IdRef", "name" : "Data" } ] }, { "opname" : "PrintfInfo", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "PrintfID" }, { "kind" : "IdRef", "name" : "FormatString" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "ArgumentSizes"} ] }, { "opname" : "PrintfBufferStorageBuffer", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "DescriptorSet" }, { "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "BufferSize"} ] }, { "opname" : "PrintfBufferPointerPushConstant", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size"}, { "kind" : "IdRef", "name" : "BufferSize"} ] }, { "opname" : "NormalizedSamplerMaskPushConstant", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Ordinal" }, { "kind" : "IdRef", "name" : "Offset" }, { "kind" : "IdRef", "name" : "Size" } ] } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "KernelPropertyFlags", "enumerants" : [ { "enumerant" : "None", "value" : "0x0" }, { "enumerant" : "MayUsePrintf", "value" : "0x1" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json000066400000000000000000000001551463234063200321620ustar00rootroot00000000000000{ "revision" : 1, "instructions" : [ { "opname" : "DebugBreak", "opcode" : 1 } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json000066400000000000000000000003761463234063200324050ustar00rootroot00000000000000{ "revision" : 1, "instructions" : [ { "opname" : "DebugPrintf", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'Format'" }, { "kind" : "IdRef", "quantifier" : "*" } ] } ] } extinst.nonsemantic.shader.debuginfo.100.grammar.json000066400000000000000000000503201463234063200335150ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1{ "copyright" : [ "Copyright (c) 2018-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 6, "instructions" : [ { "opname" : "DebugInfoNone", "opcode" : 0 }, { "opname" : "DebugCompilationUnit", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'Version'" }, { "kind" : "IdRef", "name" : "'DWARF Version'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Language'" } ] }, { "opname" : "DebugTypeBasic", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "IdRef", "name" : "'Encoding'" }, { "kind" : "IdRef", "name" : "'Flags'" } ] }, { "opname" : "DebugTypePointer", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Storage Class'" }, { "kind" : "IdRef", "name" : "'Flags'" } ] }, { "opname" : "DebugTypeQualifier", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Type Qualifier'" } ] }, { "opname" : "DebugTypeArray", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeVector", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Component Count'" } ] }, { "opname" : "DebugTypedef", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugTypeFunction", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "name" : "'Parameter Types'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeEnum", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Underlying Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeComposite", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Tag'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeMember", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" } ] }, { "opname" : "DebugTypeInheritance", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "IdRef", "name" : "'Flags'" } ] }, { "opname" : "DebugTypePtrToMember", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'Member Type'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugTypeTemplate", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeTemplateParameter", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Actual Type'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" } ] }, { "opname" : "DebugTypeTemplateTemplateParameter", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Template Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" } ] }, { "opname" : "DebugTypeTemplateParameterPack", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" } ] }, { "opname" : "DebugGlobalVariable", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" } ] }, { "opname" : "DebugFunctionDeclaration", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Flags'" } ] }, { "opname" : "DebugFunction", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Scope Line'" }, { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" } ] }, { "opname" : "DebugLexicalBlock", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" } ] }, { "opname" : "DebugLexicalBlockDiscriminator", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Discriminator'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugScope", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" } ] }, { "opname" : "DebugNoScope", "opcode" : 24 }, { "opname" : "DebugInlinedAt", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" } ] }, { "opname" : "DebugLocalVariable", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Arg Number'", "quantifier" : "?" } ] }, { "opname" : "DebugInlinedVariable", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Inlined'" } ] }, { "opname" : "DebugDeclare", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'Local Variable'" }, { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Expression'" }, { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" } ] }, { "opname" : "DebugValue", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'Local Variable'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Expression'" }, { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" } ] }, { "opname" : "DebugOperation", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'OpCode'" }, { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" } ] }, { "opname" : "DebugExpression", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" } ] }, { "opname" : "DebugMacroDef", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" } ] }, { "opname" : "DebugMacroUndef", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Macro'" } ] }, { "opname" : "DebugImportedEntity", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Tag'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Entity'" }, { "kind" : "IdRef", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugSource", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" } ] }, { "opname" : "DebugFunctionDefinition", "opcode" : 101, "operands" : [ { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "name" : "'Definition'" } ] }, { "opname" : "DebugSourceContinued", "opcode" : 102, "operands" : [ { "kind" : "IdRef", "name" : "'Text'" } ] }, { "opname" : "DebugLine", "opcode" : 103, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Line Start'" }, { "kind" : "IdRef", "name" : "'Line End'" }, { "kind" : "IdRef", "name" : "'Column Start'" }, { "kind" : "IdRef", "name" : "'Column End'" } ] }, { "opname" : "DebugNoLine", "opcode" : 104 }, { "opname" : "DebugBuildIdentifier", "opcode" : 105, "operands" : [ { "kind" : "IdRef", "name" : "'Identifier'" }, { "kind" : "IdRef", "name" : "'Flags'" } ] }, { "opname" : "DebugStoragePath", "opcode" : 106, "operands" : [ { "kind" : "IdRef", "name" : "'Path'" } ] }, { "opname" : "DebugEntryPoint", "opcode" : 107, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "IdRef", "name" : "'Compilation Unit'" }, { "kind" : "IdRef", "name" : "'Compiler Signature'" }, { "kind" : "IdRef", "name" : "'Command-line Arguments'" } ] }, { "opname" : "DebugTypeMatrix", "opcode" : 108, "operands" : [ { "kind" : "IdRef", "name" : "'Vector Type'" }, { "kind" : "IdRef", "name" : "'Vector Count'" }, { "kind" : "IdRef", "name" : "'Column Major'" } ] } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "DebugInfoFlags", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "FlagIsProtected", "value" : "0x01" }, { "enumerant" : "FlagIsPrivate", "value" : "0x02" }, { "enumerant" : "FlagIsPublic", "value" : "0x03" }, { "enumerant" : "FlagIsLocal", "value" : "0x04" }, { "enumerant" : "FlagIsDefinition", "value" : "0x08" }, { "enumerant" : "FlagFwdDecl", "value" : "0x10" }, { "enumerant" : "FlagArtificial", "value" : "0x20" }, { "enumerant" : "FlagExplicit", "value" : "0x40" }, { "enumerant" : "FlagPrototyped", "value" : "0x80" }, { "enumerant" : "FlagObjectPointer", "value" : "0x100" }, { "enumerant" : "FlagStaticMember", "value" : "0x200" }, { "enumerant" : "FlagIndirectVariable", "value" : "0x400" }, { "enumerant" : "FlagLValueReference", "value" : "0x800" }, { "enumerant" : "FlagRValueReference", "value" : "0x1000" }, { "enumerant" : "FlagIsOptimized", "value" : "0x2000" }, { "enumerant" : "FlagIsEnumClass", "value" : "0x4000" }, { "enumerant" : "FlagTypePassByValue", "value" : "0x8000" }, { "enumerant" : "FlagTypePassByReference", "value" : "0x10000" }, { "enumerant" : "FlagUnknownPhysicalLayout", "value" : "0x20000" } ] }, { "category" : "BitEnum", "kind" : "BuildIdentifierFlags", "enumerants" : [ { "enumerant" : "IdentifierPossibleDuplicates", "value" : "0x01" } ] }, { "category" : "ValueEnum", "kind" : "DebugBaseTypeAttributeEncoding", "enumerants" : [ { "enumerant" : "Unspecified", "value" : "0" }, { "enumerant" : "Address", "value" : "1" }, { "enumerant" : "Boolean", "value" : "2" }, { "enumerant" : "Float", "value" : "3" }, { "enumerant" : "Signed", "value" : "4" }, { "enumerant" : "SignedChar", "value" : "5" }, { "enumerant" : "Unsigned", "value" : "6" }, { "enumerant" : "UnsignedChar", "value" : "7" } ] }, { "category" : "ValueEnum", "kind" : "DebugCompositeType", "enumerants" : [ { "enumerant" : "Class", "value" : "0" }, { "enumerant" : "Structure", "value" : "1" }, { "enumerant" : "Union", "value" : "2" } ] }, { "category" : "ValueEnum", "kind" : "DebugTypeQualifier", "enumerants" : [ { "enumerant" : "ConstType", "value" : "0" }, { "enumerant" : "VolatileType", "value" : "1" }, { "enumerant" : "RestrictType", "value" : "2" }, { "enumerant" : "AtomicType", "value" : "3" } ] }, { "category" : "ValueEnum", "kind" : "DebugOperation", "enumerants" : [ { "enumerant" : "Deref", "value" : "0" }, { "enumerant" : "Plus", "value" : "1" }, { "enumerant" : "Minus", "value" : "2" }, { "enumerant" : "PlusUconst", "value" : "3", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "BitPiece", "value" : "4", "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } ] }, { "enumerant" : "Swap", "value" : "5" }, { "enumerant" : "Xderef", "value" : "6" }, { "enumerant" : "StackValue", "value" : "7" }, { "enumerant" : "Constu", "value" : "8", "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Fragment", "value" : "9", "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } ] } ] }, { "category" : "ValueEnum", "kind" : "DebugImportedEntity", "enumerants" : [ { "enumerant" : "ImportedModule", "value" : "0" }, { "enumerant" : "ImportedDeclaration", "value" : "1" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json000066400000000000000000000133361463234063200331320ustar00rootroot00000000000000{ "revision" : 2, "instructions" : [ { "opname" : "Configuration", "opcode" : 1, "operands" : [ {"kind" : "LiteralString", "name" : "enabledExtensionNames" }, {"kind" : "LiteralInteger", "name" : "specializationInfoDataSize" }, {"kind" : "LiteralString", "name" : "specializationInfoData" }, {"kind" : "LiteralString", "name" : "shaderName" }, {"kind" : "LiteralString", "name" : "EntryPoint" }, {"kind" : "LiteralInteger", "name" : "groupCountX" }, {"kind" : "LiteralInteger", "name" : "groupCountY" }, {"kind" : "LiteralInteger", "name" : "groupCountZ" }, {"kind" : "LiteralInteger", "name" : "dispatchId" } ] }, { "opname" : "StartCounter", "opcode" : 2, "operands" : [ {"kind" : "LiteralString", "name" : "name" } ] }, { "opname" : "StopCounter", "opcode" : 3, "operands" : [ {"kind" : "IdRef", "name" : "counter" } ] }, { "opname" : "PushConstants", "opcode" : 4, "operands" : [ { "kind" : "LiteralInteger", "name" : "offset" }, { "kind" : "LiteralInteger", "name" : "size" }, { "kind" : "LiteralString", "name" : "pValues" }, { "kind" : "LiteralInteger", "name" : "stageFlags" } ] }, { "opname" : "SpecializationMapEntry", "opcode" : 5, "operands" : [ {"kind" : "LiteralInteger", "name" : "constantID" }, {"kind" : "LiteralInteger", "name" : "offset" }, {"kind" : "LiteralInteger", "name" : "size" } ] }, { "opname" : "DescriptorSetBuffer", "opcode" : 6, "operands" : [ { "kind" : "LiteralInteger", "name" : "ds" }, { "kind" : "LiteralInteger", "name" : "binding" }, { "kind" : "LiteralInteger", "name" : "type" }, { "kind" : "LiteralInteger", "name" : "flags" }, { "kind" : "LiteralInteger", "name" : "queueFamilyIndexCount" }, { "kind" : "LiteralInteger", "name" : "sharingMode" }, { "kind" : "LiteralInteger", "name" : "size" }, { "kind" : "LiteralInteger", "name" : "usage" }, { "kind" : "LiteralInteger", "name" : "range" }, { "kind" : "LiteralInteger", "name" : "offset" }, { "kind" : "LiteralInteger", "name" : "memorySize" }, { "kind" : "LiteralInteger", "name" : "memoryType" }, { "kind" : "LiteralInteger", "name" : "bindOffset" } ] }, { "opname" : "DescriptorSetImage", "opcode" : 7, "operands" : [ { "kind" : "LiteralInteger", "name" : "ds" }, { "kind" : "LiteralInteger", "name" : "binding" }, { "kind" : "LiteralInteger", "name" : "type" }, { "kind" : "LiteralInteger", "name" : "imageLayout"}, { "kind" : "LiteralInteger", "name" : "imageFlags"}, { "kind" : "LiteralInteger", "name" : "imageType"}, { "kind" : "LiteralInteger", "name" : "imageformat"}, { "kind" : "LiteralInteger", "name" : "width"}, { "kind" : "LiteralInteger", "name" : "height"}, { "kind" : "LiteralInteger", "name" : "depth"}, { "kind" : "LiteralInteger", "name" : "mipLevels"}, { "kind" : "LiteralInteger", "name" : "arrayLayers"}, { "kind" : "LiteralInteger", "name" : "samples"}, { "kind" : "LiteralInteger", "name" : "tiling"}, { "kind" : "LiteralInteger", "name" : "usage"}, { "kind" : "LiteralInteger", "name" : "sharingMode"}, { "kind" : "LiteralInteger", "name" : "queueFamilyIndexCount"}, { "kind" : "LiteralInteger", "name" : "initialLayout"}, { "kind" : "LiteralInteger", "name" : "aspectMask"}, { "kind" : "LiteralInteger", "name" : "baseMipLevel"}, { "kind" : "LiteralInteger", "name" : "levelCount"}, { "kind" : "LiteralInteger", "name" : "baseArrayLayer"}, { "kind" : "LiteralInteger", "name" : "layerCount"}, { "kind" : "LiteralInteger", "name" : "viewFlags"}, { "kind" : "LiteralInteger", "name" : "viewType"}, { "kind" : "LiteralInteger", "name" : "viewFormat"}, { "kind" : "LiteralInteger", "name" : "component_a"}, { "kind" : "LiteralInteger", "name" : "component_b"}, { "kind" : "LiteralInteger", "name" : "component_g"}, { "kind" : "LiteralInteger", "name" : "component_r"}, { "kind" : "LiteralInteger", "name" : "memorySize" }, { "kind" : "LiteralInteger", "name" : "memoryType" }, { "kind" : "LiteralInteger", "name" : "bindOffset"} ] }, { "opname" : "DescriptorSetSampler", "opcode" : 8, "operands" : [ { "kind" : "LiteralInteger", "name" : "ds" }, { "kind" : "LiteralInteger", "name" : "binding" }, { "kind" : "LiteralInteger", "name" : "type" }, { "kind" : "LiteralInteger", "name" : "flags"}, { "kind" : "LiteralInteger", "name" : "magFilter"}, { "kind" : "LiteralInteger", "name" : "minFilter"}, { "kind" : "LiteralInteger", "name" : "mipmapMode"}, { "kind" : "LiteralInteger", "name" : "addressModeU"}, { "kind" : "LiteralInteger", "name" : "addressModeV"}, { "kind" : "LiteralInteger", "name" : "addressModeW"}, { "kind" : "LiteralFloat", "name" : "mipLodBias"}, { "kind" : "LiteralInteger", "name" : "anisotropyEnable"}, { "kind" : "LiteralFloat", "name" : "maxAnisotropy"}, { "kind" : "LiteralInteger", "name" : "compareEnable"}, { "kind" : "LiteralInteger", "name" : "compareOp"}, { "kind" : "LiteralFloat", "name" : "minLod"}, { "kind" : "LiteralFloat", "name" : "maxLod"}, { "kind" : "LiteralInteger", "name" : "borderColor"}, { "kind" : "LiteralInteger", "name" : "unnormalizedCoordinates"} ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json000066400000000000000000000465011463234063200312770ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2018-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 200, "revision" : 2, "instructions" : [ { "opname" : "DebugInfoNone", "opcode" : 0 }, { "opname" : "DebugCompilationUnit", "opcode" : 1, "operands" : [ { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "LiteralInteger", "name" : "'DWARF Version'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "SourceLanguage", "name" : "'Language'" } ] }, { "opname" : "DebugTypeBasic", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugBaseTypeAttributeEncoding", "name" : "'Encoding'" } ] }, { "opname" : "DebugTypePointer", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "StorageClass", "name" : "'Storage Class'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" } ] }, { "opname" : "DebugTypeQualifier", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "DebugTypeQualifier", "name" : "'Type Qualifier'" } ] }, { "opname" : "DebugTypeArray", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeVector", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } ] }, { "opname" : "DebugTypedef", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Base Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugTypeFunction", "opcode" : 8, "operands" : [ { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "name" : "'Parameter Types'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeEnum", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Underlying Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeComposite", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "DebugCompositeType", "name" : "'Tag'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeMember", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" } ] }, { "opname" : "DebugTypeInheritance", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'Child'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" } ] }, { "opname" : "DebugTypePtrToMember", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'Member Type'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugTypeTemplate", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" } ] }, { "opname" : "DebugTypeTemplateParameter", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Actual Type'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "DebugTypeTemplateTemplateParameter", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Template Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ] }, { "opname" : "DebugTypeTemplateParameterPack", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" } ] }, { "opname" : "DebugGlobalVariable", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" } ] }, { "opname" : "DebugFunctionDeclaration", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" } ] }, { "opname" : "DebugFunction", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Linkage Name'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "LiteralInteger", "name" : "'Scope Line'" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" } ] }, { "opname" : "DebugLexicalBlock", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" } ] }, { "opname" : "DebugLexicalBlockDiscriminator", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Discriminator'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugScope", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" } ] }, { "opname" : "DebugNoScope", "opcode" : 24 }, { "opname" : "DebugInlinedAt", "opcode" : 25, "operands" : [ { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" } ] }, { "opname" : "DebugLocalVariable", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "DebugInfoFlags", "name" : "'Flags'" }, { "kind" : "LiteralInteger", "name" : "'Arg Number'", "quantifier" : "?" } ] }, { "opname" : "DebugInlinedVariable", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Inlined'" } ] }, { "opname" : "DebugDeclare", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'Local Variable'" }, { "kind" : "IdRef", "name" : "'Variable'" }, { "kind" : "IdRef", "name" : "'Expression'" } ] }, { "opname" : "DebugValue", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'Local Variable'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Expression'" }, { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" } ] }, { "opname" : "DebugOperation", "opcode" : 30, "operands" : [ { "kind" : "DebugOperation", "name" : "'OpCode'" }, { "kind" : "LiteralInteger", "name" : "'Operands ...'", "quantifier" : "*" } ] }, { "opname" : "DebugExpression", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" } ] }, { "opname" : "DebugMacroDef", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" } ] }, { "opname" : "DebugMacroUndef", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'Macro'" } ] }, { "opname" : "DebugImportedEntity", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "DebugImportedEntity", "name" : "'Tag'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Entity'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" }, { "kind" : "IdRef", "name" : "'Parent'" } ] }, { "opname" : "DebugSource", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" } ] }, { "opname" : "DebugModuleINTEL", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'Name'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Parent'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "IdRef", "name" : "'ConfigurationMacros'" }, { "kind" : "IdRef", "name" : "'IncludePath'" }, { "kind" : "IdRef", "name" : "'APINotesFile'" }, { "kind" : "LiteralInteger", "name" : "'IsDeclaration'" } ], "capability" : "DebugInfoModuleINTEL" } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "DebugInfoFlags", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "FlagIsProtected", "value" : "0x01" }, { "enumerant" : "FlagIsPrivate", "value" : "0x02" }, { "enumerant" : "FlagIsPublic", "value" : "0x03" }, { "enumerant" : "FlagIsLocal", "value" : "0x04" }, { "enumerant" : "FlagIsDefinition", "value" : "0x08" }, { "enumerant" : "FlagFwdDecl", "value" : "0x10" }, { "enumerant" : "FlagArtificial", "value" : "0x20" }, { "enumerant" : "FlagExplicit", "value" : "0x40" }, { "enumerant" : "FlagPrototyped", "value" : "0x80" }, { "enumerant" : "FlagObjectPointer", "value" : "0x100" }, { "enumerant" : "FlagStaticMember", "value" : "0x200" }, { "enumerant" : "FlagIndirectVariable", "value" : "0x400" }, { "enumerant" : "FlagLValueReference", "value" : "0x800" }, { "enumerant" : "FlagRValueReference", "value" : "0x1000" }, { "enumerant" : "FlagIsOptimized", "value" : "0x2000" }, { "enumerant" : "FlagIsEnumClass", "value" : "0x4000" }, { "enumerant" : "FlagTypePassByValue", "value" : "0x8000" }, { "enumerant" : "FlagTypePassByReference", "value" : "0x10000" } ] }, { "category" : "ValueEnum", "kind" : "DebugBaseTypeAttributeEncoding", "enumerants" : [ { "enumerant" : "Unspecified", "value" : "0" }, { "enumerant" : "Address", "value" : "1" }, { "enumerant" : "Boolean", "value" : "2" }, { "enumerant" : "Float", "value" : "3" }, { "enumerant" : "Signed", "value" : "4" }, { "enumerant" : "SignedChar", "value" : "5" }, { "enumerant" : "Unsigned", "value" : "6" }, { "enumerant" : "UnsignedChar", "value" : "7" } ] }, { "category" : "ValueEnum", "kind" : "DebugCompositeType", "enumerants" : [ { "enumerant" : "Class", "value" : "0" }, { "enumerant" : "Structure", "value" : "1" }, { "enumerant" : "Union", "value" : "2" } ] }, { "category" : "ValueEnum", "kind" : "DebugTypeQualifier", "enumerants" : [ { "enumerant" : "ConstType", "value" : "0" }, { "enumerant" : "VolatileType", "value" : "1" }, { "enumerant" : "RestrictType", "value" : "2" }, { "enumerant" : "AtomicType", "value" : "3" } ] }, { "category" : "ValueEnum", "kind" : "DebugOperation", "enumerants" : [ { "enumerant" : "Deref", "value" : "0" }, { "enumerant" : "Plus", "value" : "1" }, { "enumerant" : "Minus", "value" : "2" }, { "enumerant" : "PlusUconst", "value" : "3", "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "BitPiece", "value" : "4", "parameters" : [ { "kind" : "LiteralInteger" }, { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Swap", "value" : "5" }, { "enumerant" : "Xderef", "value" : "6" }, { "enumerant" : "StackValue", "value" : "7" }, { "enumerant" : "Constu", "value" : "8", "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Fragment", "value" : "9", "parameters" : [ { "kind" : "LiteralInteger" }, { "kind" : "LiteralInteger" } ] } ] }, { "category" : "ValueEnum", "kind" : "DebugImportedEntity", "enumerants" : [ { "enumerant" : "ImportedModule", "value" : "0" }, { "enumerant" : "ImportedDeclaration", "value" : "1" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.opencl.std.100.grammar.json000066400000000000000000000713001463234063200301220ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "version" : 100, "revision" : 2, "instructions" : [ { "opname" : "acos", "opcode" : 0, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acosh", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "acospi", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asin", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinh", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "asinpi", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanh", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atanpi", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "atan2pi", "opcode" : 10, "operands" : [ { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cbrt", "opcode" : 11, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ceil", "opcode" : 12, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "copysign", "opcode" : 13, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "cos", "opcode" : 14, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cosh", "opcode" : 15, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cospi", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erfc", "opcode" : 17, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "erf", "opcode" : 18, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp", "opcode" : 19, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp2", "opcode" : 20, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "exp10", "opcode" : 21, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "expm1", "opcode" : 22, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fabs", "opcode" : 23, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fdim", "opcode" : 24, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "floor", "opcode" : 25, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "fma", "opcode" : 26, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fmax", "opcode" : 27, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin", "opcode" : 28, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmod", "opcode" : 29, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fract", "opcode" : 30, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'ptr'" } ] }, { "opname" : "frexp", "opcode" : 31, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'exp'" } ] }, { "opname" : "hypot", "opcode" : 32, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "ilogb", "opcode" : 33, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ldexp", "opcode" : 34, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'k'" } ] }, { "opname" : "lgamma", "opcode" : 35, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "lgamma_r", "opcode" : 36, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'signp'" } ] }, { "opname" : "log", "opcode" : 37, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log2", "opcode" : 38, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log10", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "log1p", "opcode" : 40, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "logb", "opcode" : 41, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "mad", "opcode" : 42, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "maxmag", "opcode" : 43, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "minmag", "opcode" : 44, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "modf", "opcode" : 45, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'iptr'" } ] }, { "opname" : "nan", "opcode" : 46, "operands" : [ { "kind" : "IdRef", "name" : "'nancode'" } ] }, { "opname" : "nextafter", "opcode" : 47, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "pow", "opcode" : 48, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y" } ] }, { "opname" : "pown", "opcode" : 49, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "powr", "opcode" : 50, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remainder", "opcode" : 51, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "remquo", "opcode" : 52, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'quo'" } ] }, { "opname" : "rint", "opcode" : 53, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rootn", "opcode" : 54, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "round", "opcode" : 55, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "rsqrt", "opcode" : 56, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sin", "opcode" : 57, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sincos", "opcode" : 58, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'cosval'" } ] }, { "opname" : "sinh", "opcode" : 59, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sinpi", "opcode" : 60, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sqrt", "opcode" : 61, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tan", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanh", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tanpi", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "tgamma", "opcode" : 65, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "trunc", "opcode" : 66, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_cos", "opcode" : 67, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_divide", "opcode" : 68, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_exp", "opcode" : 69, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp2", "opcode" : 70, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_exp10", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log2", "opcode" : 73, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_log10", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_powr", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "half_recip", "opcode" : 76, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_rsqrt", "opcode" : 77, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sin", "opcode" : 78, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_sqrt", "opcode" : 79, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "half_tan", "opcode" : 80, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_cos", "opcode" : 81, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_divide", "opcode" : 82, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_exp", "opcode" : 83, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp2", "opcode" : 84, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_exp10", "opcode" : 85, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log", "opcode" : 86, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log2", "opcode" : 87, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_log10", "opcode" : 88, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_powr", "opcode" : 89, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "native_recip", "opcode" : 90, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_rsqrt", "opcode" : 91, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sin", "opcode" : 92, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_sqrt", "opcode" : 93, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "native_tan", "opcode" : 94, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs", "opcode" : 141, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_abs_diff", "opcode" : 142, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_add_sat", "opcode" : 143, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_add_sat", "opcode" : 144, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_hadd", "opcode" : 145, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_hadd", "opcode" : 146, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_rhadd", "opcode" : 147, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_rhadd", "opcode" : 148, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_clamp", "opcode" : 149, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "u_clamp", "opcode" : 150, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "clz", "opcode" : 151, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "ctz", "opcode" : 152, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad_hi", "opcode" : 153, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "u_mad_sat", "opcode" : 154, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mad_sat", "opcode" : 155, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_max", "opcode" : 156, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_max", "opcode" : 157, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_min", "opcode" : 158, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_min", "opcode" : 159, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "s_mul_hi", "opcode" : 160, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "rotate", "opcode" : 161, "operands" : [ { "kind" : "IdRef", "name" : "'v'" }, { "kind" : "IdRef", "name" : "'i'" } ] }, { "opname" : "s_sub_sat", "opcode" : 162, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_sub_sat", "opcode" : 163, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_upsample", "opcode" : 164, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "s_upsample", "opcode" : 165, "operands" : [ { "kind" : "IdRef", "name" : "'hi'" }, { "kind" : "IdRef", "name" : "'lo'" } ] }, { "opname" : "popcount", "opcode" : 166, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "s_mad24", "opcode" : 167, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "u_mad24", "opcode" : 168, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ] }, { "opname" : "s_mul24", "opcode" : 169, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul24", "opcode" : 170, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_abs", "opcode" : 201, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "u_abs_diff", "opcode" : 202, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mul_hi", "opcode" : 203, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "u_mad_hi", "opcode" : 204, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "fclamp", "opcode" : 95, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'minval'" }, { "kind" : "IdRef", "name" : "'maxval'" } ] }, { "opname" : "degrees", "opcode" :96, "operands" : [ { "kind" : "IdRef", "name" : "'radians'" } ] }, { "opname" : "fmax_common", "opcode" : 97, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "fmin_common", "opcode" : 98, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ] }, { "opname" : "mix", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'a'" } ] }, { "opname" : "radians", "opcode" : 100, "operands" : [ { "kind" : "IdRef", "name" : "'degrees'" } ] }, { "opname" : "step", "opcode" : 101, "operands" : [ { "kind" : "IdRef", "name" : "'edge'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "smoothstep", "opcode" : 102, "operands" : [ { "kind" : "IdRef", "name" : "'edge0'" }, { "kind" : "IdRef", "name" : "'edge1'" }, { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "sign", "opcode" : 103, "operands" : [ { "kind" : "IdRef", "name" : "'x'" } ] }, { "opname" : "cross", "opcode" : 104, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "distance", "opcode" : 105, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "length", "opcode" : 106, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "normalize", "opcode" : 107, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_distance", "opcode" : 108, "operands" : [ { "kind" : "IdRef", "name" : "'p0'" }, { "kind" : "IdRef", "name" : "'p1'" } ] }, { "opname" : "fast_length", "opcode" : 109, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "fast_normalize", "opcode" : 110, "operands" : [ { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "bitselect", "opcode" : 186, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "select", "opcode" : 187, "operands" : [ { "kind" : "IdRef", "name" : "'a'" }, { "kind" : "IdRef", "name" : "'b'" }, { "kind" : "IdRef", "name" : "'c'" } ] }, { "opname" : "vloadn", "opcode" : 171, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstoren", "opcode" : 172, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_half", "opcode" : 173, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vload_halfn", "opcode" : 174, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstore_half", "opcode" : 175, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_half_r", "opcode" : 176, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vstore_halfn", "opcode" : 177, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstore_halfn_r", "opcode" : 178, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "vloada_halfn", "opcode" : 179, "operands" : [ { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "LiteralInteger", "name" : "'n'" } ] }, { "opname" : "vstorea_halfn", "opcode" : 180, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" } ] }, { "opname" : "vstorea_halfn_r", "opcode" : 181, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" }, { "kind" : "IdRef", "name" : "'p'" }, { "kind" : "FPRoundingMode", "name" : "'mode'" } ] }, { "opname" : "shuffle", "opcode" : 182, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "shuffle2", "opcode" : 183, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'shuffle mask'" } ] }, { "opname" : "printf", "opcode" : 184, "operands" : [ { "kind" : "IdRef", "name" : "'format'" }, { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" } ] }, { "opname" : "prefetch", "opcode" : 185, "operands" : [ { "kind" : "IdRef", "name" : "'ptr'" }, { "kind" : "IdRef", "name" : "'num elements'" } ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json000066400000000000000000000010271463234063200311310ustar00rootroot00000000000000{ "revision" : 2, "instructions" : [ { "opname" : "CubeFaceIndexAMD", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'P'" } ], "extensions" : [ "SPV_AMD_gcn_shader" ] }, { "opname" : "CubeFaceCoordAMD", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'P'" } ], "extensions" : [ "SPV_AMD_gcn_shader" ] }, { "opname" : "TimeAMD", "opcode" : 3, "extensions" : [ "SPV_AMD_gcn_shader" ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json000066400000000000000000000020511463234063200316350ustar00rootroot00000000000000{ "revision" : 5, "instructions" : [ { "opname" : "SwizzleInvocationsAMD", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'offset'" } ], "extensions" : [ "SPV_AMD_shader_ballot" ] }, { "opname" : "SwizzleInvocationsMaskedAMD", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'data'" }, { "kind" : "IdRef", "name" : "'mask'" } ], "extensions" : [ "SPV_AMD_shader_ballot" ] }, { "opname" : "WriteInvocationAMD", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'inputValue'" }, { "kind" : "IdRef", "name" : "'writeValue'" }, { "kind" : "IdRef", "name" : "'invocationIndex'" } ], "extensions" : [ "SPV_AMD_shader_ballot" ] }, { "opname" : "MbcntAMD", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'mask'" } ], "extensions" : [ "SPV_AMD_shader_ballot" ] } ] } extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json000066400000000000000000000005111463234063200354120ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1{ "revision" : 4, "instructions" : [ { "opname" : "InterpolateAtVertexAMD", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'interpolant'" }, { "kind" : "IdRef", "name" : "'vertexIdx'" } ], "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ] } ] } extinst.spv-amd-shader-trinary-minmax.grammar.json000066400000000000000000000050741463234063200332700ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1{ "revision" : 4, "instructions" : [ { "opname" : "FMin3AMD", "opcode" : 1, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "UMin3AMD", "opcode" : 2, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "SMin3AMD", "opcode" : 3, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "FMax3AMD", "opcode" : 4, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "UMax3AMD", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "SMax3AMD", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "FMid3AMD", "opcode" : 7, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "UMid3AMD", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] }, { "opname" : "SMid3AMD", "opcode" : 9, "operands" : [ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" }, { "kind" : "IdRef", "name" : "'z'" } ], "extensions" : [ "SPV_AMD_shader_trinary_minmax" ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.bf000066400000000000000000002371401463234063200232170ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C#, D, Beef // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL // - Beef will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. namespace Spv { using System; public static class Specification { public const uint32 MagicNumber = 0x07230203; public const uint32 Version = 0x00010600; public const uint32 Revision = 1; public const uint32 OpCodeMask = 0xffff; public const uint32 WordCountShift = 16; [AllowDuplicates, CRepr] public enum SourceLanguage { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, HERO_C = 8, NZSL = 9, WGSL = 10, Slang = 11, Zig = 12, } [AllowDuplicates, CRepr] public enum ExecutionModel { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, TaskNV = 5267, MeshNV = 5268, RayGenerationKHR = 5313, RayGenerationNV = 5313, IntersectionKHR = 5314, IntersectionNV = 5314, AnyHitKHR = 5315, AnyHitNV = 5315, ClosestHitKHR = 5316, ClosestHitNV = 5316, MissKHR = 5317, MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, TaskEXT = 5364, MeshEXT = 5365, } [AllowDuplicates, CRepr] public enum AddressingModel { Logical = 0, Physical32 = 1, Physical64 = 2, PhysicalStorageBuffer64 = 5348, PhysicalStorageBuffer64EXT = 5348, } [AllowDuplicates, CRepr] public enum MemoryModel { Simple = 0, GLSL450 = 1, OpenCL = 2, Vulkan = 3, VulkanKHR = 3, } [AllowDuplicates, CRepr] public enum ExecutionMode { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, NonCoherentColorAttachmentReadEXT = 4169, NonCoherentDepthAttachmentReadEXT = 4170, NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, DenormFlushToZero = 4460, SignedZeroInfNanPreserve = 4461, RoundingModeRTE = 4462, RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, CoalescingAMDX = 5069, MaxNodeRecursionAMDX = 5071, StaticNumWorkgroupsAMDX = 5072, ShaderIndexAMDX = 5073, MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, QuadDerivativesKHR = 5088, RequireFullQuadsKHR = 5089, OutputLinesEXT = 5269, OutputLinesNV = 5269, OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, SampleInterlockOrderedEXT = 5368, SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, FloatingPointModeALTINTEL = 5622, FloatingPointModeIEEEINTEL = 5623, MaxWorkgroupSizeINTEL = 5893, MaxWorkDimINTEL = 5894, NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, MaximallyReconvergesKHR = 6023, FPFastMathDefault = 6028, StreamingInterfaceINTEL = 6154, RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, MaximumRegistersINTEL = 6461, MaximumRegistersIdINTEL = 6462, NamedMaximumRegistersINTEL = 6463, } [AllowDuplicates, CRepr] public enum StorageClass { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, TileImageEXT = 4172, NodePayloadAMDX = 5068, NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, IncomingCallableDataNV = 5329, RayPayloadKHR = 5338, RayPayloadNV = 5338, HitAttributeKHR = 5339, HitAttributeNV = 5339, IncomingRayPayloadKHR = 5342, IncomingRayPayloadNV = 5342, ShaderRecordBufferKHR = 5343, ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, } [AllowDuplicates, CRepr] public enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, TileImageDataEXT = 4173, } [AllowDuplicates, CRepr] public enum SamplerAddressingMode { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, } [AllowDuplicates, CRepr] public enum SamplerFilterMode { Nearest = 0, Linear = 1, } [AllowDuplicates, CRepr] public enum ImageFormat { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, R64ui = 40, R64i = 41, } [AllowDuplicates, CRepr] public enum ImageChannelOrder { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, } [AllowDuplicates, CRepr] public enum ImageChannelDataType { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, UnsignedIntRaw10EXT = 19, UnsignedIntRaw12EXT = 20, } [AllowDuplicates, CRepr] public enum ImageOperandsShift { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, MakeTexelAvailable = 8, MakeTexelAvailableKHR = 8, MakeTexelVisible = 9, MakeTexelVisibleKHR = 9, NonPrivateTexel = 10, NonPrivateTexelKHR = 10, VolatileTexel = 11, VolatileTexelKHR = 11, SignExtend = 12, ZeroExtend = 13, Nontemporal = 14, Offsets = 16, } [AllowDuplicates, CRepr] public enum ImageOperandsMask { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, MakeTexelAvailable = 0x00000100, MakeTexelAvailableKHR = 0x00000100, MakeTexelVisible = 0x00000200, MakeTexelVisibleKHR = 0x00000200, NonPrivateTexel = 0x00000400, NonPrivateTexelKHR = 0x00000400, VolatileTexel = 0x00000800, VolatileTexelKHR = 0x00000800, SignExtend = 0x00001000, ZeroExtend = 0x00002000, Nontemporal = 0x00004000, Offsets = 0x00010000, } [AllowDuplicates, CRepr] public enum FPFastMathModeShift { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, AllowContract = 16, AllowContractFastINTEL = 16, AllowReassoc = 17, AllowReassocINTEL = 17, AllowTransform = 18, } [AllowDuplicates, CRepr] public enum FPFastMathModeMask { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, AllowContract = 0x00010000, AllowContractFastINTEL = 0x00010000, AllowReassoc = 0x00020000, AllowReassocINTEL = 0x00020000, AllowTransform = 0x00040000, } [AllowDuplicates, CRepr] public enum FPRoundingMode { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, } [AllowDuplicates, CRepr] public enum LinkageType { Export = 0, Import = 1, LinkOnceODR = 2, } [AllowDuplicates, CRepr] public enum AccessQualifier { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, } [AllowDuplicates, CRepr] public enum FunctionParameterAttribute { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, RuntimeAlignedINTEL = 5940, } [AllowDuplicates, CRepr] public enum Decoration { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, UniformId = 27, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, WeightTextureQCOM = 4487, BlockMatchTextureQCOM = 4488, BlockMatchSamplerQCOM = 4499, ExplicitInterpAMD = 4999, NodeSharesPayloadLimitsWithAMDX = 5019, NodeMaxPayloadsAMDX = 5020, TrackFinishWritingAMDX = 5078, PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, PerVertexKHR = 5285, PerVertexNV = 5285, NonUniform = 5300, NonUniformEXT = 5300, RestrictPointer = 5355, RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, BoundImageNV = 5401, SIMTCallINTEL = 5599, ReferencedIndirectlyINTEL = 5602, ClobberINTEL = 5607, SideEffectsINTEL = 5608, VectorComputeVariableINTEL = 5624, FuncParamIOKindINTEL = 5625, VectorComputeFunctionINTEL = 5626, StackCallINTEL = 5627, GlobalVariableOffsetINTEL = 5628, CounterBuffer = 5634, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, UserSemantic = 5635, UserTypeGOOGLE = 5636, FunctionRoundingModeINTEL = 5822, FunctionDenormModeINTEL = 5823, RegisterINTEL = 5825, MemoryINTEL = 5826, NumbanksINTEL = 5827, BankwidthINTEL = 5828, MaxPrivateCopiesINTEL = 5829, SinglepumpINTEL = 5830, DoublepumpINTEL = 5831, MaxReplicatesINTEL = 5832, SimpleDualPortINTEL = 5833, MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, StridesizeINTEL = 5883, WordsizeINTEL = 5884, TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, InitiationIntervalINTEL = 5917, MaxConcurrencyINTEL = 5918, PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, StallFreeINTEL = 6151, FPMaxErrorDecorationINTEL = 6170, LatencyControlLabelINTEL = 6172, LatencyControlConstraintINTEL = 6173, ConduitKernelArgumentINTEL = 6175, RegisterMapKernelArgumentINTEL = 6176, MMHostInterfaceAddressWidthINTEL = 6177, MMHostInterfaceDataWidthINTEL = 6178, MMHostInterfaceLatencyINTEL = 6179, MMHostInterfaceReadWriteModeINTEL = 6180, MMHostInterfaceMaxBurstINTEL = 6181, MMHostInterfaceWaitRequestINTEL = 6182, StableKernelArgumentINTEL = 6183, HostAccessINTEL = 6188, InitModeINTEL = 6190, ImplementInRegisterMapINTEL = 6191, CacheControlLoadINTEL = 6442, CacheControlStoreINTEL = 6443, } [AllowDuplicates, CRepr] public enum BuiltIn { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, CoreIDARM = 4160, CoreCountARM = 4161, CoreMaxIDARM = 4162, WarpIDARM = 4163, WarpMaxIDARM = 4164, SubgroupEqMask = 4416, SubgroupEqMaskKHR = 4416, SubgroupGeMask = 4417, SubgroupGeMaskKHR = 4417, SubgroupGtMask = 4418, SubgroupGtMaskKHR = 4418, SubgroupLeMask = 4419, SubgroupLeMaskKHR = 4419, SubgroupLtMask = 4420, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, PrimitiveShadingRateKHR = 4432, DeviceIndex = 4438, ViewIndex = 4440, ShadingRateKHR = 4444, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, CoalescedInputCountAMDX = 5021, ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, FullyCoveredEXT = 5264, TaskCountNV = 5274, PrimitiveCountNV = 5275, PrimitiveIndicesNV = 5276, ClipDistancePerViewNV = 5277, CullDistancePerViewNV = 5278, LayerPerViewNV = 5279, MeshViewCountNV = 5280, MeshViewIndicesNV = 5281, BaryCoordKHR = 5286, BaryCoordNV = 5286, BaryCoordNoPerspKHR = 5287, BaryCoordNoPerspNV = 5287, FragSizeEXT = 5292, FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, PrimitivePointIndicesEXT = 5294, PrimitiveLineIndicesEXT = 5295, PrimitiveTriangleIndicesEXT = 5296, CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, LaunchSizeNV = 5320, WorldRayOriginKHR = 5321, WorldRayOriginNV = 5321, WorldRayDirectionKHR = 5322, WorldRayDirectionNV = 5322, ObjectRayOriginKHR = 5323, ObjectRayOriginNV = 5323, ObjectRayDirectionKHR = 5324, ObjectRayDirectionNV = 5324, RayTminKHR = 5325, RayTminNV = 5325, RayTmaxKHR = 5326, RayTmaxNV = 5326, InstanceCustomIndexKHR = 5327, InstanceCustomIndexNV = 5327, ObjectToWorldKHR = 5330, ObjectToWorldNV = 5330, WorldToObjectKHR = 5331, WorldToObjectNV = 5331, HitTNV = 5332, HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, HitTriangleVertexPositionsKHR = 5335, HitMicroTriangleVertexPositionsNV = 5337, HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, WarpsPerSMNV = 5374, SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, HitKindFrontFacingMicroTriangleNV = 5405, HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, } [AllowDuplicates, CRepr] public enum SelectionControlShift { Flatten = 0, DontFlatten = 1, } [AllowDuplicates, CRepr] public enum SelectionControlMask { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, } [AllowDuplicates, CRepr] public enum LoopControlShift { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, MinIterations = 4, MaxIterations = 5, IterationMultiple = 6, PeelCount = 7, PartialCount = 8, InitiationIntervalINTEL = 16, MaxConcurrencyINTEL = 17, DependencyArrayINTEL = 18, PipelineEnableINTEL = 19, LoopCoalesceINTEL = 20, MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, LoopCountINTEL = 24, MaxReinvocationDelayINTEL = 25, } [AllowDuplicates, CRepr] public enum LoopControlMask { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, MinIterations = 0x00000010, MaxIterations = 0x00000020, IterationMultiple = 0x00000040, PeelCount = 0x00000080, PartialCount = 0x00000100, InitiationIntervalINTEL = 0x00010000, MaxConcurrencyINTEL = 0x00020000, DependencyArrayINTEL = 0x00040000, PipelineEnableINTEL = 0x00080000, LoopCoalesceINTEL = 0x00100000, MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, LoopCountINTEL = 0x01000000, MaxReinvocationDelayINTEL = 0x02000000, } [AllowDuplicates, CRepr] public enum FunctionControlShift { Inline = 0, DontInline = 1, Pure = 2, Const = 3, OptNoneINTEL = 16, } [AllowDuplicates, CRepr] public enum FunctionControlMask { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, OptNoneINTEL = 0x00010000, } [AllowDuplicates, CRepr] public enum MemorySemanticsShift { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, OutputMemory = 12, OutputMemoryKHR = 12, MakeAvailable = 13, MakeAvailableKHR = 13, MakeVisible = 14, MakeVisibleKHR = 14, Volatile = 15, } [AllowDuplicates, CRepr] public enum MemorySemanticsMask { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, OutputMemory = 0x00001000, OutputMemoryKHR = 0x00001000, MakeAvailable = 0x00002000, MakeAvailableKHR = 0x00002000, MakeVisible = 0x00004000, MakeVisibleKHR = 0x00004000, Volatile = 0x00008000, } [AllowDuplicates, CRepr] public enum MemoryAccessShift { Volatile = 0, Aligned = 1, Nontemporal = 2, MakePointerAvailable = 3, MakePointerAvailableKHR = 3, MakePointerVisible = 4, MakePointerVisibleKHR = 4, NonPrivatePointer = 5, NonPrivatePointerKHR = 5, AliasScopeINTELMask = 16, NoAliasINTELMask = 17, } [AllowDuplicates, CRepr] public enum MemoryAccessMask { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, MakePointerAvailable = 0x00000008, MakePointerAvailableKHR = 0x00000008, MakePointerVisible = 0x00000010, MakePointerVisibleKHR = 0x00000010, NonPrivatePointer = 0x00000020, NonPrivatePointerKHR = 0x00000020, AliasScopeINTELMask = 0x00010000, NoAliasINTELMask = 0x00020000, } [AllowDuplicates, CRepr] public enum Scope { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, QueueFamily = 5, QueueFamilyKHR = 5, ShaderCallKHR = 6, } [AllowDuplicates, CRepr] public enum GroupOperation { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, ClusteredReduce = 3, PartitionedReduceNV = 6, PartitionedInclusiveScanNV = 7, PartitionedExclusiveScanNV = 8, } [AllowDuplicates, CRepr] public enum KernelEnqueueFlags { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, } [AllowDuplicates, CRepr] public enum KernelProfilingInfoShift { CmdExecTime = 0, } [AllowDuplicates, CRepr] public enum KernelProfilingInfoMask { MaskNone = 0, CmdExecTime = 0x00000001, } [AllowDuplicates, CRepr] public enum Capability { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, GroupNonUniform = 61, GroupNonUniformVote = 62, GroupNonUniformArithmetic = 63, GroupNonUniformBallot = 64, GroupNonUniformShuffle = 65, GroupNonUniformShuffleRelative = 66, GroupNonUniformClustered = 67, GroupNonUniformQuad = 68, ShaderLayer = 69, ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, TileImageColorReadAccessEXT = 4166, TileImageDepthReadAccessEXT = 4167, TileImageStencilReadAccessEXT = 4168, CooperativeMatrixLayoutsARM = 4201, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, WorkgroupMemoryExplicitLayoutKHR = 4428, WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, StorageBuffer8BitAccess = 4448, UniformAndStorageBuffer8BitAccess = 4449, StoragePushConstant8 = 4450, DenormPreserve = 4464, DenormFlushToZero = 4465, SignedZeroInfNanPreserve = 4466, RoundingModeRTE = 4467, RoundingModeRTZ = 4468, RayQueryProvisionalKHR = 4471, RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, TextureSampleWeightedQCOM = 4484, TextureBoxFilterQCOM = 4485, TextureBlockMatchQCOM = 4486, TextureBlockMatch2QCOM = 4498, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, ShaderEnqueueAMDX = 5067, QuadControlKHR = 5087, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, FragmentDensityEXT = 5291, ShadingRateNV = 5291, GroupNonUniformPartitionedNV = 5297, ShaderNonUniform = 5301, ShaderNonUniformEXT = 5301, RuntimeDescriptorArray = 5302, RuntimeDescriptorArrayEXT = 5302, InputAttachmentArrayDynamicIndexing = 5303, InputAttachmentArrayDynamicIndexingEXT = 5303, UniformTexelBufferArrayDynamicIndexing = 5304, UniformTexelBufferArrayDynamicIndexingEXT = 5304, StorageTexelBufferArrayDynamicIndexing = 5305, StorageTexelBufferArrayDynamicIndexingEXT = 5305, UniformBufferArrayNonUniformIndexing = 5306, UniformBufferArrayNonUniformIndexingEXT = 5306, SampledImageArrayNonUniformIndexing = 5307, SampledImageArrayNonUniformIndexingEXT = 5307, StorageBufferArrayNonUniformIndexing = 5308, StorageBufferArrayNonUniformIndexingEXT = 5308, StorageImageArrayNonUniformIndexing = 5309, StorageImageArrayNonUniformIndexingEXT = 5309, InputAttachmentArrayNonUniformIndexing = 5310, InputAttachmentArrayNonUniformIndexingEXT = 5310, UniformTexelBufferArrayNonUniformIndexing = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, VulkanMemoryModelKHR = 5345, VulkanMemoryModelDeviceScope = 5346, VulkanMemoryModelDeviceScopeKHR = 5346, PhysicalStorageBufferAddresses = 5347, PhysicalStorageBufferAddressesEXT = 5347, ComputeDerivativeGroupLinearNV = 5350, RayTracingProvisionalKHR = 5353, CooperativeMatrixNV = 5357, FragmentShaderSampleInterlockEXT = 5363, FragmentShaderShadingRateInterlockEXT = 5372, ShaderSMBuiltinsNV = 5373, FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, AtomicFloat16VectorNV = 5404, RayTracingDisplacementMicromapNV = 5409, RawAccessChainsNV = 5414, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, SubgroupImageMediaBlockIOINTEL = 5579, RoundToInfinityINTEL = 5582, FloatingPointModeINTEL = 5583, IntegerFunctions2INTEL = 5584, FunctionPointersINTEL = 5603, IndirectReferencesINTEL = 5604, AsmINTEL = 5606, AtomicFloat32MinMaxEXT = 5612, AtomicFloat64MinMaxEXT = 5613, AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, VariableLengthArrayINTEL = 5817, FunctionFloatControlINTEL = 5821, FPGAMemoryAttributesINTEL = 5824, FPFastMathModeINTEL = 5837, ArbitraryPrecisionIntegersINTEL = 5844, ArbitraryPrecisionFloatingPointINTEL = 5845, UnstructuredLoopControlsINTEL = 5886, FPGALoopControlsINTEL = 5888, KernelAttributesINTEL = 5892, FPGAKernelAttributesINTEL = 5897, FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, DotProductInputAll = 6016, DotProductInputAllKHR = 6016, DotProductInput4x8Bit = 6017, DotProductInput4x8BitKHR = 6017, DotProductInput4x8BitPacked = 6018, DotProductInput4x8BitPackedKHR = 6018, DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, CooperativeMatrixKHR = 6022, ReplicatedCompositesEXT = 6024, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, FloatControls2 = 6029, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, FPGAClusterAttributesV2INTEL = 6150, FPGAKernelAttributesv2INTEL = 6161, FPMaxErrorINTEL = 6169, FPGALatencyControlINTEL = 6171, FPGAArgumentInterfacesINTEL = 6174, GlobalVariableHostAccessINTEL = 6187, GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, MaskedGatherScatterINTEL = 6427, CacheControlsINTEL = 6441, RegisterLimitsINTEL = 6460, } [AllowDuplicates, CRepr] public enum RayFlagsShift { OpaqueKHR = 0, NoOpaqueKHR = 1, TerminateOnFirstHitKHR = 2, SkipClosestHitShaderKHR = 3, CullBackFacingTrianglesKHR = 4, CullFrontFacingTrianglesKHR = 5, CullOpaqueKHR = 6, CullNoOpaqueKHR = 7, SkipTrianglesKHR = 8, SkipAABBsKHR = 9, ForceOpacityMicromap2StateEXT = 10, } [AllowDuplicates, CRepr] public enum RayFlagsMask { MaskNone = 0, OpaqueKHR = 0x00000001, NoOpaqueKHR = 0x00000002, TerminateOnFirstHitKHR = 0x00000004, SkipClosestHitShaderKHR = 0x00000008, CullBackFacingTrianglesKHR = 0x00000010, CullFrontFacingTrianglesKHR = 0x00000020, CullOpaqueKHR = 0x00000040, CullNoOpaqueKHR = 0x00000080, SkipTrianglesKHR = 0x00000100, SkipAABBsKHR = 0x00000200, ForceOpacityMicromap2StateEXT = 0x00000400, } [AllowDuplicates, CRepr] public enum RayQueryIntersection { RayQueryCandidateIntersectionKHR = 0, RayQueryCommittedIntersectionKHR = 1, } [AllowDuplicates, CRepr] public enum RayQueryCommittedIntersectionType { RayQueryCommittedIntersectionNoneKHR = 0, RayQueryCommittedIntersectionTriangleKHR = 1, RayQueryCommittedIntersectionGeneratedKHR = 2, } [AllowDuplicates, CRepr] public enum RayQueryCandidateIntersectionType { RayQueryCandidateIntersectionTriangleKHR = 0, RayQueryCandidateIntersectionAABBKHR = 1, } [AllowDuplicates, CRepr] public enum FragmentShadingRateShift { Vertical2Pixels = 0, Vertical4Pixels = 1, Horizontal2Pixels = 2, Horizontal4Pixels = 3, } [AllowDuplicates, CRepr] public enum FragmentShadingRateMask { MaskNone = 0, Vertical2Pixels = 0x00000001, Vertical4Pixels = 0x00000002, Horizontal2Pixels = 0x00000004, Horizontal4Pixels = 0x00000008, } [AllowDuplicates, CRepr] public enum FPDenormMode { Preserve = 0, FlushToZero = 1, } [AllowDuplicates, CRepr] public enum FPOperationMode { IEEE = 0, ALT = 1, } [AllowDuplicates, CRepr] public enum QuantizationModes { TRN = 0, TRN_ZERO = 1, RND = 2, RND_ZERO = 3, RND_INF = 4, RND_MIN_INF = 5, RND_CONV = 6, RND_CONV_ODD = 7, } [AllowDuplicates, CRepr] public enum OverflowModes { WRAP = 0, SAT = 1, SAT_ZERO = 2, SAT_SYM = 3, } [AllowDuplicates, CRepr] public enum PackedVectorFormat { PackedVectorFormat4x8Bit = 0, PackedVectorFormat4x8BitKHR = 0, } [AllowDuplicates, CRepr] public enum CooperativeMatrixOperandsShift { MatrixASignedComponentsKHR = 0, MatrixBSignedComponentsKHR = 1, MatrixCSignedComponentsKHR = 2, MatrixResultSignedComponentsKHR = 3, SaturatingAccumulationKHR = 4, } [AllowDuplicates, CRepr] public enum CooperativeMatrixOperandsMask { MaskNone = 0, MatrixASignedComponentsKHR = 0x00000001, MatrixBSignedComponentsKHR = 0x00000002, MatrixCSignedComponentsKHR = 0x00000004, MatrixResultSignedComponentsKHR = 0x00000008, SaturatingAccumulationKHR = 0x00000010, } [AllowDuplicates, CRepr] public enum CooperativeMatrixLayout { RowMajorKHR = 0, ColumnMajorKHR = 1, RowBlockedInterleavedARM = 4202, ColumnBlockedInterleavedARM = 4203, } [AllowDuplicates, CRepr] public enum CooperativeMatrixUse { MatrixAKHR = 0, MatrixBKHR = 1, MatrixAccumulatorKHR = 2, } [AllowDuplicates, CRepr] public enum InitializationModeQualifier { InitOnDeviceReprogramINTEL = 0, InitOnDeviceResetINTEL = 1, } [AllowDuplicates, CRepr] public enum HostAccessQualifier { NoneINTEL = 0, ReadINTEL = 1, WriteINTEL = 2, ReadWriteINTEL = 3, } [AllowDuplicates, CRepr] public enum LoadCacheControl { UncachedINTEL = 0, CachedINTEL = 1, StreamingINTEL = 2, InvalidateAfterReadINTEL = 3, ConstCachedINTEL = 4, } [AllowDuplicates, CRepr] public enum StoreCacheControl { UncachedINTEL = 0, WriteThroughINTEL = 1, WriteBackINTEL = 2, StreamingINTEL = 3, } [AllowDuplicates, CRepr] public enum NamedMaximumNumberOfRegisters { AutoINTEL = 0, } [AllowDuplicates, CRepr] public enum RawAccessChainOperandsShift { RobustnessPerComponentNV = 0, RobustnessPerElementNV = 1, } [AllowDuplicates, CRepr] public enum RawAccessChainOperandsMask { MaskNone = 0, RobustnessPerComponentNV = 0x00000001, RobustnessPerElementNV = 0x00000002, } [AllowDuplicates, CRepr] public enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpGroupNonUniformElect = 333, OpGroupNonUniformAll = 334, OpGroupNonUniformAny = 335, OpGroupNonUniformAllEqual = 336, OpGroupNonUniformBroadcast = 337, OpGroupNonUniformBroadcastFirst = 338, OpGroupNonUniformBallot = 339, OpGroupNonUniformInverseBallot = 340, OpGroupNonUniformBallotBitExtract = 341, OpGroupNonUniformBallotBitCount = 342, OpGroupNonUniformBallotFindLSB = 343, OpGroupNonUniformBallotFindMSB = 344, OpGroupNonUniformShuffle = 345, OpGroupNonUniformShuffleXor = 346, OpGroupNonUniformShuffleUp = 347, OpGroupNonUniformShuffleDown = 348, OpGroupNonUniformIAdd = 349, OpGroupNonUniformFAdd = 350, OpGroupNonUniformIMul = 351, OpGroupNonUniformFMul = 352, OpGroupNonUniformSMin = 353, OpGroupNonUniformUMin = 354, OpGroupNonUniformFMin = 355, OpGroupNonUniformSMax = 356, OpGroupNonUniformUMax = 357, OpGroupNonUniformFMax = 358, OpGroupNonUniformBitwiseAnd = 359, OpGroupNonUniformBitwiseOr = 360, OpGroupNonUniformBitwiseXor = 361, OpGroupNonUniformLogicalAnd = 362, OpGroupNonUniformLogicalOr = 363, OpGroupNonUniformLogicalXor = 364, OpGroupNonUniformQuadBroadcast = 365, OpGroupNonUniformQuadSwap = 366, OpCopyLogical = 400, OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, OpSDot = 4450, OpSDotKHR = 4450, OpUDot = 4451, OpUDotKHR = 4451, OpSUDot = 4452, OpSUDotKHR = 4452, OpSDotAccSat = 4453, OpSDotAccSatKHR = 4453, OpUDotAccSat = 4454, OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, OpTypeCooperativeMatrixKHR = 4456, OpCooperativeMatrixLoadKHR = 4457, OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, OpConstantCompositeReplicateEXT = 4461, OpSpecConstantCompositeReplicateEXT = 4462, OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, OpRayQueryGenerateIntersectionKHR = 4475, OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, OpImageSampleWeightedQCOM = 4480, OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpFinalizeNodePayloadsAMDX = 5075, OpFinishWritingNodePayloadAMDX = 5078, OpInitializeNodePayloadsAMDX = 5090, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, OpHitObjectRecordHitWithIndexMotionNV = 5250, OpHitObjectRecordMissMotionNV = 5251, OpHitObjectGetWorldToObjectNV = 5252, OpHitObjectGetObjectToWorldNV = 5253, OpHitObjectGetObjectRayDirectionNV = 5254, OpHitObjectGetObjectRayOriginNV = 5255, OpHitObjectTraceRayMotionNV = 5256, OpHitObjectGetShaderRecordBufferHandleNV = 5257, OpHitObjectGetShaderBindingTableRecordIndexNV = 5258, OpHitObjectRecordEmptyNV = 5259, OpHitObjectTraceRayNV = 5260, OpHitObjectRecordHitNV = 5261, OpHitObjectRecordHitWithIndexNV = 5262, OpHitObjectRecordMissNV = 5263, OpHitObjectExecuteShaderNV = 5264, OpHitObjectGetCurrentTimeNV = 5265, OpHitObjectGetAttributesNV = 5266, OpHitObjectGetHitKindNV = 5267, OpHitObjectGetPrimitiveIndexNV = 5268, OpHitObjectGetGeometryIndexNV = 5269, OpHitObjectGetInstanceIdNV = 5270, OpHitObjectGetInstanceCustomIndexNV = 5271, OpHitObjectGetWorldRayDirectionNV = 5272, OpHitObjectGetWorldRayOriginNV = 5273, OpHitObjectGetRayTMaxNV = 5274, OpHitObjectGetRayTMinNV = 5275, OpHitObjectIsEmptyNV = 5276, OpHitObjectIsHitNV = 5277, OpHitObjectIsMissNV = 5278, OpReorderThreadWithHitObjectNV = 5279, OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, OpConvertSamplerToUNV = 5394, OpConvertUToSampledImageNV = 5395, OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpSubgroupImageMediaBlockReadINTEL = 5580, OpSubgroupImageMediaBlockWriteINTEL = 5581, OpUCountLeadingZerosINTEL = 5585, OpUCountTrailingZerosINTEL = 5586, OpAbsISubINTEL = 5587, OpAbsUSubINTEL = 5588, OpIAddSatINTEL = 5589, OpUAddSatINTEL = 5590, OpIAverageINTEL = 5591, OpUAverageINTEL = 5592, OpIAverageRoundedINTEL = 5593, OpUAverageRoundedINTEL = 5594, OpISubSatINTEL = 5595, OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, OpAsmTargetINTEL = 5609, OpAsmINTEL = 5610, OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, OpAssumeTrueKHR = 5630, OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, OpMemberDecorateStringGOOGLE = 5633, OpVmeImageINTEL = 5699, OpTypeVmeImageINTEL = 5700, OpTypeAvcImePayloadINTEL = 5701, OpTypeAvcRefPayloadINTEL = 5702, OpTypeAvcSicPayloadINTEL = 5703, OpTypeAvcMcePayloadINTEL = 5704, OpTypeAvcMceResultINTEL = 5705, OpTypeAvcImeResultINTEL = 5706, OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, OpTypeAvcImeDualReferenceStreaminINTEL = 5710, OpTypeAvcRefResultINTEL = 5711, OpTypeAvcSicResultINTEL = 5712, OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, OpSubgroupAvcMceConvertToImeResultINTEL = 5733, OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, OpSubgroupAvcMceConvertToRefResultINTEL = 5735, OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, OpSubgroupAvcMceConvertToSicResultINTEL = 5737, OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, OpSubgroupAvcImeInitializeINTEL = 5747, OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, OpSubgroupAvcImeSetDualReferenceINTEL = 5749, OpSubgroupAvcImeRefWindowSizeINTEL = 5750, OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, OpSubgroupAvcImeSetWeightedSadINTEL = 5756, OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, OpSubgroupAvcImeConvertToMceResultINTEL = 5765, OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, OpSubgroupAvcImeGetBorderReachedINTEL = 5776, OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, OpSubgroupAvcFmeInitializeINTEL = 5781, OpSubgroupAvcBmeInitializeINTEL = 5782, OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, OpSubgroupAvcRefConvertToMceResultINTEL = 5790, OpSubgroupAvcSicInitializeINTEL = 5791, OpSubgroupAvcSicConfigureSkcINTEL = 5792, OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, OpSubgroupAvcSicEvaluateIpeINTEL = 5803, OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, OpSubgroupAvcSicConvertToMceResultINTEL = 5808, OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, OpArbitraryFloatSinCosPiINTEL = 5840, OpArbitraryFloatCastINTEL = 5841, OpArbitraryFloatCastFromIntINTEL = 5842, OpArbitraryFloatCastToIntINTEL = 5843, OpArbitraryFloatAddINTEL = 5846, OpArbitraryFloatSubINTEL = 5847, OpArbitraryFloatMulINTEL = 5848, OpArbitraryFloatDivINTEL = 5849, OpArbitraryFloatGTINTEL = 5850, OpArbitraryFloatGEINTEL = 5851, OpArbitraryFloatLTINTEL = 5852, OpArbitraryFloatLEINTEL = 5853, OpArbitraryFloatEQINTEL = 5854, OpArbitraryFloatRecipINTEL = 5855, OpArbitraryFloatRSqrtINTEL = 5856, OpArbitraryFloatCbrtINTEL = 5857, OpArbitraryFloatHypotINTEL = 5858, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, OpArbitraryFloatLog10INTEL = 5862, OpArbitraryFloatLog1pINTEL = 5863, OpArbitraryFloatExpINTEL = 5864, OpArbitraryFloatExp2INTEL = 5865, OpArbitraryFloatExp10INTEL = 5866, OpArbitraryFloatExpm1INTEL = 5867, OpArbitraryFloatSinINTEL = 5868, OpArbitraryFloatCosINTEL = 5869, OpArbitraryFloatSinCosINTEL = 5870, OpArbitraryFloatSinPiINTEL = 5871, OpArbitraryFloatCosPiINTEL = 5872, OpArbitraryFloatASinINTEL = 5873, OpArbitraryFloatASinPiINTEL = 5874, OpArbitraryFloatACosINTEL = 5875, OpArbitraryFloatACosPiINTEL = 5876, OpArbitraryFloatATanINTEL = 5877, OpArbitraryFloatATanPiINTEL = 5878, OpArbitraryFloatATan2INTEL = 5879, OpArbitraryFloatPowINTEL = 5880, OpArbitraryFloatPowRINTEL = 5881, OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, OpFixedSqrtINTEL = 5923, OpFixedRecipINTEL = 5924, OpFixedRsqrtINTEL = 5925, OpFixedSinINTEL = 5926, OpFixedCosINTEL = 5927, OpFixedSinCosINTEL = 5928, OpFixedSinPiINTEL = 5929, OpFixedCosPiINTEL = 5930, OpFixedSinCosPiINTEL = 5931, OpFixedLogINTEL = 5932, OpFixedExpINTEL = 5933, OpPtrCastToCrossWorkgroupINTEL = 5934, OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, OpRayQueryGetIntersectionTKHR = 6018, OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, OpRayQueryGetIntersectionInstanceIdKHR = 6020, OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, OpRayQueryGetIntersectionGeometryIndexKHR = 6022, OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, OpRayQueryGetIntersectionBarycentricsKHR = 6024, OpRayQueryGetIntersectionFrontFaceKHR = 6025, OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, OpRayQueryGetWorldRayDirectionKHR = 6029, OpRayQueryGetWorldRayOriginKHR = 6030, OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, OpTypeBufferSurfaceINTEL = 6086, OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, OpCompositeConstructContinuedINTEL = 6096, OpConvertFToBF16INTEL = 6116, OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, OpGroupBitwiseOrKHR = 6404, OpGroupBitwiseXorKHR = 6405, OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, } } } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.core.grammar.json000066400000000000000000020100421463234063200261450ustar00rootroot00000000000000{ "copyright" : [ "Copyright (c) 2014-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], "magic_number" : "0x07230203", "major_version" : 1, "minor_version" : 6, "revision" : 1, "instruction_printing_class" : [ { "tag" : "@exclude" }, { "tag" : "Miscellaneous", "heading" : "Miscellaneous Instructions" }, { "tag" : "Debug", "heading" : "Debug Instructions" }, { "tag" : "Annotation", "heading" : "Annotation Instructions" }, { "tag" : "Extension", "heading" : "Extension Instructions" }, { "tag" : "Mode-Setting", "heading" : "Mode-Setting Instructions" }, { "tag" : "Type-Declaration", "heading" : "Type-Declaration Instructions" }, { "tag" : "Constant-Creation", "heading" : "Constant-Creation Instructions" }, { "tag" : "Memory", "heading" : "Memory Instructions" }, { "tag" : "Function", "heading" : "Function Instructions" }, { "tag" : "Image", "heading" : "Image Instructions" }, { "tag" : "Conversion", "heading" : "Conversion Instructions" }, { "tag" : "Composite", "heading" : "Composite Instructions" }, { "tag" : "Arithmetic", "heading" : "Arithmetic Instructions" }, { "tag" : "Bit", "heading" : "Bit Instructions" }, { "tag" : "Relational_and_Logical", "heading" : "Relational and Logical Instructions" }, { "tag" : "Derivative", "heading" : "Derivative Instructions" }, { "tag" : "Control-Flow", "heading" : "Control-Flow Instructions" }, { "tag" : "Atomic", "heading" : "Atomic Instructions" }, { "tag" : "Primitive", "heading" : "Primitive Instructions" }, { "tag" : "Barrier", "heading" : "Barrier Instructions" }, { "tag" : "Group", "heading" : "Group and Subgroup Instructions" }, { "tag" : "Device-Side_Enqueue", "heading" : "Device-Side Enqueue Instructions" }, { "tag" : "Pipe", "heading" : "Pipe Instructions" }, { "tag" : "Non-Uniform", "heading" : "Non-Uniform Instructions" }, { "tag" : "Reserved", "heading" : "Reserved Instructions" } ], "instructions" : [ { "opname" : "OpNop", "class" : "Miscellaneous", "opcode" : 0, "version" : "1.0" }, { "opname" : "OpUndef", "class" : "Miscellaneous", "opcode" : 1, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version" : "1.0" }, { "opname" : "OpSourceContinued", "class" : "Debug", "opcode" : 2, "operands" : [ { "kind" : "LiteralString", "name" : "'Continued Source'" } ], "version": "1.0" }, { "opname" : "OpSource", "class" : "Debug", "opcode" : 3, "operands" : [ { "kind" : "SourceLanguage" }, { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" }, { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" } ], "version": "1.0" }, { "opname" : "OpSourceExtension", "class" : "Debug", "opcode" : 4, "operands" : [ { "kind" : "LiteralString", "name" : "'Extension'" } ], "version": "1.0" }, { "opname" : "OpName", "class" : "Debug", "opcode" : 5, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Name'" } ], "version": "1.0" }, { "opname" : "OpMemberName", "class" : "Debug", "opcode" : 6, "operands" : [ { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "LiteralString", "name" : "'Name'" } ], "version": "1.0" }, { "opname" : "OpString", "class" : "Debug", "opcode" : 7, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'String'" } ], "version": "1.0" }, { "opname" : "OpLine", "class" : "Debug", "opcode" : 8, "operands" : [ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } ], "version": "1.0" }, { "opname" : "OpExtension", "class" : "Extension", "opcode" : 10, "operands" : [ { "kind" : "LiteralString", "name" : "'Name'" } ], "version": "1.0" }, { "opname" : "OpExtInstImport", "class" : "Extension", "opcode" : 11, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Name'" } ], "version": "1.0" }, { "opname" : "OpExtInst", "class" : "Extension", "opcode" : 12, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } ], "version": "1.0" }, { "opname" : "OpMemoryModel", "class" : "Mode-Setting", "opcode" : 14, "operands" : [ { "kind" : "AddressingModel" }, { "kind" : "MemoryModel" } ], "version": "1.0" }, { "opname" : "OpEntryPoint", "class" : "Mode-Setting", "opcode" : 15, "operands" : [ { "kind" : "ExecutionModel" }, { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" } ], "version": "1.0" }, { "opname" : "OpExecutionMode", "class" : "Mode-Setting", "opcode" : 16, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } ], "version": "1.0" }, { "opname" : "OpCapability", "class" : "Mode-Setting", "opcode" : 17, "operands" : [ { "kind" : "Capability", "name" : "'Capability'" } ], "version": "1.0" }, { "opname" : "OpTypeVoid", "class" : "Type-Declaration", "opcode" : 19, "operands" : [ { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpTypeBool", "class" : "Type-Declaration", "opcode" : 20, "operands" : [ { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpTypeInt", "class" : "Type-Declaration", "opcode" : 21, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" }, { "kind" : "LiteralInteger", "name" : "'Signedness'" } ], "version": "1.0" }, { "opname" : "OpTypeFloat", "class" : "Type-Declaration", "opcode" : 22, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" } ], "version": "1.0" }, { "opname" : "OpTypeVector", "class" : "Type-Declaration", "opcode" : 23, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } ], "version": "1.0" }, { "opname" : "OpTypeMatrix", "class" : "Type-Declaration", "opcode" : 24, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Column Type'" }, { "kind" : "LiteralInteger", "name" : "'Column Count'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpTypeImage", "class" : "Type-Declaration", "opcode" : 25, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Type'" }, { "kind" : "Dim" }, { "kind" : "LiteralInteger", "name" : "'Depth'" }, { "kind" : "LiteralInteger", "name" : "'Arrayed'" }, { "kind" : "LiteralInteger", "name" : "'MS'" }, { "kind" : "LiteralInteger", "name" : "'Sampled'" }, { "kind" : "ImageFormat" }, { "kind" : "AccessQualifier", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpTypeSampler", "class" : "Type-Declaration", "opcode" : 26, "operands" : [ { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpTypeSampledImage", "class" : "Type-Declaration", "opcode" : 27, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } ], "version": "1.0" }, { "opname" : "OpTypeArray", "class" : "Type-Declaration", "opcode" : 28, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" }, { "kind" : "IdRef", "name" : "'Length'" } ], "version": "1.0" }, { "opname" : "OpTypeRuntimeArray", "class" : "Type-Declaration", "opcode" : 29, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpTypeStruct", "class" : "Type-Declaration", "opcode" : 30, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ], "version": "1.0" }, { "opname" : "OpTypeOpaque", "class" : "Type-Declaration", "opcode" : 31, "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "The name of the opaque type." } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpTypePointer", "class" : "Type-Declaration", "opcode" : 32, "operands" : [ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "name" : "'Type'" } ], "version": "1.0" }, { "opname" : "OpTypeFunction", "class" : "Type-Declaration", "opcode" : 33, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." } ], "version": "1.0" }, { "opname" : "OpTypeEvent", "class" : "Type-Declaration", "opcode" : 34, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpTypeDeviceEvent", "class" : "Type-Declaration", "opcode" : 35, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpTypeReserveId", "class" : "Type-Declaration", "opcode" : 36, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpTypeQueue", "class" : "Type-Declaration", "opcode" : 37, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpTypePipe", "class" : "Type-Declaration", "opcode" : 38, "operands" : [ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'Qualifier'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpTypeForwardPointer", "class" : "Type-Declaration", "opcode" : 39, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer Type'" }, { "kind" : "StorageClass" } ], "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" ], "version": "1.0" }, { "opname" : "OpConstantTrue", "class" : "Constant-Creation", "opcode" : 41, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpConstantFalse", "class" : "Constant-Creation", "opcode" : 42, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpConstant", "class" : "Constant-Creation", "opcode" : 43, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpConstantComposite", "class" : "Constant-Creation", "opcode" : 44, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], "version": "1.0" }, { "opname" : "OpConstantSampler", "class" : "Constant-Creation", "opcode" : 45, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "SamplerAddressingMode" }, { "kind" : "LiteralInteger", "name" : "'Param'" }, { "kind" : "SamplerFilterMode" } ], "capabilities" : [ "LiteralSampler" ], "version": "1.0" }, { "opname" : "OpConstantNull", "class" : "Constant-Creation", "opcode" : 46, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpSpecConstantTrue", "class" : "Constant-Creation", "opcode" : 48, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpSpecConstantFalse", "class" : "Constant-Creation", "opcode" : 49, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpSpecConstant", "class" : "Constant-Creation", "opcode" : 50, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpSpecConstantComposite", "class" : "Constant-Creation", "opcode" : 51, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], "version": "1.0" }, { "opname" : "OpSpecConstantOp", "class" : "Constant-Creation", "opcode" : 52, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" } ], "version": "1.0" }, { "opname" : "OpFunction", "class" : "Function", "opcode" : 54, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "FunctionControl" }, { "kind" : "IdRef", "name" : "'Function Type'" } ], "version": "1.0" }, { "opname" : "OpFunctionParameter", "class" : "Function", "opcode" : 55, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpFunctionEnd", "class" : "Function", "opcode" : 56, "version" : "1.0" }, { "opname" : "OpFunctionCall", "class" : "Function", "opcode" : 57, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." } ], "version": "1.0" }, { "opname" : "OpVariable", "class" : "Memory", "opcode" : 59, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" } ], "version": "1.0" }, { "opname" : "OpImageTexelPointer", "class" : "Memory", "opcode" : 60, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Sample'" } ], "version": "1.0" }, { "opname" : "OpLoad", "class" : "Memory", "opcode" : 61, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpStore", "class" : "Memory", "opcode" : 62, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpCopyMemory", "class" : "Memory", "opcode" : 63, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "MemoryAccess", "quantifier" : "?" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpCopyMemorySized", "class" : "Memory", "opcode" : 64, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Size'" }, { "kind" : "MemoryAccess", "quantifier" : "?" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "capabilities" : [ "Addresses" ], "version": "1.0" }, { "opname" : "OpAccessChain", "class" : "Memory", "opcode" : 65, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "version": "1.0" }, { "opname" : "OpInBoundsAccessChain", "class" : "Memory", "opcode" : 66, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "version": "1.0" }, { "opname" : "OpPtrAccessChain", "class" : "Memory", "opcode" : 67, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer", "PhysicalStorageBufferAddresses" ], "version": "1.0" }, { "opname" : "OpArrayLength", "class" : "Memory", "opcode" : 68, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Structure'" }, { "kind" : "LiteralInteger", "name" : "'Array member'" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpGenericPtrMemSemantics", "class" : "Memory", "opcode" : 69, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpInBoundsPtrAccessChain", "class" : "Memory", "opcode" : 70, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], "capabilities" : [ "Addresses" ], "version": "1.0" }, { "opname" : "OpDecorate", "class" : "Annotation", "opcode" : 71, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "version": "1.0" }, { "opname" : "OpMemberDecorate", "class" : "Annotation", "opcode" : 72, "operands" : [ { "kind" : "IdRef", "name" : "'Structure Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ], "version": "1.0" }, { "opname" : "OpDecorationGroup", "class" : "Annotation", "opcode" : 73, "operands" : [ { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpGroupDecorate", "class" : "Annotation", "opcode" : 74, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" } ], "version": "1.0" }, { "opname" : "OpGroupMemberDecorate", "class" : "Annotation", "opcode" : 75, "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" } ], "version": "1.0" }, { "opname" : "OpVectorExtractDynamic", "class" : "Composite", "opcode" : 77, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "version": "1.0" }, { "opname" : "OpVectorInsertDynamic", "class" : "Composite", "opcode" : 78, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "version": "1.0" }, { "opname" : "OpVectorShuffle", "class" : "Composite", "opcode" : 79, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" } ], "version": "1.0" }, { "opname" : "OpCompositeConstruct", "class" : "Composite", "opcode" : 80, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], "version": "1.0" }, { "opname" : "OpCompositeExtract", "class" : "Composite", "opcode" : 81, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ], "version": "1.0" }, { "opname" : "OpCompositeInsert", "class" : "Composite", "opcode" : 82, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } ], "version": "1.0" }, { "opname" : "OpCopyObject", "class" : "Composite", "opcode" : 83, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version": "1.0" }, { "opname" : "OpTranspose", "class" : "Composite", "opcode" : 84, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpSampledImage", "class" : "Image", "opcode" : 86, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Sampler'" } ], "version": "1.0" }, { "opname" : "OpImageSampleImplicitLod", "class" : "Image", "opcode" : 87, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageSampleExplicitLod", "class" : "Image", "opcode" : 88, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "version": "1.0" }, { "opname" : "OpImageSampleDrefImplicitLod", "class" : "Image", "opcode" : 89, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageSampleDrefExplicitLod", "class" : "Image", "opcode" : 90, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageSampleProjImplicitLod", "class" : "Image", "opcode" : 91, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageSampleProjExplicitLod", "class" : "Image", "opcode" : 92, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageSampleProjDrefImplicitLod", "class" : "Image", "opcode" : 93, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageSampleProjDrefExplicitLod", "class" : "Image", "opcode" : 94, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageFetch", "class" : "Image", "opcode" : 95, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpImageGather", "class" : "Image", "opcode" : 96, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageDrefGather", "class" : "Image", "opcode" : 97, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpImageRead", "class" : "Image", "opcode" : 98, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpImageWrite", "class" : "Image", "opcode" : 99, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Texel'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "version": "1.0" }, { "opname" : "OpImage", "class" : "Image", "opcode" : 100, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" } ], "version": "1.0" }, { "opname" : "OpImageQueryFormat", "class" : "Image", "opcode" : 101, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpImageQueryOrder", "class" : "Image", "opcode" : 102, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpImageQuerySizeLod", "class" : "Image", "opcode" : 103, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Level of Detail'" } ], "capabilities" : [ "Kernel", "ImageQuery" ], "version": "1.0" }, { "opname" : "OpImageQuerySize", "class" : "Image", "opcode" : 104, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ], "version": "1.0" }, { "opname" : "OpImageQueryLod", "class" : "Image", "opcode" : 105, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "ImageQuery" ], "version": "1.0" }, { "opname" : "OpImageQueryLevels", "class" : "Image", "opcode" : 106, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ], "version": "1.0" }, { "opname" : "OpImageQuerySamples", "class" : "Image", "opcode" : 107, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], "capabilities" : [ "Kernel", "ImageQuery" ], "version": "1.0" }, { "opname" : "OpConvertFToU", "class" : "Conversion", "opcode" : 109, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ], "version": "1.0" }, { "opname" : "OpConvertFToS", "class" : "Conversion", "opcode" : 110, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ], "version": "1.0" }, { "opname" : "OpConvertSToF", "class" : "Conversion", "opcode" : 111, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], "version": "1.0" }, { "opname" : "OpConvertUToF", "class" : "Conversion", "opcode" : 112, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], "version": "1.0" }, { "opname" : "OpUConvert", "class" : "Conversion", "opcode" : 113, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], "version": "1.0" }, { "opname" : "OpSConvert", "class" : "Conversion", "opcode" : 114, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], "version": "1.0" }, { "opname" : "OpFConvert", "class" : "Conversion", "opcode" : 115, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ], "version": "1.0" }, { "opname" : "OpQuantizeToF16", "class" : "Conversion", "opcode" : 116, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpConvertPtrToU", "class" : "Conversion", "opcode" : 117, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" ], "version": "1.0" }, { "opname" : "OpSatConvertSToU", "class" : "Conversion", "opcode" : 118, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpSatConvertUToS", "class" : "Conversion", "opcode" : 119, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpConvertUToPtr", "class" : "Conversion", "opcode" : 120, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Integer Value'" } ], "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" ], "version": "1.0" }, { "opname" : "OpPtrCastToGeneric", "class" : "Conversion", "opcode" : 121, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpGenericCastToPtr", "class" : "Conversion", "opcode" : 122, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpGenericCastToPtrExplicit", "class" : "Conversion", "opcode" : 123, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "StorageClass", "name" : "'Storage'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpBitcast", "class" : "Conversion", "opcode" : 124, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version": "1.0" }, { "opname" : "OpSNegate", "class" : "Arithmetic", "opcode" : 126, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version": "1.0" }, { "opname" : "OpFNegate", "class" : "Arithmetic", "opcode" : 127, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version": "1.0" }, { "opname" : "OpIAdd", "class" : "Arithmetic", "opcode" : 128, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFAdd", "class" : "Arithmetic", "opcode" : 129, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpISub", "class" : "Arithmetic", "opcode" : 130, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFSub", "class" : "Arithmetic", "opcode" : 131, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpIMul", "class" : "Arithmetic", "opcode" : 132, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFMul", "class" : "Arithmetic", "opcode" : 133, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpUDiv", "class" : "Arithmetic", "opcode" : 134, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSDiv", "class" : "Arithmetic", "opcode" : 135, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFDiv", "class" : "Arithmetic", "opcode" : 136, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpUMod", "class" : "Arithmetic", "opcode" : 137, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSRem", "class" : "Arithmetic", "opcode" : 138, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSMod", "class" : "Arithmetic", "opcode" : 139, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFRem", "class" : "Arithmetic", "opcode" : 140, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFMod", "class" : "Arithmetic", "opcode" : 141, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpVectorTimesScalar", "class" : "Arithmetic", "opcode" : 142, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], "version": "1.0" }, { "opname" : "OpMatrixTimesScalar", "class" : "Arithmetic", "opcode" : 143, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpVectorTimesMatrix", "class" : "Arithmetic", "opcode" : 144, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpMatrixTimesVector", "class" : "Arithmetic", "opcode" : 145, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Vector'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpMatrixTimesMatrix", "class" : "Arithmetic", "opcode" : 146, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'LeftMatrix'" }, { "kind" : "IdRef", "name" : "'RightMatrix'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpOuterProduct", "class" : "Arithmetic", "opcode" : 147, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], "capabilities" : [ "Matrix" ], "version": "1.0" }, { "opname" : "OpDot", "class" : "Arithmetic", "opcode" : 148, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], "version": "1.0" }, { "opname" : "OpIAddCarry", "class" : "Arithmetic", "opcode" : 149, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpISubBorrow", "class" : "Arithmetic", "opcode" : 150, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpUMulExtended", "class" : "Arithmetic", "opcode" : 151, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSMulExtended", "class" : "Arithmetic", "opcode" : 152, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpAny", "class" : "Relational_and_Logical", "opcode" : 154, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ], "version": "1.0" }, { "opname" : "OpAll", "class" : "Relational_and_Logical", "opcode" : 155, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } ], "version": "1.0" }, { "opname" : "OpIsNan", "class" : "Relational_and_Logical", "opcode" : 156, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "version": "1.0" }, { "opname" : "OpIsInf", "class" : "Relational_and_Logical", "opcode" : 157, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "version": "1.0" }, { "opname" : "OpIsFinite", "class" : "Relational_and_Logical", "opcode" : 158, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpIsNormal", "class" : "Relational_and_Logical", "opcode" : 159, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpSignBitSet", "class" : "Relational_and_Logical", "opcode" : 160, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpLessOrGreater", "class" : "Relational_and_Logical", "opcode" : 161, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ], "version" : "1.0", "lastVersion" : "1.5" }, { "opname" : "OpOrdered", "class" : "Relational_and_Logical", "opcode" : 162, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpUnordered", "class" : "Relational_and_Logical", "opcode" : 163, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpLogicalEqual", "class" : "Relational_and_Logical", "opcode" : 164, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpLogicalNotEqual", "class" : "Relational_and_Logical", "opcode" : 165, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpLogicalOr", "class" : "Relational_and_Logical", "opcode" : 166, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpLogicalAnd", "class" : "Relational_and_Logical", "opcode" : 167, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version" : "1.0" }, { "opname" : "OpLogicalNot", "class" : "Relational_and_Logical", "opcode" : 168, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version": "1.0" }, { "opname" : "OpSelect", "class" : "Relational_and_Logical", "opcode" : 169, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'Object 1'" }, { "kind" : "IdRef", "name" : "'Object 2'" } ], "version": "1.0" }, { "opname" : "OpIEqual", "class" : "Relational_and_Logical", "opcode" : 170, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpINotEqual", "class" : "Relational_and_Logical", "opcode" : 171, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpUGreaterThan", "class" : "Relational_and_Logical", "opcode" : 172, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSGreaterThan", "class" : "Relational_and_Logical", "opcode" : 173, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpUGreaterThanEqual", "class" : "Relational_and_Logical", "opcode" : 174, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSGreaterThanEqual", "class" : "Relational_and_Logical", "opcode" : 175, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpULessThan", "class" : "Relational_and_Logical", "opcode" : 176, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSLessThan", "class" : "Relational_and_Logical", "opcode" : 177, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpULessThanEqual", "class" : "Relational_and_Logical", "opcode" : 178, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpSLessThanEqual", "class" : "Relational_and_Logical", "opcode" : 179, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFOrdEqual", "class" : "Relational_and_Logical", "opcode" : 180, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFUnordEqual", "class" : "Relational_and_Logical", "opcode" : 181, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFOrdNotEqual", "class" : "Relational_and_Logical", "opcode" : 182, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFUnordNotEqual", "class" : "Relational_and_Logical", "opcode" : 183, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFOrdLessThan", "class" : "Relational_and_Logical", "opcode" : 184, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFUnordLessThan", "class" : "Relational_and_Logical", "opcode" : 185, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFOrdGreaterThan", "class" : "Relational_and_Logical", "opcode" : 186, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFUnordGreaterThan", "class" : "Relational_and_Logical", "opcode" : 187, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFOrdLessThanEqual", "class" : "Relational_and_Logical", "opcode" : 188, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFUnordLessThanEqual", "class" : "Relational_and_Logical", "opcode" : 189, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFOrdGreaterThanEqual", "class" : "Relational_and_Logical", "opcode" : 190, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpFUnordGreaterThanEqual", "class" : "Relational_and_Logical", "opcode" : 191, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpShiftRightLogical", "class" : "Bit", "opcode" : 194, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ], "version": "1.0" }, { "opname" : "OpShiftRightArithmetic", "class" : "Bit", "opcode" : 195, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ], "version": "1.0" }, { "opname" : "OpShiftLeftLogical", "class" : "Bit", "opcode" : 196, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } ], "version": "1.0" }, { "opname" : "OpBitwiseOr", "class" : "Bit", "opcode" : 197, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpBitwiseXor", "class" : "Bit", "opcode" : 198, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpBitwiseAnd", "class" : "Bit", "opcode" : 199, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version": "1.0" }, { "opname" : "OpNot", "class" : "Bit", "opcode" : 200, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version": "1.0" }, { "opname" : "OpBitFieldInsert", "class" : "Bit", "opcode" : 201, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Insert'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader", "BitInstructions" ], "version": "1.0" }, { "opname" : "OpBitFieldSExtract", "class" : "Bit", "opcode" : 202, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader", "BitInstructions" ], "version": "1.0" }, { "opname" : "OpBitFieldUExtract", "class" : "Bit", "opcode" : 203, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], "capabilities" : [ "Shader", "BitInstructions" ], "version": "1.0" }, { "opname" : "OpBitReverse", "class" : "Bit", "opcode" : 204, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], "capabilities" : [ "Shader", "BitInstructions" ], "version": "1.0" }, { "opname" : "OpBitCount", "class" : "Bit", "opcode" : 205, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], "version": "1.0" }, { "opname" : "OpDPdx", "class" : "Derivative", "opcode" : 207, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpDPdy", "class" : "Derivative", "opcode" : 208, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpFwidth", "class" : "Derivative", "opcode" : 209, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpDPdxFine", "class" : "Derivative", "opcode" : 210, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ], "version": "1.0" }, { "opname" : "OpDPdyFine", "class" : "Derivative", "opcode" : 211, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ], "version": "1.0" }, { "opname" : "OpFwidthFine", "class" : "Derivative", "opcode" : 212, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ], "version": "1.0" }, { "opname" : "OpDPdxCoarse", "class" : "Derivative", "opcode" : 213, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ], "version": "1.0" }, { "opname" : "OpDPdyCoarse", "class" : "Derivative", "opcode" : 214, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ], "version": "1.0" }, { "opname" : "OpFwidthCoarse", "class" : "Derivative", "opcode" : 215, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], "capabilities" : [ "DerivativeControl" ], "version": "1.0" }, { "opname" : "OpEmitVertex", "class" : "Primitive", "opcode" : 218, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "opname" : "OpEndPrimitive", "class" : "Primitive", "opcode" : 219, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "opname" : "OpEmitStreamVertex", "class" : "Primitive", "opcode" : 220, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ], "version": "1.0" }, { "opname" : "OpEndStreamPrimitive", "class" : "Primitive", "opcode" : 221, "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], "capabilities" : [ "GeometryStreams" ], "version": "1.0" }, { "opname" : "OpControlBarrier", "class" : "Barrier", "opcode" : 224, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "version": "1.0" }, { "opname" : "OpMemoryBarrier", "class" : "Barrier", "opcode" : 225, "operands" : [ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "version": "1.0" }, { "opname" : "OpAtomicLoad", "class" : "Atomic", "opcode" : 227, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "version": "1.0" }, { "opname" : "OpAtomicStore", "class" : "Atomic", "opcode" : 228, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicExchange", "class" : "Atomic", "opcode" : 229, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicCompareExchange", "class" : "Atomic", "opcode" : 230, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ], "version": "1.0" }, { "opname" : "OpAtomicCompareExchangeWeak", "class" : "Atomic", "opcode" : 231, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Equal'" }, { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } ], "capabilities" : [ "Kernel" ], "version" : "1.0", "lastVersion" : "1.3" }, { "opname" : "OpAtomicIIncrement", "class" : "Atomic", "opcode" : 232, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "version": "1.0" }, { "opname" : "OpAtomicIDecrement", "class" : "Atomic", "opcode" : 233, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "version": "1.0" }, { "opname" : "OpAtomicIAdd", "class" : "Atomic", "opcode" : 234, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicISub", "class" : "Atomic", "opcode" : 235, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicSMin", "class" : "Atomic", "opcode" : 236, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicUMin", "class" : "Atomic", "opcode" : 237, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicSMax", "class" : "Atomic", "opcode" : 238, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicUMax", "class" : "Atomic", "opcode" : 239, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicAnd", "class" : "Atomic", "opcode" : 240, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicOr", "class" : "Atomic", "opcode" : 241, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpAtomicXor", "class" : "Atomic", "opcode" : 242, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpPhi", "class" : "Control-Flow", "opcode" : 245, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" } ], "version": "1.0" }, { "opname" : "OpLoopMerge", "class" : "Control-Flow", "opcode" : 246, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "IdRef", "name" : "'Continue Target'" }, { "kind" : "LoopControl" } ], "version": "1.0" }, { "opname" : "OpSelectionMerge", "class" : "Control-Flow", "opcode" : 247, "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "SelectionControl" } ], "version": "1.0" }, { "opname" : "OpLabel", "class" : "Control-Flow", "opcode" : 248, "operands" : [ { "kind" : "IdResult" } ], "version": "1.0" }, { "opname" : "OpBranch", "class" : "Control-Flow", "opcode" : 249, "operands" : [ { "kind" : "IdRef", "name" : "'Target Label'" } ], "version": "1.0" }, { "opname" : "OpBranchConditional", "class" : "Control-Flow", "opcode" : 250, "operands" : [ { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'True Label'" }, { "kind" : "IdRef", "name" : "'False Label'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" } ], "version": "1.0" }, { "opname" : "OpSwitch", "class" : "Control-Flow", "opcode" : 251, "operands" : [ { "kind" : "IdRef", "name" : "'Selector'" }, { "kind" : "IdRef", "name" : "'Default'" }, { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" } ], "version": "1.0" }, { "opname" : "OpKill", "class" : "Control-Flow", "opcode" : 252, "capabilities" : [ "Shader" ], "version": "1.0" }, { "opname" : "OpReturn", "class" : "Control-Flow", "opcode" : 253, "version" : "1.0" }, { "opname" : "OpReturnValue", "class" : "Control-Flow", "opcode" : 254, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } ], "version": "1.0" }, { "opname" : "OpUnreachable", "class" : "Control-Flow", "opcode" : 255, "version" : "1.0" }, { "opname" : "OpLifetimeStart", "class" : "Control-Flow", "opcode" : 256, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpLifetimeStop", "class" : "Control-Flow", "opcode" : 257, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpGroupAsyncCopy", "class" : "Group", "opcode" : 259, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Destination'" }, { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "IdRef", "name" : "'Num Elements'" }, { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpGroupWaitEvents", "class" : "Group", "opcode" : 260, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Events List'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpGroupAll", "class" : "Group", "opcode" : 261, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupAny", "class" : "Group", "opcode" : 262, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupBroadcast", "class" : "Group", "opcode" : 263, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'LocalId'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupIAdd", "class" : "Group", "opcode" : 264, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupFAdd", "class" : "Group", "opcode" : 265, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupFMin", "class" : "Group", "opcode" : 266, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupUMin", "class" : "Group", "opcode" : 267, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupSMin", "class" : "Group", "opcode" : 268, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupFMax", "class" : "Group", "opcode" : 269, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupUMax", "class" : "Group", "opcode" : 270, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpGroupSMax", "class" : "Group", "opcode" : 271, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "version": "1.0" }, { "opname" : "OpReadPipe", "class" : "Pipe", "opcode" : 274, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpWritePipe", "class" : "Pipe", "opcode" : 275, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpReservedReadPipe", "class" : "Pipe", "opcode" : 276, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpReservedWritePipe", "class" : "Pipe", "opcode" : 277, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Index'" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpReserveReadPipePackets", "class" : "Pipe", "opcode" : 278, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpReserveWritePipePackets", "class" : "Pipe", "opcode" : 279, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpCommitReadPipe", "class" : "Pipe", "opcode" : 280, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpCommitWritePipe", "class" : "Pipe", "opcode" : 281, "operands" : [ { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpIsValidReserveId", "class" : "Pipe", "opcode" : 282, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reserve Id'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpGetNumPipePackets", "class" : "Pipe", "opcode" : 283, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpGetMaxPipePackets", "class" : "Pipe", "opcode" : 284, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpGroupReserveReadPipePackets", "class" : "Pipe", "opcode" : 285, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpGroupReserveWritePipePackets", "class" : "Pipe", "opcode" : 286, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Num Packets'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpGroupCommitReadPipe", "class" : "Pipe", "opcode" : 287, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpGroupCommitWritePipe", "class" : "Pipe", "opcode" : 288, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Pipe'" }, { "kind" : "IdRef", "name" : "'Reserve Id'" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "Pipes" ], "version": "1.0" }, { "opname" : "OpEnqueueMarker", "class" : "Device-Side_Enqueue", "opcode" : 291, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpEnqueueKernel", "class" : "Device-Side_Enqueue", "opcode" : 292, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Queue'" }, { "kind" : "IdRef", "name" : "'Flags'" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpGetKernelNDrangeSubGroupCount", "class" : "Device-Side_Enqueue", "opcode" : 293, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpGetKernelNDrangeMaxSubGroupSize", "class" : "Device-Side_Enqueue", "opcode" : 294, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'ND Range'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpGetKernelWorkGroupSize", "class" : "Device-Side_Enqueue", "opcode" : 295, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple", "class" : "Device-Side_Enqueue", "opcode" : 296, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpRetainEvent", "class" : "Device-Side_Enqueue", "opcode" : 297, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpReleaseEvent", "class" : "Device-Side_Enqueue", "opcode" : 298, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpCreateUserEvent", "class" : "Device-Side_Enqueue", "opcode" : 299, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpIsValidEvent", "class" : "Device-Side_Enqueue", "opcode" : 300, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Event'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpSetUserEventStatus", "class" : "Device-Side_Enqueue", "opcode" : 301, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Status'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpCaptureEventProfilingInfo", "class" : "Device-Side_Enqueue", "opcode" : 302, "operands" : [ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Profiling Info'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpGetDefaultQueue", "class" : "Device-Side_Enqueue", "opcode" : 303, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpBuildNDRange", "class" : "Device-Side_Enqueue", "opcode" : 304, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'GlobalWorkSize'" }, { "kind" : "IdRef", "name" : "'LocalWorkSize'" }, { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" } ], "capabilities" : [ "DeviceEnqueue" ], "version": "1.0" }, { "opname" : "OpImageSparseSampleImplicitLod", "class" : "Image", "opcode" : 305, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseSampleExplicitLod", "class" : "Image", "opcode" : 306, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseSampleDrefImplicitLod", "class" : "Image", "opcode" : 307, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseSampleDrefExplicitLod", "class" : "Image", "opcode" : 308, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseSampleProjImplicitLod", "class" : "Image", "opcode" : 309, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version" : "None" }, { "opname" : "OpImageSparseSampleProjExplicitLod", "class" : "Image", "opcode" : 310, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ], "version" : "None" }, { "opname" : "OpImageSparseSampleProjDrefImplicitLod", "class" : "Image", "opcode" : 311, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version" : "None" }, { "opname" : "OpImageSparseSampleProjDrefExplicitLod", "class" : "Image", "opcode" : 312, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], "capabilities" : [ "SparseResidency" ], "version" : "None" }, { "opname" : "OpImageSparseFetch", "class" : "Image", "opcode" : 313, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseGather", "class" : "Image", "opcode" : 314, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseDrefGather", "class" : "Image", "opcode" : 315, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpImageSparseTexelsResident", "class" : "Image", "opcode" : 316, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Resident Code'" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpNoLine", "class" : "Debug", "opcode" : 317, "version" : "1.0" }, { "opname" : "OpAtomicFlagTestAndSet", "class" : "Atomic", "opcode" : 318, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpAtomicFlagClear", "class" : "Atomic", "opcode" : 319, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "Kernel" ], "version": "1.0" }, { "opname" : "OpImageSparseRead", "class" : "Image", "opcode" : 320, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "SparseResidency" ], "version": "1.0" }, { "opname" : "OpSizeOf", "class" : "Miscellaneous", "opcode" : 321, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "Addresses" ], "version" : "1.1" }, { "opname" : "OpTypePipeStorage", "class" : "Type-Declaration", "opcode" : 322, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "PipeStorage" ], "version" : "1.1" }, { "opname" : "OpConstantPipeStorage", "class" : "Pipe", "opcode" : 323, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Packet Size'" }, { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" }, { "kind" : "LiteralInteger", "name" : "'Capacity'" } ], "capabilities" : [ "PipeStorage" ], "version" : "1.1" }, { "opname" : "OpCreatePipeFromPipeStorage", "class" : "Pipe", "opcode" : 324, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pipe Storage'" } ], "capabilities" : [ "PipeStorage" ], "version" : "1.1" }, { "opname" : "OpGetKernelLocalSizeForSubgroupCount", "class" : "Device-Side_Enqueue", "opcode" : 325, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Subgroup Count'" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "SubgroupDispatch" ], "version" : "1.1" }, { "opname" : "OpGetKernelMaxNumSubgroups", "class" : "Device-Side_Enqueue", "opcode" : 326, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Invoke'" }, { "kind" : "IdRef", "name" : "'Param'" }, { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], "capabilities" : [ "SubgroupDispatch" ], "version" : "1.1" }, { "opname" : "OpTypeNamedBarrier", "class" : "Type-Declaration", "opcode" : 327, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "NamedBarrier" ], "version" : "1.1" }, { "opname" : "OpNamedBarrierInitialize", "class" : "Barrier", "opcode" : 328, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Subgroup Count'" } ], "capabilities" : [ "NamedBarrier" ], "version" : "1.1" }, { "opname" : "OpMemoryNamedBarrier", "class" : "Barrier", "opcode" : 329, "operands" : [ { "kind" : "IdRef", "name" : "'Named Barrier'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "NamedBarrier" ], "version" : "1.1" }, { "opname" : "OpModuleProcessed", "class" : "Debug", "opcode" : 330, "operands" : [ { "kind" : "LiteralString", "name" : "'Process'" } ], "version" : "1.1" }, { "opname" : "OpExecutionModeId", "class" : "Mode-Setting", "opcode" : 331, "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } ], "version" : "1.2" }, { "opname" : "OpDecorateId", "class" : "Annotation", "opcode" : 332, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ], "version" : "1.2" }, { "opname" : "OpGroupNonUniformElect", "class" : "Non-Uniform", "opcode" : 333, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" } ], "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformAll", "class" : "Non-Uniform", "opcode" : 334, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "GroupNonUniformVote" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformAny", "class" : "Non-Uniform", "opcode" : 335, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "GroupNonUniformVote" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformAllEqual", "class" : "Non-Uniform", "opcode" : 336, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformVote" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBroadcast", "class" : "Non-Uniform", "opcode" : 337, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Id'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBroadcastFirst", "class" : "Non-Uniform", "opcode" : 338, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBallot", "class" : "Non-Uniform", "opcode" : 339, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformInverseBallot", "class" : "Non-Uniform", "opcode" : 340, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBallotBitExtract", "class" : "Non-Uniform", "opcode" : 341, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBallotBitCount", "class" : "Non-Uniform", "opcode" : 342, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBallotFindLSB", "class" : "Non-Uniform", "opcode" : 343, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBallotFindMSB", "class" : "Non-Uniform", "opcode" : 344, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformBallot" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformShuffle", "class" : "Non-Uniform", "opcode" : 345, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Id'" } ], "capabilities" : [ "GroupNonUniformShuffle" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformShuffleXor", "class" : "Non-Uniform", "opcode" : 346, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Mask'" } ], "capabilities" : [ "GroupNonUniformShuffle" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformShuffleUp", "class" : "Non-Uniform", "opcode" : 347, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "GroupNonUniformShuffleRelative" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformShuffleDown", "class" : "Non-Uniform", "opcode" : 348, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "GroupNonUniformShuffleRelative" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformIAdd", "class" : "Non-Uniform", "opcode" : 349, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformFAdd", "class" : "Non-Uniform", "opcode" : 350, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformIMul", "class" : "Non-Uniform", "opcode" : 351, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformFMul", "class" : "Non-Uniform", "opcode" : 352, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformSMin", "class" : "Non-Uniform", "opcode" : 353, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformUMin", "class" : "Non-Uniform", "opcode" : 354, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformFMin", "class" : "Non-Uniform", "opcode" : 355, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformSMax", "class" : "Non-Uniform", "opcode" : 356, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformUMax", "class" : "Non-Uniform", "opcode" : 357, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformFMax", "class" : "Non-Uniform", "opcode" : 358, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBitwiseAnd", "class" : "Non-Uniform", "opcode" : 359, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBitwiseOr", "class" : "Non-Uniform", "opcode" : 360, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformBitwiseXor", "class" : "Non-Uniform", "opcode" : 361, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformLogicalAnd", "class" : "Non-Uniform", "opcode" : 362, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformLogicalOr", "class" : "Non-Uniform", "opcode" : 363, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformLogicalXor", "class" : "Non-Uniform", "opcode" : 364, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformQuadBroadcast", "class" : "Non-Uniform", "opcode" : 365, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "capabilities" : [ "GroupNonUniformQuad" ], "version" : "1.3" }, { "opname" : "OpGroupNonUniformQuadSwap", "class" : "Non-Uniform", "opcode" : 366, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Direction'" } ], "capabilities" : [ "GroupNonUniformQuad" ], "version" : "1.3" }, { "opname" : "OpCopyLogical", "class" : "Composite", "opcode" : 400, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "version" : "1.4" }, { "opname" : "OpPtrEqual", "class" : "Memory", "opcode" : 401, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version" : "1.4" }, { "opname" : "OpPtrNotEqual", "class" : "Memory", "opcode" : 402, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "version" : "1.4" }, { "opname" : "OpPtrDiff", "class" : "Memory", "opcode" : 403, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ], "version" : "1.4" }, { "opname" : "OpColorAttachmentReadEXT", "class" : "Image", "opcode" : 4160, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Attachment'" }, { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" } ], "capabilities": [ "TileImageColorReadAccessEXT" ], "version" : "None" }, { "opname" : "OpDepthAttachmentReadEXT", "class" : "Image", "opcode" : 4161, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" } ], "capabilities" : [ "TileImageDepthReadAccessEXT" ], "version" : "None" }, { "opname" : "OpStencilAttachmentReadEXT", "class" : "Image", "opcode" : 4162, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" } ], "capabilities" : [ "TileImageStencilReadAccessEXT" ], "version" : "None" }, { "opname" : "OpTerminateInvocation", "class" : "Control-Flow", "opcode" : 4416, "extensions" : [ "SPV_KHR_terminate_invocation" ], "capabilities" : [ "Shader" ], "version" : "1.6" }, { "opname" : "OpSubgroupBallotKHR", "class" : "Group", "opcode" : 4421, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "SubgroupBallotKHR" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "None" }, { "opname" : "OpSubgroupFirstInvocationKHR", "class" : "Group", "opcode" : 4422, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupBallotKHR" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "None" }, { "opname" : "OpSubgroupAllKHR", "class" : "Group", "opcode" : 4428, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "extensions" : [ "SPV_KHR_subgroup_vote" ], "capabilities" : [ "SubgroupVoteKHR" ], "version" : "None" }, { "opname" : "OpSubgroupAnyKHR", "class" : "Group", "opcode" : 4429, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "extensions" : [ "SPV_KHR_subgroup_vote" ], "capabilities" : [ "SubgroupVoteKHR" ], "version" : "None" }, { "opname" : "OpSubgroupAllEqualKHR", "class" : "Group", "opcode" : 4430, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "extensions" : [ "SPV_KHR_subgroup_vote" ], "capabilities" : [ "SubgroupVoteKHR" ], "version" : "None" }, { "opname" : "OpGroupNonUniformRotateKHR", "class" : "Group", "opcode" : 4431, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Delta'" }, { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" } ], "capabilities" : [ "GroupNonUniformRotateKHR" ], "version" : "None" }, { "opname" : "OpSubgroupReadInvocationKHR", "class" : "Group", "opcode" : 4432, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], "capabilities" : [ "SubgroupBallotKHR" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "None" }, { "opname" : "OpExtInstWithForwardRefsKHR", "class" : "Extension", "opcode" : 4433, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } ], "extensions" : [ "SPV_KHR_relaxed_extended_instruction" ], "version": "None" }, { "opname" : "OpTraceRayKHR", "class" : "Reserved", "opcode" : 4445, "operands" : [ { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'Ray Flags'" }, { "kind" : "IdRef", "name" : "'Cull Mask'" }, { "kind" : "IdRef", "name" : "'SBT Offset'" }, { "kind" : "IdRef", "name" : "'SBT Stride'" }, { "kind" : "IdRef", "name" : "'Miss Index'" }, { "kind" : "IdRef", "name" : "'Ray Origin'" }, { "kind" : "IdRef", "name" : "'Ray Tmin'" }, { "kind" : "IdRef", "name" : "'Ray Direction'" }, { "kind" : "IdRef", "name" : "'Ray Tmax'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "opname" : "OpExecuteCallableKHR", "class" : "Reserved", "opcode" : 4446, "operands" : [ { "kind" : "IdRef", "name" : "'SBT Index'" }, { "kind" : "IdRef", "name" : "'Callable Data'" } ], "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "opname" : "OpConvertUToAccelerationStructureKHR", "class" : "Reserved", "opcode" : 4447, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Accel'" } ], "capabilities" : [ "RayTracingKHR", "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpIgnoreIntersectionKHR", "class" : "Reserved", "opcode" : 4448, "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "opname" : "OpTerminateRayKHR", "class" : "Reserved", "opcode" : 4449, "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "opname" : "OpSDot", "class" : "Arithmetic", "opcode" : 4450, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProduct" ], "version" : "1.6" }, { "opname" : "OpSDotKHR", "class" : "Arithmetic", "opcode" : 4450, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProductKHR" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "opname" : "OpUDot", "class" : "Arithmetic", "opcode" : 4451, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProduct" ], "version" : "1.6" }, { "opname" : "OpUDotKHR", "class" : "Arithmetic", "opcode" : 4451, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProductKHR" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "opname" : "OpSUDot", "class" : "Arithmetic", "opcode" : 4452, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProduct" ], "version" : "1.6" }, { "opname" : "OpSUDotKHR", "class" : "Arithmetic", "opcode" : 4452, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProductKHR" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "opname" : "OpSDotAccSat", "class" : "Arithmetic", "opcode" : 4453, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "IdRef", "name" : "'Accumulator'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProduct" ], "version" : "1.6" }, { "opname" : "OpSDotAccSatKHR", "class" : "Arithmetic", "opcode" : 4453, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "IdRef", "name" : "'Accumulator'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProductKHR" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "opname" : "OpUDotAccSat", "class" : "Arithmetic", "opcode" : 4454, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "IdRef", "name" : "'Accumulator'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProduct" ], "version" : "1.6" }, { "opname" : "OpUDotAccSatKHR", "class" : "Arithmetic", "opcode" : 4454, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "IdRef", "name" : "'Accumulator'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProductKHR" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "opname" : "OpSUDotAccSat", "class" : "Arithmetic", "opcode" : 4455, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "IdRef", "name" : "'Accumulator'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProduct" ], "version" : "1.6" }, { "opname" : "OpSUDotAccSatKHR", "class" : "Arithmetic", "opcode" : 4455, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "IdRef", "name" : "'Accumulator'" }, { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" } ], "capabilities" : [ "DotProductKHR" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "opname" : "OpTypeCooperativeMatrixKHR", "class" : "Type-Declaration", "opcode" : 4456, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "IdScope", "name" : "'Scope'" }, { "kind" : "IdRef", "name" : "'Rows'" }, { "kind" : "IdRef", "name" : "'Columns'" }, { "kind" : "IdRef", "name" : "'Use'" } ], "capabilities" : [ "CooperativeMatrixKHR" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixLoadKHR", "class" : "Memory", "opcode" : 4457, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'MemoryLayout'" }, { "kind" : "IdRef", "name" : "'Stride'", "quantifier": "?" }, { "kind" : "MemoryAccess", "name" : "'Memory Operand'", "quantifier" : "?" } ], "capabilities" : [ "CooperativeMatrixKHR" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixStoreKHR", "class" : "Memory", "opcode" : 4458, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'MemoryLayout'" }, { "kind" : "IdRef", "name" : "'Stride'", "quantifier": "?" }, { "kind" : "MemoryAccess", "name" : "'Memory Operand'", "quantifier" : "?" } ], "capabilities" : [ "CooperativeMatrixKHR" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixMulAddKHR", "class" : "Arithmetic", "opcode" : 4459, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "IdRef", "name" : "'C'" }, { "kind" : "CooperativeMatrixOperands", "name" : "'Cooperative Matrix Operands'", "quantifier" : "?" } ], "capabilities" : [ "CooperativeMatrixKHR" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixLengthKHR", "class" : "Miscellaneous", "opcode" : 4460, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Type'" } ], "capabilities" : [ "CooperativeMatrixKHR" ], "version" : "None" }, { "opname" : "OpConstantCompositeReplicateEXT", "class" : "Constant-Creation", "opcode" : 4461, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "ReplicatedCompositesEXT" ], "version" : "None" }, { "opname" : "OpSpecConstantCompositeReplicateEXT", "class" : "Constant-Creation", "opcode" : 4462, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "ReplicatedCompositesEXT" ], "version" : "None" }, { "opname" : "OpCompositeConstructReplicateEXT", "class" : "Composite", "opcode" : 4463, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "ReplicatedCompositesEXT" ], "version" : "None" }, { "opname" : "OpTypeRayQueryKHR", "class" : "Type-Declaration", "opcode" : 4472, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryInitializeKHR", "class" : "Reserved", "opcode" : 4473, "operands" : [ { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'RayFlags'" }, { "kind" : "IdRef", "name" : "'CullMask'" }, { "kind" : "IdRef", "name" : "'RayOrigin'" }, { "kind" : "IdRef", "name" : "'RayTMin'" }, { "kind" : "IdRef", "name" : "'RayDirection'" }, { "kind" : "IdRef", "name" : "'RayTMax'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryTerminateKHR", "class" : "Reserved", "opcode" : 4474, "operands" : [ { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGenerateIntersectionKHR", "class" : "Reserved", "opcode" : 4475, "operands" : [ { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'HitT'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryConfirmIntersectionKHR", "class" : "Reserved", "opcode" : 4476, "operands" : [ { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryProceedKHR", "class" : "Reserved", "opcode" : 4477, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionTypeKHR", "class" : "Reserved", "opcode" : 4479, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpImageSampleWeightedQCOM", "class" : "Image", "opcode" : 4480, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Texture'" }, { "kind" : "IdRef", "name" : "'Coordinates'" }, { "kind" : "IdRef", "name" : "'Weights'" } ], "capabilities" : [ "TextureSampleWeightedQCOM" ], "version" : "None" }, { "opname" : "OpImageBoxFilterQCOM", "class" : "Image", "opcode" : 4481, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Texture'" }, { "kind" : "IdRef", "name" : "'Coordinates'" }, { "kind" : "IdRef", "name" : "'Box Size'" } ], "capabilities" : [ "TextureBoxFilterQCOM" ], "version" : "None" }, { "opname" : "OpImageBlockMatchSSDQCOM", "class" : "Image", "opcode" : 4482, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Target Coordinates'" }, { "kind" : "IdRef", "name" : "'Reference'" }, { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, { "kind" : "IdRef", "name" : "'Block Size'" } ], "capabilities" : [ "TextureBlockMatchQCOM" ], "version" : "None" }, { "opname" : "OpImageBlockMatchSADQCOM", "class" : "Image", "opcode" : 4483, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "IdRef", "name" : "'Target Coordinates'" }, { "kind" : "IdRef", "name" : "'Reference'" }, { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, { "kind" : "IdRef", "name" : "'Block Size'" } ], "capabilities" : [ "TextureBlockMatchQCOM" ], "version" : "None" }, { "opname" : "OpImageBlockMatchWindowSSDQCOM", "class" : "Image", "opcode" : 4500, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, { "kind" : "IdRef", "name" : "'Target Coordinates'" }, { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, { "kind" : "IdRef", "name" : "'Block Size'" } ], "capabilities" : [ "TextureBlockMatch2QCOM" ], "version" : "None" }, { "opname" : "OpImageBlockMatchWindowSADQCOM", "class" : "Image", "opcode" : 4501, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, { "kind" : "IdRef", "name" : "'Target Coordinates'" }, { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, { "kind" : "IdRef", "name" : "'Block Size'" } ], "capabilities" : [ "TextureBlockMatch2QCOM" ], "version" : "None" }, { "opname" : "OpImageBlockMatchGatherSSDQCOM", "class" : "Image", "opcode" : 4502, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, { "kind" : "IdRef", "name" : "'Target Coordinates'" }, { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, { "kind" : "IdRef", "name" : "'Block Size'" } ], "capabilities" : [ "TextureBlockMatch2QCOM" ], "version" : "None" }, { "opname" : "OpImageBlockMatchGatherSADQCOM", "class" : "Image", "opcode" : 4503, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, { "kind" : "IdRef", "name" : "'Target Coordinates'" }, { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, { "kind" : "IdRef", "name" : "'Block Size'" } ], "capabilities" : [ "TextureBlockMatch2QCOM" ], "version" : "None" }, { "opname" : "OpGroupIAddNonUniformAMD", "class" : "Group", "opcode" : 5000, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupFAddNonUniformAMD", "class" : "Group", "opcode" : 5001, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupFMinNonUniformAMD", "class" : "Group", "opcode" : 5002, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupUMinNonUniformAMD", "class" : "Group", "opcode" : 5003, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupSMinNonUniformAMD", "class" : "Group", "opcode" : 5004, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupFMaxNonUniformAMD", "class" : "Group", "opcode" : 5005, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupUMaxNonUniformAMD", "class" : "Group", "opcode" : 5006, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpGroupSMaxNonUniformAMD", "class" : "Group", "opcode" : 5007, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ], "extensions" : [ "SPV_AMD_shader_ballot" ], "version" : "None" }, { "opname" : "OpFragmentMaskFetchAMD", "class" : "Reserved", "opcode" : 5011, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "FragmentMaskAMD" ], "extensions" : [ "SPV_AMD_shader_fragment_mask" ], "version" : "None" }, { "opname" : "OpFragmentFetchAMD", "class" : "Reserved", "opcode" : 5012, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Fragment Index'" } ], "capabilities" : [ "FragmentMaskAMD" ], "extensions" : [ "SPV_AMD_shader_fragment_mask" ], "version" : "None" }, { "opname" : "OpReadClockKHR", "class" : "Reserved", "opcode" : 5056, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Scope'" } ], "capabilities" : [ "ShaderClockKHR" ], "version" : "None" }, { "opname" : "OpFinalizeNodePayloadsAMDX", "class" : "Reserved", "opcode" : 5075, "operands" : [ { "kind" : "IdRef", "name": "'Payload Array'" } ], "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "opname" : "OpFinishWritingNodePayloadAMDX", "class" : "Reserved", "opcode" : 5078, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name": "'Payload'" } ], "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "opname" : "OpInitializeNodePayloadsAMDX", "class" : "Reserved", "opcode" : 5090, "operands" : [ { "kind" : "IdRef", "name": "'Payload Array'" }, { "kind" : "IdScope", "name": "'Visibility'" }, { "kind" : "IdRef", "name": "'Payload Count'" }, { "kind" : "IdRef", "name": "'Node Index'" } ], "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "opname" : "OpGroupNonUniformQuadAllKHR", "class" : "Non-Uniform", "opcode" : 5110, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "QuadControlKHR" ], "version" : "None" }, { "opname" : "OpGroupNonUniformQuadAnyKHR", "class" : "Non-Uniform", "opcode" : 5111, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], "capabilities" : [ "QuadControlKHR" ], "version" : "None" }, { "opname" : "OpHitObjectRecordHitMotionNV", "class" : "Reserved", "opcode" : 5249, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, { "kind" : "IdRef", "name" : "'InstanceId'" }, { "kind" : "IdRef", "name" : "'PrimitiveId'" }, { "kind" : "IdRef", "name" : "'GeometryIndex'" }, { "kind" : "IdRef", "name" : "'Hit Kind'" }, { "kind" : "IdRef", "name" : "'SBT Record Offset'" }, { "kind" : "IdRef", "name" : "'SBT Record Stride'" }, { "kind" : "IdRef", "name" : "'Origin'" }, { "kind" : "IdRef", "name" : "'TMin'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'TMax'" }, { "kind" : "IdRef", "name" : "'Current Time'" }, { "kind" : "IdRef", "name" : "'HitObject Attributes'" } ], "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], "version" : "None" }, { "opname" : "OpHitObjectRecordHitWithIndexMotionNV", "class" : "Reserved", "opcode" : 5250, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, { "kind" : "IdRef", "name" : "'InstanceId'" }, { "kind" : "IdRef", "name" : "'PrimitiveId'" }, { "kind" : "IdRef", "name" : "'GeometryIndex'" }, { "kind" : "IdRef", "name" : "'Hit Kind'" }, { "kind" : "IdRef", "name" : "'SBT Record Index'" }, { "kind" : "IdRef", "name" : "'Origin'" }, { "kind" : "IdRef", "name" : "'TMin'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'TMax'" }, { "kind" : "IdRef", "name" : "'Current Time'" }, { "kind" : "IdRef", "name" : "'HitObject Attributes'" } ], "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], "version" : "None" }, { "opname" : "OpHitObjectRecordMissMotionNV", "class" : "Reserved", "opcode" : 5251, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'SBT Index'" }, { "kind" : "IdRef", "name" : "'Origin'" }, { "kind" : "IdRef", "name" : "'TMin'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'TMax'" }, { "kind" : "IdRef", "name" : "'Current Time'" } ], "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetWorldToObjectNV", "class" : "Reserved", "opcode" : 5252, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetObjectToWorldNV", "class" : "Reserved", "opcode" : 5253, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetObjectRayDirectionNV", "class" : "Reserved", "opcode" : 5254, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetObjectRayOriginNV", "class" : "Reserved", "opcode" : 5255, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectTraceRayMotionNV", "class" : "Reserved", "opcode" : 5256, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Acceleration Structure'"}, { "kind" : "IdRef", "name" : "'RayFlags'"}, { "kind" : "IdRef", "name" : "'Cullmask'"}, { "kind" : "IdRef", "name" : "'SBT Record Offset'"}, { "kind" : "IdRef", "name" : "'SBT Record Stride'"}, { "kind" : "IdRef", "name" : "'Miss Index'"}, { "kind" : "IdRef", "name" : "'Origin'"}, { "kind" : "IdRef", "name" : "'TMin'"}, { "kind" : "IdRef", "name" : "'Direction'"}, { "kind" : "IdRef", "name" : "'TMax'"}, { "kind" : "IdRef", "name" : "'Time'"}, { "kind" : "IdRef", "name" : "'Payload'"} ], "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetShaderRecordBufferHandleNV", "class" : "Reserved", "opcode" : 5257, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetShaderBindingTableRecordIndexNV", "class" : "Reserved", "opcode" : 5258, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectRecordEmptyNV", "class" : "Reserved", "opcode" : 5259, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectTraceRayNV", "class" : "Reserved", "opcode" : 5260, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Acceleration Structure'"}, { "kind" : "IdRef", "name" : "'RayFlags'"}, { "kind" : "IdRef", "name" : "'Cullmask'"}, { "kind" : "IdRef", "name" : "'SBT Record Offset'"}, { "kind" : "IdRef", "name" : "'SBT Record Stride'"}, { "kind" : "IdRef", "name" : "'Miss Index'"}, { "kind" : "IdRef", "name" : "'Origin'"}, { "kind" : "IdRef", "name" : "'TMin'"}, { "kind" : "IdRef", "name" : "'Direction'"}, { "kind" : "IdRef", "name" : "'TMax'"}, { "kind" : "IdRef", "name" : "'Payload'"} ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectRecordHitNV", "class" : "Reserved", "opcode" : 5261, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, { "kind" : "IdRef", "name" : "'InstanceId'" }, { "kind" : "IdRef", "name" : "'PrimitiveId'" }, { "kind" : "IdRef", "name" : "'GeometryIndex'" }, { "kind" : "IdRef", "name" : "'Hit Kind'" }, { "kind" : "IdRef", "name" : "'SBT Record Offset'" }, { "kind" : "IdRef", "name" : "'SBT Record Stride'" }, { "kind" : "IdRef", "name" : "'Origin'" }, { "kind" : "IdRef", "name" : "'TMin'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'TMax'" }, { "kind" : "IdRef", "name" : "'HitObject Attributes'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectRecordHitWithIndexNV", "class" : "Reserved", "opcode" : 5262, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, { "kind" : "IdRef", "name" : "'InstanceId'" }, { "kind" : "IdRef", "name" : "'PrimitiveId'" }, { "kind" : "IdRef", "name" : "'GeometryIndex'" }, { "kind" : "IdRef", "name" : "'Hit Kind'" }, { "kind" : "IdRef", "name" : "'SBT Record Index'" }, { "kind" : "IdRef", "name" : "'Origin'" }, { "kind" : "IdRef", "name" : "'TMin'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'TMax'" }, { "kind" : "IdRef", "name" : "'HitObject Attributes'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectRecordMissNV", "class" : "Reserved", "opcode" : 5263, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'SBT Index'" }, { "kind" : "IdRef", "name" : "'Origin'" }, { "kind" : "IdRef", "name" : "'TMin'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'TMax'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectExecuteShaderNV", "class" : "Reserved", "opcode" : 5264, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetCurrentTimeNV", "class" : "Reserved", "opcode" : 5265, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetAttributesNV", "class" : "Reserved", "opcode" : 5266, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "name" : "'Hit Object Attribute'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetHitKindNV", "class" : "Reserved", "opcode" : 5267, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetPrimitiveIndexNV", "class" : "Reserved", "opcode" : 5268, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetGeometryIndexNV", "class" : "Reserved", "opcode" : 5269, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetInstanceIdNV", "class" : "Reserved", "opcode" : 5270, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetInstanceCustomIndexNV", "class" : "Reserved", "opcode" : 5271, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetWorldRayDirectionNV", "class" : "Reserved", "opcode" : 5272, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetWorldRayOriginNV", "class" : "Reserved", "opcode" : 5273, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetRayTMaxNV", "class" : "Reserved", "opcode" : 5274, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectGetRayTMinNV", "class" : "Reserved", "opcode" : 5275, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectIsEmptyNV", "class" : "Reserved", "opcode" : 5276, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectIsHitNV", "class" : "Reserved", "opcode" : 5277, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpHitObjectIsMissNV", "class" : "Reserved", "opcode" : 5278, "operands" : [ { "kind" : "IdResultType"}, { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Hit Object'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpReorderThreadWithHitObjectNV", "class" : "Reserved", "opcode" : 5279, "operands" : [ { "kind" : "IdRef", "name" : "'Hit Object'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Hint'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Bits'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpReorderThreadWithHintNV", "class" : "Reserved", "opcode" : 5280, "operands" : [ { "kind" : "IdRef", "name" : "'Hint'" }, { "kind" : "IdRef", "name" : "'Bits'" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpTypeHitObjectNV", "class" : "Type-Declaration", "opcode" : 5281, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "opname" : "OpImageSampleFootprintNV", "class" : "Image", "opcode" : 5283, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Granularity'" }, { "kind" : "IdRef", "name" : "'Coarse'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], "capabilities" : [ "ImageFootprintNV" ], "extensions" : [ "SPV_NV_shader_image_footprint" ], "version" : "None" }, { "opname" : "OpEmitMeshTasksEXT", "class" : "Reserved", "opcode" : 5294, "operands" : [ { "kind" : "IdRef", "name" : "'Group Count X'" }, { "kind" : "IdRef", "name" : "'Group Count Y'" }, { "kind" : "IdRef", "name" : "'Group Count Z'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Payload'" } ], "capabilities" : [ "MeshShadingEXT" ], "version" : "None" }, { "opname" : "OpSetMeshOutputsEXT", "class" : "Reserved", "opcode" : 5295, "operands" : [ { "kind" : "IdRef", "name" : "'Vertex Count'" }, { "kind" : "IdRef", "name" : "'Primitive Count'" } ], "capabilities" : [ "MeshShadingEXT" ], "version" : "None" }, { "opname" : "OpGroupNonUniformPartitionNV", "class" : "Non-Uniform", "opcode" : 5296, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "GroupNonUniformPartitionedNV" ], "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ], "version" : "None" }, { "opname" : "OpWritePackedPrimitiveIndices4x8NV", "class" : "Reserved", "opcode" : 5299, "operands" : [ { "kind" : "IdRef", "name" : "'Index Offset'" }, { "kind" : "IdRef", "name" : "'Packed Indices'" } ], "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "opname" : "OpFetchMicroTriangleVertexPositionNV", "class" : "Reserved", "opcode" : 5300, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'Instance Id'" }, { "kind" : "IdRef", "name" : "'Geometry Index'" }, { "kind" : "IdRef", "name" : "'Primitive Index'" }, { "kind" : "IdRef", "name" : "'Barycentric'" } ], "capabilities" : [ "DisplacementMicromapNV" ], "version" : "None" }, { "opname" : "OpFetchMicroTriangleVertexBarycentricNV", "class" : "Reserved", "opcode" : 5301, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'Instance Id'" }, { "kind" : "IdRef", "name" : "'Geometry Index'" }, { "kind" : "IdRef", "name" : "'Primitive Index'" }, { "kind" : "IdRef", "name" : "'Barycentric'" } ], "capabilities" : [ "DisplacementMicromapNV" ], "version" : "None" }, { "opname" : "OpReportIntersectionKHR", "class" : "Reserved", "opcode" : 5334, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Hit'" }, { "kind" : "IdRef", "name" : "'HitKind'" } ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "opname" : "OpReportIntersectionNV", "class" : "Reserved", "opcode" : 5334, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Hit'" }, { "kind" : "IdRef", "name" : "'HitKind'" } ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "opname" : "OpIgnoreIntersectionNV", "class" : "Reserved", "opcode" : 5335, "capabilities" : [ "RayTracingNV" ], "extensions" : [ "SPV_NV_ray_tracing" ], "version" : "None" }, { "opname" : "OpTerminateRayNV", "class" : "Reserved", "opcode" : 5336, "capabilities" : [ "RayTracingNV" ], "extensions" : [ "SPV_NV_ray_tracing" ], "version" : "None" }, { "opname" : "OpTraceNV", "class" : "Reserved", "opcode" : 5337, "operands" : [ { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'Ray Flags'" }, { "kind" : "IdRef", "name" : "'Cull Mask'" }, { "kind" : "IdRef", "name" : "'SBT Offset'" }, { "kind" : "IdRef", "name" : "'SBT Stride'" }, { "kind" : "IdRef", "name" : "'Miss Index'" }, { "kind" : "IdRef", "name" : "'Ray Origin'" }, { "kind" : "IdRef", "name" : "'Ray Tmin'" }, { "kind" : "IdRef", "name" : "'Ray Direction'" }, { "kind" : "IdRef", "name" : "'Ray Tmax'" }, { "kind" : "IdRef", "name" : "'PayloadId'" } ], "capabilities" : [ "RayTracingNV" ], "extensions" : [ "SPV_NV_ray_tracing" ], "version" : "None" }, { "opname" : "OpTraceMotionNV", "class" : "Reserved", "opcode" : 5338, "operands" : [ { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'Ray Flags'" }, { "kind" : "IdRef", "name" : "'Cull Mask'" }, { "kind" : "IdRef", "name" : "'SBT Offset'" }, { "kind" : "IdRef", "name" : "'SBT Stride'" }, { "kind" : "IdRef", "name" : "'Miss Index'" }, { "kind" : "IdRef", "name" : "'Ray Origin'" }, { "kind" : "IdRef", "name" : "'Ray Tmin'" }, { "kind" : "IdRef", "name" : "'Ray Direction'" }, { "kind" : "IdRef", "name" : "'Ray Tmax'" }, { "kind" : "IdRef", "name" : "'Time'" }, { "kind" : "IdRef", "name" : "'PayloadId'" } ], "capabilities" : [ "RayTracingMotionBlurNV" ], "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ], "version" : "None" }, { "opname" : "OpTraceRayMotionNV", "class" : "Reserved", "opcode" : 5339, "operands" : [ { "kind" : "IdRef", "name" : "'Accel'" }, { "kind" : "IdRef", "name" : "'Ray Flags'" }, { "kind" : "IdRef", "name" : "'Cull Mask'" }, { "kind" : "IdRef", "name" : "'SBT Offset'" }, { "kind" : "IdRef", "name" : "'SBT Stride'" }, { "kind" : "IdRef", "name" : "'Miss Index'" }, { "kind" : "IdRef", "name" : "'Ray Origin'" }, { "kind" : "IdRef", "name" : "'Ray Tmin'" }, { "kind" : "IdRef", "name" : "'Ray Direction'" }, { "kind" : "IdRef", "name" : "'Ray Tmax'" }, { "kind" : "IdRef", "name" : "'Time'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "RayTracingMotionBlurNV" ], "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionTriangleVertexPositionsKHR", "class" : "Reserved", "opcode" : 5340, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryPositionFetchKHR" ], "version" : "None" }, { "opname" : "OpTypeAccelerationStructureKHR", "class" : "Type-Declaration", "opcode" : 5341, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR", "RayQueryKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpTypeAccelerationStructureNV", "class" : "Type-Declaration", "opcode" : 5341, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR", "RayQueryKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpExecuteCallableNV", "class" : "Reserved", "opcode" : 5344, "operands" : [ { "kind" : "IdRef", "name" : "'SBT Index'" }, { "kind" : "IdRef", "name" : "'Callable DataId'" } ], "capabilities" : [ "RayTracingNV" ], "extensions" : [ "SPV_NV_ray_tracing" ], "version" : "None" }, { "opname" : "OpTypeCooperativeMatrixNV", "class" : "Type-Declaration", "opcode" : 5358, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Rows'" }, { "kind" : "IdRef", "name" : "'Columns'" } ], "capabilities" : [ "CooperativeMatrixNV" ], "extensions" : [ "SPV_NV_cooperative_matrix" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixLoadNV", "class" : "Reserved", "opcode" : 5359, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Column Major'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "capabilities" : [ "CooperativeMatrixNV" ], "extensions" : [ "SPV_NV_cooperative_matrix" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixStoreNV", "class" : "Reserved", "opcode" : 5360, "operands" : [ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Column Major'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], "capabilities" : [ "CooperativeMatrixNV" ], "extensions" : [ "SPV_NV_cooperative_matrix" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixMulAddNV", "class" : "Reserved", "opcode" : 5361, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "IdRef", "name" : "'C'" } ], "capabilities" : [ "CooperativeMatrixNV" ], "extensions" : [ "SPV_NV_cooperative_matrix" ], "version" : "None" }, { "opname" : "OpCooperativeMatrixLengthNV", "class" : "Reserved", "opcode" : 5362, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Type'" } ], "capabilities" : [ "CooperativeMatrixNV" ], "extensions" : [ "SPV_NV_cooperative_matrix" ], "version" : "None" }, { "opname" : "OpBeginInvocationInterlockEXT", "class" : "Reserved", "opcode" : 5364, "capabilities" : [ "FragmentShaderSampleInterlockEXT", "FragmentShaderPixelInterlockEXT", "FragmentShaderShadingRateInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "opname" : "OpEndInvocationInterlockEXT", "class" : "Reserved", "opcode" : 5365, "capabilities" : [ "FragmentShaderSampleInterlockEXT", "FragmentShaderPixelInterlockEXT", "FragmentShaderShadingRateInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "opname" : "OpDemoteToHelperInvocation", "class" : "Control-Flow", "opcode" : 5380, "capabilities" : [ "DemoteToHelperInvocation" ], "version" : "1.6" }, { "opname" : "OpDemoteToHelperInvocationEXT", "class" : "Control-Flow", "opcode" : 5380, "capabilities" : [ "DemoteToHelperInvocationEXT" ], "version" : "1.6" }, { "opname" : "OpIsHelperInvocationEXT", "class" : "Reserved", "opcode" : 5381, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "DemoteToHelperInvocationEXT" ], "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ], "version" : "None" }, { "opname" : "OpConvertUToImageNV", "class" : "Reserved", "opcode" : 5391, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpConvertUToSamplerNV", "class" : "Reserved", "opcode" : 5392, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpConvertImageToUNV", "class" : "Reserved", "opcode" : 5393, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpConvertSamplerToUNV", "class" : "Reserved", "opcode" : 5394, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpConvertUToSampledImageNV", "class" : "Reserved", "opcode" : 5395, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpConvertSampledImageToUNV", "class" : "Reserved", "opcode" : 5396, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpSamplerImageAddressingModeNV", "class" : "Reserved", "opcode" : 5397, "operands" : [ { "kind" : "LiteralInteger", "name" : "'Bit Width'" } ], "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "opname" : "OpRawAccessChainNV", "class" : "Memory", "opcode" : 5398, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Byte stride'" }, { "kind" : "IdRef", "name" : "'Element index'" }, { "kind" : "IdRef", "name" : "'Byte offset'" }, { "kind" : "RawAccessChainOperands", "quantifier" : "?" } ], "capabilities" : [ "RawAccessChainsNV" ], "version" : "None" }, { "opname" : "OpSubgroupShuffleINTEL", "class" : "Group", "opcode" : 5571, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'InvocationId'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupShuffleDownINTEL", "class" : "Group", "opcode" : 5572, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Next'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupShuffleUpINTEL", "class" : "Group", "opcode" : 5573, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Previous'" }, { "kind" : "IdRef", "name" : "'Current'" }, { "kind" : "IdRef", "name" : "'Delta'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupShuffleXorINTEL", "class" : "Group", "opcode" : 5574, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Data'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "SubgroupShuffleINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupBlockReadINTEL", "class" : "Group", "opcode" : 5575, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Ptr'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupBlockWriteINTEL", "class" : "Group", "opcode" : 5576, "operands" : [ { "kind" : "IdRef", "name" : "'Ptr'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupBufferBlockIOINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupImageBlockReadINTEL", "class" : "Group", "opcode" : 5577, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupImageBlockWriteINTEL", "class" : "Group", "opcode" : 5578, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupImageBlockIOINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupImageMediaBlockReadINTEL", "class" : "Group", "opcode" : 5580, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Width'" }, { "kind" : "IdRef", "name" : "'Height'" } ], "capabilities" : [ "SubgroupImageMediaBlockIOINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupImageMediaBlockWriteINTEL", "class" : "Group", "opcode" : 5581, "operands" : [ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Width'" }, { "kind" : "IdRef", "name" : "'Height'" }, { "kind" : "IdRef", "name" : "'Data'" } ], "capabilities" : [ "SubgroupImageMediaBlockIOINTEL" ], "version" : "None" }, { "opname" : "OpUCountLeadingZerosINTEL", "class" : "Reserved", "opcode" : 5585, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpUCountTrailingZerosINTEL", "class" : "Reserved", "opcode" : 5586, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpAbsISubINTEL", "class" : "Reserved", "opcode" : 5587, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpAbsUSubINTEL", "class" : "Reserved", "opcode" : 5588, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpIAddSatINTEL", "class" : "Reserved", "opcode" : 5589, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpUAddSatINTEL", "class" : "Reserved", "opcode" : 5590, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpIAverageINTEL", "class" : "Reserved", "opcode" : 5591, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpUAverageINTEL", "class" : "Reserved", "opcode" : 5592, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpIAverageRoundedINTEL", "class" : "Reserved", "opcode" : 5593, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpUAverageRoundedINTEL", "class" : "Reserved", "opcode" : 5594, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpISubSatINTEL", "class" : "Reserved", "opcode" : 5595, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpUSubSatINTEL", "class" : "Reserved", "opcode" : 5596, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpIMul32x16INTEL", "class" : "Reserved", "opcode" : 5597, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpUMul32x16INTEL", "class" : "Reserved", "opcode" : 5598, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } ], "capabilities" : [ "IntegerFunctions2INTEL" ], "version" : "None" }, { "opname" : "OpConstantFunctionPointerINTEL", "class" : "@exclude", "opcode" : 5600, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" } ], "capabilities" : [ "FunctionPointersINTEL" ], "extensions" : [ "SPV_INTEL_function_pointers" ], "version" : "None" }, { "opname" : "OpFunctionPointerCallINTEL", "class" : "@exclude", "opcode" : 5601, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1'" } ], "capabilities" : [ "FunctionPointersINTEL" ], "extensions" : [ "SPV_INTEL_function_pointers" ], "version" : "None" }, { "opname" : "OpAsmTargetINTEL", "class" : "@exclude", "opcode" : 5609, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Asm target'" } ], "capabilities" : [ "AsmINTEL" ], "version" : "None" }, { "opname" : "OpAsmINTEL", "class" : "@exclude", "opcode" : 5610, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Asm type'" }, { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Asm instructions'" }, { "kind" : "LiteralString", "name" : "'Constraints'" } ], "capabilities" : [ "AsmINTEL" ], "version" : "None" }, { "opname" : "OpAsmCallINTEL", "class" : "@exclude", "opcode" : 5611, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Asm'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0'" } ], "capabilities" : [ "AsmINTEL" ], "version" : "None" }, { "opname" : "OpAtomicFMinEXT", "class" : "Atomic", "opcode" : 5614, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT", "AtomicFloat16VectorNV" ], "version" : "None" }, { "opname" : "OpAtomicFMaxEXT", "class" : "Atomic", "opcode" : 5615, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT", "AtomicFloat16VectorNV" ], "version" : "None" }, { "opname" : "OpAssumeTrueKHR", "class" : "Miscellaneous", "opcode" : 5630, "operands" : [ { "kind" : "IdRef", "name" : "'Condition'" } ], "capabilities" : [ "ExpectAssumeKHR" ], "extensions" : [ "SPV_KHR_expect_assume" ], "version" : "None" }, { "opname" : "OpExpectKHR", "class" : "Miscellaneous", "opcode" : 5631, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'ExpectedValue'" } ], "capabilities" : [ "ExpectAssumeKHR" ], "extensions" : [ "SPV_KHR_expect_assume" ], "version" : "None" }, { "opname" : "OpDecorateString", "class" : "Annotation", "opcode" : 5632, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ], "version" : "1.4" }, { "opname" : "OpDecorateStringGOOGLE", "class" : "Annotation", "opcode" : 5632, "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ], "version" : "1.4" }, { "opname" : "OpMemberDecorateString", "class" : "Annotation", "opcode" : 5633, "operands" : [ { "kind" : "IdRef", "name" : "'Struct Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ], "version" : "1.4" }, { "opname" : "OpMemberDecorateStringGOOGLE", "class" : "Annotation", "opcode" : 5633, "operands" : [ { "kind" : "IdRef", "name" : "'Struct Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } ], "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ], "version" : "1.4" }, { "opname" : "OpVmeImageINTEL", "class" : "@exclude", "opcode" : 5699, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" }, { "kind" : "IdRef", "name" : "'Sampler'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeVmeImageINTEL", "class" : "@exclude", "opcode" : 5700, "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcImePayloadINTEL", "class" : "@exclude", "opcode" : 5701, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcRefPayloadINTEL", "class" : "@exclude", "opcode" : 5702, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcSicPayloadINTEL", "class" : "@exclude", "opcode" : 5703, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcMcePayloadINTEL", "class" : "@exclude", "opcode" : 5704, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcMceResultINTEL", "class" : "@exclude", "opcode" : 5705, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcImeResultINTEL", "class" : "@exclude", "opcode" : 5706, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcImeResultSingleReferenceStreamoutINTEL", "class" : "@exclude", "opcode" : 5707, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcImeResultDualReferenceStreamoutINTEL", "class" : "@exclude", "opcode" : 5708, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcImeSingleReferenceStreaminINTEL", "class" : "@exclude", "opcode" : 5709, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcImeDualReferenceStreaminINTEL", "class" : "@exclude", "opcode" : 5710, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcRefResultINTEL", "class" : "@exclude", "opcode" : 5711, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpTypeAvcSicResultINTEL", "class" : "@exclude", "opcode" : 5712, "operands" : [ { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL", "class" : "@exclude", "opcode" : 5713, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Slice Type'" }, { "kind" : "IdRef", "name" : "'Qp'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL", "class" : "@exclude", "opcode" : 5714, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reference Base Penalty'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL", "class" : "@exclude", "opcode" : 5715, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Slice Type'" }, { "kind" : "IdRef", "name" : "'Qp'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetInterShapePenaltyINTEL", "class" : "@exclude", "opcode" : 5716, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packed Shape Penalty'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL", "class" : "@exclude", "opcode" : 5717, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Slice Type'" }, { "kind" : "IdRef", "name" : "'Qp'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL", "class" : "@exclude", "opcode" : 5718, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Direction Cost'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL", "class" : "@exclude", "opcode" : 5719, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Slice Type'" }, { "kind" : "IdRef", "name" : "'Qp'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL", "class" : "@exclude", "opcode" : 5720, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Slice Type'" }, { "kind" : "IdRef", "name" : "'Qp'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL", "class" : "@exclude", "opcode" : 5721, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL", "class" : "@exclude", "opcode" : 5722, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL", "class" : "@exclude", "opcode" : 5723, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL", "class" : "@exclude", "opcode" : 5724, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packed Cost Center Delta'" }, { "kind" : "IdRef", "name" : "'Packed Cost Table'" }, { "kind" : "IdRef", "name" : "'Cost Precision'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL", "class" : "@exclude", "opcode" : 5725, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Slice Type'" }, { "kind" : "IdRef", "name" : "'Qp'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL", "class" : "@exclude", "opcode" : 5726, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL", "class" : "@exclude", "opcode" : 5727, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetAcOnlyHaarINTEL", "class" : "@exclude", "opcode" : 5728, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL", "class" : "@exclude", "opcode" : 5729, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Source Field Polarity'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL", "class" : "@exclude", "opcode" : 5730, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reference Field Polarity'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL", "class" : "@exclude", "opcode" : 5731, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Forward Reference Field Polarity'" }, { "kind" : "IdRef", "name" : "'Backward Reference Field Polarity'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceConvertToImePayloadINTEL", "class" : "@exclude", "opcode" : 5732, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceConvertToImeResultINTEL", "class" : "@exclude", "opcode" : 5733, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceConvertToRefPayloadINTEL", "class" : "@exclude", "opcode" : 5734, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceConvertToRefResultINTEL", "class" : "@exclude", "opcode" : 5735, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceConvertToSicPayloadINTEL", "class" : "@exclude", "opcode" : 5736, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceConvertToSicResultINTEL", "class" : "@exclude", "opcode" : 5737, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetMotionVectorsINTEL", "class" : "@exclude", "opcode" : 5738, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterDistortionsINTEL", "class" : "@exclude", "opcode" : 5739, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetBestInterDistortionsINTEL", "class" : "@exclude", "opcode" : 5740, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterMajorShapeINTEL", "class" : "@exclude", "opcode" : 5741, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterMinorShapeINTEL", "class" : "@exclude", "opcode" : 5742, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterDirectionsINTEL", "class" : "@exclude", "opcode" : 5743, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterMotionVectorCountINTEL", "class" : "@exclude", "opcode" : 5744, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterReferenceIdsINTEL", "class" : "@exclude", "opcode" : 5745, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL", "class" : "@exclude", "opcode" : 5746, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packed Reference Ids'" }, { "kind" : "IdRef", "name" : "'Packed Reference Parameter Field Polarities'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeInitializeINTEL", "class" : "@exclude", "opcode" : 5747, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Coord'" }, { "kind" : "IdRef", "name" : "'Partition Mask'" }, { "kind" : "IdRef", "name" : "'SAD Adjustment'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeSetSingleReferenceINTEL", "class" : "@exclude", "opcode" : 5748, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Ref Offset'" }, { "kind" : "IdRef", "name" : "'Search Window Config'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeSetDualReferenceINTEL", "class" : "@exclude", "opcode" : 5749, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Fwd Ref Offset'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Offset'" }, { "kind" : "IdRef", "name" : "'id> Search Window Config'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeRefWindowSizeINTEL", "class" : "@exclude", "opcode" : 5750, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Search Window Config'" }, { "kind" : "IdRef", "name" : "'Dual Ref'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeAdjustRefOffsetINTEL", "class" : "@exclude", "opcode" : 5751, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Ref Offset'" }, { "kind" : "IdRef", "name" : "'Src Coord'" }, { "kind" : "IdRef", "name" : "'Ref Window Size'" }, { "kind" : "IdRef", "name" : "'Image Size'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeConvertToMcePayloadINTEL", "class" : "@exclude", "opcode" : 5752, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL", "class" : "@exclude", "opcode" : 5753, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Max Motion Vector Count'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL", "class" : "@exclude", "opcode" : 5754, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL", "class" : "@exclude", "opcode" : 5755, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Threshold'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeSetWeightedSadINTEL", "class" : "@exclude", "opcode" : 5756, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packed Sad Weights'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL", "class" : "@exclude", "opcode" : 5757, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL", "class" : "@exclude", "opcode" : 5758, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Fwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL", "class" : "@exclude", "opcode" : 5759, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Streamin Components'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL", "class" : "@exclude", "opcode" : 5760, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Fwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Streamin Components'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL", "class" : "@exclude", "opcode" : 5761, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL", "class" : "@exclude", "opcode" : 5762, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Fwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL", "class" : "@exclude", "opcode" : 5763, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Streamin Components'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL", "class" : "@exclude", "opcode" : 5764, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Fwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Streamin Components'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeConvertToMceResultINTEL", "class" : "@exclude", "opcode" : 5765, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL", "class" : "@exclude", "opcode" : 5766, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetDualReferenceStreaminINTEL", "class" : "@exclude", "opcode" : 5767, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL", "class" : "@exclude", "opcode" : 5768, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL", "class" : "@exclude", "opcode" : 5769, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL", "class" : "@exclude", "opcode" : 5770, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Major Shape'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL", "class" : "@exclude", "opcode" : 5771, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Major Shape'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL", "class" : "@exclude", "opcode" : 5772, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Major Shape'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL", "class" : "@exclude", "opcode" : 5773, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Major Shape'" }, { "kind" : "IdRef", "name" : "'Direction'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL", "class" : "@exclude", "opcode" : 5774, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Major Shape'" }, { "kind" : "IdRef", "name" : "'Direction'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL", "class" : "@exclude", "opcode" : 5775, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" }, { "kind" : "IdRef", "name" : "'Major Shape'" }, { "kind" : "IdRef", "name" : "'Direction'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetBorderReachedINTEL", "class" : "@exclude", "opcode" : 5776, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Select'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL", "class" : "@exclude", "opcode" : 5777, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL", "class" : "@exclude", "opcode" : 5778, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL", "class" : "@exclude", "opcode" : 5779, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL", "class" : "@exclude", "opcode" : 5780, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcFmeInitializeINTEL", "class" : "@exclude", "opcode" : 5781, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Coord'" }, { "kind" : "IdRef", "name" : "'Motion Vectors'" }, { "kind" : "IdRef", "name" : "'Major Shapes'" }, { "kind" : "IdRef", "name" : "'Minor Shapes'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'Pixel Resolution'" }, { "kind" : "IdRef", "name" : "'Sad Adjustment'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcBmeInitializeINTEL", "class" : "@exclude", "opcode" : 5782, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Coord'" }, { "kind" : "IdRef", "name" : "'Motion Vectors'" }, { "kind" : "IdRef", "name" : "'Major Shapes'" }, { "kind" : "IdRef", "name" : "'Minor Shapes'" }, { "kind" : "IdRef", "name" : "'Direction'" }, { "kind" : "IdRef", "name" : "'Pixel Resolution'" }, { "kind" : "IdRef", "name" : "'Bidirectional Weight'" }, { "kind" : "IdRef", "name" : "'Sad Adjustment'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefConvertToMcePayloadINTEL", "class" : "@exclude", "opcode" : 5783, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL", "class" : "@exclude", "opcode" : 5784, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefSetBilinearFilterEnableINTEL", "class" : "@exclude", "opcode" : 5785, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL", "class" : "@exclude", "opcode" : 5786, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL", "class" : "@exclude", "opcode" : 5787, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Fwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL", "class" : "@exclude", "opcode" : 5788, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Packed Reference Ids'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL", "class" : "@exclude", "opcode" : 5789, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Packed Reference Ids'" }, { "kind" : "IdRef", "name" : "'Packed Reference Field Polarities'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcRefConvertToMceResultINTEL", "class" : "@exclude", "opcode" : 5790, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicInitializeINTEL", "class" : "@exclude", "opcode" : 5791, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Coord'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicConfigureSkcINTEL", "class" : "@exclude", "opcode" : 5792, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Skip Block Partition Type'" }, { "kind" : "IdRef", "name" : "'Skip Motion Vector Mask'" }, { "kind" : "IdRef", "name" : "'Motion Vectors'" }, { "kind" : "IdRef", "name" : "'Bidirectional Weight'" }, { "kind" : "IdRef", "name" : "'Sad Adjustment'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicConfigureIpeLumaINTEL", "class" : "@exclude", "opcode" : 5793, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Luma Intra Partition Mask'" }, { "kind" : "IdRef", "name" : "'Intra Neighbour Availabilty'" }, { "kind" : "IdRef", "name" : "'Left Edge Luma Pixels'" }, { "kind" : "IdRef", "name" : "'Upper Left Corner Luma Pixel'" }, { "kind" : "IdRef", "name" : "'Upper Edge Luma Pixels'" }, { "kind" : "IdRef", "name" : "'Upper Right Edge Luma Pixels'" }, { "kind" : "IdRef", "name" : "'Sad Adjustment'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL", "class" : "@exclude", "opcode" : 5794, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Luma Intra Partition Mask'" }, { "kind" : "IdRef", "name" : "'Intra Neighbour Availabilty'" }, { "kind" : "IdRef", "name" : "'Left Edge Luma Pixels'" }, { "kind" : "IdRef", "name" : "'Upper Left Corner Luma Pixel'" }, { "kind" : "IdRef", "name" : "'Upper Edge Luma Pixels'" }, { "kind" : "IdRef", "name" : "'Upper Right Edge Luma Pixels'" }, { "kind" : "IdRef", "name" : "'Left Edge Chroma Pixels'" }, { "kind" : "IdRef", "name" : "'Upper Left Corner Chroma Pixel'" }, { "kind" : "IdRef", "name" : "'Upper Edge Chroma Pixels'" }, { "kind" : "IdRef", "name" : "'Sad Adjustment'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetMotionVectorMaskINTEL", "class" : "@exclude", "opcode" : 5795, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Skip Block Partition Type'" }, { "kind" : "IdRef", "name" : "'Direction'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicConvertToMcePayloadINTEL", "class" : "@exclude", "opcode" : 5796, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL", "class" : "@exclude", "opcode" : 5797, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packed Shape Penalty'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL", "class" : "@exclude", "opcode" : 5798, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Luma Mode Penalty'" }, { "kind" : "IdRef", "name" : "'Luma Packed Neighbor Modes'" }, { "kind" : "IdRef", "name" : "'Luma Packed Non Dc Penalty'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL", "class" : "@exclude", "opcode" : 5799, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Chroma Mode Base Penalty'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicSetBilinearFilterEnableINTEL", "class" : "@exclude", "opcode" : 5800, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL", "class" : "@exclude", "opcode" : 5801, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packed Sad Coefficients'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL", "class" : "@exclude", "opcode" : 5802, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Block Based Skip Type'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicEvaluateIpeINTEL", "class" : "@exclude", "opcode" : 5803, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL", "class" : "@exclude", "opcode" : 5804, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL", "class" : "@exclude", "opcode" : 5805, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Fwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Bwd Ref Image'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL", "class" : "@exclude", "opcode" : 5806, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Packed Reference Ids'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL", "class" : "@exclude", "opcode" : 5807, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Src Image'" }, { "kind" : "IdRef", "name" : "'Packed Reference Ids'" }, { "kind" : "IdRef", "name" : "'Packed Reference Field Polarities'" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicConvertToMceResultINTEL", "class" : "@exclude", "opcode" : 5808, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetIpeLumaShapeINTEL", "class" : "@exclude", "opcode" : 5809, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL", "class" : "@exclude", "opcode" : 5810, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL", "class" : "@exclude", "opcode" : 5811, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL", "class" : "@exclude", "opcode" : 5812, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetIpeChromaModeINTEL", "class" : "@exclude", "opcode" : 5813, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL", "class" : "@exclude", "opcode" : 5814, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL", "class" : "@exclude", "opcode" : 5815, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ], "version" : "None" }, { "opname" : "OpSubgroupAvcSicGetInterRawSadsINTEL", "class" : "@exclude", "opcode" : 5816, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Payload'" } ], "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ], "version" : "None" }, { "opname" : "OpVariableLengthArrayINTEL", "class" : "@exclude", "opcode" : 5818, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Lenght'" } ], "capabilities" : [ "VariableLengthArrayINTEL" ], "version" : "None" }, { "opname" : "OpSaveMemoryINTEL", "class" : "@exclude", "opcode" : 5819, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], "capabilities" : [ "VariableLengthArrayINTEL" ], "version" : "None" }, { "opname" : "OpRestoreMemoryINTEL", "class" : "@exclude", "opcode" : 5820, "operands" : [ { "kind" : "IdRef", "name" : "'Ptr'" } ], "capabilities" : [ "VariableLengthArrayINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatSinCosPiINTEL", "class" : "@exclude", "opcode" : 5840, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'FromSign'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatCastINTEL", "class" : "@exclude", "opcode" : 5841, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatCastFromIntINTEL", "class" : "@exclude", "opcode" : 5842, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'FromSign'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatCastToIntINTEL", "class" : "@exclude", "opcode" : 5843, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatAddINTEL", "class" : "@exclude", "opcode" : 5846, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatSubINTEL", "class" : "@exclude", "opcode" : 5847, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatMulINTEL", "class" : "@exclude", "opcode" : 5848, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatDivINTEL", "class" : "@exclude", "opcode" : 5849, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatGTINTEL", "class" : "@exclude", "opcode" : 5850, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatGEINTEL", "class" : "@exclude", "opcode" : 5851, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatLTINTEL", "class" : "@exclude", "opcode" : 5852, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatLEINTEL", "class" : "@exclude", "opcode" : 5853, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatEQINTEL", "class" : "@exclude", "opcode" : 5854, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatRecipINTEL", "class" : "@exclude", "opcode" : 5855, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatRSqrtINTEL", "class" : "@exclude", "opcode" : 5856, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatCbrtINTEL", "class" : "@exclude", "opcode" : 5857, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatHypotINTEL", "class" : "@exclude", "opcode" : 5858, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatSqrtINTEL", "class" : "@exclude", "opcode" : 5859, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatLogINTEL", "class" : "@exclude", "opcode" : 5860, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatLog2INTEL", "class" : "@exclude", "opcode" : 5861, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatLog10INTEL", "class" : "@exclude", "opcode" : 5862, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatLog1pINTEL", "class" : "@exclude", "opcode" : 5863, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatExpINTEL", "class" : "@exclude", "opcode" : 5864, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatExp2INTEL", "class" : "@exclude", "opcode" : 5865, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatExp10INTEL", "class" : "@exclude", "opcode" : 5866, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatExpm1INTEL", "class" : "@exclude", "opcode" : 5867, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatSinINTEL", "class" : "@exclude", "opcode" : 5868, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatCosINTEL", "class" : "@exclude", "opcode" : 5869, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatSinCosINTEL", "class" : "@exclude", "opcode" : 5870, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatSinPiINTEL", "class" : "@exclude", "opcode" : 5871, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatCosPiINTEL", "class" : "@exclude", "opcode" : 5872, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatASinINTEL", "class" : "@exclude", "opcode" : 5873, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatASinPiINTEL", "class" : "@exclude", "opcode" : 5874, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatACosINTEL", "class" : "@exclude", "opcode" : 5875, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatACosPiINTEL", "class" : "@exclude", "opcode" : 5876, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatATanINTEL", "class" : "@exclude", "opcode" : 5877, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatATanPiINTEL", "class" : "@exclude", "opcode" : 5878, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatATan2INTEL", "class" : "@exclude", "opcode" : 5879, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatPowINTEL", "class" : "@exclude", "opcode" : 5880, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatPowRINTEL", "class" : "@exclude", "opcode" : 5881, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'M2'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpArbitraryFloatPowNINTEL", "class" : "@exclude", "opcode" : 5882, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'A'" }, { "kind" : "LiteralInteger", "name" : "'M1'" }, { "kind" : "IdRef", "name" : "'B'" }, { "kind" : "LiteralInteger", "name" : "'Mout'" }, { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" }, { "kind" : "LiteralInteger", "name" : "'RoundingMode'" }, { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" } ], "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "version" : "None" }, { "opname" : "OpLoopControlINTEL", "class" : "Reserved", "opcode" : 5887, "operands" : [ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Loop Control Parameters'" } ], "capabilities" : [ "UnstructuredLoopControlsINTEL" ], "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ], "version" : "None" }, { "opname" : "OpAliasDomainDeclINTEL", "class" : "@exclude", "opcode" : 5911, "operands" : [ { "kind" : "IdResult"}, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Name'" } ], "capabilities" : [ "MemoryAccessAliasingINTEL" ], "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" }, { "opname" : "OpAliasScopeDeclINTEL", "class" : "@exclude", "opcode" : 5912, "operands" : [ { "kind" : "IdResult"}, { "kind" : "IdRef", "name" : "'Alias Domain'"}, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Name'" } ], "capabilities" : [ "MemoryAccessAliasingINTEL" ], "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" }, { "opname" : "OpAliasScopeListDeclINTEL", "class" : "@exclude", "opcode" : 5913, "operands" : [ { "kind" : "IdResult"}, { "kind" : "IdRef", "quantifier" : "*", "name" : "'AliasScope1, AliasScope2, ...'" } ], "capabilities" : [ "MemoryAccessAliasingINTEL" ], "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" }, { "opname" : "OpFixedSqrtINTEL", "class" : "@exclude", "opcode" : 5923, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedRecipINTEL", "class" : "@exclude", "opcode" : 5924, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedRsqrtINTEL", "class" : "@exclude", "opcode" : 5925, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedSinINTEL", "class" : "@exclude", "opcode" : 5926, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedCosINTEL", "class" : "@exclude", "opcode" : 5927, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedSinCosINTEL", "class" : "@exclude", "opcode" : 5928, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedSinPiINTEL", "class" : "@exclude", "opcode" : 5929, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedCosPiINTEL", "class" : "@exclude", "opcode" : 5930, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedSinCosPiINTEL", "class" : "@exclude", "opcode" : 5931, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedLogINTEL", "class" : "@exclude", "opcode" : 5932, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpFixedExpINTEL", "class" : "@exclude", "opcode" : 5933, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Input Type'" }, { "kind" : "IdRef", "name" : "'Input'" }, { "kind" : "LiteralInteger", "name" : "'S'" }, { "kind" : "LiteralInteger", "name" : "'I'" }, { "kind" : "LiteralInteger", "name" : "'rI'" }, { "kind" : "LiteralInteger", "name" : "'Q'" }, { "kind" : "LiteralInteger", "name" : "'O'" } ], "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], "version" : "None" }, { "opname" : "OpPtrCastToCrossWorkgroupINTEL", "class" : "@exclude", "opcode" : 5934, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "USMStorageClassesINTEL" ], "version" : "None" }, { "opname" : "OpCrossWorkgroupCastToPtrINTEL", "class" : "@exclude", "opcode" : 5938, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], "capabilities" : [ "USMStorageClassesINTEL" ], "version" : "None" }, { "opname" : "OpReadPipeBlockingINTEL", "class" : "Pipe", "opcode" : 5946, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "BlockingPipesINTEL" ], "extensions" : [ "SPV_INTEL_blocking_pipes" ], "version" : "None" }, { "opname" : "OpWritePipeBlockingINTEL", "class" : "Pipe", "opcode" : 5947, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], "capabilities" : [ "BlockingPipesINTEL" ], "extensions" : [ "SPV_INTEL_blocking_pipes" ], "version" : "None" }, { "opname" : "OpFPGARegINTEL", "class" : "Reserved", "opcode" : 5949, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Result'" }, { "kind" : "IdRef", "name" : "'Input'" } ], "capabilities" : [ "FPGARegINTEL" ], "extensions" : [ "SPV_INTEL_fpga_reg" ], "version" : "None" }, { "opname" : "OpRayQueryGetRayTMinKHR", "class" : "Reserved", "opcode" : 6016, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetRayFlagsKHR", "class" : "Reserved", "opcode" : 6017, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionTKHR", "class" : "Reserved", "opcode" : 6018, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionInstanceCustomIndexKHR", "class" : "Reserved", "opcode" : 6019, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionInstanceIdKHR", "class" : "Reserved", "opcode" : 6020, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR", "class" : "Reserved", "opcode" : 6021, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionGeometryIndexKHR", "class" : "Reserved", "opcode" : 6022, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionPrimitiveIndexKHR", "class" : "Reserved", "opcode" : 6023, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionBarycentricsKHR", "class" : "Reserved", "opcode" : 6024, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionFrontFaceKHR", "class" : "Reserved", "opcode" : 6025, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR", "class" : "Reserved", "opcode" : 6026, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionObjectRayDirectionKHR", "class" : "Reserved", "opcode" : 6027, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionObjectRayOriginKHR", "class" : "Reserved", "opcode" : 6028, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetWorldRayDirectionKHR", "class" : "Reserved", "opcode" : 6029, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetWorldRayOriginKHR", "class" : "Reserved", "opcode" : 6030, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionObjectToWorldKHR", "class" : "Reserved", "opcode" : 6031, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpRayQueryGetIntersectionWorldToObjectKHR", "class" : "Reserved", "opcode" : 6032, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'RayQuery'" }, { "kind" : "IdRef", "name" : "'Intersection'" } ], "capabilities" : [ "RayQueryKHR" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "opname" : "OpAtomicFAddEXT", "class" : "Atomic", "opcode" : 6035, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], "capabilities" : [ "AtomicFloat16AddEXT", "AtomicFloat32AddEXT", "AtomicFloat64AddEXT", "AtomicFloat16VectorNV" ], "extensions" : [ "SPV_EXT_shader_atomic_float_add" ], "version" : "None" }, { "opname" : "OpTypeBufferSurfaceINTEL", "class" : "Type-Declaration", "opcode" : 6086, "operands" : [ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'AccessQualifier'" } ], "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "opname" : "OpTypeStructContinuedINTEL", "class" : "Type-Declaration", "opcode" : 6090, "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ], "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { "opname" : "OpConstantCompositeContinuedINTEL", "class" : "Constant-Creation", "opcode" : 6091, "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { "opname" : "OpSpecConstantCompositeContinuedINTEL", "class" : "Constant-Creation", "opcode" : 6092, "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { "opname" : "OpCompositeConstructContinuedINTEL", "class" : "Composite", "opcode" : 6096, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], "capabilities" : [ "LongCompositesINTEL" ], "version": "None" }, { "opname" : "OpConvertFToBF16INTEL", "class" : "Conversion", "opcode" : 6116, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } ], "capabilities" : [ "BFloat16ConversionINTEL" ], "version" : "None" }, { "opname" : "OpConvertBF16ToFINTEL", "class" : "Conversion", "opcode" : 6117, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'BFloat16 Value'" } ], "capabilities" : [ "BFloat16ConversionINTEL" ], "version" : "None" }, { "opname" : "OpControlBarrierArriveINTEL", "class" : "Barrier", "opcode" : 6142, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "SplitBarrierINTEL" ], "version" : "None" }, { "opname" : "OpControlBarrierWaitINTEL", "class" : "Barrier", "opcode" : 6143, "operands" : [ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], "capabilities" : [ "SplitBarrierINTEL" ], "version" : "None" }, { "opname" : "OpGroupIMulKHR", "class" : "Group", "opcode" : 6401, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupFMulKHR", "class" : "Group", "opcode" : 6402, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupBitwiseAndKHR", "class" : "Group", "opcode" : 6403, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupBitwiseOrKHR", "class" : "Group", "opcode" : 6404, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupBitwiseXorKHR", "class" : "Group", "opcode" : 6405, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupLogicalAndKHR", "class" : "Group", "opcode" : 6406, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupLogicalOrKHR", "class" : "Group", "opcode" : 6407, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpGroupLogicalXorKHR", "class" : "Group", "opcode" : 6408, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" }, { "opname" : "OpMaskedGatherINTEL", "class" : "Memory", "opcode" : 6428, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'PtrVector'" }, { "kind" : "LiteralInteger", "name" : "'Alignment'" }, { "kind" : "IdRef", "name" : "'Mask'" }, { "kind" : "IdRef", "name" : "'FillEmpty'" } ], "capabilities" : [ "MaskedGatherScatterINTEL" ], "version" : "None" }, { "opname" : "OpMaskedScatterINTEL", "class" : "Memory", "opcode" : 6429, "operands" : [ { "kind" : "IdRef", "name" : "'InputVector'" }, { "kind" : "IdRef", "name" : "'PtrVector'" }, { "kind" : "LiteralInteger", "name" : "'Alignment'" }, { "kind" : "IdRef", "name" : "'Mask'" } ], "capabilities" : [ "MaskedGatherScatterINTEL" ], "version" : "None" } ], "operand_kinds" : [ { "category" : "BitEnum", "kind" : "ImageOperands", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "Bias", "value" : "0x0001", "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "Lod", "value" : "0x0002", "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "Grad", "value" : "0x0004", "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "ConstOffset", "value" : "0x0008", "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "Offset", "value" : "0x0010", "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "ConstOffsets", "value" : "0x0020", "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "Sample", "value" : "0x0040", "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "MinLod", "value" : "0x0080", "capabilities" : [ "MinLod" ], "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" }, { "enumerant" : "MakeTexelAvailable", "value" : "0x0100", "capabilities" : [ "VulkanMemoryModel" ], "parameters" : [ { "kind" : "IdScope" } ], "version" : "1.5" }, { "enumerant" : "MakeTexelAvailableKHR", "value" : "0x0100", "capabilities" : [ "VulkanMemoryModel" ], "parameters" : [ { "kind" : "IdScope" } ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "MakeTexelVisible", "value" : "0x0200", "capabilities" : [ "VulkanMemoryModel" ], "parameters" : [ { "kind" : "IdScope" } ], "version" : "1.5" }, { "enumerant" : "MakeTexelVisibleKHR", "value" : "0x0200", "capabilities" : [ "VulkanMemoryModel" ], "parameters" : [ { "kind" : "IdScope" } ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "NonPrivateTexel", "value" : "0x0400", "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "NonPrivateTexelKHR", "value" : "0x0400", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "VolatileTexel", "value" : "0x0800", "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "VolatileTexelKHR", "value" : "0x0800", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "SignExtend", "value" : "0x1000", "version" : "1.4" }, { "enumerant" : "ZeroExtend", "value" : "0x2000", "version" : "1.4" }, { "enumerant" : "Nontemporal", "value" : "0x4000", "version" : "1.6" }, { "enumerant" : "Offsets", "value" : "0x10000", "parameters" : [ { "kind" : "IdRef" } ], "version": "1.0" } ] }, { "category" : "BitEnum", "kind" : "FPFastMathMode", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "NotNaN", "value" : "0x0001", "version" : "1.0" }, { "enumerant" : "NotInf", "value" : "0x0002", "version" : "1.0" }, { "enumerant" : "NSZ", "value" : "0x0004", "version" : "1.0" }, { "enumerant" : "AllowRecip", "value" : "0x0008", "version" : "1.0" }, { "enumerant" : "Fast", "value" : "0x0010", "version" : "1.0" }, { "enumerant" : "AllowContract", "value" : "0x10000", "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], "version" : "None" }, { "enumerant" : "AllowContractFastINTEL", "value" : "0x10000", "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], "version" : "None" }, { "enumerant" : "AllowReassoc", "value" : "0x20000", "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], "version" : "None" }, { "enumerant" : "AllowReassocINTEL", "value" : "0x20000", "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], "version" : "None" }, { "enumerant" : "AllowTransform", "value" : "0x40000", "capabilities" : [ "FloatControls2" ], "version" : "None" } ] }, { "category" : "BitEnum", "kind" : "SelectionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "Flatten", "value" : "0x0001", "version" : "1.0" }, { "enumerant" : "DontFlatten", "value" : "0x0002", "version" : "1.0" } ] }, { "category" : "BitEnum", "kind" : "LoopControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "Unroll", "value" : "0x0001", "version" : "1.0" }, { "enumerant" : "DontUnroll", "value" : "0x0002", "version" : "1.0" }, { "enumerant" : "DependencyInfinite", "value" : "0x0004", "version" : "1.1" }, { "enumerant" : "DependencyLength", "value" : "0x0008", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.1" }, { "enumerant" : "MinIterations", "value" : "0x0010", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.4" }, { "enumerant" : "MaxIterations", "value" : "0x0020", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.4" }, { "enumerant" : "IterationMultiple", "value" : "0x0040", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.4" }, { "enumerant" : "PeelCount", "value" : "0x0080", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.4" }, { "enumerant" : "PartialCount", "value" : "0x0100", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.4" }, { "enumerant" : "InitiationIntervalINTEL", "value" : "0x10000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "MaxConcurrencyINTEL", "value" : "0x20000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "DependencyArrayINTEL", "value" : "0x40000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "PipelineEnableINTEL", "value" : "0x80000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "LoopCoalesceINTEL", "value" : "0x100000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "MaxInterleavingINTEL", "value" : "0x200000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "SpeculatedIterationsINTEL", "value" : "0x400000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "NoFusionINTEL", "value" : "0x800000", "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "LoopCountINTEL", "value" : "0x1000000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" }, { "enumerant" : "MaxReinvocationDelayINTEL", "value" : "0x2000000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], "version" : "None" } ] }, { "category" : "BitEnum", "kind" : "FunctionControl", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "Inline", "value" : "0x0001", "version" : "1.0" }, { "enumerant" : "DontInline", "value" : "0x0002", "version" : "1.0" }, { "enumerant" : "Pure", "value" : "0x0004", "version" : "1.0" }, { "enumerant" : "Const", "value" : "0x0008", "version" : "1.0" }, { "enumerant" : "OptNoneINTEL", "value" : "0x10000", "capabilities" : [ "OptNoneINTEL" ], "version" : "None" } ] }, { "category" : "BitEnum", "kind" : "MemorySemantics", "enumerants" : [ { "enumerant" : "Relaxed", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "Acquire", "value" : "0x0002", "version" : "1.0" }, { "enumerant" : "Release", "value" : "0x0004", "version" : "1.0" }, { "enumerant" : "AcquireRelease", "value" : "0x0008", "version" : "1.0" }, { "enumerant" : "SequentiallyConsistent", "value" : "0x0010", "version" : "1.0" }, { "enumerant" : "UniformMemory", "value" : "0x0040", "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "SubgroupMemory", "value" : "0x0080", "version" : "1.0" }, { "enumerant" : "WorkgroupMemory", "value" : "0x0100", "version" : "1.0" }, { "enumerant" : "CrossWorkgroupMemory", "value" : "0x0200", "version" : "1.0" }, { "enumerant" : "AtomicCounterMemory", "value" : "0x0400", "capabilities" : [ "AtomicStorage" ], "version": "1.0" }, { "enumerant" : "ImageMemory", "value" : "0x0800", "version" : "1.0" }, { "enumerant" : "OutputMemory", "value" : "0x1000", "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "OutputMemoryKHR", "value" : "0x1000", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "MakeAvailable", "value" : "0x2000", "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "MakeAvailableKHR", "value" : "0x2000", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "MakeVisible", "value" : "0x4000", "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "MakeVisibleKHR", "value" : "0x4000", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "Volatile", "value" : "0x8000", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" } ] }, { "category" : "BitEnum", "kind" : "MemoryAccess", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "Volatile", "value" : "0x0001", "version" : "1.0" }, { "enumerant" : "Aligned", "value" : "0x0002", "parameters" : [ { "kind" : "LiteralInteger" } ], "version" : "1.0" }, { "enumerant" : "Nontemporal", "value" : "0x0004", "version" : "1.0" }, { "enumerant" : "MakePointerAvailable", "value" : "0x0008", "parameters" : [ { "kind" : "IdScope" } ], "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "MakePointerAvailableKHR", "value" : "0x0008", "parameters" : [ { "kind" : "IdScope" } ], "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "MakePointerVisible", "value" : "0x0010", "parameters" : [ { "kind" : "IdScope" } ], "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "MakePointerVisibleKHR", "value" : "0x0010", "parameters" : [ { "kind" : "IdScope" } ], "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "NonPrivatePointer", "value" : "0x0020", "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "NonPrivatePointerKHR", "value" : "0x0020", "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "AliasScopeINTELMask", "value" : "0x10000", "parameters" : [ { "kind" : "IdRef" } ], "capabilities" : [ "MemoryAccessAliasingINTEL" ], "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" }, { "enumerant" : "NoAliasINTELMask", "parameters" : [ { "kind" : "IdRef" } ], "value" : "0x20000", "capabilities" : [ "MemoryAccessAliasingINTEL" ], "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" } ] }, { "category" : "BitEnum", "kind" : "KernelProfilingInfo", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000", "version" : "1.0" }, { "enumerant" : "CmdExecTime", "value" : "0x0001", "capabilities" : [ "Kernel" ], "version": "1.0" } ] }, { "category" : "BitEnum", "kind" : "RayFlags", "enumerants" : [ { "enumerant" : "NoneKHR", "value" : "0x0000", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "OpaqueKHR", "value" : "0x0001", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "NoOpaqueKHR", "value" : "0x0002", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "TerminateOnFirstHitKHR", "value" : "0x0004", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "SkipClosestHitShaderKHR", "value" : "0x0008", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CullBackFacingTrianglesKHR", "value" : "0x0010", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CullFrontFacingTrianglesKHR", "value" : "0x0020", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CullOpaqueKHR", "value" : "0x0040", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CullNoOpaqueKHR", "value" : "0x0080", "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "version" : "None" }, { "enumerant" : "SkipTrianglesKHR", "value" : "0x0100", "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ], "version" : "None" }, { "enumerant" : "SkipAABBsKHR", "value" : "0x0200", "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ], "version" : "None" }, { "enumerant" : "ForceOpacityMicromap2StateEXT", "value" : "0x0400", "capabilities" : [ "RayTracingOpacityMicromapEXT" ], "version" : "None" } ] }, { "category" : "BitEnum", "kind" : "FragmentShadingRate", "enumerants" : [ { "enumerant" : "Vertical2Pixels", "value" : "0x0001", "capabilities" : [ "FragmentShadingRateKHR" ], "version" : "None" }, { "enumerant" : "Vertical4Pixels", "value" : "0x0002", "capabilities" : [ "FragmentShadingRateKHR" ], "version" : "None" }, { "enumerant" : "Horizontal2Pixels", "value" : "0x0004", "capabilities" : [ "FragmentShadingRateKHR" ], "version" : "None" }, { "enumerant" : "Horizontal4Pixels", "value" : "0x0008", "capabilities" : [ "FragmentShadingRateKHR" ], "version" : "None" } ] }, { "category" : "BitEnum", "kind" : "RawAccessChainOperands", "enumerants" : [ { "enumerant" : "None", "value" : "0x0000" }, { "enumerant" : "RobustnessPerComponentNV", "value" : "0x0001", "capabilities" : [ "RawAccessChainsNV" ], "version" : "None" }, { "enumerant" : "RobustnessPerElementNV", "value" : "0x0002", "capabilities" : [ "RawAccessChainsNV" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "SourceLanguage", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0, "version" : "1.0" }, { "enumerant" : "ESSL", "value" : 1, "version" : "1.0" }, { "enumerant" : "GLSL", "value" : 2, "version" : "1.0" }, { "enumerant" : "OpenCL_C", "value" : 3, "version" : "1.0" }, { "enumerant" : "OpenCL_CPP", "value" : 4, "version" : "1.0" }, { "enumerant" : "HLSL", "value" : 5, "version" : "1.0" }, { "enumerant" : "CPP_for_OpenCL", "value" : 6, "version" : "1.0" }, { "enumerant" : "SYCL", "value" : 7, "version" : "1.0" }, { "enumerant" : "HERO_C", "value" : 8, "version" : "1.0" }, { "enumerant" : "NZSL", "value" : 9, "version" : "1.0" }, { "enumerant" : "WGSL", "value" : 10, "version" : "1.0" }, { "enumerant" : "Slang", "value" : 11, "version" : "1.0" }, { "enumerant" : "Zig", "value" : 12, "version" : "1.0" } ] }, { "category" : "ValueEnum", "kind" : "ExecutionModel", "enumerants" : [ { "enumerant" : "Vertex", "value" : 0, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "TessellationControl", "value" : 1, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "TessellationEvaluation", "value" : 2, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "Geometry", "value" : 3, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "Fragment", "value" : 4, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "GLCompute", "value" : 5, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Kernel", "value" : 6, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "TaskNV", "value" : 5267, "capabilities" : [ "MeshShadingNV" ], "version" : "None" }, { "enumerant" : "MeshNV", "value" : 5268, "capabilities" : [ "MeshShadingNV" ], "version" : "None" }, { "enumerant" : "RayGenerationKHR", "value" : 5313, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "RayGenerationNV", "value" : 5313, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "IntersectionKHR", "value" : 5314, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "IntersectionNV", "value" : 5314, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "AnyHitKHR", "value" : 5315, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "AnyHitNV", "value" : 5315, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "ClosestHitKHR", "value" : 5316, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "ClosestHitNV", "value" : 5316, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "MissKHR", "value" : 5317, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "MissNV", "value" : 5317, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CallableKHR", "value" : 5318, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CallableNV", "value" : 5318, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "TaskEXT", "value" : 5364, "capabilities" : [ "MeshShadingEXT" ], "version" : "None" }, { "enumerant" : "MeshEXT", "value" : 5365, "capabilities" : [ "MeshShadingEXT" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "AddressingModel", "enumerants" : [ { "enumerant" : "Logical", "value" : 0, "version" : "1.0" }, { "enumerant" : "Physical32", "value" : 1, "capabilities" : [ "Addresses" ], "version": "1.0" }, { "enumerant" : "Physical64", "value" : 2, "capabilities" : [ "Addresses" ], "version": "1.0" }, { "enumerant" : "PhysicalStorageBuffer64", "value" : 5348, "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ], "capabilities" : [ "PhysicalStorageBufferAddresses" ], "version" : "1.5" }, { "enumerant" : "PhysicalStorageBuffer64EXT", "value" : 5348, "extensions" : [ "SPV_EXT_physical_storage_buffer" ], "capabilities" : [ "PhysicalStorageBufferAddresses" ], "version" : "1.5" } ] }, { "category" : "ValueEnum", "kind" : "MemoryModel", "enumerants" : [ { "enumerant" : "Simple", "value" : 0, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "GLSL450", "value" : 1, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "OpenCL", "value" : 2, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Vulkan", "value" : 3, "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "VulkanKHR", "value" : 3, "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" } ] }, { "category" : "ValueEnum", "kind" : "ExecutionMode", "enumerants" : [ { "enumerant" : "Invocations", "value" : 0, "capabilities" : [ "Geometry" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of <>'" } ], "version": "1.0" }, { "enumerant" : "SpacingEqual", "value" : 1, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "SpacingFractionalEven", "value" : 2, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "SpacingFractionalOdd", "value" : 3, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "VertexOrderCw", "value" : 4, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "VertexOrderCcw", "value" : 5, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "PixelCenterInteger", "value" : 6, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "OriginUpperLeft", "value" : 7, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "OriginLowerLeft", "value" : 8, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "EarlyFragmentTests", "value" : 9, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "PointMode", "value" : 10, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "Xfb", "value" : 11, "capabilities" : [ "TransformFeedback" ], "version": "1.0" }, { "enumerant" : "DepthReplacing", "value" : 12, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "DepthGreater", "value" : 14, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "DepthLess", "value" : 15, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "DepthUnchanged", "value" : 16, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "LocalSize", "value" : 17, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ], "version": "1.0" }, { "enumerant" : "LocalSizeHint", "value" : 18, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } ], "version": "1.0" }, { "enumerant" : "InputPoints", "value" : 19, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "InputLines", "value" : 20, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "InputLinesAdjacency", "value" : 21, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "Triangles", "value" : 22, "capabilities" : [ "Geometry", "Tessellation" ], "version": "1.0" }, { "enumerant" : "InputTrianglesAdjacency", "value" : 23, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "Quads", "value" : 24, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "Isolines", "value" : 25, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "OutputVertices", "value" : 26, "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vertex count'" } ], "version": "1.0" }, { "enumerant" : "OutputPoints", "value" : 27, "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ], "version": "1.0" }, { "enumerant" : "OutputLineStrip", "value" : 28, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "OutputTriangleStrip", "value" : 29, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "VecTypeHint", "value" : 30, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vector type'" } ], "version": "1.0" }, { "enumerant" : "ContractionOff", "value" : 31, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Initializer", "value" : 33, "capabilities" : [ "Kernel" ], "version" : "1.1" }, { "enumerant" : "Finalizer", "value" : 34, "capabilities" : [ "Kernel" ], "version" : "1.1" }, { "enumerant" : "SubgroupSize", "value" : 35, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" } ], "version" : "1.1" }, { "enumerant" : "SubgroupsPerWorkgroup", "value" : 36, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" } ], "version" : "1.1" }, { "enumerant" : "SubgroupsPerWorkgroupId", "value" : 37, "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" } ], "version" : "1.2" }, { "enumerant" : "LocalSizeId", "value" : 38, "parameters" : [ { "kind" : "IdRef", "name" : "'x size'" }, { "kind" : "IdRef", "name" : "'y size'" }, { "kind" : "IdRef", "name" : "'z size'" } ], "version" : "1.2" }, { "enumerant" : "LocalSizeHintId", "value" : 39, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "IdRef", "name" : "'x size hint'" }, { "kind" : "IdRef", "name" : "'y size hint'" }, { "kind" : "IdRef", "name" : "'z size hint'" } ], "version" : "1.2" }, { "enumerant" : "NonCoherentColorAttachmentReadEXT", "value" : 4169, "capabilities" : [ "TileImageColorReadAccessEXT" ], "version" : "None" }, { "enumerant" : "NonCoherentDepthAttachmentReadEXT", "value" : 4170, "capabilities" : [ "TileImageDepthReadAccessEXT" ], "version" : "None" }, { "enumerant" : "NonCoherentStencilAttachmentReadEXT", "value" : 4171, "capabilities" : [ "TileImageStencilReadAccessEXT" ], "version" : "None" }, { "enumerant" : "SubgroupUniformControlFlowKHR", "value" : 4421, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_subgroup_uniform_control_flow" ], "version" : "None" }, { "enumerant" : "PostDepthCoverage", "value" : 4446, "capabilities" : [ "SampleMaskPostDepthCoverage" ], "extensions" : [ "SPV_KHR_post_depth_coverage" ], "version" : "None" }, { "enumerant" : "DenormPreserve", "value" : 4459, "capabilities" : [ "DenormPreserve" ], "extensions" : [ "SPV_KHR_float_controls" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "version" : "1.4" }, { "enumerant" : "DenormFlushToZero", "value" : 4460, "capabilities" : [ "DenormFlushToZero" ], "extensions" : [ "SPV_KHR_float_controls" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "version" : "1.4" }, { "enumerant" : "SignedZeroInfNanPreserve", "value" : 4461, "capabilities" : [ "SignedZeroInfNanPreserve" ], "extensions" : [ "SPV_KHR_float_controls" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "version" : "1.4" }, { "enumerant" : "RoundingModeRTE", "value" : 4462, "capabilities" : [ "RoundingModeRTE" ], "extensions" : [ "SPV_KHR_float_controls" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "version" : "1.4" }, { "enumerant" : "RoundingModeRTZ", "value" : 4463, "capabilities" : [ "RoundingModeRTZ" ], "extensions" : [ "SPV_KHR_float_controls" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "version" : "1.4" }, { "enumerant": "EarlyAndLateFragmentTestsAMD", "value": 5017, "capabilities": [ "Shader" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests" ], "version": "None" }, { "enumerant" : "StencilRefReplacingEXT", "value" : 5027, "capabilities" : [ "StencilExportEXT" ], "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, { "enumerant" : "CoalescingAMDX", "value" : 5069, "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "enumerant" : "MaxNodeRecursionAMDX", "value" : 5071, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Number of recursions'" } ], "version" : "None" }, { "enumerant" : "StaticNumWorkgroupsAMDX", "value" : 5072, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "IdRef", "name" : "'x size'" }, { "kind" : "IdRef", "name" : "'y size'" }, { "kind" : "IdRef", "name" : "'z size'" } ], "version" : "None" }, { "enumerant" : "ShaderIndexAMDX", "value" : 5073, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Shader Index'" } ], "version" : "None" }, { "enumerant" : "MaxNumWorkgroupsAMDX", "value" : 5077, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "IdRef", "name" : "'x size'" }, { "kind" : "IdRef", "name" : "'y size'" }, { "kind" : "IdRef", "name" : "'z size'" } ], "version" : "None" }, { "enumerant": "StencilRefUnchangedFrontAMD", "value": 5079, "capabilities": [ "StencilExportEXT" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, { "enumerant": "StencilRefGreaterFrontAMD", "value": 5080, "capabilities": [ "StencilExportEXT" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, { "enumerant": "StencilRefLessFrontAMD", "value": 5081, "capabilities": [ "StencilExportEXT" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, { "enumerant": "StencilRefUnchangedBackAMD", "value": 5082, "capabilities": [ "StencilExportEXT" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, { "enumerant": "StencilRefGreaterBackAMD", "value": 5083, "capabilities": [ "StencilExportEXT" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, { "enumerant": "StencilRefLessBackAMD", "value": 5084, "capabilities": [ "StencilExportEXT" ], "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, { "enumerant": "QuadDerivativesKHR", "value": 5088, "capabilities": [ "QuadControlKHR" ], "version": "None" }, { "enumerant" : "RequireFullQuadsKHR", "value" : 5089, "capabilities" : [ "QuadControlKHR" ], "version" : "None" }, { "enumerant" : "OutputLinesEXT", "value" : 5269, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "OutputLinesNV", "value" : 5269, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "OutputPrimitivesEXT", "value" : 5270, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Primitive count'" } ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "OutputPrimitivesNV", "value" : 5270, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Primitive count'" } ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "DerivativeGroupQuadsNV", "value" : 5289, "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ], "extensions" : [ "SPV_NV_compute_shader_derivatives" ], "version" : "None" }, { "enumerant" : "DerivativeGroupLinearNV", "value" : 5290, "capabilities" : [ "ComputeDerivativeGroupLinearNV" ], "extensions" : [ "SPV_NV_compute_shader_derivatives" ], "version" : "None" }, { "enumerant" : "OutputTrianglesEXT", "value" : 5298, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "OutputTrianglesNV", "value" : 5298, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "PixelInterlockOrderedEXT", "value" : 5366, "capabilities" : [ "FragmentShaderPixelInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "PixelInterlockUnorderedEXT", "value" : 5367, "capabilities" : [ "FragmentShaderPixelInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "SampleInterlockOrderedEXT", "value" : 5368, "capabilities" : [ "FragmentShaderSampleInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "SampleInterlockUnorderedEXT", "value" : 5369, "capabilities" : [ "FragmentShaderSampleInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "ShadingRateInterlockOrderedEXT", "value" : 5370, "capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "ShadingRateInterlockUnorderedEXT", "value" : 5371, "capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "SharedLocalMemorySizeINTEL", "value" : 5618, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Size'" } ], "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "RoundingModeRTPINTEL", "value" : 5620, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "capabilities" : [ "RoundToInfinityINTEL" ], "version" : "None" }, { "enumerant" : "RoundingModeRTNINTEL", "value" : 5621, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "capabilities" : [ "RoundToInfinityINTEL" ], "version" : "None" }, { "enumerant" : "FloatingPointModeALTINTEL", "value" : 5622, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "capabilities" : [ "RoundToInfinityINTEL" ], "version" : "None" }, { "enumerant" : "FloatingPointModeIEEEINTEL", "value" : 5623, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" } ], "capabilities" : [ "RoundToInfinityINTEL" ], "version" : "None" }, { "enumerant" : "MaxWorkgroupSizeINTEL", "value" : 5893, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'max_x_size'" }, { "kind" : "LiteralInteger", "name" : "'max_y_size'" }, { "kind" : "LiteralInteger", "name" : "'max_z_size'" } ], "capabilities" : [ "KernelAttributesINTEL" ], "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "MaxWorkDimINTEL", "value" : 5894, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'max_dimensions'" } ], "capabilities" : [ "KernelAttributesINTEL" ], "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "NoGlobalOffsetINTEL", "value" : 5895, "capabilities" : [ "KernelAttributesINTEL" ], "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "NumSIMDWorkitemsINTEL", "value" : 5896, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'vector_width'" } ], "capabilities" : [ "FPGAKernelAttributesINTEL" ], "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "SchedulerTargetFmaxMhzINTEL", "value" : 5903, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'target_fmax'" } ], "capabilities" : [ "FPGAKernelAttributesINTEL" ], "version" : "None" }, { "enumerant" : "MaximallyReconvergesKHR", "value" : 6023, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_maximal_reconvergence" ], "version" : "None" }, { "enumerant" : "FPFastMathDefault", "value" : 6028, "parameters" : [ { "kind" : "IdRef", "name" : "'Target Type'" }, { "kind" : "IdRef", "name" : "'Fast-Math Mode'" } ], "capabilities" : [ "FloatControls2" ], "version" : "None" }, { "enumerant" : "StreamingInterfaceINTEL", "value" : 6154, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'StallFreeReturn'" } ], "capabilities" : [ "FPGAKernelAttributesINTEL" ], "version" : "None" }, { "enumerant" : "RegisterMapInterfaceINTEL", "value" : 6160, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'WaitForDoneWrite'" } ], "capabilities" : [ "FPGAKernelAttributesv2INTEL" ], "version" : "None" }, { "enumerant" : "NamedBarrierCountINTEL", "value" : 6417, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Barrier Count'" } ], "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "MaximumRegistersINTEL", "value" : 6461, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of Registers'" } ], "capabilities" : [ "RegisterLimitsINTEL" ], "version" : "None" }, { "enumerant" : "MaximumRegistersIdINTEL", "value" : 6462, "parameters" : [ { "kind" : "IdRef", "name" : "'Number of Registers'" } ], "capabilities" : [ "RegisterLimitsINTEL" ], "version" : "None" }, { "enumerant" : "NamedMaximumRegistersINTEL", "value" : 6463, "parameters" : [ { "kind" : "NamedMaximumNumberOfRegisters", "name" : "'Named Maximum Number of Registers'" } ], "capabilities" : [ "RegisterLimitsINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "StorageClass", "enumerants" : [ { "enumerant" : "UniformConstant", "value" : 0, "version" : "1.0" }, { "enumerant" : "Input", "value" : 1, "version" : "1.0" }, { "enumerant" : "Uniform", "value" : 2, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Output", "value" : 3, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Workgroup", "value" : 4, "version" : "1.0" }, { "enumerant" : "CrossWorkgroup", "value" : 5, "version" : "1.0" }, { "enumerant" : "Private", "value" : 6, "capabilities" : [ "Shader", "VectorComputeINTEL" ], "version": "1.0" }, { "enumerant" : "Function", "value" : 7, "version" : "1.0" }, { "enumerant" : "Generic", "value" : 8, "capabilities" : [ "GenericPointer" ], "version": "1.0" }, { "enumerant" : "PushConstant", "value" : 9, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "AtomicCounter", "value" : 10, "capabilities" : [ "AtomicStorage" ], "version": "1.0" }, { "enumerant" : "Image", "value" : 11, "version" : "1.0" }, { "enumerant" : "StorageBuffer", "value" : 12, "extensions" : [ "SPV_KHR_storage_buffer_storage_class", "SPV_KHR_variable_pointers" ], "capabilities" : [ "Shader" ], "version" : "1.3" }, { "enumerant" : "TileImageEXT", "value" : 4172, "capabilities" : [ "TileImageColorReadAccessEXT" ], "version" : "None" }, { "enumerant" : "NodePayloadAMDX", "value" : 5068, "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "enumerant" : "NodeOutputPayloadAMDX", "value" : 5076, "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "enumerant" : "CallableDataKHR", "value" : 5328, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "CallableDataNV", "value" : 5328, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "IncomingCallableDataKHR", "value" : 5329, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "IncomingCallableDataNV", "value" : 5329, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "RayPayloadKHR", "value" : 5338, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "RayPayloadNV", "value" : 5338, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "HitAttributeKHR", "value" : 5339, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "HitAttributeNV", "value" : 5339, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "IncomingRayPayloadKHR", "value" : 5342, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "IncomingRayPayloadNV", "value" : 5342, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "ShaderRecordBufferKHR", "value" : 5343, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "ShaderRecordBufferNV", "value" : 5343, "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "version" : "None" }, { "enumerant" : "PhysicalStorageBuffer", "value" : 5349, "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ], "capabilities" : [ "PhysicalStorageBufferAddresses" ], "version" : "1.5" }, { "enumerant" : "PhysicalStorageBufferEXT", "value" : 5349, "extensions" : [ "SPV_EXT_physical_storage_buffer" ], "capabilities" : [ "PhysicalStorageBufferAddresses" ], "version" : "1.5" }, { "enumerant" : "HitObjectAttributeNV", "value" : 5385, "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "enumerant" : "TaskPayloadWorkgroupEXT", "value" : 5402, "extensions" : [ "SPV_EXT_mesh_shader" ], "capabilities" : [ "MeshShadingEXT" ], "version" : "1.4" }, { "enumerant" : "CodeSectionINTEL", "value" : 5605, "extensions" : [ "SPV_INTEL_function_pointers" ], "capabilities" : [ "FunctionPointersINTEL" ], "version" : "None" }, { "enumerant" : "DeviceOnlyINTEL", "value" : 5936, "extensions" : [ "SPV_INTEL_usm_storage_classes" ], "capabilities" : [ "USMStorageClassesINTEL" ], "version" : "None" }, { "enumerant" : "HostOnlyINTEL", "value" : 5937, "extensions" : [ "SPV_INTEL_usm_storage_classes" ], "capabilities" : [ "USMStorageClassesINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "Dim", "enumerants" : [ { "enumerant" : "1D", "value" : 0, "capabilities" : [ "Sampled1D" ], "version": "1.0" }, { "enumerant" : "2D", "value" : 1, "version" : "1.0" }, { "enumerant" : "3D", "value" : 2, "version" : "1.0" }, { "enumerant" : "Cube", "value" : 3, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rect", "value" : 4, "capabilities" : [ "SampledRect" ], "version": "1.0" }, { "enumerant" : "Buffer", "value" : 5, "capabilities" : [ "SampledBuffer" ], "version": "1.0" }, { "enumerant" : "SubpassData", "value" : 6, "capabilities" : [ "InputAttachment" ], "version": "1.0" }, { "enumerant" : "TileImageDataEXT", "value" : 4173, "capabilities" : [ "TileImageColorReadAccessEXT" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "SamplerAddressingMode", "enumerants" : [ { "enumerant" : "None", "value" : 0, "version": "1.0" }, { "enumerant" : "ClampToEdge", "value" : 1, "version": "1.0" }, { "enumerant" : "Clamp", "value" : 2, "version": "1.0" }, { "enumerant" : "Repeat", "value" : 3, "version": "1.0" }, { "enumerant" : "RepeatMirrored", "value" : 4, "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "SamplerFilterMode", "enumerants" : [ { "enumerant" : "Nearest", "value" : 0, "version": "1.0" }, { "enumerant" : "Linear", "value" : 1, "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "ImageFormat", "enumerants" : [ { "enumerant" : "Unknown", "value" : 0, "version" : "1.0" }, { "enumerant" : "Rgba32f", "value" : 1, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba16f", "value" : 2, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "R32f", "value" : 3, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba8", "value" : 4, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba8Snorm", "value" : 5, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rg32f", "value" : 6, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg16f", "value" : 7, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R11fG11fB10f", "value" : 8, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R16f", "value" : 9, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rgba16", "value" : 10, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rgb10A2", "value" : 11, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg16", "value" : 12, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg8", "value" : 13, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R16", "value" : 14, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R8", "value" : 15, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rgba16Snorm", "value" : 16, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg16Snorm", "value" : 17, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg8Snorm", "value" : 18, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R16Snorm", "value" : 19, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R8Snorm", "value" : 20, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rgba32i", "value" : 21, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba16i", "value" : 22, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba8i", "value" : 23, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "R32i", "value" : 24, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rg32i", "value" : 25, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg16i", "value" : 26, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg8i", "value" : 27, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R16i", "value" : 28, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R8i", "value" : 29, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rgba32ui", "value" : 30, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba16ui", "value" : 31, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgba8ui", "value" : 32, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "R32ui", "value" : 33, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Rgb10a2ui", "value" : 34, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg32ui", "value" : 35, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg16ui", "value" : 36, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "Rg8ui", "value" : 37, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R16ui", "value" : 38, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R8ui", "value" : 39, "capabilities" : [ "StorageImageExtendedFormats" ], "version": "1.0" }, { "enumerant" : "R64ui", "value" : 40, "capabilities" : [ "Int64ImageEXT" ], "version": "1.0" }, { "enumerant" : "R64i", "value" : 41, "capabilities" : [ "Int64ImageEXT" ], "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelOrder", "enumerants" : [ { "enumerant" : "R", "value" : 0, "version": "1.0" }, { "enumerant" : "A", "value" : 1, "version": "1.0" }, { "enumerant" : "RG", "value" : 2, "version": "1.0" }, { "enumerant" : "RA", "value" : 3, "version": "1.0" }, { "enumerant" : "RGB", "value" : 4, "version": "1.0" }, { "enumerant" : "RGBA", "value" : 5, "version": "1.0" }, { "enumerant" : "BGRA", "value" : 6, "version": "1.0" }, { "enumerant" : "ARGB", "value" : 7, "version": "1.0" }, { "enumerant" : "Intensity", "value" : 8, "version": "1.0" }, { "enumerant" : "Luminance", "value" : 9, "version": "1.0" }, { "enumerant" : "Rx", "value" : 10, "version": "1.0" }, { "enumerant" : "RGx", "value" : 11, "version": "1.0" }, { "enumerant" : "RGBx", "value" : 12, "version": "1.0" }, { "enumerant" : "Depth", "value" : 13, "version": "1.0" }, { "enumerant" : "DepthStencil", "value" : 14, "version": "1.0" }, { "enumerant" : "sRGB", "value" : 15, "version": "1.0" }, { "enumerant" : "sRGBx", "value" : 16, "version": "1.0" }, { "enumerant" : "sRGBA", "value" : 17, "version": "1.0" }, { "enumerant" : "sBGRA", "value" : 18, "version": "1.0" }, { "enumerant" : "ABGR", "value" : 19, "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "ImageChannelDataType", "enumerants" : [ { "enumerant" : "SnormInt8", "value" : 0, "version": "1.0" }, { "enumerant" : "SnormInt16", "value" : 1, "version": "1.0" }, { "enumerant" : "UnormInt8", "value" : 2, "version": "1.0" }, { "enumerant" : "UnormInt16", "value" : 3, "version": "1.0" }, { "enumerant" : "UnormShort565", "value" : 4, "version": "1.0" }, { "enumerant" : "UnormShort555", "value" : 5, "version": "1.0" }, { "enumerant" : "UnormInt101010", "value" : 6, "version": "1.0" }, { "enumerant" : "SignedInt8", "value" : 7, "version": "1.0" }, { "enumerant" : "SignedInt16", "value" : 8, "version": "1.0" }, { "enumerant" : "SignedInt32", "value" : 9, "version": "1.0" }, { "enumerant" : "UnsignedInt8", "value" : 10, "version": "1.0" }, { "enumerant" : "UnsignedInt16", "value" : 11, "version": "1.0" }, { "enumerant" : "UnsignedInt32", "value" : 12, "version": "1.0" }, { "enumerant" : "HalfFloat", "value" : 13, "version": "1.0" }, { "enumerant" : "Float", "value" : 14, "version": "1.0" }, { "enumerant" : "UnormInt24", "value" : 15, "version": "1.0" }, { "enumerant" : "UnormInt101010_2", "value" : 16, "version": "1.0" }, { "enumerant" : "UnsignedIntRaw10EXT", "value" : 19, "version": "1.0" }, { "enumerant" : "UnsignedIntRaw12EXT", "value" : 20, "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "FPRoundingMode", "enumerants" : [ { "enumerant" : "RTE", "value" : 0, "version" : "1.0" }, { "enumerant" : "RTZ", "value" : 1, "version" : "1.0" }, { "enumerant" : "RTP", "value" : 2, "version" : "1.0" }, { "enumerant" : "RTN", "value" : 3, "version" : "1.0" } ] }, { "category" : "ValueEnum", "kind" : "FPDenormMode", "enumerants" : [ { "enumerant" : "Preserve", "value" : 0, "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" }, { "enumerant" : "FlushToZero", "value" : 1, "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "QuantizationModes", "enumerants" : [ { "enumerant" : "TRN", "value" : 0, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "TRN_ZERO", "value" : 1, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "RND", "value" : 2, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "RND_ZERO", "value" : 3, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "RND_INF", "value" : 4, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "RND_MIN_INF", "value" : 5, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "RND_CONV", "value" : 6, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "RND_CONV_ODD", "value" : 7, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "FPOperationMode", "enumerants" : [ { "enumerant" : "IEEE", "value" : 0, "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" }, { "enumerant" : "ALT", "value" : 1, "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "OverflowModes", "enumerants" : [ { "enumerant" : "WRAP", "value" : 0, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "SAT", "value" : 1, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "SAT_ZERO", "value" : 2, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" }, { "enumerant" : "SAT_SYM", "value" : 3, "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "LinkageType", "enumerants" : [ { "enumerant" : "Export", "value" : 0, "capabilities" : [ "Linkage" ], "version": "1.0" }, { "enumerant" : "Import", "value" : 1, "capabilities" : [ "Linkage" ], "version": "1.0" }, { "enumerant" : "LinkOnceODR", "value" : 2, "capabilities" : [ "Linkage" ], "extensions" : [ "SPV_KHR_linkonce_odr" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "AccessQualifier", "enumerants" : [ { "enumerant" : "ReadOnly", "value" : 0, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "WriteOnly", "value" : 1, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "ReadWrite", "value" : 2, "capabilities" : [ "Kernel" ], "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "HostAccessQualifier", "enumerants" : [ { "enumerant" : "NoneINTEL", "value" : 0, "capabilities" : [ "GlobalVariableHostAccessINTEL" ], "version" : "None" }, { "enumerant" : "ReadINTEL", "value" : 1, "capabilities" : [ "GlobalVariableHostAccessINTEL" ], "version" : "None" }, { "enumerant" : "WriteINTEL", "value" : 2, "capabilities" : [ "GlobalVariableHostAccessINTEL" ], "version" : "None" }, { "enumerant" : "ReadWriteINTEL", "value" : 3, "capabilities" : [ "GlobalVariableHostAccessINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "FunctionParameterAttribute", "enumerants" : [ { "enumerant" : "Zext", "value" : 0, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Sext", "value" : 1, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "ByVal", "value" : 2, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Sret", "value" : 3, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "NoAlias", "value" : 4, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "NoCapture", "value" : 5, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "NoWrite", "value" : 6, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "NoReadWrite", "value" : 7, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "RuntimeAlignedINTEL", "value" : 5940, "capabilities" : [ "RuntimeAlignedAttributeINTEL" ], "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "Decoration", "enumerants" : [ { "enumerant" : "RelaxedPrecision", "value" : 0, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "SpecId", "value" : 1, "capabilities" : [ "Shader", "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" } ], "version": "1.0" }, { "enumerant" : "Block", "value" : 2, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "BufferBlock", "value" : 3, "capabilities" : [ "Shader" ], "version": "1.0", "lastVersion" : "1.3" }, { "enumerant" : "RowMajor", "value" : 4, "capabilities" : [ "Matrix" ], "version": "1.0" }, { "enumerant" : "ColMajor", "value" : 5, "capabilities" : [ "Matrix" ], "version": "1.0" }, { "enumerant" : "ArrayStride", "value" : 6, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Array Stride'" } ], "version": "1.0" }, { "enumerant" : "MatrixStride", "value" : 7, "capabilities" : [ "Matrix" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" } ], "version": "1.0" }, { "enumerant" : "GLSLShared", "value" : 8, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "GLSLPacked", "value" : 9, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "CPacked", "value" : 10, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "BuiltIn", "value" : 11, "parameters" : [ { "kind" : "BuiltIn" } ], "version": "1.0" }, { "enumerant" : "NoPerspective", "value" : 13, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Flat", "value" : 14, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Patch", "value" : 15, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "Centroid", "value" : 16, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Sample", "value" : 17, "capabilities" : [ "SampleRateShading" ], "version": "1.0" }, { "enumerant" : "Invariant", "value" : 18, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Restrict", "value" : 19, "version" : "1.0" }, { "enumerant" : "Aliased", "value" : 20, "version" : "1.0" }, { "enumerant" : "Volatile", "value" : 21, "version" : "1.0" }, { "enumerant" : "Constant", "value" : 22, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Coherent", "value" : 23, "version": "1.0" }, { "enumerant" : "NonWritable", "value" : 24, "version": "1.0" }, { "enumerant" : "NonReadable", "value" : 25, "version": "1.0" }, { "enumerant" : "Uniform", "value" : 26, "capabilities" : [ "Shader", "UniformDecoration" ], "version": "1.0" }, { "enumerant" : "UniformId", "value" : 27, "capabilities" : [ "Shader", "UniformDecoration" ], "parameters" : [ { "kind" : "IdScope", "name" : "'Execution'" } ], "version" : "1.4" }, { "enumerant" : "SaturatedConversion", "value" : 28, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Stream", "value" : 29, "capabilities" : [ "GeometryStreams" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stream Number'" } ], "version": "1.0" }, { "enumerant" : "Location", "value" : 30, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Location'" } ], "version": "1.0" }, { "enumerant" : "Component", "value" : 31, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Component'" } ], "version": "1.0" }, { "enumerant" : "Index", "value" : 32, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Index'" } ], "version": "1.0" }, { "enumerant" : "Binding", "value" : 33, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Binding Point'" } ], "version": "1.0" }, { "enumerant" : "DescriptorSet", "value" : 34, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" } ], "version": "1.0" }, { "enumerant" : "Offset", "value" : 35, "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" } ], "version": "1.0" }, { "enumerant" : "XfbBuffer", "value" : 36, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" } ], "version": "1.0" }, { "enumerant" : "XfbStride", "value" : 37, "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" } ], "version": "1.0" }, { "enumerant" : "FuncParamAttr", "value" : 38, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" } ], "version": "1.0" }, { "enumerant" : "FPRoundingMode", "value" : 39, "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } ], "version": "1.0" }, { "enumerant" : "FPFastMathMode", "value" : 40, "capabilities" : [ "Kernel", "FloatControls2" ], "parameters" : [ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" } ], "version": "1.0" }, { "enumerant" : "LinkageAttributes", "value" : 41, "capabilities" : [ "Linkage" ], "parameters" : [ { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "LinkageType", "name" : "'Linkage Type'" } ], "version": "1.0" }, { "enumerant" : "NoContraction", "value" : 42, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "InputAttachmentIndex", "value" : 43, "capabilities" : [ "InputAttachment" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" } ], "version": "1.0" }, { "enumerant" : "Alignment", "value" : 44, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Alignment'" } ], "version": "1.0" }, { "enumerant" : "MaxByteOffset", "value" : 45, "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" } ], "version" : "1.1" }, { "enumerant" : "AlignmentId", "value" : 46, "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Alignment'" } ], "version" : "1.2" }, { "enumerant" : "MaxByteOffsetId", "value" : 47, "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Max Byte Offset'" } ], "version" : "1.2" }, { "enumerant" : "NoSignedWrap", "value" : 4469, "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ], "version" : "1.4" }, { "enumerant" : "NoUnsignedWrap", "value" : 4470, "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ], "version" : "1.4" }, { "enumerant" : "WeightTextureQCOM", "value" : 4487, "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, { "enumerant" : "BlockMatchTextureQCOM", "value" : 4488, "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, { "enumerant" : "BlockMatchSamplerQCOM", "value" : 4499, "extensions" : [ "SPV_QCOM_image_processing2" ], "version" : "None" }, { "enumerant" : "ExplicitInterpAMD", "value" : 4999, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "NodeSharesPayloadLimitsWithAMDX", "value" : 5019, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Payload Array'" } ], "version" : "None" }, { "enumerant" : "NodeMaxPayloadsAMDX", "value" : 5020, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Max number of payloads'" } ], "version" : "None" }, { "enumerant" : "TrackFinishWritingAMDX", "value" : 5078, "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "enumerant" : "PayloadNodeNameAMDX", "value" : 5091, "capabilities" : [ "ShaderEnqueueAMDX" ], "parameters" : [ { "kind" : "LiteralString", "name" : "'Node Name'" } ], "version" : "None" }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, "capabilities" : [ "SampleMaskOverrideCoverageNV" ], "extensions" : [ "SPV_NV_sample_mask_override_coverage" ], "version" : "None" }, { "enumerant" : "PassthroughNV", "value" : 5250, "capabilities" : [ "GeometryShaderPassthroughNV" ], "extensions" : [ "SPV_NV_geometry_shader_passthrough" ], "version" : "None" }, { "enumerant" : "ViewportRelativeNV", "value" : 5252, "capabilities" : [ "ShaderViewportMaskNV" ], "version" : "None" }, { "enumerant" : "SecondaryViewportRelativeNV", "value" : 5256, "capabilities" : [ "ShaderStereoViewNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ], "version" : "None", "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Offset'" } ] }, { "enumerant" : "PerPrimitiveEXT", "value" : 5271, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "PerPrimitiveNV", "value" : 5271, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "PerViewNV", "value" : 5272, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "PerTaskNV", "value" : 5273, "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "PerVertexKHR", "value" : 5285, "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ], "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "PerVertexNV", "value" : 5285, "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ], "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "NonUniform", "value" : 5300, "capabilities" : [ "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "NonUniformEXT", "value" : 5300, "capabilities" : [ "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "RestrictPointer", "value" : 5355, "capabilities" : [ "PhysicalStorageBufferAddresses" ], "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ], "version" : "1.5" }, { "enumerant" : "RestrictPointerEXT", "value" : 5355, "capabilities" : [ "PhysicalStorageBufferAddresses" ], "extensions" : [ "SPV_EXT_physical_storage_buffer" ], "version" : "1.5" }, { "enumerant" : "AliasedPointer", "value" : 5356, "capabilities" : [ "PhysicalStorageBufferAddresses" ], "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ], "version" : "1.5" }, { "enumerant" : "AliasedPointerEXT", "value" : 5356, "capabilities" : [ "PhysicalStorageBufferAddresses" ], "extensions" : [ "SPV_EXT_physical_storage_buffer" ], "version" : "1.5" }, { "enumerant" : "HitObjectShaderRecordBufferNV", "value" : 5386, "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { "enumerant" : "BindlessSamplerNV", "value" : 5398, "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "enumerant" : "BindlessImageNV", "value" : 5399, "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "enumerant" : "BoundSamplerNV", "value" : 5400, "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "enumerant" : "BoundImageNV", "value" : 5401, "capabilities" : [ "BindlessTextureNV" ], "version" : "None" }, { "enumerant" : "SIMTCallINTEL", "value" : 5599, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'N'" } ], "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "ReferencedIndirectlyINTEL", "value" : 5602, "capabilities" : [ "IndirectReferencesINTEL" ], "extensions" : [ "SPV_INTEL_function_pointers" ], "version" : "None" }, { "enumerant" : "ClobberINTEL", "value" : 5607, "parameters" : [ { "kind" : "LiteralString", "name" : "'Register'" } ], "capabilities" : [ "AsmINTEL" ], "version" : "None" }, { "enumerant" : "SideEffectsINTEL", "value" : 5608, "capabilities" : [ "AsmINTEL" ], "version" : "None" }, { "enumerant" : "VectorComputeVariableINTEL", "value" : 5624, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "FuncParamIOKindINTEL", "value" : 5625, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Kind'" } ], "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "VectorComputeFunctionINTEL", "value" : 5626, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "StackCallINTEL", "value" : 5627, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "GlobalVariableOffsetINTEL", "value" : 5628, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Offset'" } ], "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "CounterBuffer", "value" : 5634, "parameters" : [ { "kind" : "IdRef", "name" : "'Counter Buffer'" } ], "version" : "1.4" }, { "enumerant" : "HlslCounterBufferGOOGLE", "value" : 5634, "parameters" : [ { "kind" : "IdRef", "name" : "'Counter Buffer'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ], "version" : "None" }, { "enumerant" : "UserSemantic", "value" : 5635, "parameters" : [ { "kind" : "LiteralString", "name" : "'Semantic'" } ], "version" : "1.4" }, { "enumerant" : "HlslSemanticGOOGLE", "value" : 5635, "parameters" : [ { "kind" : "LiteralString", "name" : "'Semantic'" } ], "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ], "version" : "None" }, { "enumerant" : "UserTypeGOOGLE", "value" : 5636, "parameters" : [ { "kind" : "LiteralString", "name" : "'User Type'" } ], "extensions" : [ "SPV_GOOGLE_user_type" ], "version" : "None" }, { "enumerant" : "FunctionRoundingModeINTEL", "value" : 5822, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" }, { "kind" : "FPRoundingMode", "name" : "'FP Rounding Mode'" } ], "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" }, { "enumerant" : "FunctionDenormModeINTEL", "value" : 5823, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" }, { "kind" : "FPDenormMode", "name" : "'FP Denorm Mode'" } ], "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" }, { "enumerant" : "RegisterINTEL", "value" : 5825, "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "MemoryINTEL", "value" : 5826, "parameters" : [ { "kind" : "LiteralString", "name" : "'Memory Type'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "NumbanksINTEL", "value" : 5827, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Banks'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "BankwidthINTEL", "value" : 5828, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Bank Width'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "MaxPrivateCopiesINTEL", "value" : 5829, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Maximum Copies'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "SinglepumpINTEL", "value" : 5830, "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "DoublepumpINTEL", "value" : 5831, "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "MaxReplicatesINTEL", "value" : 5832, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Maximum Replicates'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "SimpleDualPortINTEL", "value" : 5833, "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "MergeINTEL", "value" : 5834, "parameters" : [ { "kind" : "LiteralString", "name" : "'Merge Key'" }, { "kind" : "LiteralString", "name" : "'Merge Type'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "BankBitsINTEL", "value" : 5835, "parameters" : [ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Bank Bits'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "ForcePow2DepthINTEL", "value" : 5836, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Force Key'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "StridesizeINTEL", "value" : 5883, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stride Size'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "version" : "None" }, { "enumerant" : "WordsizeINTEL", "value" : 5884, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Word Size'" } ], "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "version" : "None" }, { "enumerant" : "TrueDualPortINTEL", "value" : 5885, "capabilities" : [ "FPGAMemoryAttributesINTEL" ], "version" : "None" }, { "enumerant" : "BurstCoalesceINTEL", "value" : 5899, "capabilities" : [ "FPGAMemoryAccessesINTEL" ], "version" : "None" }, { "enumerant" : "CacheSizeINTEL", "value" : 5900, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Cache Size in bytes'" } ], "capabilities" : [ "FPGAMemoryAccessesINTEL" ], "version" : "None" }, { "enumerant" : "DontStaticallyCoalesceINTEL", "value" : 5901, "capabilities" : [ "FPGAMemoryAccessesINTEL" ], "version" : "None" }, { "enumerant" : "PrefetchINTEL", "value" : 5902, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Prefetcher Size in bytes'" } ], "capabilities" : [ "FPGAMemoryAccessesINTEL" ], "version" : "None" }, { "enumerant" : "StallEnableINTEL", "value" : 5905, "capabilities" : [ "FPGAClusterAttributesINTEL" ], "version" : "None" }, { "enumerant" : "FuseLoopsInFunctionINTEL", "value" : 5907, "capabilities" : [ "LoopFuseINTEL" ], "version" : "None" }, { "enumerant" : "MathOpDSPModeINTEL", "value" : 5909, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Mode'" }, { "kind" : "LiteralInteger", "name" : "'Propagate'" } ], "capabilities" : [ "FPGADSPControlINTEL" ], "version" : "None" }, { "enumerant" : "AliasScopeINTEL", "value" : 5914, "parameters" : [ { "kind" : "IdRef", "name" : "'Aliasing Scopes List'" } ], "capabilities" : [ "MemoryAccessAliasingINTEL" ], "version" : "None" }, { "enumerant" : "NoAliasINTEL", "value" : 5915, "parameters" : [ { "kind" : "IdRef", "name" : "'Aliasing Scopes List'" } ], "capabilities" : [ "MemoryAccessAliasingINTEL" ], "version" : "None" }, { "enumerant" : "InitiationIntervalINTEL", "value" : 5917, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Cycles'" } ], "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], "version" : "None" }, { "enumerant" : "MaxConcurrencyINTEL", "value" : 5918, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Invocations'" } ], "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], "version" : "None" }, { "enumerant" : "PipelineEnableINTEL", "value" : 5919, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Enable'" } ], "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], "version" : "None" }, { "enumerant" : "BufferLocationINTEL", "value" : 5921, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Buffer Location ID'" } ], "capabilities" : [ "FPGABufferLocationINTEL" ], "version" : "None" }, { "enumerant" : "IOPipeStorageINTEL", "value" : 5944, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'IO Pipe ID'" } ], "capabilities" : [ "IOPipesINTEL" ], "version" : "None" }, { "enumerant" : "FunctionFloatingPointModeINTEL", "value" : 6080, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Target Width'" }, { "kind" : "FPOperationMode", "name" : "'FP Operation Mode'" } ], "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" }, { "enumerant" : "SingleElementVectorINTEL", "value" : 6085, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "VectorComputeCallableFunctionINTEL", "value" : 6087, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "MediaBlockIOINTEL", "value" : 6140, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, { "enumerant" : "StallFreeINTEL", "value" : 6151, "capabilities" : [ "FPGAClusterAttributesV2INTEL" ], "version" : "None" }, { "enumerant" : "FPMaxErrorDecorationINTEL", "value" : 6170, "parameters" : [ { "kind" : "LiteralFloat", "name" : "'Max Error'" } ], "capabilities" : [ "FPMaxErrorINTEL" ], "version" : "None" }, { "enumerant" : "LatencyControlLabelINTEL", "value" : 6172, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Latency Label'" } ], "capabilities" : [ "FPGALatencyControlINTEL" ], "version" : "None" }, { "enumerant" : "LatencyControlConstraintINTEL", "value" : 6173, "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Relative To'" }, { "kind" : "LiteralInteger", "name" : "'Control Type'" }, { "kind" : "LiteralInteger", "name" : "'Relative Cycle'" } ], "capabilities" : [ "FPGALatencyControlINTEL" ], "version" : "None" }, { "enumerant" : "ConduitKernelArgumentINTEL", "value" : 6175, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "version" : "None" }, { "enumerant" : "RegisterMapKernelArgumentINTEL", "value" : 6176, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "version" : "None" }, { "enumerant" : "MMHostInterfaceAddressWidthINTEL", "value" : 6177, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'AddressWidth'" } ], "version" : "None" }, { "enumerant" : "MMHostInterfaceDataWidthINTEL", "value" : 6178, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'DataWidth'" } ], "version" : "None" }, { "enumerant" : "MMHostInterfaceLatencyINTEL", "value" : 6179, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Latency'" } ], "version" : "None" }, { "enumerant" : "MMHostInterfaceReadWriteModeINTEL", "value" : 6180, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "parameters" : [ { "kind" : "AccessQualifier", "name" : "'ReadWriteMode'" } ], "version" : "None" }, { "enumerant" : "MMHostInterfaceMaxBurstINTEL", "value" : 6181, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'MaxBurstCount'" } ], "version" : "None" }, { "enumerant" : "MMHostInterfaceWaitRequestINTEL", "value" : 6182, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Waitrequest'" } ], "version" : "None" }, { "enumerant" : "StableKernelArgumentINTEL", "value" : 6183, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "version" : "None" }, { "enumerant" : "HostAccessINTEL", "value" : 6188, "parameters": [ { "kind" : "HostAccessQualifier", "name" : "'Access'" }, { "kind" : "LiteralString", "name" : "'Name'" } ], "capabilities" : [ "GlobalVariableHostAccessINTEL" ], "version" : "None" }, { "enumerant" : "InitModeINTEL", "value" : 6190, "parameters": [ { "kind" : "InitializationModeQualifier", "name" : "'Trigger'" } ], "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], "version" : "None" }, { "enumerant" : "ImplementInRegisterMapINTEL", "value" : 6191, "parameters": [ { "kind" : "LiteralInteger", "name" : "Value" } ], "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], "version" : "None" }, { "enumerant" : "CacheControlLoadINTEL", "value" : 6442, "capabilities" : [ "CacheControlsINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Cache Level'" }, { "kind" : "LoadCacheControl", "name" : "'Cache Control'" } ], "version" : "None" }, { "enumerant" : "CacheControlStoreINTEL", "value" : 6443, "capabilities" : [ "CacheControlsINTEL" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Cache Level'" }, { "kind" : "StoreCacheControl", "name" : "'Cache Control'" } ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "BuiltIn", "enumerants" : [ { "enumerant" : "Position", "value" : 0, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "PointSize", "value" : 1, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "ClipDistance", "value" : 3, "capabilities" : [ "ClipDistance" ], "version": "1.0" }, { "enumerant" : "CullDistance", "value" : 4, "capabilities" : [ "CullDistance" ], "version": "1.0" }, { "enumerant" : "VertexId", "value" : 5, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "InstanceId", "value" : 6, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "PrimitiveId", "value" : 7, "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ], "version": "1.0" }, { "enumerant" : "InvocationId", "value" : 8, "capabilities" : [ "Geometry", "Tessellation" ], "version": "1.0" }, { "enumerant" : "Layer", "value" : 9, "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ], "version": "1.0" }, { "enumerant" : "ViewportIndex", "value" : 10, "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ], "version": "1.0" }, { "enumerant" : "TessLevelOuter", "value" : 11, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "TessLevelInner", "value" : 12, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "TessCoord", "value" : 13, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "PatchVertices", "value" : 14, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "FragCoord", "value" : 15, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "PointCoord", "value" : 16, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "FrontFacing", "value" : 17, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "SampleId", "value" : 18, "capabilities" : [ "SampleRateShading" ], "version": "1.0" }, { "enumerant" : "SamplePosition", "value" : 19, "capabilities" : [ "SampleRateShading" ], "version": "1.0" }, { "enumerant" : "SampleMask", "value" : 20, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "FragDepth", "value" : 22, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "HelperInvocation", "value" : 23, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "NumWorkgroups", "value" : 24, "version" : "1.0" }, { "enumerant" : "WorkgroupSize", "value" : 25, "version" : "1.0" }, { "enumerant" : "WorkgroupId", "value" : 26, "version" : "1.0" }, { "enumerant" : "LocalInvocationId", "value" : 27, "version" : "1.0" }, { "enumerant" : "GlobalInvocationId", "value" : 28, "version" : "1.0" }, { "enumerant" : "LocalInvocationIndex", "value" : 29, "version" : "1.0" }, { "enumerant" : "WorkDim", "value" : 30, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "GlobalSize", "value" : 31, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "EnqueuedWorkgroupSize", "value" : 32, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "GlobalOffset", "value" : 33, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "GlobalLinearId", "value" : 34, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "SubgroupSize", "value" : 36, "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ], "version": "1.0" }, { "enumerant" : "SubgroupMaxSize", "value" : 37, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "NumSubgroups", "value" : 38, "capabilities" : [ "Kernel", "GroupNonUniform" ], "version": "1.0" }, { "enumerant" : "NumEnqueuedSubgroups", "value" : 39, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "SubgroupId", "value" : 40, "capabilities" : [ "Kernel", "GroupNonUniform" ], "version": "1.0" }, { "enumerant" : "SubgroupLocalInvocationId", "value" : 41, "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ], "version": "1.0" }, { "enumerant" : "VertexIndex", "value" : 42, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "InstanceIndex", "value" : 43, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "CoreIDARM", "value" : 4160, "capabilities" : [ "CoreBuiltinsARM" ], "version": "1.0" }, { "enumerant" : "CoreCountARM", "value" : 4161, "capabilities" : [ "CoreBuiltinsARM" ], "version": "1.0" }, { "enumerant" : "CoreMaxIDARM", "value" : 4162, "capabilities" : [ "CoreBuiltinsARM" ], "version": "1.0" }, { "enumerant" : "WarpIDARM", "value" : 4163, "capabilities" : [ "CoreBuiltinsARM" ], "version": "1.0" }, { "enumerant" : "WarpMaxIDARM", "value" : 4164, "capabilities" : [ "CoreBuiltinsARM" ], "version": "1.0" }, { "enumerant" : "SubgroupEqMask", "value" : 4416, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "version" : "1.3" }, { "enumerant" : "SubgroupEqMaskKHR", "value" : 4416, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "1.3" }, { "enumerant" : "SubgroupGeMask", "value" : 4417, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "version" : "1.3" }, { "enumerant" : "SubgroupGeMaskKHR", "value" : 4417, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "1.3" }, { "enumerant" : "SubgroupGtMask", "value" : 4418, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "version" : "1.3" }, { "enumerant" : "SubgroupGtMaskKHR", "value" : 4418, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "1.3" }, { "enumerant" : "SubgroupLeMask", "value" : 4419, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "version" : "1.3" }, { "enumerant" : "SubgroupLeMaskKHR", "value" : 4419, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "1.3" }, { "enumerant" : "SubgroupLtMask", "value" : 4420, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "version" : "1.3" }, { "enumerant" : "SubgroupLtMaskKHR", "value" : 4420, "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ], "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "1.3" }, { "enumerant" : "BaseVertex", "value" : 4424, "capabilities" : [ "DrawParameters" ], "extensions" : [ "SPV_KHR_shader_draw_parameters" ], "version" : "1.3" }, { "enumerant" : "BaseInstance", "value" : 4425, "capabilities" : [ "DrawParameters" ], "extensions" : [ "SPV_KHR_shader_draw_parameters" ], "version" : "1.3" }, { "enumerant" : "DrawIndex", "value" : 4426, "capabilities" : [ "DrawParameters", "MeshShadingNV", "MeshShadingEXT" ], "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ], "version" : "1.3" }, { "enumerant" : "PrimitiveShadingRateKHR", "value" : 4432, "capabilities" : [ "FragmentShadingRateKHR" ], "extensions" : [ "SPV_KHR_fragment_shading_rate" ], "version" : "None" }, { "enumerant" : "DeviceIndex", "value" : 4438, "capabilities" : [ "DeviceGroup" ], "extensions" : [ "SPV_KHR_device_group" ], "version" : "1.3" }, { "enumerant" : "ViewIndex", "value" : 4440, "capabilities" : [ "MultiView" ], "extensions" : [ "SPV_KHR_multiview" ], "version" : "1.3" }, { "enumerant" : "ShadingRateKHR", "value" : 4444, "capabilities" : [ "FragmentShadingRateKHR" ], "extensions" : [ "SPV_KHR_fragment_shading_rate" ], "version" : "None" }, { "enumerant" : "BaryCoordNoPerspAMD", "value" : 4992, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "BaryCoordNoPerspCentroidAMD", "value" : 4993, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "BaryCoordNoPerspSampleAMD", "value" : 4994, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "BaryCoordSmoothAMD", "value" : 4995, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "BaryCoordSmoothCentroidAMD", "value" : 4996, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "BaryCoordSmoothSampleAMD", "value" : 4997, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "BaryCoordPullModelAMD", "value" : 4998, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, { "enumerant" : "FragStencilRefEXT", "value" : 5014, "capabilities" : [ "StencilExportEXT" ], "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, { "enumerant" : "CoalescedInputCountAMDX", "value" : 5021, "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "enumerant" : "ShaderIndexAMDX", "value" : 5073, "capabilities" : [ "ShaderEnqueueAMDX" ], "version" : "None" }, { "enumerant" : "ViewportMaskNV", "value" : 5253, "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ], "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "SecondaryPositionNV", "value" : 5257, "capabilities" : [ "ShaderStereoViewNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ], "version" : "None" }, { "enumerant" : "SecondaryViewportMaskNV", "value" : 5258, "capabilities" : [ "ShaderStereoViewNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ], "version" : "None" }, { "enumerant" : "PositionPerViewNV", "value" : 5261, "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ], "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "ViewportMaskPerViewNV", "value" : 5262, "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ], "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "FullyCoveredEXT", "value" : 5264, "capabilities" : [ "FragmentFullyCoveredEXT" ], "extensions" : [ "SPV_EXT_fragment_fully_covered" ], "version" : "None" }, { "enumerant" : "TaskCountNV", "value" : 5274, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "PrimitiveCountNV", "value" : 5275, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "PrimitiveIndicesNV", "value" : 5276, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "ClipDistancePerViewNV", "value" : 5277, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "CullDistancePerViewNV", "value" : 5278, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "LayerPerViewNV", "value" : 5279, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "MeshViewCountNV", "value" : 5280, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "MeshViewIndicesNV", "value" : 5281, "capabilities" : [ "MeshShadingNV" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "BaryCoordKHR", "value" : 5286, "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ], "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "BaryCoordNV", "value" : 5286, "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ], "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "BaryCoordNoPerspKHR", "value" : 5287, "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ], "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "BaryCoordNoPerspNV", "value" : 5287, "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ], "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "FragSizeEXT", "value" : 5292 , "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ], "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ], "version" : "None" }, { "enumerant" : "FragmentSizeNV", "value" : 5292 , "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ], "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ], "version" : "None" }, { "enumerant" : "FragInvocationCountEXT", "value" : 5293, "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ], "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ], "version" : "None" }, { "enumerant" : "InvocationsPerPixelNV", "value" : 5293, "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ], "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ], "version" : "None" }, { "enumerant" : "PrimitivePointIndicesEXT", "value" : 5294, "capabilities" : [ "MeshShadingEXT" ], "extensions" : [ "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "PrimitiveLineIndicesEXT", "value" : 5295, "capabilities" : [ "MeshShadingEXT" ], "extensions" : [ "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "PrimitiveTriangleIndicesEXT", "value" : 5296, "capabilities" : [ "MeshShadingEXT" ], "extensions" : [ "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "CullPrimitiveEXT", "value" : 5299, "capabilities" : [ "MeshShadingEXT" ], "extensions" : [ "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "LaunchIdKHR", "value" : 5319, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "LaunchIdNV", "value" : 5319, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "LaunchSizeKHR", "value" : 5320, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "LaunchSizeNV", "value" : 5320, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WorldRayOriginKHR", "value" : 5321, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WorldRayOriginNV", "value" : 5321, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WorldRayDirectionKHR", "value" : 5322, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WorldRayDirectionNV", "value" : 5322, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "ObjectRayOriginKHR", "value" : 5323, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "ObjectRayOriginNV", "value" : 5323, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "ObjectRayDirectionKHR", "value" : 5324, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "ObjectRayDirectionNV", "value" : 5324, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayTminKHR", "value" : 5325, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayTminNV", "value" : 5325, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayTmaxKHR", "value" : 5326, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayTmaxNV", "value" : 5326, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "InstanceCustomIndexKHR", "value" : 5327, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "InstanceCustomIndexNV", "value" : 5327, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "ObjectToWorldKHR", "value" : 5330, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "ObjectToWorldNV", "value" : 5330, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WorldToObjectKHR", "value" : 5331, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WorldToObjectNV", "value" : 5331, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "HitTNV", "value" : 5332, "capabilities" : [ "RayTracingNV" ], "extensions" : [ "SPV_NV_ray_tracing" ], "version" : "None" }, { "enumerant" : "HitKindKHR", "value" : 5333, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "HitKindNV", "value" : 5333, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "CurrentRayTimeNV", "value" : 5334, "capabilities" : [ "RayTracingMotionBlurNV" ], "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ], "version" : "None" }, { "enumerant" : "HitTriangleVertexPositionsKHR", "value" : 5335, "capabilities" : [ "RayTracingPositionFetchKHR" ], "version" : "None" }, { "enumerant" : "HitMicroTriangleVertexPositionsNV", "value" : 5337, "capabilities" : [ "RayTracingDisplacementMicromapNV" ], "version" : "None" }, { "enumerant" : "HitMicroTriangleVertexBarycentricsNV", "value" : 5344, "capabilities" : [ "RayTracingDisplacementMicromapNV" ], "version" : "None" }, { "enumerant" : "IncomingRayFlagsKHR", "value" : 5351, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "IncomingRayFlagsNV", "value" : 5351, "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ], "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayGeometryIndexKHR", "value" : 5352, "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "WarpsPerSMNV", "value" : 5374, "capabilities" : [ "ShaderSMBuiltinsNV" ], "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, { "enumerant" : "SMCountNV", "value" : 5375, "capabilities" : [ "ShaderSMBuiltinsNV" ], "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, { "enumerant" : "WarpIDNV", "value" : 5376, "capabilities" : [ "ShaderSMBuiltinsNV" ], "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, { "enumerant" : "SMIDNV", "value" : 5377, "capabilities" : [ "ShaderSMBuiltinsNV" ], "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, { "enumerant" : "HitKindFrontFacingMicroTriangleNV", "value" : 5405, "capabilities" : [ "RayTracingDisplacementMicromapNV" ], "version" : "None" }, { "enumerant" : "HitKindBackFacingMicroTriangleNV", "value" : 5406, "capabilities" : [ "RayTracingDisplacementMicromapNV" ], "version" : "None" }, { "enumerant" : "CullMaskKHR", "value" : 6021, "capabilities" : [ "RayCullMaskKHR" ], "extensions" : [ "SPV_KHR_ray_cull_mask" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "Scope", "enumerants" : [ { "enumerant" : "CrossDevice", "value" : 0, "version" : "1.0" }, { "enumerant" : "Device", "value" : 1, "version" : "1.0" }, { "enumerant" : "Workgroup", "value" : 2, "version" : "1.0" }, { "enumerant" : "Subgroup", "value" : 3, "version" : "1.0" }, { "enumerant" : "Invocation", "value" : 4, "version" : "1.0" }, { "enumerant" : "QueueFamily", "value" : 5, "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "QueueFamilyKHR", "value" : 5, "capabilities" : [ "VulkanMemoryModel" ], "version" : "1.5" }, { "enumerant" : "ShaderCallKHR", "value" : 6, "capabilities" : [ "RayTracingKHR" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "GroupOperation", "enumerants" : [ { "enumerant" : "Reduce", "value" : 0, "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], "version": "1.0" }, { "enumerant" : "InclusiveScan", "value" : 1, "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], "version": "1.0" }, { "enumerant" : "ExclusiveScan", "value" : 2, "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], "version": "1.0" }, { "enumerant" : "ClusteredReduce", "value" : 3, "capabilities" : [ "GroupNonUniformClustered" ], "version" : "1.3" }, { "enumerant" : "PartitionedReduceNV", "value" : 6, "capabilities" : [ "GroupNonUniformPartitionedNV" ], "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ], "version" : "None" }, { "enumerant" : "PartitionedInclusiveScanNV", "value" : 7, "capabilities" : [ "GroupNonUniformPartitionedNV" ], "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ], "version" : "None" }, { "enumerant" : "PartitionedExclusiveScanNV", "value" : 8, "capabilities" : [ "GroupNonUniformPartitionedNV" ], "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "KernelEnqueueFlags", "enumerants" : [ { "enumerant" : "NoWait", "value" : 0, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "WaitKernel", "value" : 1, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "WaitWorkGroup", "value" : 2, "capabilities" : [ "Kernel" ], "version": "1.0" } ] }, { "category" : "ValueEnum", "kind" : "Capability", "enumerants" : [ { "enumerant" : "Matrix", "value" : 0, "version" : "1.0" }, { "enumerant" : "Shader", "value" : 1, "capabilities" : [ "Matrix" ], "version": "1.0" }, { "enumerant" : "Geometry", "value" : 2, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Tessellation", "value" : 3, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Addresses", "value" : 4, "version" : "1.0" }, { "enumerant" : "Linkage", "value" : 5, "version" : "1.0" }, { "enumerant" : "Kernel", "value" : 6, "version" : "1.0" }, { "enumerant" : "Vector16", "value" : 7, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Float16Buffer", "value" : 8, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Float16", "value" : 9, "version" : "1.0" }, { "enumerant" : "Float64", "value" : 10, "version" : "1.0" }, { "enumerant" : "Int64", "value" : 11, "version" : "1.0" }, { "enumerant" : "Int64Atomics", "value" : 12, "capabilities" : [ "Int64" ], "version": "1.0" }, { "enumerant" : "ImageBasic", "value" : 13, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "ImageReadWrite", "value" : 14, "capabilities" : [ "ImageBasic" ], "version": "1.0" }, { "enumerant" : "ImageMipmap", "value" : 15, "capabilities" : [ "ImageBasic" ], "version": "1.0" }, { "enumerant" : "Pipes", "value" : 17, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "Groups", "value" : 18, "extensions" : [ "SPV_AMD_shader_ballot" ], "version": "1.0" }, { "enumerant" : "DeviceEnqueue", "value" : 19, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "LiteralSampler", "value" : 20, "capabilities" : [ "Kernel" ], "version": "1.0" }, { "enumerant" : "AtomicStorage", "value" : 21, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Int16", "value" : 22, "version" : "1.0" }, { "enumerant" : "TessellationPointSize", "value" : 23, "capabilities" : [ "Tessellation" ], "version": "1.0" }, { "enumerant" : "GeometryPointSize", "value" : 24, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "ImageGatherExtended", "value" : 25, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "StorageImageMultisample", "value" : 27, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "UniformBufferArrayDynamicIndexing", "value" : 28, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "SampledImageArrayDynamicIndexing", "value" : 29, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "StorageBufferArrayDynamicIndexing", "value" : 30, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "StorageImageArrayDynamicIndexing", "value" : 31, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "ClipDistance", "value" : 32, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "CullDistance", "value" : 33, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "ImageCubeArray", "value" : 34, "capabilities" : [ "SampledCubeArray" ], "version": "1.0" }, { "enumerant" : "SampleRateShading", "value" : 35, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "ImageRect", "value" : 36, "capabilities" : [ "SampledRect" ], "version": "1.0" }, { "enumerant" : "SampledRect", "value" : 37, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "GenericPointer", "value" : 38, "capabilities" : [ "Addresses" ], "version": "1.0" }, { "enumerant" : "Int8", "value" : 39, "version" : "1.0" }, { "enumerant" : "InputAttachment", "value" : 40, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "SparseResidency", "value" : 41, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "MinLod", "value" : 42, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "Sampled1D", "value" : 43, "version" : "1.0" }, { "enumerant" : "Image1D", "value" : 44, "capabilities" : [ "Sampled1D" ], "version": "1.0" }, { "enumerant" : "SampledCubeArray", "value" : 45, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "SampledBuffer", "value" : 46, "version" : "1.0" }, { "enumerant" : "ImageBuffer", "value" : 47, "capabilities" : [ "SampledBuffer" ], "version": "1.0" }, { "enumerant" : "ImageMSArray", "value" : 48, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "StorageImageExtendedFormats", "value" : 49, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "ImageQuery", "value" : 50, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "DerivativeControl", "value" : 51, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "InterpolationFunction", "value" : 52, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "TransformFeedback", "value" : 53, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "GeometryStreams", "value" : 54, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "StorageImageReadWithoutFormat", "value" : 55, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "StorageImageWriteWithoutFormat", "value" : 56, "capabilities" : [ "Shader" ], "version": "1.0" }, { "enumerant" : "MultiViewport", "value" : 57, "capabilities" : [ "Geometry" ], "version": "1.0" }, { "enumerant" : "SubgroupDispatch", "value" : 58, "capabilities" : [ "DeviceEnqueue" ], "version" : "1.1" }, { "enumerant" : "NamedBarrier", "value" : 59, "capabilities" : [ "Kernel" ], "version" : "1.1" }, { "enumerant" : "PipeStorage", "value" : 60, "capabilities" : [ "Pipes" ], "version" : "1.1" }, { "enumerant" : "GroupNonUniform", "value" : 61, "version" : "1.3" }, { "enumerant" : "GroupNonUniformVote", "value" : 62, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "GroupNonUniformArithmetic", "value" : 63, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "GroupNonUniformBallot", "value" : 64, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "GroupNonUniformShuffle", "value" : 65, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "GroupNonUniformShuffleRelative", "value" : 66, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "GroupNonUniformClustered", "value" : 67, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "GroupNonUniformQuad", "value" : 68, "capabilities" : [ "GroupNonUniform" ], "version" : "1.3" }, { "enumerant" : "ShaderLayer", "value" : 69, "version" : "1.5" }, { "enumerant" : "ShaderViewportIndex", "value" : 70, "version" : "1.5" }, { "enumerant" : "UniformDecoration", "value" : 71, "version" : "1.6" }, { "enumerant" : "CoreBuiltinsARM", "value" : 4165, "extensions" : [ "SPV_ARM_core_builtins" ], "version": "None" }, { "enumerant" : "TileImageColorReadAccessEXT", "value" : 4166, "extensions" : [ "SPV_EXT_shader_tile_image" ], "version" : "None" }, { "enumerant" : "TileImageDepthReadAccessEXT", "value" : 4167, "extensions" : [ "SPV_EXT_shader_tile_image" ], "version" : "None" }, { "enumerant" : "TileImageStencilReadAccessEXT", "value" : 4168, "extensions" : [ "SPV_EXT_shader_tile_image" ], "version" : "None" }, { "enumerant" : "CooperativeMatrixLayoutsARM", "value" : 4201, "extensions" : [ "SPV_ARM_cooperative_matrix_layouts" ], "version" : "None" }, { "enumerant" : "FragmentShadingRateKHR", "value" : 4422, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_fragment_shading_rate" ], "version" : "None" }, { "enumerant" : "SubgroupBallotKHR", "value" : 4423, "extensions" : [ "SPV_KHR_shader_ballot" ], "version" : "None" }, { "enumerant" : "DrawParameters", "value" : 4427, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_shader_draw_parameters" ], "version" : "1.3" }, { "enumerant" : "WorkgroupMemoryExplicitLayoutKHR", "value" : 4428, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ], "version" : "None" }, { "enumerant" : "WorkgroupMemoryExplicitLayout8BitAccessKHR", "value" : 4429, "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ], "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ], "version" : "None" }, { "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR", "value" : 4430, "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ], "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ], "version" : "None" }, { "enumerant" : "SubgroupVoteKHR", "value" : 4431, "extensions" : [ "SPV_KHR_subgroup_vote" ], "version" : "None" }, { "enumerant" : "StorageBuffer16BitAccess", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ], "version" : "1.3" }, { "enumerant" : "StorageUniformBufferBlock16", "value" : 4433, "extensions" : [ "SPV_KHR_16bit_storage" ], "version" : "1.3" }, { "enumerant" : "UniformAndStorageBuffer16BitAccess", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ], "version" : "1.3" }, { "enumerant" : "StorageUniform16", "value" : 4434, "capabilities" : [ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], "extensions" : [ "SPV_KHR_16bit_storage" ], "version" : "1.3" }, { "enumerant" : "StoragePushConstant16", "value" : 4435, "extensions" : [ "SPV_KHR_16bit_storage" ], "version" : "1.3" }, { "enumerant" : "StorageInputOutput16", "value" : 4436, "extensions" : [ "SPV_KHR_16bit_storage" ], "version" : "1.3" }, { "enumerant" : "DeviceGroup", "value" : 4437, "extensions" : [ "SPV_KHR_device_group" ], "version" : "1.3" }, { "enumerant" : "MultiView", "value" : 4439, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_multiview" ], "version" : "1.3" }, { "enumerant" : "VariablePointersStorageBuffer", "value" : 4441, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_variable_pointers" ], "version" : "1.3" }, { "enumerant" : "VariablePointers", "value" : 4442, "capabilities" : [ "VariablePointersStorageBuffer" ], "extensions" : [ "SPV_KHR_variable_pointers" ], "version" : "1.3" }, { "enumerant" : "AtomicStorageOps", "value" : 4445, "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ], "version" : "None" }, { "enumerant" : "SampleMaskPostDepthCoverage", "value" : 4447, "extensions" : [ "SPV_KHR_post_depth_coverage" ], "version" : "None" }, { "enumerant" : "StorageBuffer8BitAccess", "value" : 4448, "extensions" : [ "SPV_KHR_8bit_storage" ], "version" : "1.5" }, { "enumerant" : "UniformAndStorageBuffer8BitAccess", "value" : 4449, "capabilities" : [ "StorageBuffer8BitAccess" ], "extensions" : [ "SPV_KHR_8bit_storage" ], "version" : "1.5" }, { "enumerant" : "StoragePushConstant8", "value" : 4450, "extensions" : [ "SPV_KHR_8bit_storage" ], "version" : "1.5" }, { "enumerant" : "DenormPreserve", "value" : 4464, "extensions" : [ "SPV_KHR_float_controls" ], "version" : "1.4" }, { "enumerant" : "DenormFlushToZero", "value" : 4465, "extensions" : [ "SPV_KHR_float_controls" ], "version" : "1.4" }, { "enumerant" : "SignedZeroInfNanPreserve", "value" : 4466, "extensions" : [ "SPV_KHR_float_controls" ], "version" : "1.4" }, { "enumerant" : "RoundingModeRTE", "value" : 4467, "extensions" : [ "SPV_KHR_float_controls" ], "version" : "1.4" }, { "enumerant" : "RoundingModeRTZ", "value" : 4468, "extensions" : [ "SPV_KHR_float_controls" ], "version" : "1.4" }, { "enumerant" : "RayQueryProvisionalKHR", "value" : 4471, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "enumerant" : "RayQueryKHR", "value" : 4472, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, { "enumerant" : "RayTraversalPrimitiveCullingKHR", "value" : 4478, "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "extensions" : [ "SPV_KHR_ray_query","SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayTracingKHR", "value" : 4479, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "TextureSampleWeightedQCOM", "value" : 4484, "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, { "enumerant" : "TextureBoxFilterQCOM", "value" : 4485, "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, { "enumerant" : "TextureBlockMatchQCOM", "value" : 4486, "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, { "enumerant" : "TextureBlockMatch2QCOM", "value" : 4498, "extensions" : [ "SPV_QCOM_image_processing2" ], "version" : "None" }, { "enumerant" : "Float16ImageAMD", "value" : 5008, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ], "version" : "None" }, { "enumerant" : "ImageGatherBiasLodAMD", "value" : 5009, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ], "version" : "None" }, { "enumerant" : "FragmentMaskAMD", "value" : 5010, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_fragment_mask" ], "version" : "None" }, { "enumerant" : "StencilExportEXT", "value" : 5013, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, { "enumerant" : "ImageReadWriteLodAMD", "value" : 5015, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ], "version" : "None" }, { "enumerant" : "Int64ImageEXT", "value" : 5016, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_shader_image_int64" ], "version" : "None" }, { "enumerant" : "ShaderClockKHR", "value" : 5055, "extensions" : [ "SPV_KHR_shader_clock" ], "version" : "None" }, { "enumerant" : "ShaderEnqueueAMDX", "value" : 5067, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_AMDX_shader_enqueue" ], "version" : "None" }, { "enumerant" : "QuadControlKHR", "value" : 5087, "extensions" : [ "SPV_KHR_quad_control" ], "version" : "None" }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, "capabilities" : [ "SampleRateShading" ], "extensions" : [ "SPV_NV_sample_mask_override_coverage" ], "version" : "None" }, { "enumerant" : "GeometryShaderPassthroughNV", "value" : 5251, "capabilities" : [ "Geometry" ], "extensions" : [ "SPV_NV_geometry_shader_passthrough" ], "version" : "None" }, { "enumerant" : "ShaderViewportIndexLayerEXT", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ], "version" : "None" }, { "enumerant" : "ShaderViewportIndexLayerNV", "value" : 5254, "capabilities" : [ "MultiViewport" ], "extensions" : [ "SPV_NV_viewport_array2" ], "version" : "None" }, { "enumerant" : "ShaderViewportMaskNV", "value" : 5255, "capabilities" : [ "ShaderViewportIndexLayerNV" ], "extensions" : [ "SPV_NV_viewport_array2" ], "version" : "None" }, { "enumerant" : "ShaderStereoViewNV", "value" : 5259, "capabilities" : [ "ShaderViewportMaskNV" ], "extensions" : [ "SPV_NV_stereo_view_rendering" ], "version" : "None" }, { "enumerant" : "PerViewAttributesNV", "value" : 5260, "capabilities" : [ "MultiView" ], "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ], "version" : "None" }, { "enumerant" : "FragmentFullyCoveredEXT", "value" : 5265, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_fragment_fully_covered" ], "version" : "None" }, { "enumerant" : "MeshShadingNV", "value" : 5266, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, { "enumerant" : "ImageFootprintNV", "value" : 5282, "extensions" : [ "SPV_NV_shader_image_footprint" ], "version" : "None" }, { "enumerant" : "MeshShadingEXT", "value" : 5283, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_mesh_shader" ], "version" : "None" }, { "enumerant" : "FragmentBarycentricKHR", "value" : 5284, "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "FragmentBarycentricNV", "value" : 5284, "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ], "version" : "None" }, { "enumerant" : "ComputeDerivativeGroupQuadsNV", "value" : 5288, "extensions" : [ "SPV_NV_compute_shader_derivatives" ], "version" : "None" }, { "enumerant" : "FragmentDensityEXT", "value" : 5291, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ], "version" : "None" }, { "enumerant" : "ShadingRateNV", "value" : 5291, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ], "version" : "None" }, { "enumerant" : "GroupNonUniformPartitionedNV", "value" : 5297, "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ], "version" : "None" }, { "enumerant" : "ShaderNonUniform", "value" : 5301, "capabilities" : [ "Shader" ], "version" : "1.5" }, { "enumerant" : "ShaderNonUniformEXT", "value" : 5301, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "RuntimeDescriptorArray", "value" : 5302, "capabilities" : [ "Shader" ], "version" : "1.5" }, { "enumerant" : "RuntimeDescriptorArrayEXT", "value" : 5302, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "InputAttachmentArrayDynamicIndexing", "value" : 5303, "capabilities" : [ "InputAttachment" ], "version" : "1.5" }, { "enumerant" : "InputAttachmentArrayDynamicIndexingEXT", "value" : 5303, "capabilities" : [ "InputAttachment" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "UniformTexelBufferArrayDynamicIndexing", "value" : 5304, "capabilities" : [ "SampledBuffer" ], "version" : "1.5" }, { "enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT", "value" : 5304, "capabilities" : [ "SampledBuffer" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "StorageTexelBufferArrayDynamicIndexing", "value" : 5305, "capabilities" : [ "ImageBuffer" ], "version" : "1.5" }, { "enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT", "value" : 5305, "capabilities" : [ "ImageBuffer" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "UniformBufferArrayNonUniformIndexing", "value" : 5306, "capabilities" : [ "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "UniformBufferArrayNonUniformIndexingEXT", "value" : 5306, "capabilities" : [ "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "SampledImageArrayNonUniformIndexing", "value" : 5307, "capabilities" : [ "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "SampledImageArrayNonUniformIndexingEXT", "value" : 5307, "capabilities" : [ "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "StorageBufferArrayNonUniformIndexing", "value" : 5308, "capabilities" : [ "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "StorageBufferArrayNonUniformIndexingEXT", "value" : 5308, "capabilities" : [ "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "StorageImageArrayNonUniformIndexing", "value" : 5309, "capabilities" : [ "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "StorageImageArrayNonUniformIndexingEXT", "value" : 5309, "capabilities" : [ "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "InputAttachmentArrayNonUniformIndexing", "value" : 5310, "capabilities" : [ "InputAttachment", "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "InputAttachmentArrayNonUniformIndexingEXT", "value" : 5310, "capabilities" : [ "InputAttachment", "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "UniformTexelBufferArrayNonUniformIndexing", "value" : 5311, "capabilities" : [ "SampledBuffer", "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT", "value" : 5311, "capabilities" : [ "SampledBuffer", "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "StorageTexelBufferArrayNonUniformIndexing", "value" : 5312, "capabilities" : [ "ImageBuffer", "ShaderNonUniform" ], "version" : "1.5" }, { "enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT", "value" : 5312, "capabilities" : [ "ImageBuffer", "ShaderNonUniform" ], "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, { "enumerant" : "RayTracingPositionFetchKHR", "value" : 5336, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ], "version" : "None" }, { "enumerant" : "RayTracingNV", "value" : 5340, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_ray_tracing" ], "version" : "None" }, { "enumerant" : "RayTracingMotionBlurNV", "value" : 5341, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ], "version" : "None" }, { "enumerant" : "VulkanMemoryModel", "value" : 5345, "version" : "1.5" }, { "enumerant" : "VulkanMemoryModelKHR", "value" : 5345, "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "VulkanMemoryModelDeviceScope", "value" : 5346, "version" : "1.5" }, { "enumerant" : "VulkanMemoryModelDeviceScopeKHR", "value" : 5346, "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" }, { "enumerant" : "PhysicalStorageBufferAddresses", "value" : 5347, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ], "version" : "1.5" }, { "enumerant" : "PhysicalStorageBufferAddressesEXT", "value" : 5347, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_physical_storage_buffer" ], "version" : "1.5" }, { "enumerant" : "ComputeDerivativeGroupLinearNV", "value" : 5350, "extensions" : [ "SPV_NV_compute_shader_derivatives" ], "version" : "None" }, { "enumerant" : "RayTracingProvisionalKHR", "value" : 5353, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, { "enumerant" : "CooperativeMatrixNV", "value" : 5357, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_cooperative_matrix" ], "version" : "None" }, { "enumerant" : "FragmentShaderSampleInterlockEXT", "value" : 5363, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "FragmentShaderShadingRateInterlockEXT", "value" : 5372, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "ShaderSMBuiltinsNV", "value" : 5373, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, { "enumerant" : "FragmentShaderPixelInterlockEXT", "value" : 5378, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, { "enumerant" : "DemoteToHelperInvocation", "value" : 5379, "capabilities" : [ "Shader" ], "version" : "1.6" }, { "enumerant" : "DemoteToHelperInvocationEXT", "value" : 5379, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ], "version" : "1.6" }, { "enumerant" : "DisplacementMicromapNV", "value" : 5380, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_NV_displacement_micromap" ], "version" : "None" }, { "enumerant" : "RayTracingOpacityMicromapEXT", "value" : 5381, "capabilities" : [ "RayQueryKHR","RayTracingKHR" ], "extensions" : [ "SPV_EXT_opacity_micromap" ], "version" : "None" }, { "enumerant" : "ShaderInvocationReorderNV", "value" : 5383, "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_NV_shader_invocation_reorder" ], "version" : "None" }, { "enumerant" : "BindlessTextureNV", "value" : 5390, "extensions" : [ "SPV_NV_bindless_texture" ], "version" : "None" }, { "enumerant" : "RayQueryPositionFetchKHR", "value" : 5391, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ], "version" : "None" }, { "enumerant" : "AtomicFloat16VectorNV", "value" : 5404, "extensions" : [ "SPV_NV_shader_atomic_fp16_vector" ], "version" : "None" }, { "enumerant" : "RayTracingDisplacementMicromapNV", "value" : 5409, "capabilities" : [ "RayTracingKHR" ], "extensions" : [ "SPV_NV_displacement_micromap" ], "version" : "None" }, { "enumerant" : "RawAccessChainsNV", "value" : 5414, "extensions" : [ "SPV_NV_raw_access_chains" ], "version" : "None" }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, "extensions" : [ "SPV_INTEL_subgroups" ], "version" : "None" }, { "enumerant" : "SubgroupBufferBlockIOINTEL", "value" : 5569, "extensions" : [ "SPV_INTEL_subgroups" ], "version" : "None" }, { "enumerant" : "SubgroupImageBlockIOINTEL", "value" : 5570, "extensions" : [ "SPV_INTEL_subgroups" ], "version" : "None" }, { "enumerant" : "SubgroupImageMediaBlockIOINTEL", "value" : 5579, "extensions" : [ "SPV_INTEL_media_block_io" ], "version" : "None" }, { "enumerant" : "RoundToInfinityINTEL", "value" : 5582, "extensions" : [ "SPV_INTEL_float_controls2" ], "version" : "None" }, { "enumerant" : "FloatingPointModeINTEL", "value" : 5583, "extensions" : [ "SPV_INTEL_float_controls2" ], "version" : "None" }, { "enumerant" : "IntegerFunctions2INTEL", "value" : 5584, "capabilities" : [ "Shader" ], "extensions" : [ "SPV_INTEL_shader_integer_functions2" ], "version" : "None" }, { "enumerant" : "FunctionPointersINTEL", "value" : 5603, "extensions" : [ "SPV_INTEL_function_pointers" ], "version" : "None" }, { "enumerant" : "IndirectReferencesINTEL", "value" : 5604, "extensions" : [ "SPV_INTEL_function_pointers" ], "version" : "None" }, { "enumerant" : "AsmINTEL", "value" : 5606, "extensions" : [ "SPV_INTEL_inline_assembly" ], "version" : "None" }, { "enumerant" : "AtomicFloat32MinMaxEXT", "value" : 5612, "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ], "version" : "None" }, { "enumerant" : "AtomicFloat64MinMaxEXT", "value" : 5613, "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ], "version" : "None" }, { "enumerant" : "AtomicFloat16MinMaxEXT", "value" : 5616, "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ], "version" : "None" }, { "enumerant" : "VectorComputeINTEL", "value" : 5617, "capabilities" : [ "VectorAnyINTEL" ], "extensions" : [ "SPV_INTEL_vector_compute" ], "version" : "None" }, { "enumerant" : "VectorAnyINTEL", "value" : 5619, "extensions" : [ "SPV_INTEL_vector_compute" ], "version" : "None" }, { "enumerant" : "ExpectAssumeKHR", "value" : 5629, "extensions" : [ "SPV_KHR_expect_assume" ], "version" : "None" }, { "enumerant" : "SubgroupAvcMotionEstimationINTEL", "value" : 5696, "extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ], "version" : "None" }, { "enumerant" : "SubgroupAvcMotionEstimationIntraINTEL", "value" : 5697, "extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ], "version" : "None" }, { "enumerant" : "SubgroupAvcMotionEstimationChromaINTEL", "value" : 5698, "extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ], "version" : "None" }, { "enumerant" : "VariableLengthArrayINTEL", "value" : 5817, "extensions" : [ "SPV_INTEL_variable_length_array" ], "version" : "None" }, { "enumerant" : "FunctionFloatControlINTEL", "value" : 5821, "extensions" : [ "SPV_INTEL_float_controls2" ], "version" : "None" }, { "enumerant" : "FPGAMemoryAttributesINTEL", "value" : 5824, "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { "enumerant" : "FPFastMathModeINTEL", "value" : 5837, "capabilities" : [ "Kernel" ], "extensions" : [ "SPV_INTEL_fp_fast_math_mode" ], "version" : "None" }, { "enumerant" : "ArbitraryPrecisionIntegersINTEL", "value" : 5844, "extensions" : [ "SPV_INTEL_arbitrary_precision_integers" ], "version" : "None" }, { "enumerant" : "ArbitraryPrecisionFloatingPointINTEL", "value" : 5845, "extensions" : [ "SPV_INTEL_arbitrary_precision_floating_point" ], "version" : "None" }, { "enumerant" : "UnstructuredLoopControlsINTEL", "value" : 5886, "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ], "version" : "None" }, { "enumerant" : "FPGALoopControlsINTEL", "value" : 5888, "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { "enumerant" : "KernelAttributesINTEL", "value" : 5892, "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "FPGAKernelAttributesINTEL", "value" : 5897, "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "FPGAMemoryAccessesINTEL", "value" : 5898, "extensions" : [ "SPV_INTEL_fpga_memory_accesses" ], "version" : "None" }, { "enumerant" : "FPGAClusterAttributesINTEL", "value" : 5904, "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ], "version" : "None" }, { "enumerant" : "LoopFuseINTEL", "value" : 5906, "extensions" : [ "SPV_INTEL_loop_fuse" ], "version" : "None" }, { "enumerant" : "FPGADSPControlINTEL", "value" : 5908, "extensions" : [ "SPV_INTEL_fpga_dsp_control" ], "version" : "None" }, { "enumerant" : "MemoryAccessAliasingINTEL", "value" : 5910, "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" }, { "enumerant" : "FPGAInvocationPipeliningAttributesINTEL", "value" : 5916, "extensions" : [ "SPV_INTEL_fpga_invocation_pipelining_attributes" ], "version" : "None" }, { "enumerant" : "FPGABufferLocationINTEL", "value" : 5920, "extensions" : [ "SPV_INTEL_fpga_buffer_location" ], "version" : "None" }, { "enumerant" : "ArbitraryPrecisionFixedPointINTEL", "value" : 5922, "extensions" : [ "SPV_INTEL_arbitrary_precision_fixed_point" ], "version" : "None" }, { "enumerant" : "USMStorageClassesINTEL", "value" : 5935, "extensions" : [ "SPV_INTEL_usm_storage_classes" ], "version" : "None" }, { "enumerant" : "RuntimeAlignedAttributeINTEL", "value" : 5939, "extensions" : [ "SPV_INTEL_runtime_aligned" ], "version" : "None" }, { "enumerant" : "IOPipesINTEL", "value" : 5943, "extensions" : [ "SPV_INTEL_io_pipes" ], "version" : "None" }, { "enumerant" : "BlockingPipesINTEL", "value" : 5945, "extensions" : [ "SPV_INTEL_blocking_pipes" ], "version" : "None" }, { "enumerant" : "FPGARegINTEL", "value" : 5948, "extensions" : [ "SPV_INTEL_fpga_reg" ], "version" : "None" }, { "enumerant" : "DotProductInputAll", "value" : 6016, "version" : "1.6" }, { "enumerant" : "DotProductInputAllKHR", "value" : 6016, "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "enumerant" : "DotProductInput4x8Bit", "value" : 6017, "capabilities" : [ "Int8" ], "version" : "1.6" }, { "enumerant" : "DotProductInput4x8BitKHR", "value" : 6017, "capabilities" : [ "Int8" ], "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "enumerant" : "DotProductInput4x8BitPacked", "value" : 6018, "version" : "1.6" }, { "enumerant" : "DotProductInput4x8BitPackedKHR", "value" : 6018, "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "enumerant" : "DotProduct", "value" : 6019, "version" : "1.6" }, { "enumerant" : "DotProductKHR", "value" : 6019, "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, { "enumerant" : "RayCullMaskKHR", "value" : 6020, "extensions" : [ "SPV_KHR_ray_cull_mask" ], "version" : "None" }, { "enumerant" : "CooperativeMatrixKHR", "value" : 6022, "extensions" : [ "SPV_KHR_cooperative_matrix" ], "version" : "None" }, { "enumerant" : "ReplicatedCompositesEXT", "value" : 6024, "extensions" : [ "SPV_EXT_replicated_composites" ], "version" : "None" }, { "enumerant" : "BitInstructions", "value" : 6025, "extensions" : [ "SPV_KHR_bit_instructions" ], "version" : "None" }, { "enumerant" : "GroupNonUniformRotateKHR", "value" : 6026, "capabilities" : [ "GroupNonUniform" ], "extensions" : [ "SPV_KHR_subgroup_rotate" ], "version" : "None" }, { "enumerant" : "FloatControls2", "value" : 6029, "extensions" : [ "SPV_KHR_float_controls2" ], "version" : "None" }, { "enumerant" : "AtomicFloat32AddEXT", "value" : 6033, "extensions" : [ "SPV_EXT_shader_atomic_float_add" ], "version" : "None" }, { "enumerant" : "AtomicFloat64AddEXT", "value" : 6034, "extensions" : [ "SPV_EXT_shader_atomic_float_add" ], "version" : "None" }, { "enumerant" : "LongCompositesINTEL", "value" : 6089, "extensions" : [ "SPV_INTEL_long_composites" ], "version" : "None" }, { "enumerant" : "OptNoneINTEL", "value" : 6094, "extensions" : [ "SPV_INTEL_optnone" ], "version" : "None" }, { "enumerant" : "AtomicFloat16AddEXT", "value" : 6095, "extensions" : [ "SPV_EXT_shader_atomic_float16_add" ], "version" : "None" }, { "enumerant" : "DebugInfoModuleINTEL", "value" : 6114, "extensions" : [ "SPV_INTEL_debug_module" ], "version" : "None" }, { "enumerant" : "BFloat16ConversionINTEL", "value" : 6115, "extensions" : [ "SPV_INTEL_bfloat16_conversion" ], "version" : "None" }, { "enumerant" : "SplitBarrierINTEL", "value" : 6141, "extensions" : [ "SPV_INTEL_split_barrier" ], "version" : "None" }, { "enumerant" : "FPGAClusterAttributesV2INTEL", "value" : 6150, "capabilities" : [ "FPGAClusterAttributesINTEL" ], "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ], "version" : "None" }, { "enumerant" : "FPGAKernelAttributesv2INTEL", "value" : 6161, "capabilities" : [ "FPGAKernelAttributesINTEL" ], "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, { "enumerant" : "FPMaxErrorINTEL", "value" : 6169, "extensions" : [ "SPV_INTEL_fp_max_error" ], "version" : "None" }, { "enumerant" : "FPGALatencyControlINTEL", "value" : 6171, "extensions" : [ "SPV_INTEL_fpga_latency_control" ], "version" : "None" }, { "enumerant" : "FPGAArgumentInterfacesINTEL", "value" : 6174, "extensions" : [ "SPV_INTEL_fpga_argument_interfaces" ], "version" : "None" }, { "enumerant" : "GlobalVariableHostAccessINTEL", "value" : 6187, "extensions": [ "SPV_INTEL_global_variable_host_access" ], "version" : "None" }, { "enumerant" : "GlobalVariableFPGADecorationsINTEL", "value" : 6189, "extensions": [ "SPV_INTEL_global_variable_fpga_decorations" ], "version" : "None" }, { "enumerant" : "GroupUniformArithmeticKHR", "value" : 6400, "extensions" : [ "SPV_KHR_uniform_group_instructions"], "version" : "None" }, { "enumerant" : "MaskedGatherScatterINTEL", "value" : 6427, "extensions" : [ "SPV_INTEL_masked_gather_scatter"], "version" : "None" }, { "enumerant" : "CacheControlsINTEL", "value" : 6441, "extensions" : [ "SPV_INTEL_cache_controls" ], "version" : "None" }, { "enumerant" : "RegisterLimitsINTEL", "value" : 6460, "extensions" : [ "SPV_INTEL_maximum_registers" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "RayQueryIntersection", "enumerants" : [ { "enumerant" : "RayQueryCandidateIntersectionKHR", "value" : 0, "capabilities" : [ "RayQueryKHR" ], "version" : "None" }, { "enumerant" : "RayQueryCommittedIntersectionKHR", "value" : 1, "capabilities" : [ "RayQueryKHR" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "RayQueryCommittedIntersectionType", "enumerants" : [ { "enumerant" : "RayQueryCommittedIntersectionNoneKHR", "value" : 0, "capabilities" : [ "RayQueryKHR" ], "version" : "None" }, { "enumerant" : "RayQueryCommittedIntersectionTriangleKHR", "value" : 1, "capabilities" : [ "RayQueryKHR" ], "version" : "None" }, { "enumerant" : "RayQueryCommittedIntersectionGeneratedKHR", "value" : 2, "capabilities" : [ "RayQueryKHR" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "RayQueryCandidateIntersectionType", "enumerants" : [ { "enumerant" : "RayQueryCandidateIntersectionTriangleKHR", "value" : 0, "capabilities" : [ "RayQueryKHR" ], "version" : "None" }, { "enumerant" : "RayQueryCandidateIntersectionAABBKHR", "value" : 1, "capabilities" : [ "RayQueryKHR" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "PackedVectorFormat", "enumerants" : [ { "enumerant" : "PackedVectorFormat4x8Bit", "value" : 0, "version" : "1.6" }, { "enumerant" : "PackedVectorFormat4x8BitKHR", "value" : 0, "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" } ] }, { "category" : "BitEnum", "kind" : "CooperativeMatrixOperands", "enumerants" : [ { "enumerant" : "NoneKHR", "value" : "0x0000", "version" : "None" }, { "enumerant" : "MatrixASignedComponentsKHR", "value" : "0x0001", "version" : "None" }, { "enumerant" : "MatrixBSignedComponentsKHR", "value" : "0x0002", "version" : "None" }, { "enumerant" : "MatrixCSignedComponentsKHR", "value" : "0x0004", "version" : "None" }, { "enumerant" : "MatrixResultSignedComponentsKHR", "value" : "0x0008", "version" : "None" }, { "enumerant" : "SaturatingAccumulationKHR", "value" : "0x0010", "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "CooperativeMatrixLayout", "enumerants" : [ { "enumerant" : "RowMajorKHR", "value" : 0, "version" : "None" }, { "enumerant" : "ColumnMajorKHR", "value" : 1, "version" : "None" }, { "enumerant" : "RowBlockedInterleavedARM", "value" : 4202, "version" : "None" }, { "enumerant" : "ColumnBlockedInterleavedARM", "value" : 4203, "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "CooperativeMatrixUse", "enumerants" : [ { "enumerant" : "MatrixAKHR", "value" : 0, "version" : "None" }, { "enumerant" : "MatrixBKHR", "value" : 1, "version" : "None" }, { "enumerant" : "MatrixAccumulatorKHR", "value" : 2, "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "InitializationModeQualifier", "enumerants" : [ { "enumerant" : "InitOnDeviceReprogramINTEL", "value" : 0, "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], "version" : "None" }, { "enumerant" : "InitOnDeviceResetINTEL", "value" : 1, "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "LoadCacheControl", "enumerants" : [ { "enumerant" : "UncachedINTEL", "value" : 0, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "CachedINTEL", "value" : 1, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "StreamingINTEL", "value" : 2, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "InvalidateAfterReadINTEL", "value" : 3, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "ConstCachedINTEL", "value" : 4, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "StoreCacheControl", "enumerants" : [ { "enumerant" : "UncachedINTEL", "value" : 0, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "WriteThroughINTEL", "value" : 1, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "WriteBackINTEL", "value" : 2, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" }, { "enumerant" : "StreamingINTEL", "value" : 3, "capabilities" : [ "CacheControlsINTEL" ], "version" : "None" } ] }, { "category" : "ValueEnum", "kind" : "NamedMaximumNumberOfRegisters", "enumerants" : [ { "enumerant" : "AutoINTEL", "value" : 0, "capabilities" : [ "RegisterLimitsINTEL" ], "version" : "None" } ] }, { "category" : "Id", "kind" : "IdResultType", "doc" : "Reference to an representing the result's type of the enclosing instruction" }, { "category" : "Id", "kind" : "IdResult", "doc" : "Definition of an representing the result of the enclosing instruction" }, { "category" : "Id", "kind" : "IdMemorySemantics", "doc" : "Reference to an representing a 32-bit integer that is a mask from the MemorySemantics operand kind" }, { "category" : "Id", "kind" : "IdScope", "doc" : "Reference to an representing a 32-bit integer that is a mask from the Scope operand kind" }, { "category" : "Id", "kind" : "IdRef", "doc" : "Reference to an " }, { "category" : "Literal", "kind" : "LiteralInteger", "doc" : "An integer consuming one or more words" }, { "category" : "Literal", "kind" : "LiteralString", "doc" : "A null-terminated stream of characters consuming an integral number of words" }, { "category" : "Literal", "kind" : "LiteralFloat", "doc" : "A float consuming one word" }, { "category" : "Literal", "kind" : "LiteralContextDependentNumber", "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction" }, { "category" : "Literal", "kind" : "LiteralExtInstInteger", "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)" }, { "category" : "Literal", "kind" : "LiteralSpecConstantOpInteger", "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)" }, { "category" : "Composite", "kind" : "PairLiteralIntegerIdRef", "bases" : [ "LiteralInteger", "IdRef" ] }, { "category" : "Composite", "kind" : "PairIdRefLiteralInteger", "bases" : [ "IdRef", "LiteralInteger" ] }, { "category" : "Composite", "kind" : "PairIdRefIdRef", "bases" : [ "IdRef", "IdRef" ] } ] } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.cs000066400000000000000000002340661463234063200232410ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C#, D, Beef // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL // - Beef will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. namespace Spv { public static class Specification { public const uint MagicNumber = 0x07230203; public const uint Version = 0x00010600; public const uint Revision = 1; public const uint OpCodeMask = 0xffff; public const uint WordCountShift = 16; public enum SourceLanguage { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, HERO_C = 8, NZSL = 9, WGSL = 10, Slang = 11, Zig = 12, } public enum ExecutionModel { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, TaskNV = 5267, MeshNV = 5268, RayGenerationKHR = 5313, RayGenerationNV = 5313, IntersectionKHR = 5314, IntersectionNV = 5314, AnyHitKHR = 5315, AnyHitNV = 5315, ClosestHitKHR = 5316, ClosestHitNV = 5316, MissKHR = 5317, MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, TaskEXT = 5364, MeshEXT = 5365, } public enum AddressingModel { Logical = 0, Physical32 = 1, Physical64 = 2, PhysicalStorageBuffer64 = 5348, PhysicalStorageBuffer64EXT = 5348, } public enum MemoryModel { Simple = 0, GLSL450 = 1, OpenCL = 2, Vulkan = 3, VulkanKHR = 3, } public enum ExecutionMode { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, NonCoherentColorAttachmentReadEXT = 4169, NonCoherentDepthAttachmentReadEXT = 4170, NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, DenormFlushToZero = 4460, SignedZeroInfNanPreserve = 4461, RoundingModeRTE = 4462, RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, CoalescingAMDX = 5069, MaxNodeRecursionAMDX = 5071, StaticNumWorkgroupsAMDX = 5072, ShaderIndexAMDX = 5073, MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, QuadDerivativesKHR = 5088, RequireFullQuadsKHR = 5089, OutputLinesEXT = 5269, OutputLinesNV = 5269, OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, SampleInterlockOrderedEXT = 5368, SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, FloatingPointModeALTINTEL = 5622, FloatingPointModeIEEEINTEL = 5623, MaxWorkgroupSizeINTEL = 5893, MaxWorkDimINTEL = 5894, NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, MaximallyReconvergesKHR = 6023, FPFastMathDefault = 6028, StreamingInterfaceINTEL = 6154, RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, MaximumRegistersINTEL = 6461, MaximumRegistersIdINTEL = 6462, NamedMaximumRegistersINTEL = 6463, } public enum StorageClass { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, TileImageEXT = 4172, NodePayloadAMDX = 5068, NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, IncomingCallableDataNV = 5329, RayPayloadKHR = 5338, RayPayloadNV = 5338, HitAttributeKHR = 5339, HitAttributeNV = 5339, IncomingRayPayloadKHR = 5342, IncomingRayPayloadNV = 5342, ShaderRecordBufferKHR = 5343, ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, } public enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, TileImageDataEXT = 4173, } public enum SamplerAddressingMode { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, } public enum SamplerFilterMode { Nearest = 0, Linear = 1, } public enum ImageFormat { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, R64ui = 40, R64i = 41, } public enum ImageChannelOrder { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, } public enum ImageChannelDataType { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, UnsignedIntRaw10EXT = 19, UnsignedIntRaw12EXT = 20, } public enum ImageOperandsShift { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, MakeTexelAvailable = 8, MakeTexelAvailableKHR = 8, MakeTexelVisible = 9, MakeTexelVisibleKHR = 9, NonPrivateTexel = 10, NonPrivateTexelKHR = 10, VolatileTexel = 11, VolatileTexelKHR = 11, SignExtend = 12, ZeroExtend = 13, Nontemporal = 14, Offsets = 16, } public enum ImageOperandsMask { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, MakeTexelAvailable = 0x00000100, MakeTexelAvailableKHR = 0x00000100, MakeTexelVisible = 0x00000200, MakeTexelVisibleKHR = 0x00000200, NonPrivateTexel = 0x00000400, NonPrivateTexelKHR = 0x00000400, VolatileTexel = 0x00000800, VolatileTexelKHR = 0x00000800, SignExtend = 0x00001000, ZeroExtend = 0x00002000, Nontemporal = 0x00004000, Offsets = 0x00010000, } public enum FPFastMathModeShift { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, AllowContract = 16, AllowContractFastINTEL = 16, AllowReassoc = 17, AllowReassocINTEL = 17, AllowTransform = 18, } public enum FPFastMathModeMask { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, AllowContract = 0x00010000, AllowContractFastINTEL = 0x00010000, AllowReassoc = 0x00020000, AllowReassocINTEL = 0x00020000, AllowTransform = 0x00040000, } public enum FPRoundingMode { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, } public enum LinkageType { Export = 0, Import = 1, LinkOnceODR = 2, } public enum AccessQualifier { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, } public enum FunctionParameterAttribute { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, RuntimeAlignedINTEL = 5940, } public enum Decoration { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, UniformId = 27, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, WeightTextureQCOM = 4487, BlockMatchTextureQCOM = 4488, BlockMatchSamplerQCOM = 4499, ExplicitInterpAMD = 4999, NodeSharesPayloadLimitsWithAMDX = 5019, NodeMaxPayloadsAMDX = 5020, TrackFinishWritingAMDX = 5078, PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, PerVertexKHR = 5285, PerVertexNV = 5285, NonUniform = 5300, NonUniformEXT = 5300, RestrictPointer = 5355, RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, BoundImageNV = 5401, SIMTCallINTEL = 5599, ReferencedIndirectlyINTEL = 5602, ClobberINTEL = 5607, SideEffectsINTEL = 5608, VectorComputeVariableINTEL = 5624, FuncParamIOKindINTEL = 5625, VectorComputeFunctionINTEL = 5626, StackCallINTEL = 5627, GlobalVariableOffsetINTEL = 5628, CounterBuffer = 5634, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, UserSemantic = 5635, UserTypeGOOGLE = 5636, FunctionRoundingModeINTEL = 5822, FunctionDenormModeINTEL = 5823, RegisterINTEL = 5825, MemoryINTEL = 5826, NumbanksINTEL = 5827, BankwidthINTEL = 5828, MaxPrivateCopiesINTEL = 5829, SinglepumpINTEL = 5830, DoublepumpINTEL = 5831, MaxReplicatesINTEL = 5832, SimpleDualPortINTEL = 5833, MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, StridesizeINTEL = 5883, WordsizeINTEL = 5884, TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, InitiationIntervalINTEL = 5917, MaxConcurrencyINTEL = 5918, PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, StallFreeINTEL = 6151, FPMaxErrorDecorationINTEL = 6170, LatencyControlLabelINTEL = 6172, LatencyControlConstraintINTEL = 6173, ConduitKernelArgumentINTEL = 6175, RegisterMapKernelArgumentINTEL = 6176, MMHostInterfaceAddressWidthINTEL = 6177, MMHostInterfaceDataWidthINTEL = 6178, MMHostInterfaceLatencyINTEL = 6179, MMHostInterfaceReadWriteModeINTEL = 6180, MMHostInterfaceMaxBurstINTEL = 6181, MMHostInterfaceWaitRequestINTEL = 6182, StableKernelArgumentINTEL = 6183, HostAccessINTEL = 6188, InitModeINTEL = 6190, ImplementInRegisterMapINTEL = 6191, CacheControlLoadINTEL = 6442, CacheControlStoreINTEL = 6443, } public enum BuiltIn { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, CoreIDARM = 4160, CoreCountARM = 4161, CoreMaxIDARM = 4162, WarpIDARM = 4163, WarpMaxIDARM = 4164, SubgroupEqMask = 4416, SubgroupEqMaskKHR = 4416, SubgroupGeMask = 4417, SubgroupGeMaskKHR = 4417, SubgroupGtMask = 4418, SubgroupGtMaskKHR = 4418, SubgroupLeMask = 4419, SubgroupLeMaskKHR = 4419, SubgroupLtMask = 4420, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, PrimitiveShadingRateKHR = 4432, DeviceIndex = 4438, ViewIndex = 4440, ShadingRateKHR = 4444, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, CoalescedInputCountAMDX = 5021, ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, FullyCoveredEXT = 5264, TaskCountNV = 5274, PrimitiveCountNV = 5275, PrimitiveIndicesNV = 5276, ClipDistancePerViewNV = 5277, CullDistancePerViewNV = 5278, LayerPerViewNV = 5279, MeshViewCountNV = 5280, MeshViewIndicesNV = 5281, BaryCoordKHR = 5286, BaryCoordNV = 5286, BaryCoordNoPerspKHR = 5287, BaryCoordNoPerspNV = 5287, FragSizeEXT = 5292, FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, PrimitivePointIndicesEXT = 5294, PrimitiveLineIndicesEXT = 5295, PrimitiveTriangleIndicesEXT = 5296, CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, LaunchSizeNV = 5320, WorldRayOriginKHR = 5321, WorldRayOriginNV = 5321, WorldRayDirectionKHR = 5322, WorldRayDirectionNV = 5322, ObjectRayOriginKHR = 5323, ObjectRayOriginNV = 5323, ObjectRayDirectionKHR = 5324, ObjectRayDirectionNV = 5324, RayTminKHR = 5325, RayTminNV = 5325, RayTmaxKHR = 5326, RayTmaxNV = 5326, InstanceCustomIndexKHR = 5327, InstanceCustomIndexNV = 5327, ObjectToWorldKHR = 5330, ObjectToWorldNV = 5330, WorldToObjectKHR = 5331, WorldToObjectNV = 5331, HitTNV = 5332, HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, HitTriangleVertexPositionsKHR = 5335, HitMicroTriangleVertexPositionsNV = 5337, HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, WarpsPerSMNV = 5374, SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, HitKindFrontFacingMicroTriangleNV = 5405, HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, } public enum SelectionControlShift { Flatten = 0, DontFlatten = 1, } public enum SelectionControlMask { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, } public enum LoopControlShift { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, MinIterations = 4, MaxIterations = 5, IterationMultiple = 6, PeelCount = 7, PartialCount = 8, InitiationIntervalINTEL = 16, MaxConcurrencyINTEL = 17, DependencyArrayINTEL = 18, PipelineEnableINTEL = 19, LoopCoalesceINTEL = 20, MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, LoopCountINTEL = 24, MaxReinvocationDelayINTEL = 25, } public enum LoopControlMask { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, MinIterations = 0x00000010, MaxIterations = 0x00000020, IterationMultiple = 0x00000040, PeelCount = 0x00000080, PartialCount = 0x00000100, InitiationIntervalINTEL = 0x00010000, MaxConcurrencyINTEL = 0x00020000, DependencyArrayINTEL = 0x00040000, PipelineEnableINTEL = 0x00080000, LoopCoalesceINTEL = 0x00100000, MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, LoopCountINTEL = 0x01000000, MaxReinvocationDelayINTEL = 0x02000000, } public enum FunctionControlShift { Inline = 0, DontInline = 1, Pure = 2, Const = 3, OptNoneINTEL = 16, } public enum FunctionControlMask { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, OptNoneINTEL = 0x00010000, } public enum MemorySemanticsShift { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, OutputMemory = 12, OutputMemoryKHR = 12, MakeAvailable = 13, MakeAvailableKHR = 13, MakeVisible = 14, MakeVisibleKHR = 14, Volatile = 15, } public enum MemorySemanticsMask { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, OutputMemory = 0x00001000, OutputMemoryKHR = 0x00001000, MakeAvailable = 0x00002000, MakeAvailableKHR = 0x00002000, MakeVisible = 0x00004000, MakeVisibleKHR = 0x00004000, Volatile = 0x00008000, } public enum MemoryAccessShift { Volatile = 0, Aligned = 1, Nontemporal = 2, MakePointerAvailable = 3, MakePointerAvailableKHR = 3, MakePointerVisible = 4, MakePointerVisibleKHR = 4, NonPrivatePointer = 5, NonPrivatePointerKHR = 5, AliasScopeINTELMask = 16, NoAliasINTELMask = 17, } public enum MemoryAccessMask { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, MakePointerAvailable = 0x00000008, MakePointerAvailableKHR = 0x00000008, MakePointerVisible = 0x00000010, MakePointerVisibleKHR = 0x00000010, NonPrivatePointer = 0x00000020, NonPrivatePointerKHR = 0x00000020, AliasScopeINTELMask = 0x00010000, NoAliasINTELMask = 0x00020000, } public enum Scope { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, QueueFamily = 5, QueueFamilyKHR = 5, ShaderCallKHR = 6, } public enum GroupOperation { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, ClusteredReduce = 3, PartitionedReduceNV = 6, PartitionedInclusiveScanNV = 7, PartitionedExclusiveScanNV = 8, } public enum KernelEnqueueFlags { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, } public enum KernelProfilingInfoShift { CmdExecTime = 0, } public enum KernelProfilingInfoMask { MaskNone = 0, CmdExecTime = 0x00000001, } public enum Capability { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, GroupNonUniform = 61, GroupNonUniformVote = 62, GroupNonUniformArithmetic = 63, GroupNonUniformBallot = 64, GroupNonUniformShuffle = 65, GroupNonUniformShuffleRelative = 66, GroupNonUniformClustered = 67, GroupNonUniformQuad = 68, ShaderLayer = 69, ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, TileImageColorReadAccessEXT = 4166, TileImageDepthReadAccessEXT = 4167, TileImageStencilReadAccessEXT = 4168, CooperativeMatrixLayoutsARM = 4201, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, WorkgroupMemoryExplicitLayoutKHR = 4428, WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, StorageBuffer8BitAccess = 4448, UniformAndStorageBuffer8BitAccess = 4449, StoragePushConstant8 = 4450, DenormPreserve = 4464, DenormFlushToZero = 4465, SignedZeroInfNanPreserve = 4466, RoundingModeRTE = 4467, RoundingModeRTZ = 4468, RayQueryProvisionalKHR = 4471, RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, TextureSampleWeightedQCOM = 4484, TextureBoxFilterQCOM = 4485, TextureBlockMatchQCOM = 4486, TextureBlockMatch2QCOM = 4498, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, ShaderEnqueueAMDX = 5067, QuadControlKHR = 5087, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, FragmentDensityEXT = 5291, ShadingRateNV = 5291, GroupNonUniformPartitionedNV = 5297, ShaderNonUniform = 5301, ShaderNonUniformEXT = 5301, RuntimeDescriptorArray = 5302, RuntimeDescriptorArrayEXT = 5302, InputAttachmentArrayDynamicIndexing = 5303, InputAttachmentArrayDynamicIndexingEXT = 5303, UniformTexelBufferArrayDynamicIndexing = 5304, UniformTexelBufferArrayDynamicIndexingEXT = 5304, StorageTexelBufferArrayDynamicIndexing = 5305, StorageTexelBufferArrayDynamicIndexingEXT = 5305, UniformBufferArrayNonUniformIndexing = 5306, UniformBufferArrayNonUniformIndexingEXT = 5306, SampledImageArrayNonUniformIndexing = 5307, SampledImageArrayNonUniformIndexingEXT = 5307, StorageBufferArrayNonUniformIndexing = 5308, StorageBufferArrayNonUniformIndexingEXT = 5308, StorageImageArrayNonUniformIndexing = 5309, StorageImageArrayNonUniformIndexingEXT = 5309, InputAttachmentArrayNonUniformIndexing = 5310, InputAttachmentArrayNonUniformIndexingEXT = 5310, UniformTexelBufferArrayNonUniformIndexing = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, VulkanMemoryModelKHR = 5345, VulkanMemoryModelDeviceScope = 5346, VulkanMemoryModelDeviceScopeKHR = 5346, PhysicalStorageBufferAddresses = 5347, PhysicalStorageBufferAddressesEXT = 5347, ComputeDerivativeGroupLinearNV = 5350, RayTracingProvisionalKHR = 5353, CooperativeMatrixNV = 5357, FragmentShaderSampleInterlockEXT = 5363, FragmentShaderShadingRateInterlockEXT = 5372, ShaderSMBuiltinsNV = 5373, FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, AtomicFloat16VectorNV = 5404, RayTracingDisplacementMicromapNV = 5409, RawAccessChainsNV = 5414, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, SubgroupImageMediaBlockIOINTEL = 5579, RoundToInfinityINTEL = 5582, FloatingPointModeINTEL = 5583, IntegerFunctions2INTEL = 5584, FunctionPointersINTEL = 5603, IndirectReferencesINTEL = 5604, AsmINTEL = 5606, AtomicFloat32MinMaxEXT = 5612, AtomicFloat64MinMaxEXT = 5613, AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, VariableLengthArrayINTEL = 5817, FunctionFloatControlINTEL = 5821, FPGAMemoryAttributesINTEL = 5824, FPFastMathModeINTEL = 5837, ArbitraryPrecisionIntegersINTEL = 5844, ArbitraryPrecisionFloatingPointINTEL = 5845, UnstructuredLoopControlsINTEL = 5886, FPGALoopControlsINTEL = 5888, KernelAttributesINTEL = 5892, FPGAKernelAttributesINTEL = 5897, FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, DotProductInputAll = 6016, DotProductInputAllKHR = 6016, DotProductInput4x8Bit = 6017, DotProductInput4x8BitKHR = 6017, DotProductInput4x8BitPacked = 6018, DotProductInput4x8BitPackedKHR = 6018, DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, CooperativeMatrixKHR = 6022, ReplicatedCompositesEXT = 6024, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, FloatControls2 = 6029, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, FPGAClusterAttributesV2INTEL = 6150, FPGAKernelAttributesv2INTEL = 6161, FPMaxErrorINTEL = 6169, FPGALatencyControlINTEL = 6171, FPGAArgumentInterfacesINTEL = 6174, GlobalVariableHostAccessINTEL = 6187, GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, MaskedGatherScatterINTEL = 6427, CacheControlsINTEL = 6441, RegisterLimitsINTEL = 6460, } public enum RayFlagsShift { OpaqueKHR = 0, NoOpaqueKHR = 1, TerminateOnFirstHitKHR = 2, SkipClosestHitShaderKHR = 3, CullBackFacingTrianglesKHR = 4, CullFrontFacingTrianglesKHR = 5, CullOpaqueKHR = 6, CullNoOpaqueKHR = 7, SkipTrianglesKHR = 8, SkipAABBsKHR = 9, ForceOpacityMicromap2StateEXT = 10, } public enum RayFlagsMask { MaskNone = 0, OpaqueKHR = 0x00000001, NoOpaqueKHR = 0x00000002, TerminateOnFirstHitKHR = 0x00000004, SkipClosestHitShaderKHR = 0x00000008, CullBackFacingTrianglesKHR = 0x00000010, CullFrontFacingTrianglesKHR = 0x00000020, CullOpaqueKHR = 0x00000040, CullNoOpaqueKHR = 0x00000080, SkipTrianglesKHR = 0x00000100, SkipAABBsKHR = 0x00000200, ForceOpacityMicromap2StateEXT = 0x00000400, } public enum RayQueryIntersection { RayQueryCandidateIntersectionKHR = 0, RayQueryCommittedIntersectionKHR = 1, } public enum RayQueryCommittedIntersectionType { RayQueryCommittedIntersectionNoneKHR = 0, RayQueryCommittedIntersectionTriangleKHR = 1, RayQueryCommittedIntersectionGeneratedKHR = 2, } public enum RayQueryCandidateIntersectionType { RayQueryCandidateIntersectionTriangleKHR = 0, RayQueryCandidateIntersectionAABBKHR = 1, } public enum FragmentShadingRateShift { Vertical2Pixels = 0, Vertical4Pixels = 1, Horizontal2Pixels = 2, Horizontal4Pixels = 3, } public enum FragmentShadingRateMask { MaskNone = 0, Vertical2Pixels = 0x00000001, Vertical4Pixels = 0x00000002, Horizontal2Pixels = 0x00000004, Horizontal4Pixels = 0x00000008, } public enum FPDenormMode { Preserve = 0, FlushToZero = 1, } public enum FPOperationMode { IEEE = 0, ALT = 1, } public enum QuantizationModes { TRN = 0, TRN_ZERO = 1, RND = 2, RND_ZERO = 3, RND_INF = 4, RND_MIN_INF = 5, RND_CONV = 6, RND_CONV_ODD = 7, } public enum OverflowModes { WRAP = 0, SAT = 1, SAT_ZERO = 2, SAT_SYM = 3, } public enum PackedVectorFormat { PackedVectorFormat4x8Bit = 0, PackedVectorFormat4x8BitKHR = 0, } public enum CooperativeMatrixOperandsShift { MatrixASignedComponentsKHR = 0, MatrixBSignedComponentsKHR = 1, MatrixCSignedComponentsKHR = 2, MatrixResultSignedComponentsKHR = 3, SaturatingAccumulationKHR = 4, } public enum CooperativeMatrixOperandsMask { MaskNone = 0, MatrixASignedComponentsKHR = 0x00000001, MatrixBSignedComponentsKHR = 0x00000002, MatrixCSignedComponentsKHR = 0x00000004, MatrixResultSignedComponentsKHR = 0x00000008, SaturatingAccumulationKHR = 0x00000010, } public enum CooperativeMatrixLayout { RowMajorKHR = 0, ColumnMajorKHR = 1, RowBlockedInterleavedARM = 4202, ColumnBlockedInterleavedARM = 4203, } public enum CooperativeMatrixUse { MatrixAKHR = 0, MatrixBKHR = 1, MatrixAccumulatorKHR = 2, } public enum InitializationModeQualifier { InitOnDeviceReprogramINTEL = 0, InitOnDeviceResetINTEL = 1, } public enum HostAccessQualifier { NoneINTEL = 0, ReadINTEL = 1, WriteINTEL = 2, ReadWriteINTEL = 3, } public enum LoadCacheControl { UncachedINTEL = 0, CachedINTEL = 1, StreamingINTEL = 2, InvalidateAfterReadINTEL = 3, ConstCachedINTEL = 4, } public enum StoreCacheControl { UncachedINTEL = 0, WriteThroughINTEL = 1, WriteBackINTEL = 2, StreamingINTEL = 3, } public enum NamedMaximumNumberOfRegisters { AutoINTEL = 0, } public enum RawAccessChainOperandsShift { RobustnessPerComponentNV = 0, RobustnessPerElementNV = 1, } public enum RawAccessChainOperandsMask { MaskNone = 0, RobustnessPerComponentNV = 0x00000001, RobustnessPerElementNV = 0x00000002, } public enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpGroupNonUniformElect = 333, OpGroupNonUniformAll = 334, OpGroupNonUniformAny = 335, OpGroupNonUniformAllEqual = 336, OpGroupNonUniformBroadcast = 337, OpGroupNonUniformBroadcastFirst = 338, OpGroupNonUniformBallot = 339, OpGroupNonUniformInverseBallot = 340, OpGroupNonUniformBallotBitExtract = 341, OpGroupNonUniformBallotBitCount = 342, OpGroupNonUniformBallotFindLSB = 343, OpGroupNonUniformBallotFindMSB = 344, OpGroupNonUniformShuffle = 345, OpGroupNonUniformShuffleXor = 346, OpGroupNonUniformShuffleUp = 347, OpGroupNonUniformShuffleDown = 348, OpGroupNonUniformIAdd = 349, OpGroupNonUniformFAdd = 350, OpGroupNonUniformIMul = 351, OpGroupNonUniformFMul = 352, OpGroupNonUniformSMin = 353, OpGroupNonUniformUMin = 354, OpGroupNonUniformFMin = 355, OpGroupNonUniformSMax = 356, OpGroupNonUniformUMax = 357, OpGroupNonUniformFMax = 358, OpGroupNonUniformBitwiseAnd = 359, OpGroupNonUniformBitwiseOr = 360, OpGroupNonUniformBitwiseXor = 361, OpGroupNonUniformLogicalAnd = 362, OpGroupNonUniformLogicalOr = 363, OpGroupNonUniformLogicalXor = 364, OpGroupNonUniformQuadBroadcast = 365, OpGroupNonUniformQuadSwap = 366, OpCopyLogical = 400, OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, OpSDot = 4450, OpSDotKHR = 4450, OpUDot = 4451, OpUDotKHR = 4451, OpSUDot = 4452, OpSUDotKHR = 4452, OpSDotAccSat = 4453, OpSDotAccSatKHR = 4453, OpUDotAccSat = 4454, OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, OpTypeCooperativeMatrixKHR = 4456, OpCooperativeMatrixLoadKHR = 4457, OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, OpConstantCompositeReplicateEXT = 4461, OpSpecConstantCompositeReplicateEXT = 4462, OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, OpRayQueryGenerateIntersectionKHR = 4475, OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, OpImageSampleWeightedQCOM = 4480, OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpFinalizeNodePayloadsAMDX = 5075, OpFinishWritingNodePayloadAMDX = 5078, OpInitializeNodePayloadsAMDX = 5090, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, OpHitObjectRecordHitWithIndexMotionNV = 5250, OpHitObjectRecordMissMotionNV = 5251, OpHitObjectGetWorldToObjectNV = 5252, OpHitObjectGetObjectToWorldNV = 5253, OpHitObjectGetObjectRayDirectionNV = 5254, OpHitObjectGetObjectRayOriginNV = 5255, OpHitObjectTraceRayMotionNV = 5256, OpHitObjectGetShaderRecordBufferHandleNV = 5257, OpHitObjectGetShaderBindingTableRecordIndexNV = 5258, OpHitObjectRecordEmptyNV = 5259, OpHitObjectTraceRayNV = 5260, OpHitObjectRecordHitNV = 5261, OpHitObjectRecordHitWithIndexNV = 5262, OpHitObjectRecordMissNV = 5263, OpHitObjectExecuteShaderNV = 5264, OpHitObjectGetCurrentTimeNV = 5265, OpHitObjectGetAttributesNV = 5266, OpHitObjectGetHitKindNV = 5267, OpHitObjectGetPrimitiveIndexNV = 5268, OpHitObjectGetGeometryIndexNV = 5269, OpHitObjectGetInstanceIdNV = 5270, OpHitObjectGetInstanceCustomIndexNV = 5271, OpHitObjectGetWorldRayDirectionNV = 5272, OpHitObjectGetWorldRayOriginNV = 5273, OpHitObjectGetRayTMaxNV = 5274, OpHitObjectGetRayTMinNV = 5275, OpHitObjectIsEmptyNV = 5276, OpHitObjectIsHitNV = 5277, OpHitObjectIsMissNV = 5278, OpReorderThreadWithHitObjectNV = 5279, OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, OpConvertSamplerToUNV = 5394, OpConvertUToSampledImageNV = 5395, OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpSubgroupImageMediaBlockReadINTEL = 5580, OpSubgroupImageMediaBlockWriteINTEL = 5581, OpUCountLeadingZerosINTEL = 5585, OpUCountTrailingZerosINTEL = 5586, OpAbsISubINTEL = 5587, OpAbsUSubINTEL = 5588, OpIAddSatINTEL = 5589, OpUAddSatINTEL = 5590, OpIAverageINTEL = 5591, OpUAverageINTEL = 5592, OpIAverageRoundedINTEL = 5593, OpUAverageRoundedINTEL = 5594, OpISubSatINTEL = 5595, OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, OpAsmTargetINTEL = 5609, OpAsmINTEL = 5610, OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, OpAssumeTrueKHR = 5630, OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, OpMemberDecorateStringGOOGLE = 5633, OpVmeImageINTEL = 5699, OpTypeVmeImageINTEL = 5700, OpTypeAvcImePayloadINTEL = 5701, OpTypeAvcRefPayloadINTEL = 5702, OpTypeAvcSicPayloadINTEL = 5703, OpTypeAvcMcePayloadINTEL = 5704, OpTypeAvcMceResultINTEL = 5705, OpTypeAvcImeResultINTEL = 5706, OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, OpTypeAvcImeDualReferenceStreaminINTEL = 5710, OpTypeAvcRefResultINTEL = 5711, OpTypeAvcSicResultINTEL = 5712, OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, OpSubgroupAvcMceConvertToImeResultINTEL = 5733, OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, OpSubgroupAvcMceConvertToRefResultINTEL = 5735, OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, OpSubgroupAvcMceConvertToSicResultINTEL = 5737, OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, OpSubgroupAvcImeInitializeINTEL = 5747, OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, OpSubgroupAvcImeSetDualReferenceINTEL = 5749, OpSubgroupAvcImeRefWindowSizeINTEL = 5750, OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, OpSubgroupAvcImeSetWeightedSadINTEL = 5756, OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, OpSubgroupAvcImeConvertToMceResultINTEL = 5765, OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, OpSubgroupAvcImeGetBorderReachedINTEL = 5776, OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, OpSubgroupAvcFmeInitializeINTEL = 5781, OpSubgroupAvcBmeInitializeINTEL = 5782, OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, OpSubgroupAvcRefConvertToMceResultINTEL = 5790, OpSubgroupAvcSicInitializeINTEL = 5791, OpSubgroupAvcSicConfigureSkcINTEL = 5792, OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, OpSubgroupAvcSicEvaluateIpeINTEL = 5803, OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, OpSubgroupAvcSicConvertToMceResultINTEL = 5808, OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, OpArbitraryFloatSinCosPiINTEL = 5840, OpArbitraryFloatCastINTEL = 5841, OpArbitraryFloatCastFromIntINTEL = 5842, OpArbitraryFloatCastToIntINTEL = 5843, OpArbitraryFloatAddINTEL = 5846, OpArbitraryFloatSubINTEL = 5847, OpArbitraryFloatMulINTEL = 5848, OpArbitraryFloatDivINTEL = 5849, OpArbitraryFloatGTINTEL = 5850, OpArbitraryFloatGEINTEL = 5851, OpArbitraryFloatLTINTEL = 5852, OpArbitraryFloatLEINTEL = 5853, OpArbitraryFloatEQINTEL = 5854, OpArbitraryFloatRecipINTEL = 5855, OpArbitraryFloatRSqrtINTEL = 5856, OpArbitraryFloatCbrtINTEL = 5857, OpArbitraryFloatHypotINTEL = 5858, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, OpArbitraryFloatLog10INTEL = 5862, OpArbitraryFloatLog1pINTEL = 5863, OpArbitraryFloatExpINTEL = 5864, OpArbitraryFloatExp2INTEL = 5865, OpArbitraryFloatExp10INTEL = 5866, OpArbitraryFloatExpm1INTEL = 5867, OpArbitraryFloatSinINTEL = 5868, OpArbitraryFloatCosINTEL = 5869, OpArbitraryFloatSinCosINTEL = 5870, OpArbitraryFloatSinPiINTEL = 5871, OpArbitraryFloatCosPiINTEL = 5872, OpArbitraryFloatASinINTEL = 5873, OpArbitraryFloatASinPiINTEL = 5874, OpArbitraryFloatACosINTEL = 5875, OpArbitraryFloatACosPiINTEL = 5876, OpArbitraryFloatATanINTEL = 5877, OpArbitraryFloatATanPiINTEL = 5878, OpArbitraryFloatATan2INTEL = 5879, OpArbitraryFloatPowINTEL = 5880, OpArbitraryFloatPowRINTEL = 5881, OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, OpFixedSqrtINTEL = 5923, OpFixedRecipINTEL = 5924, OpFixedRsqrtINTEL = 5925, OpFixedSinINTEL = 5926, OpFixedCosINTEL = 5927, OpFixedSinCosINTEL = 5928, OpFixedSinPiINTEL = 5929, OpFixedCosPiINTEL = 5930, OpFixedSinCosPiINTEL = 5931, OpFixedLogINTEL = 5932, OpFixedExpINTEL = 5933, OpPtrCastToCrossWorkgroupINTEL = 5934, OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, OpRayQueryGetIntersectionTKHR = 6018, OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, OpRayQueryGetIntersectionInstanceIdKHR = 6020, OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, OpRayQueryGetIntersectionGeometryIndexKHR = 6022, OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, OpRayQueryGetIntersectionBarycentricsKHR = 6024, OpRayQueryGetIntersectionFrontFaceKHR = 6025, OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, OpRayQueryGetWorldRayDirectionKHR = 6029, OpRayQueryGetWorldRayOriginKHR = 6030, OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, OpTypeBufferSurfaceINTEL = 6086, OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, OpCompositeConstructContinuedINTEL = 6096, OpConvertFToBF16INTEL = 6116, OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, OpGroupBitwiseOrKHR = 6404, OpGroupBitwiseXorKHR = 6405, OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, } } } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.h000066400000000000000000010055261463234063200230610ustar00rootroot00000000000000/* ** Copyright (c) 2014-2024 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ /* ** This header is automatically generated by the same tool that creates ** the Binary Section of the SPIR-V specification. */ /* ** Enumeration tokens for SPIR-V, in various styles: ** C, C++, C++11, JSON, Lua, Python, C#, D, Beef ** ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] ** - C# will use enum classes in the Specification class located in the "Spv" namespace, ** e.g.: Spv.Specification.SourceLanguage.GLSL ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL ** - Beef will use enum classes in the Specification class located in the "Spv" namespace, ** e.g.: Spv.Specification.SourceLanguage.GLSL ** ** Some tokens act like mask values, which can be OR'd together, ** while others are mutually exclusive. The mask-like ones have ** "Mask" in their name, and a parallel enum that has the shift ** amount (1 << x) for each corresponding enumerant. */ #ifndef spirv_H #define spirv_H typedef unsigned int SpvId; #define SPV_VERSION 0x10600 #define SPV_REVISION 1 static const unsigned int SpvMagicNumber = 0x07230203; static const unsigned int SpvVersion = 0x00010600; static const unsigned int SpvRevision = 1; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; typedef enum SpvSourceLanguage_ { SpvSourceLanguageUnknown = 0, SpvSourceLanguageESSL = 1, SpvSourceLanguageGLSL = 2, SpvSourceLanguageOpenCL_C = 3, SpvSourceLanguageOpenCL_CPP = 4, SpvSourceLanguageHLSL = 5, SpvSourceLanguageCPP_for_OpenCL = 6, SpvSourceLanguageSYCL = 7, SpvSourceLanguageHERO_C = 8, SpvSourceLanguageNZSL = 9, SpvSourceLanguageWGSL = 10, SpvSourceLanguageSlang = 11, SpvSourceLanguageZig = 12, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; typedef enum SpvExecutionModel_ { SpvExecutionModelVertex = 0, SpvExecutionModelTessellationControl = 1, SpvExecutionModelTessellationEvaluation = 2, SpvExecutionModelGeometry = 3, SpvExecutionModelFragment = 4, SpvExecutionModelGLCompute = 5, SpvExecutionModelKernel = 6, SpvExecutionModelTaskNV = 5267, SpvExecutionModelMeshNV = 5268, SpvExecutionModelRayGenerationKHR = 5313, SpvExecutionModelRayGenerationNV = 5313, SpvExecutionModelIntersectionKHR = 5314, SpvExecutionModelIntersectionNV = 5314, SpvExecutionModelAnyHitKHR = 5315, SpvExecutionModelAnyHitNV = 5315, SpvExecutionModelClosestHitKHR = 5316, SpvExecutionModelClosestHitNV = 5316, SpvExecutionModelMissKHR = 5317, SpvExecutionModelMissNV = 5317, SpvExecutionModelCallableKHR = 5318, SpvExecutionModelCallableNV = 5318, SpvExecutionModelTaskEXT = 5364, SpvExecutionModelMeshEXT = 5365, SpvExecutionModelMax = 0x7fffffff, } SpvExecutionModel; typedef enum SpvAddressingModel_ { SpvAddressingModelLogical = 0, SpvAddressingModelPhysical32 = 1, SpvAddressingModelPhysical64 = 2, SpvAddressingModelPhysicalStorageBuffer64 = 5348, SpvAddressingModelPhysicalStorageBuffer64EXT = 5348, SpvAddressingModelMax = 0x7fffffff, } SpvAddressingModel; typedef enum SpvMemoryModel_ { SpvMemoryModelSimple = 0, SpvMemoryModelGLSL450 = 1, SpvMemoryModelOpenCL = 2, SpvMemoryModelVulkan = 3, SpvMemoryModelVulkanKHR = 3, SpvMemoryModelMax = 0x7fffffff, } SpvMemoryModel; typedef enum SpvExecutionMode_ { SpvExecutionModeInvocations = 0, SpvExecutionModeSpacingEqual = 1, SpvExecutionModeSpacingFractionalEven = 2, SpvExecutionModeSpacingFractionalOdd = 3, SpvExecutionModeVertexOrderCw = 4, SpvExecutionModeVertexOrderCcw = 5, SpvExecutionModePixelCenterInteger = 6, SpvExecutionModeOriginUpperLeft = 7, SpvExecutionModeOriginLowerLeft = 8, SpvExecutionModeEarlyFragmentTests = 9, SpvExecutionModePointMode = 10, SpvExecutionModeXfb = 11, SpvExecutionModeDepthReplacing = 12, SpvExecutionModeDepthGreater = 14, SpvExecutionModeDepthLess = 15, SpvExecutionModeDepthUnchanged = 16, SpvExecutionModeLocalSize = 17, SpvExecutionModeLocalSizeHint = 18, SpvExecutionModeInputPoints = 19, SpvExecutionModeInputLines = 20, SpvExecutionModeInputLinesAdjacency = 21, SpvExecutionModeTriangles = 22, SpvExecutionModeInputTrianglesAdjacency = 23, SpvExecutionModeQuads = 24, SpvExecutionModeIsolines = 25, SpvExecutionModeOutputVertices = 26, SpvExecutionModeOutputPoints = 27, SpvExecutionModeOutputLineStrip = 28, SpvExecutionModeOutputTriangleStrip = 29, SpvExecutionModeVecTypeHint = 30, SpvExecutionModeContractionOff = 31, SpvExecutionModeInitializer = 33, SpvExecutionModeFinalizer = 34, SpvExecutionModeSubgroupSize = 35, SpvExecutionModeSubgroupsPerWorkgroup = 36, SpvExecutionModeSubgroupsPerWorkgroupId = 37, SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeHintId = 39, SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169, SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170, SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171, SpvExecutionModeSubgroupUniformControlFlowKHR = 4421, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeDenormPreserve = 4459, SpvExecutionModeDenormFlushToZero = 4460, SpvExecutionModeSignedZeroInfNanPreserve = 4461, SpvExecutionModeRoundingModeRTE = 4462, SpvExecutionModeRoundingModeRTZ = 4463, SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017, SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeCoalescingAMDX = 5069, SpvExecutionModeMaxNodeRecursionAMDX = 5071, SpvExecutionModeStaticNumWorkgroupsAMDX = 5072, SpvExecutionModeShaderIndexAMDX = 5073, SpvExecutionModeMaxNumWorkgroupsAMDX = 5077, SpvExecutionModeStencilRefUnchangedFrontAMD = 5079, SpvExecutionModeStencilRefGreaterFrontAMD = 5080, SpvExecutionModeStencilRefLessFrontAMD = 5081, SpvExecutionModeStencilRefUnchangedBackAMD = 5082, SpvExecutionModeStencilRefGreaterBackAMD = 5083, SpvExecutionModeStencilRefLessBackAMD = 5084, SpvExecutionModeQuadDerivativesKHR = 5088, SpvExecutionModeRequireFullQuadsKHR = 5089, SpvExecutionModeOutputLinesEXT = 5269, SpvExecutionModeOutputLinesNV = 5269, SpvExecutionModeOutputPrimitivesEXT = 5270, SpvExecutionModeOutputPrimitivesNV = 5270, SpvExecutionModeDerivativeGroupQuadsNV = 5289, SpvExecutionModeDerivativeGroupLinearNV = 5290, SpvExecutionModeOutputTrianglesEXT = 5298, SpvExecutionModeOutputTrianglesNV = 5298, SpvExecutionModePixelInterlockOrderedEXT = 5366, SpvExecutionModePixelInterlockUnorderedEXT = 5367, SpvExecutionModeSampleInterlockOrderedEXT = 5368, SpvExecutionModeSampleInterlockUnorderedEXT = 5369, SpvExecutionModeShadingRateInterlockOrderedEXT = 5370, SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371, SpvExecutionModeSharedLocalMemorySizeINTEL = 5618, SpvExecutionModeRoundingModeRTPINTEL = 5620, SpvExecutionModeRoundingModeRTNINTEL = 5621, SpvExecutionModeFloatingPointModeALTINTEL = 5622, SpvExecutionModeFloatingPointModeIEEEINTEL = 5623, SpvExecutionModeMaxWorkgroupSizeINTEL = 5893, SpvExecutionModeMaxWorkDimINTEL = 5894, SpvExecutionModeNoGlobalOffsetINTEL = 5895, SpvExecutionModeNumSIMDWorkitemsINTEL = 5896, SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, SpvExecutionModeMaximallyReconvergesKHR = 6023, SpvExecutionModeFPFastMathDefault = 6028, SpvExecutionModeStreamingInterfaceINTEL = 6154, SpvExecutionModeRegisterMapInterfaceINTEL = 6160, SpvExecutionModeNamedBarrierCountINTEL = 6417, SpvExecutionModeMaximumRegistersINTEL = 6461, SpvExecutionModeMaximumRegistersIdINTEL = 6462, SpvExecutionModeNamedMaximumRegistersINTEL = 6463, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; typedef enum SpvStorageClass_ { SpvStorageClassUniformConstant = 0, SpvStorageClassInput = 1, SpvStorageClassUniform = 2, SpvStorageClassOutput = 3, SpvStorageClassWorkgroup = 4, SpvStorageClassCrossWorkgroup = 5, SpvStorageClassPrivate = 6, SpvStorageClassFunction = 7, SpvStorageClassGeneric = 8, SpvStorageClassPushConstant = 9, SpvStorageClassAtomicCounter = 10, SpvStorageClassImage = 11, SpvStorageClassStorageBuffer = 12, SpvStorageClassTileImageEXT = 4172, SpvStorageClassNodePayloadAMDX = 5068, SpvStorageClassNodeOutputPayloadAMDX = 5076, SpvStorageClassCallableDataKHR = 5328, SpvStorageClassCallableDataNV = 5328, SpvStorageClassIncomingCallableDataKHR = 5329, SpvStorageClassIncomingCallableDataNV = 5329, SpvStorageClassRayPayloadKHR = 5338, SpvStorageClassRayPayloadNV = 5338, SpvStorageClassHitAttributeKHR = 5339, SpvStorageClassHitAttributeNV = 5339, SpvStorageClassIncomingRayPayloadKHR = 5342, SpvStorageClassIncomingRayPayloadNV = 5342, SpvStorageClassShaderRecordBufferKHR = 5343, SpvStorageClassShaderRecordBufferNV = 5343, SpvStorageClassPhysicalStorageBuffer = 5349, SpvStorageClassPhysicalStorageBufferEXT = 5349, SpvStorageClassHitObjectAttributeNV = 5385, SpvStorageClassTaskPayloadWorkgroupEXT = 5402, SpvStorageClassCodeSectionINTEL = 5605, SpvStorageClassDeviceOnlyINTEL = 5936, SpvStorageClassHostOnlyINTEL = 5937, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; typedef enum SpvDim_ { SpvDim1D = 0, SpvDim2D = 1, SpvDim3D = 2, SpvDimCube = 3, SpvDimRect = 4, SpvDimBuffer = 5, SpvDimSubpassData = 6, SpvDimTileImageDataEXT = 4173, SpvDimMax = 0x7fffffff, } SpvDim; typedef enum SpvSamplerAddressingMode_ { SpvSamplerAddressingModeNone = 0, SpvSamplerAddressingModeClampToEdge = 1, SpvSamplerAddressingModeClamp = 2, SpvSamplerAddressingModeRepeat = 3, SpvSamplerAddressingModeRepeatMirrored = 4, SpvSamplerAddressingModeMax = 0x7fffffff, } SpvSamplerAddressingMode; typedef enum SpvSamplerFilterMode_ { SpvSamplerFilterModeNearest = 0, SpvSamplerFilterModeLinear = 1, SpvSamplerFilterModeMax = 0x7fffffff, } SpvSamplerFilterMode; typedef enum SpvImageFormat_ { SpvImageFormatUnknown = 0, SpvImageFormatRgba32f = 1, SpvImageFormatRgba16f = 2, SpvImageFormatR32f = 3, SpvImageFormatRgba8 = 4, SpvImageFormatRgba8Snorm = 5, SpvImageFormatRg32f = 6, SpvImageFormatRg16f = 7, SpvImageFormatR11fG11fB10f = 8, SpvImageFormatR16f = 9, SpvImageFormatRgba16 = 10, SpvImageFormatRgb10A2 = 11, SpvImageFormatRg16 = 12, SpvImageFormatRg8 = 13, SpvImageFormatR16 = 14, SpvImageFormatR8 = 15, SpvImageFormatRgba16Snorm = 16, SpvImageFormatRg16Snorm = 17, SpvImageFormatRg8Snorm = 18, SpvImageFormatR16Snorm = 19, SpvImageFormatR8Snorm = 20, SpvImageFormatRgba32i = 21, SpvImageFormatRgba16i = 22, SpvImageFormatRgba8i = 23, SpvImageFormatR32i = 24, SpvImageFormatRg32i = 25, SpvImageFormatRg16i = 26, SpvImageFormatRg8i = 27, SpvImageFormatR16i = 28, SpvImageFormatR8i = 29, SpvImageFormatRgba32ui = 30, SpvImageFormatRgba16ui = 31, SpvImageFormatRgba8ui = 32, SpvImageFormatR32ui = 33, SpvImageFormatRgb10a2ui = 34, SpvImageFormatRg32ui = 35, SpvImageFormatRg16ui = 36, SpvImageFormatRg8ui = 37, SpvImageFormatR16ui = 38, SpvImageFormatR8ui = 39, SpvImageFormatR64ui = 40, SpvImageFormatR64i = 41, SpvImageFormatMax = 0x7fffffff, } SpvImageFormat; typedef enum SpvImageChannelOrder_ { SpvImageChannelOrderR = 0, SpvImageChannelOrderA = 1, SpvImageChannelOrderRG = 2, SpvImageChannelOrderRA = 3, SpvImageChannelOrderRGB = 4, SpvImageChannelOrderRGBA = 5, SpvImageChannelOrderBGRA = 6, SpvImageChannelOrderARGB = 7, SpvImageChannelOrderIntensity = 8, SpvImageChannelOrderLuminance = 9, SpvImageChannelOrderRx = 10, SpvImageChannelOrderRGx = 11, SpvImageChannelOrderRGBx = 12, SpvImageChannelOrderDepth = 13, SpvImageChannelOrderDepthStencil = 14, SpvImageChannelOrdersRGB = 15, SpvImageChannelOrdersRGBx = 16, SpvImageChannelOrdersRGBA = 17, SpvImageChannelOrdersBGRA = 18, SpvImageChannelOrderABGR = 19, SpvImageChannelOrderMax = 0x7fffffff, } SpvImageChannelOrder; typedef enum SpvImageChannelDataType_ { SpvImageChannelDataTypeSnormInt8 = 0, SpvImageChannelDataTypeSnormInt16 = 1, SpvImageChannelDataTypeUnormInt8 = 2, SpvImageChannelDataTypeUnormInt16 = 3, SpvImageChannelDataTypeUnormShort565 = 4, SpvImageChannelDataTypeUnormShort555 = 5, SpvImageChannelDataTypeUnormInt101010 = 6, SpvImageChannelDataTypeSignedInt8 = 7, SpvImageChannelDataTypeSignedInt16 = 8, SpvImageChannelDataTypeSignedInt32 = 9, SpvImageChannelDataTypeUnsignedInt8 = 10, SpvImageChannelDataTypeUnsignedInt16 = 11, SpvImageChannelDataTypeUnsignedInt32 = 12, SpvImageChannelDataTypeHalfFloat = 13, SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt101010_2 = 16, SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19, SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20, SpvImageChannelDataTypeMax = 0x7fffffff, } SpvImageChannelDataType; typedef enum SpvImageOperandsShift_ { SpvImageOperandsBiasShift = 0, SpvImageOperandsLodShift = 1, SpvImageOperandsGradShift = 2, SpvImageOperandsConstOffsetShift = 3, SpvImageOperandsOffsetShift = 4, SpvImageOperandsConstOffsetsShift = 5, SpvImageOperandsSampleShift = 6, SpvImageOperandsMinLodShift = 7, SpvImageOperandsMakeTexelAvailableShift = 8, SpvImageOperandsMakeTexelAvailableKHRShift = 8, SpvImageOperandsMakeTexelVisibleShift = 9, SpvImageOperandsMakeTexelVisibleKHRShift = 9, SpvImageOperandsNonPrivateTexelShift = 10, SpvImageOperandsNonPrivateTexelKHRShift = 10, SpvImageOperandsVolatileTexelShift = 11, SpvImageOperandsVolatileTexelKHRShift = 11, SpvImageOperandsSignExtendShift = 12, SpvImageOperandsZeroExtendShift = 13, SpvImageOperandsNontemporalShift = 14, SpvImageOperandsOffsetsShift = 16, SpvImageOperandsMax = 0x7fffffff, } SpvImageOperandsShift; typedef enum SpvImageOperandsMask_ { SpvImageOperandsMaskNone = 0, SpvImageOperandsBiasMask = 0x00000001, SpvImageOperandsLodMask = 0x00000002, SpvImageOperandsGradMask = 0x00000004, SpvImageOperandsConstOffsetMask = 0x00000008, SpvImageOperandsOffsetMask = 0x00000010, SpvImageOperandsConstOffsetsMask = 0x00000020, SpvImageOperandsSampleMask = 0x00000040, SpvImageOperandsMinLodMask = 0x00000080, SpvImageOperandsMakeTexelAvailableMask = 0x00000100, SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100, SpvImageOperandsMakeTexelVisibleMask = 0x00000200, SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200, SpvImageOperandsNonPrivateTexelMask = 0x00000400, SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400, SpvImageOperandsVolatileTexelMask = 0x00000800, SpvImageOperandsVolatileTexelKHRMask = 0x00000800, SpvImageOperandsSignExtendMask = 0x00001000, SpvImageOperandsZeroExtendMask = 0x00002000, SpvImageOperandsNontemporalMask = 0x00004000, SpvImageOperandsOffsetsMask = 0x00010000, } SpvImageOperandsMask; typedef enum SpvFPFastMathModeShift_ { SpvFPFastMathModeNotNaNShift = 0, SpvFPFastMathModeNotInfShift = 1, SpvFPFastMathModeNSZShift = 2, SpvFPFastMathModeAllowRecipShift = 3, SpvFPFastMathModeFastShift = 4, SpvFPFastMathModeAllowContractShift = 16, SpvFPFastMathModeAllowContractFastINTELShift = 16, SpvFPFastMathModeAllowReassocShift = 17, SpvFPFastMathModeAllowReassocINTELShift = 17, SpvFPFastMathModeAllowTransformShift = 18, SpvFPFastMathModeMax = 0x7fffffff, } SpvFPFastMathModeShift; typedef enum SpvFPFastMathModeMask_ { SpvFPFastMathModeMaskNone = 0, SpvFPFastMathModeNotNaNMask = 0x00000001, SpvFPFastMathModeNotInfMask = 0x00000002, SpvFPFastMathModeNSZMask = 0x00000004, SpvFPFastMathModeAllowRecipMask = 0x00000008, SpvFPFastMathModeFastMask = 0x00000010, SpvFPFastMathModeAllowContractMask = 0x00010000, SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000, SpvFPFastMathModeAllowReassocMask = 0x00020000, SpvFPFastMathModeAllowReassocINTELMask = 0x00020000, SpvFPFastMathModeAllowTransformMask = 0x00040000, } SpvFPFastMathModeMask; typedef enum SpvFPRoundingMode_ { SpvFPRoundingModeRTE = 0, SpvFPRoundingModeRTZ = 1, SpvFPRoundingModeRTP = 2, SpvFPRoundingModeRTN = 3, SpvFPRoundingModeMax = 0x7fffffff, } SpvFPRoundingMode; typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, SpvLinkageTypeLinkOnceODR = 2, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; typedef enum SpvAccessQualifier_ { SpvAccessQualifierReadOnly = 0, SpvAccessQualifierWriteOnly = 1, SpvAccessQualifierReadWrite = 2, SpvAccessQualifierMax = 0x7fffffff, } SpvAccessQualifier; typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeZext = 0, SpvFunctionParameterAttributeSext = 1, SpvFunctionParameterAttributeByVal = 2, SpvFunctionParameterAttributeSret = 3, SpvFunctionParameterAttributeNoAlias = 4, SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; typedef enum SpvDecoration_ { SpvDecorationRelaxedPrecision = 0, SpvDecorationSpecId = 1, SpvDecorationBlock = 2, SpvDecorationBufferBlock = 3, SpvDecorationRowMajor = 4, SpvDecorationColMajor = 5, SpvDecorationArrayStride = 6, SpvDecorationMatrixStride = 7, SpvDecorationGLSLShared = 8, SpvDecorationGLSLPacked = 9, SpvDecorationCPacked = 10, SpvDecorationBuiltIn = 11, SpvDecorationNoPerspective = 13, SpvDecorationFlat = 14, SpvDecorationPatch = 15, SpvDecorationCentroid = 16, SpvDecorationSample = 17, SpvDecorationInvariant = 18, SpvDecorationRestrict = 19, SpvDecorationAliased = 20, SpvDecorationVolatile = 21, SpvDecorationConstant = 22, SpvDecorationCoherent = 23, SpvDecorationNonWritable = 24, SpvDecorationNonReadable = 25, SpvDecorationUniform = 26, SpvDecorationUniformId = 27, SpvDecorationSaturatedConversion = 28, SpvDecorationStream = 29, SpvDecorationLocation = 30, SpvDecorationComponent = 31, SpvDecorationIndex = 32, SpvDecorationBinding = 33, SpvDecorationDescriptorSet = 34, SpvDecorationOffset = 35, SpvDecorationXfbBuffer = 36, SpvDecorationXfbStride = 37, SpvDecorationFuncParamAttr = 38, SpvDecorationFPRoundingMode = 39, SpvDecorationFPFastMathMode = 40, SpvDecorationLinkageAttributes = 41, SpvDecorationNoContraction = 42, SpvDecorationInputAttachmentIndex = 43, SpvDecorationAlignment = 44, SpvDecorationMaxByteOffset = 45, SpvDecorationAlignmentId = 46, SpvDecorationMaxByteOffsetId = 47, SpvDecorationNoSignedWrap = 4469, SpvDecorationNoUnsignedWrap = 4470, SpvDecorationWeightTextureQCOM = 4487, SpvDecorationBlockMatchTextureQCOM = 4488, SpvDecorationBlockMatchSamplerQCOM = 4499, SpvDecorationExplicitInterpAMD = 4999, SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019, SpvDecorationNodeMaxPayloadsAMDX = 5020, SpvDecorationTrackFinishWritingAMDX = 5078, SpvDecorationPayloadNodeNameAMDX = 5091, SpvDecorationOverrideCoverageNV = 5248, SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, SpvDecorationSecondaryViewportRelativeNV = 5256, SpvDecorationPerPrimitiveEXT = 5271, SpvDecorationPerPrimitiveNV = 5271, SpvDecorationPerViewNV = 5272, SpvDecorationPerTaskNV = 5273, SpvDecorationPerVertexKHR = 5285, SpvDecorationPerVertexNV = 5285, SpvDecorationNonUniform = 5300, SpvDecorationNonUniformEXT = 5300, SpvDecorationRestrictPointer = 5355, SpvDecorationRestrictPointerEXT = 5355, SpvDecorationAliasedPointer = 5356, SpvDecorationAliasedPointerEXT = 5356, SpvDecorationHitObjectShaderRecordBufferNV = 5386, SpvDecorationBindlessSamplerNV = 5398, SpvDecorationBindlessImageNV = 5399, SpvDecorationBoundSamplerNV = 5400, SpvDecorationBoundImageNV = 5401, SpvDecorationSIMTCallINTEL = 5599, SpvDecorationReferencedIndirectlyINTEL = 5602, SpvDecorationClobberINTEL = 5607, SpvDecorationSideEffectsINTEL = 5608, SpvDecorationVectorComputeVariableINTEL = 5624, SpvDecorationFuncParamIOKindINTEL = 5625, SpvDecorationVectorComputeFunctionINTEL = 5626, SpvDecorationStackCallINTEL = 5627, SpvDecorationGlobalVariableOffsetINTEL = 5628, SpvDecorationCounterBuffer = 5634, SpvDecorationHlslCounterBufferGOOGLE = 5634, SpvDecorationHlslSemanticGOOGLE = 5635, SpvDecorationUserSemantic = 5635, SpvDecorationUserTypeGOOGLE = 5636, SpvDecorationFunctionRoundingModeINTEL = 5822, SpvDecorationFunctionDenormModeINTEL = 5823, SpvDecorationRegisterINTEL = 5825, SpvDecorationMemoryINTEL = 5826, SpvDecorationNumbanksINTEL = 5827, SpvDecorationBankwidthINTEL = 5828, SpvDecorationMaxPrivateCopiesINTEL = 5829, SpvDecorationSinglepumpINTEL = 5830, SpvDecorationDoublepumpINTEL = 5831, SpvDecorationMaxReplicatesINTEL = 5832, SpvDecorationSimpleDualPortINTEL = 5833, SpvDecorationMergeINTEL = 5834, SpvDecorationBankBitsINTEL = 5835, SpvDecorationForcePow2DepthINTEL = 5836, SpvDecorationStridesizeINTEL = 5883, SpvDecorationWordsizeINTEL = 5884, SpvDecorationTrueDualPortINTEL = 5885, SpvDecorationBurstCoalesceINTEL = 5899, SpvDecorationCacheSizeINTEL = 5900, SpvDecorationDontStaticallyCoalesceINTEL = 5901, SpvDecorationPrefetchINTEL = 5902, SpvDecorationStallEnableINTEL = 5905, SpvDecorationFuseLoopsInFunctionINTEL = 5907, SpvDecorationMathOpDSPModeINTEL = 5909, SpvDecorationAliasScopeINTEL = 5914, SpvDecorationNoAliasINTEL = 5915, SpvDecorationInitiationIntervalINTEL = 5917, SpvDecorationMaxConcurrencyINTEL = 5918, SpvDecorationPipelineEnableINTEL = 5919, SpvDecorationBufferLocationINTEL = 5921, SpvDecorationIOPipeStorageINTEL = 5944, SpvDecorationFunctionFloatingPointModeINTEL = 6080, SpvDecorationSingleElementVectorINTEL = 6085, SpvDecorationVectorComputeCallableFunctionINTEL = 6087, SpvDecorationMediaBlockIOINTEL = 6140, SpvDecorationStallFreeINTEL = 6151, SpvDecorationFPMaxErrorDecorationINTEL = 6170, SpvDecorationLatencyControlLabelINTEL = 6172, SpvDecorationLatencyControlConstraintINTEL = 6173, SpvDecorationConduitKernelArgumentINTEL = 6175, SpvDecorationRegisterMapKernelArgumentINTEL = 6176, SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177, SpvDecorationMMHostInterfaceDataWidthINTEL = 6178, SpvDecorationMMHostInterfaceLatencyINTEL = 6179, SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180, SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181, SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182, SpvDecorationStableKernelArgumentINTEL = 6183, SpvDecorationHostAccessINTEL = 6188, SpvDecorationInitModeINTEL = 6190, SpvDecorationImplementInRegisterMapINTEL = 6191, SpvDecorationCacheControlLoadINTEL = 6442, SpvDecorationCacheControlStoreINTEL = 6443, SpvDecorationMax = 0x7fffffff, } SpvDecoration; typedef enum SpvBuiltIn_ { SpvBuiltInPosition = 0, SpvBuiltInPointSize = 1, SpvBuiltInClipDistance = 3, SpvBuiltInCullDistance = 4, SpvBuiltInVertexId = 5, SpvBuiltInInstanceId = 6, SpvBuiltInPrimitiveId = 7, SpvBuiltInInvocationId = 8, SpvBuiltInLayer = 9, SpvBuiltInViewportIndex = 10, SpvBuiltInTessLevelOuter = 11, SpvBuiltInTessLevelInner = 12, SpvBuiltInTessCoord = 13, SpvBuiltInPatchVertices = 14, SpvBuiltInFragCoord = 15, SpvBuiltInPointCoord = 16, SpvBuiltInFrontFacing = 17, SpvBuiltInSampleId = 18, SpvBuiltInSamplePosition = 19, SpvBuiltInSampleMask = 20, SpvBuiltInFragDepth = 22, SpvBuiltInHelperInvocation = 23, SpvBuiltInNumWorkgroups = 24, SpvBuiltInWorkgroupSize = 25, SpvBuiltInWorkgroupId = 26, SpvBuiltInLocalInvocationId = 27, SpvBuiltInGlobalInvocationId = 28, SpvBuiltInLocalInvocationIndex = 29, SpvBuiltInWorkDim = 30, SpvBuiltInGlobalSize = 31, SpvBuiltInEnqueuedWorkgroupSize = 32, SpvBuiltInGlobalOffset = 33, SpvBuiltInGlobalLinearId = 34, SpvBuiltInSubgroupSize = 36, SpvBuiltInSubgroupMaxSize = 37, SpvBuiltInNumSubgroups = 38, SpvBuiltInNumEnqueuedSubgroups = 39, SpvBuiltInSubgroupId = 40, SpvBuiltInSubgroupLocalInvocationId = 41, SpvBuiltInVertexIndex = 42, SpvBuiltInInstanceIndex = 43, SpvBuiltInCoreIDARM = 4160, SpvBuiltInCoreCountARM = 4161, SpvBuiltInCoreMaxIDARM = 4162, SpvBuiltInWarpIDARM = 4163, SpvBuiltInWarpMaxIDARM = 4164, SpvBuiltInSubgroupEqMask = 4416, SpvBuiltInSubgroupEqMaskKHR = 4416, SpvBuiltInSubgroupGeMask = 4417, SpvBuiltInSubgroupGeMaskKHR = 4417, SpvBuiltInSubgroupGtMask = 4418, SpvBuiltInSubgroupGtMaskKHR = 4418, SpvBuiltInSubgroupLeMask = 4419, SpvBuiltInSubgroupLeMaskKHR = 4419, SpvBuiltInSubgroupLtMask = 4420, SpvBuiltInSubgroupLtMaskKHR = 4420, SpvBuiltInBaseVertex = 4424, SpvBuiltInBaseInstance = 4425, SpvBuiltInDrawIndex = 4426, SpvBuiltInPrimitiveShadingRateKHR = 4432, SpvBuiltInDeviceIndex = 4438, SpvBuiltInViewIndex = 4440, SpvBuiltInShadingRateKHR = 4444, SpvBuiltInBaryCoordNoPerspAMD = 4992, SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, SpvBuiltInBaryCoordSmoothAMD = 4995, SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInCoalescedInputCountAMDX = 5021, SpvBuiltInShaderIndexAMDX = 5073, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInPositionPerViewNV = 5261, SpvBuiltInViewportMaskPerViewNV = 5262, SpvBuiltInFullyCoveredEXT = 5264, SpvBuiltInTaskCountNV = 5274, SpvBuiltInPrimitiveCountNV = 5275, SpvBuiltInPrimitiveIndicesNV = 5276, SpvBuiltInClipDistancePerViewNV = 5277, SpvBuiltInCullDistancePerViewNV = 5278, SpvBuiltInLayerPerViewNV = 5279, SpvBuiltInMeshViewCountNV = 5280, SpvBuiltInMeshViewIndicesNV = 5281, SpvBuiltInBaryCoordKHR = 5286, SpvBuiltInBaryCoordNV = 5286, SpvBuiltInBaryCoordNoPerspKHR = 5287, SpvBuiltInBaryCoordNoPerspNV = 5287, SpvBuiltInFragSizeEXT = 5292, SpvBuiltInFragmentSizeNV = 5292, SpvBuiltInFragInvocationCountEXT = 5293, SpvBuiltInInvocationsPerPixelNV = 5293, SpvBuiltInPrimitivePointIndicesEXT = 5294, SpvBuiltInPrimitiveLineIndicesEXT = 5295, SpvBuiltInPrimitiveTriangleIndicesEXT = 5296, SpvBuiltInCullPrimitiveEXT = 5299, SpvBuiltInLaunchIdKHR = 5319, SpvBuiltInLaunchIdNV = 5319, SpvBuiltInLaunchSizeKHR = 5320, SpvBuiltInLaunchSizeNV = 5320, SpvBuiltInWorldRayOriginKHR = 5321, SpvBuiltInWorldRayOriginNV = 5321, SpvBuiltInWorldRayDirectionKHR = 5322, SpvBuiltInWorldRayDirectionNV = 5322, SpvBuiltInObjectRayOriginKHR = 5323, SpvBuiltInObjectRayOriginNV = 5323, SpvBuiltInObjectRayDirectionKHR = 5324, SpvBuiltInObjectRayDirectionNV = 5324, SpvBuiltInRayTminKHR = 5325, SpvBuiltInRayTminNV = 5325, SpvBuiltInRayTmaxKHR = 5326, SpvBuiltInRayTmaxNV = 5326, SpvBuiltInInstanceCustomIndexKHR = 5327, SpvBuiltInInstanceCustomIndexNV = 5327, SpvBuiltInObjectToWorldKHR = 5330, SpvBuiltInObjectToWorldNV = 5330, SpvBuiltInWorldToObjectKHR = 5331, SpvBuiltInWorldToObjectNV = 5331, SpvBuiltInHitTNV = 5332, SpvBuiltInHitKindKHR = 5333, SpvBuiltInHitKindNV = 5333, SpvBuiltInCurrentRayTimeNV = 5334, SpvBuiltInHitTriangleVertexPositionsKHR = 5335, SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337, SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344, SpvBuiltInIncomingRayFlagsKHR = 5351, SpvBuiltInIncomingRayFlagsNV = 5351, SpvBuiltInRayGeometryIndexKHR = 5352, SpvBuiltInWarpsPerSMNV = 5374, SpvBuiltInSMCountNV = 5375, SpvBuiltInWarpIDNV = 5376, SpvBuiltInSMIDNV = 5377, SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405, SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406, SpvBuiltInCullMaskKHR = 6021, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; typedef enum SpvSelectionControlShift_ { SpvSelectionControlFlattenShift = 0, SpvSelectionControlDontFlattenShift = 1, SpvSelectionControlMax = 0x7fffffff, } SpvSelectionControlShift; typedef enum SpvSelectionControlMask_ { SpvSelectionControlMaskNone = 0, SpvSelectionControlFlattenMask = 0x00000001, SpvSelectionControlDontFlattenMask = 0x00000002, } SpvSelectionControlMask; typedef enum SpvLoopControlShift_ { SpvLoopControlUnrollShift = 0, SpvLoopControlDontUnrollShift = 1, SpvLoopControlDependencyInfiniteShift = 2, SpvLoopControlDependencyLengthShift = 3, SpvLoopControlMinIterationsShift = 4, SpvLoopControlMaxIterationsShift = 5, SpvLoopControlIterationMultipleShift = 6, SpvLoopControlPeelCountShift = 7, SpvLoopControlPartialCountShift = 8, SpvLoopControlInitiationIntervalINTELShift = 16, SpvLoopControlMaxConcurrencyINTELShift = 17, SpvLoopControlDependencyArrayINTELShift = 18, SpvLoopControlPipelineEnableINTELShift = 19, SpvLoopControlLoopCoalesceINTELShift = 20, SpvLoopControlMaxInterleavingINTELShift = 21, SpvLoopControlSpeculatedIterationsINTELShift = 22, SpvLoopControlNoFusionINTELShift = 23, SpvLoopControlLoopCountINTELShift = 24, SpvLoopControlMaxReinvocationDelayINTELShift = 25, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; typedef enum SpvLoopControlMask_ { SpvLoopControlMaskNone = 0, SpvLoopControlUnrollMask = 0x00000001, SpvLoopControlDontUnrollMask = 0x00000002, SpvLoopControlDependencyInfiniteMask = 0x00000004, SpvLoopControlDependencyLengthMask = 0x00000008, SpvLoopControlMinIterationsMask = 0x00000010, SpvLoopControlMaxIterationsMask = 0x00000020, SpvLoopControlIterationMultipleMask = 0x00000040, SpvLoopControlPeelCountMask = 0x00000080, SpvLoopControlPartialCountMask = 0x00000100, SpvLoopControlInitiationIntervalINTELMask = 0x00010000, SpvLoopControlMaxConcurrencyINTELMask = 0x00020000, SpvLoopControlDependencyArrayINTELMask = 0x00040000, SpvLoopControlPipelineEnableINTELMask = 0x00080000, SpvLoopControlLoopCoalesceINTELMask = 0x00100000, SpvLoopControlMaxInterleavingINTELMask = 0x00200000, SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000, SpvLoopControlNoFusionINTELMask = 0x00800000, SpvLoopControlLoopCountINTELMask = 0x01000000, SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { SpvFunctionControlInlineShift = 0, SpvFunctionControlDontInlineShift = 1, SpvFunctionControlPureShift = 2, SpvFunctionControlConstShift = 3, SpvFunctionControlOptNoneINTELShift = 16, SpvFunctionControlMax = 0x7fffffff, } SpvFunctionControlShift; typedef enum SpvFunctionControlMask_ { SpvFunctionControlMaskNone = 0, SpvFunctionControlInlineMask = 0x00000001, SpvFunctionControlDontInlineMask = 0x00000002, SpvFunctionControlPureMask = 0x00000004, SpvFunctionControlConstMask = 0x00000008, SpvFunctionControlOptNoneINTELMask = 0x00010000, } SpvFunctionControlMask; typedef enum SpvMemorySemanticsShift_ { SpvMemorySemanticsAcquireShift = 1, SpvMemorySemanticsReleaseShift = 2, SpvMemorySemanticsAcquireReleaseShift = 3, SpvMemorySemanticsSequentiallyConsistentShift = 4, SpvMemorySemanticsUniformMemoryShift = 6, SpvMemorySemanticsSubgroupMemoryShift = 7, SpvMemorySemanticsWorkgroupMemoryShift = 8, SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, SpvMemorySemanticsAtomicCounterMemoryShift = 10, SpvMemorySemanticsImageMemoryShift = 11, SpvMemorySemanticsOutputMemoryShift = 12, SpvMemorySemanticsOutputMemoryKHRShift = 12, SpvMemorySemanticsMakeAvailableShift = 13, SpvMemorySemanticsMakeAvailableKHRShift = 13, SpvMemorySemanticsMakeVisibleShift = 14, SpvMemorySemanticsMakeVisibleKHRShift = 14, SpvMemorySemanticsVolatileShift = 15, SpvMemorySemanticsMax = 0x7fffffff, } SpvMemorySemanticsShift; typedef enum SpvMemorySemanticsMask_ { SpvMemorySemanticsMaskNone = 0, SpvMemorySemanticsAcquireMask = 0x00000002, SpvMemorySemanticsReleaseMask = 0x00000004, SpvMemorySemanticsAcquireReleaseMask = 0x00000008, SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, SpvMemorySemanticsUniformMemoryMask = 0x00000040, SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, SpvMemorySemanticsImageMemoryMask = 0x00000800, SpvMemorySemanticsOutputMemoryMask = 0x00001000, SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000, SpvMemorySemanticsMakeAvailableMask = 0x00002000, SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000, SpvMemorySemanticsMakeVisibleMask = 0x00004000, SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000, SpvMemorySemanticsVolatileMask = 0x00008000, } SpvMemorySemanticsMask; typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessVolatileShift = 0, SpvMemoryAccessAlignedShift = 1, SpvMemoryAccessNontemporalShift = 2, SpvMemoryAccessMakePointerAvailableShift = 3, SpvMemoryAccessMakePointerAvailableKHRShift = 3, SpvMemoryAccessMakePointerVisibleShift = 4, SpvMemoryAccessMakePointerVisibleKHRShift = 4, SpvMemoryAccessNonPrivatePointerShift = 5, SpvMemoryAccessNonPrivatePointerKHRShift = 5, SpvMemoryAccessAliasScopeINTELMaskShift = 16, SpvMemoryAccessNoAliasINTELMaskShift = 17, SpvMemoryAccessMax = 0x7fffffff, } SpvMemoryAccessShift; typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMaskNone = 0, SpvMemoryAccessVolatileMask = 0x00000001, SpvMemoryAccessAlignedMask = 0x00000002, SpvMemoryAccessNontemporalMask = 0x00000004, SpvMemoryAccessMakePointerAvailableMask = 0x00000008, SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008, SpvMemoryAccessMakePointerVisibleMask = 0x00000010, SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010, SpvMemoryAccessNonPrivatePointerMask = 0x00000020, SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020, SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000, SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000, } SpvMemoryAccessMask; typedef enum SpvScope_ { SpvScopeCrossDevice = 0, SpvScopeDevice = 1, SpvScopeWorkgroup = 2, SpvScopeSubgroup = 3, SpvScopeInvocation = 4, SpvScopeQueueFamily = 5, SpvScopeQueueFamilyKHR = 5, SpvScopeShaderCallKHR = 6, SpvScopeMax = 0x7fffffff, } SpvScope; typedef enum SpvGroupOperation_ { SpvGroupOperationReduce = 0, SpvGroupOperationInclusiveScan = 1, SpvGroupOperationExclusiveScan = 2, SpvGroupOperationClusteredReduce = 3, SpvGroupOperationPartitionedReduceNV = 6, SpvGroupOperationPartitionedInclusiveScanNV = 7, SpvGroupOperationPartitionedExclusiveScanNV = 8, SpvGroupOperationMax = 0x7fffffff, } SpvGroupOperation; typedef enum SpvKernelEnqueueFlags_ { SpvKernelEnqueueFlagsNoWait = 0, SpvKernelEnqueueFlagsWaitKernel = 1, SpvKernelEnqueueFlagsWaitWorkGroup = 2, SpvKernelEnqueueFlagsMax = 0x7fffffff, } SpvKernelEnqueueFlags; typedef enum SpvKernelProfilingInfoShift_ { SpvKernelProfilingInfoCmdExecTimeShift = 0, SpvKernelProfilingInfoMax = 0x7fffffff, } SpvKernelProfilingInfoShift; typedef enum SpvKernelProfilingInfoMask_ { SpvKernelProfilingInfoMaskNone = 0, SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, } SpvKernelProfilingInfoMask; typedef enum SpvCapability_ { SpvCapabilityMatrix = 0, SpvCapabilityShader = 1, SpvCapabilityGeometry = 2, SpvCapabilityTessellation = 3, SpvCapabilityAddresses = 4, SpvCapabilityLinkage = 5, SpvCapabilityKernel = 6, SpvCapabilityVector16 = 7, SpvCapabilityFloat16Buffer = 8, SpvCapabilityFloat16 = 9, SpvCapabilityFloat64 = 10, SpvCapabilityInt64 = 11, SpvCapabilityInt64Atomics = 12, SpvCapabilityImageBasic = 13, SpvCapabilityImageReadWrite = 14, SpvCapabilityImageMipmap = 15, SpvCapabilityPipes = 17, SpvCapabilityGroups = 18, SpvCapabilityDeviceEnqueue = 19, SpvCapabilityLiteralSampler = 20, SpvCapabilityAtomicStorage = 21, SpvCapabilityInt16 = 22, SpvCapabilityTessellationPointSize = 23, SpvCapabilityGeometryPointSize = 24, SpvCapabilityImageGatherExtended = 25, SpvCapabilityStorageImageMultisample = 27, SpvCapabilityUniformBufferArrayDynamicIndexing = 28, SpvCapabilitySampledImageArrayDynamicIndexing = 29, SpvCapabilityStorageBufferArrayDynamicIndexing = 30, SpvCapabilityStorageImageArrayDynamicIndexing = 31, SpvCapabilityClipDistance = 32, SpvCapabilityCullDistance = 33, SpvCapabilityImageCubeArray = 34, SpvCapabilitySampleRateShading = 35, SpvCapabilityImageRect = 36, SpvCapabilitySampledRect = 37, SpvCapabilityGenericPointer = 38, SpvCapabilityInt8 = 39, SpvCapabilityInputAttachment = 40, SpvCapabilitySparseResidency = 41, SpvCapabilityMinLod = 42, SpvCapabilitySampled1D = 43, SpvCapabilityImage1D = 44, SpvCapabilitySampledCubeArray = 45, SpvCapabilitySampledBuffer = 46, SpvCapabilityImageBuffer = 47, SpvCapabilityImageMSArray = 48, SpvCapabilityStorageImageExtendedFormats = 49, SpvCapabilityImageQuery = 50, SpvCapabilityDerivativeControl = 51, SpvCapabilityInterpolationFunction = 52, SpvCapabilityTransformFeedback = 53, SpvCapabilityGeometryStreams = 54, SpvCapabilityStorageImageReadWithoutFormat = 55, SpvCapabilityStorageImageWriteWithoutFormat = 56, SpvCapabilityMultiViewport = 57, SpvCapabilitySubgroupDispatch = 58, SpvCapabilityNamedBarrier = 59, SpvCapabilityPipeStorage = 60, SpvCapabilityGroupNonUniform = 61, SpvCapabilityGroupNonUniformVote = 62, SpvCapabilityGroupNonUniformArithmetic = 63, SpvCapabilityGroupNonUniformBallot = 64, SpvCapabilityGroupNonUniformShuffle = 65, SpvCapabilityGroupNonUniformShuffleRelative = 66, SpvCapabilityGroupNonUniformClustered = 67, SpvCapabilityGroupNonUniformQuad = 68, SpvCapabilityShaderLayer = 69, SpvCapabilityShaderViewportIndex = 70, SpvCapabilityUniformDecoration = 71, SpvCapabilityCoreBuiltinsARM = 4165, SpvCapabilityTileImageColorReadAccessEXT = 4166, SpvCapabilityTileImageDepthReadAccessEXT = 4167, SpvCapabilityTileImageStencilReadAccessEXT = 4168, SpvCapabilityCooperativeMatrixLayoutsARM = 4201, SpvCapabilityFragmentShadingRateKHR = 4422, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SpvCapabilitySubgroupVoteKHR = 4431, SpvCapabilityStorageBuffer16BitAccess = 4433, SpvCapabilityStorageUniformBufferBlock16 = 4433, SpvCapabilityStorageUniform16 = 4434, SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, SpvCapabilityStoragePushConstant16 = 4435, SpvCapabilityStorageInputOutput16 = 4436, SpvCapabilityDeviceGroup = 4437, SpvCapabilityMultiView = 4439, SpvCapabilityVariablePointersStorageBuffer = 4441, SpvCapabilityVariablePointers = 4442, SpvCapabilityAtomicStorageOps = 4445, SpvCapabilitySampleMaskPostDepthCoverage = 4447, SpvCapabilityStorageBuffer8BitAccess = 4448, SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449, SpvCapabilityStoragePushConstant8 = 4450, SpvCapabilityDenormPreserve = 4464, SpvCapabilityDenormFlushToZero = 4465, SpvCapabilitySignedZeroInfNanPreserve = 4466, SpvCapabilityRoundingModeRTE = 4467, SpvCapabilityRoundingModeRTZ = 4468, SpvCapabilityRayQueryProvisionalKHR = 4471, SpvCapabilityRayQueryKHR = 4472, SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478, SpvCapabilityRayTracingKHR = 4479, SpvCapabilityTextureSampleWeightedQCOM = 4484, SpvCapabilityTextureBoxFilterQCOM = 4485, SpvCapabilityTextureBlockMatchQCOM = 4486, SpvCapabilityTextureBlockMatch2QCOM = 4498, SpvCapabilityFloat16ImageAMD = 5008, SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityFragmentMaskAMD = 5010, SpvCapabilityStencilExportEXT = 5013, SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilityInt64ImageEXT = 5016, SpvCapabilityShaderClockKHR = 5055, SpvCapabilityShaderEnqueueAMDX = 5067, SpvCapabilityQuadControlKHR = 5087, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerNV = 5254, SpvCapabilityShaderViewportMaskNV = 5255, SpvCapabilityShaderStereoViewNV = 5259, SpvCapabilityPerViewAttributesNV = 5260, SpvCapabilityFragmentFullyCoveredEXT = 5265, SpvCapabilityMeshShadingNV = 5266, SpvCapabilityImageFootprintNV = 5282, SpvCapabilityMeshShadingEXT = 5283, SpvCapabilityFragmentBarycentricKHR = 5284, SpvCapabilityFragmentBarycentricNV = 5284, SpvCapabilityComputeDerivativeGroupQuadsNV = 5288, SpvCapabilityFragmentDensityEXT = 5291, SpvCapabilityShadingRateNV = 5291, SpvCapabilityGroupNonUniformPartitionedNV = 5297, SpvCapabilityShaderNonUniform = 5301, SpvCapabilityShaderNonUniformEXT = 5301, SpvCapabilityRuntimeDescriptorArray = 5302, SpvCapabilityRuntimeDescriptorArrayEXT = 5302, SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303, SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304, SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305, SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306, SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, SpvCapabilitySampledImageArrayNonUniformIndexing = 5307, SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307, SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308, SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, SpvCapabilityStorageImageArrayNonUniformIndexing = 5309, SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309, SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310, SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, SpvCapabilityRayTracingPositionFetchKHR = 5336, SpvCapabilityRayTracingNV = 5340, SpvCapabilityRayTracingMotionBlurNV = 5341, SpvCapabilityVulkanMemoryModel = 5345, SpvCapabilityVulkanMemoryModelKHR = 5345, SpvCapabilityVulkanMemoryModelDeviceScope = 5346, SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346, SpvCapabilityPhysicalStorageBufferAddresses = 5347, SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347, SpvCapabilityComputeDerivativeGroupLinearNV = 5350, SpvCapabilityRayTracingProvisionalKHR = 5353, SpvCapabilityCooperativeMatrixNV = 5357, SpvCapabilityFragmentShaderSampleInterlockEXT = 5363, SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372, SpvCapabilityShaderSMBuiltinsNV = 5373, SpvCapabilityFragmentShaderPixelInterlockEXT = 5378, SpvCapabilityDemoteToHelperInvocation = 5379, SpvCapabilityDemoteToHelperInvocationEXT = 5379, SpvCapabilityDisplacementMicromapNV = 5380, SpvCapabilityRayTracingOpacityMicromapEXT = 5381, SpvCapabilityShaderInvocationReorderNV = 5383, SpvCapabilityBindlessTextureNV = 5390, SpvCapabilityRayQueryPositionFetchKHR = 5391, SpvCapabilityAtomicFloat16VectorNV = 5404, SpvCapabilityRayTracingDisplacementMicromapNV = 5409, SpvCapabilityRawAccessChainsNV = 5414, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579, SpvCapabilityRoundToInfinityINTEL = 5582, SpvCapabilityFloatingPointModeINTEL = 5583, SpvCapabilityIntegerFunctions2INTEL = 5584, SpvCapabilityFunctionPointersINTEL = 5603, SpvCapabilityIndirectReferencesINTEL = 5604, SpvCapabilityAsmINTEL = 5606, SpvCapabilityAtomicFloat32MinMaxEXT = 5612, SpvCapabilityAtomicFloat64MinMaxEXT = 5613, SpvCapabilityAtomicFloat16MinMaxEXT = 5616, SpvCapabilityVectorComputeINTEL = 5617, SpvCapabilityVectorAnyINTEL = 5619, SpvCapabilityExpectAssumeKHR = 5629, SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696, SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, SpvCapabilityVariableLengthArrayINTEL = 5817, SpvCapabilityFunctionFloatControlINTEL = 5821, SpvCapabilityFPGAMemoryAttributesINTEL = 5824, SpvCapabilityFPFastMathModeINTEL = 5837, SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844, SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845, SpvCapabilityUnstructuredLoopControlsINTEL = 5886, SpvCapabilityFPGALoopControlsINTEL = 5888, SpvCapabilityKernelAttributesINTEL = 5892, SpvCapabilityFPGAKernelAttributesINTEL = 5897, SpvCapabilityFPGAMemoryAccessesINTEL = 5898, SpvCapabilityFPGAClusterAttributesINTEL = 5904, SpvCapabilityLoopFuseINTEL = 5906, SpvCapabilityFPGADSPControlINTEL = 5908, SpvCapabilityMemoryAccessAliasingINTEL = 5910, SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916, SpvCapabilityFPGABufferLocationINTEL = 5920, SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922, SpvCapabilityUSMStorageClassesINTEL = 5935, SpvCapabilityRuntimeAlignedAttributeINTEL = 5939, SpvCapabilityIOPipesINTEL = 5943, SpvCapabilityBlockingPipesINTEL = 5945, SpvCapabilityFPGARegINTEL = 5948, SpvCapabilityDotProductInputAll = 6016, SpvCapabilityDotProductInputAllKHR = 6016, SpvCapabilityDotProductInput4x8Bit = 6017, SpvCapabilityDotProductInput4x8BitKHR = 6017, SpvCapabilityDotProductInput4x8BitPacked = 6018, SpvCapabilityDotProductInput4x8BitPackedKHR = 6018, SpvCapabilityDotProduct = 6019, SpvCapabilityDotProductKHR = 6019, SpvCapabilityRayCullMaskKHR = 6020, SpvCapabilityCooperativeMatrixKHR = 6022, SpvCapabilityReplicatedCompositesEXT = 6024, SpvCapabilityBitInstructions = 6025, SpvCapabilityGroupNonUniformRotateKHR = 6026, SpvCapabilityFloatControls2 = 6029, SpvCapabilityAtomicFloat32AddEXT = 6033, SpvCapabilityAtomicFloat64AddEXT = 6034, SpvCapabilityLongCompositesINTEL = 6089, SpvCapabilityOptNoneINTEL = 6094, SpvCapabilityAtomicFloat16AddEXT = 6095, SpvCapabilityDebugInfoModuleINTEL = 6114, SpvCapabilityBFloat16ConversionINTEL = 6115, SpvCapabilitySplitBarrierINTEL = 6141, SpvCapabilityFPGAClusterAttributesV2INTEL = 6150, SpvCapabilityFPGAKernelAttributesv2INTEL = 6161, SpvCapabilityFPMaxErrorINTEL = 6169, SpvCapabilityFPGALatencyControlINTEL = 6171, SpvCapabilityFPGAArgumentInterfacesINTEL = 6174, SpvCapabilityGlobalVariableHostAccessINTEL = 6187, SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189, SpvCapabilityGroupUniformArithmeticKHR = 6400, SpvCapabilityMaskedGatherScatterINTEL = 6427, SpvCapabilityCacheControlsINTEL = 6441, SpvCapabilityRegisterLimitsINTEL = 6460, SpvCapabilityMax = 0x7fffffff, } SpvCapability; typedef enum SpvRayFlagsShift_ { SpvRayFlagsOpaqueKHRShift = 0, SpvRayFlagsNoOpaqueKHRShift = 1, SpvRayFlagsTerminateOnFirstHitKHRShift = 2, SpvRayFlagsSkipClosestHitShaderKHRShift = 3, SpvRayFlagsCullBackFacingTrianglesKHRShift = 4, SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5, SpvRayFlagsCullOpaqueKHRShift = 6, SpvRayFlagsCullNoOpaqueKHRShift = 7, SpvRayFlagsSkipTrianglesKHRShift = 8, SpvRayFlagsSkipAABBsKHRShift = 9, SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10, SpvRayFlagsMax = 0x7fffffff, } SpvRayFlagsShift; typedef enum SpvRayFlagsMask_ { SpvRayFlagsMaskNone = 0, SpvRayFlagsOpaqueKHRMask = 0x00000001, SpvRayFlagsNoOpaqueKHRMask = 0x00000002, SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004, SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008, SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010, SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020, SpvRayFlagsCullOpaqueKHRMask = 0x00000040, SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080, SpvRayFlagsSkipTrianglesKHRMask = 0x00000100, SpvRayFlagsSkipAABBsKHRMask = 0x00000200, SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400, } SpvRayFlagsMask; typedef enum SpvRayQueryIntersection_ { SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0, SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1, SpvRayQueryIntersectionMax = 0x7fffffff, } SpvRayQueryIntersection; typedef enum SpvRayQueryCommittedIntersectionType_ { SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0, SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1, SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2, SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff, } SpvRayQueryCommittedIntersectionType; typedef enum SpvRayQueryCandidateIntersectionType_ { SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0, SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1, SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff, } SpvRayQueryCandidateIntersectionType; typedef enum SpvFragmentShadingRateShift_ { SpvFragmentShadingRateVertical2PixelsShift = 0, SpvFragmentShadingRateVertical4PixelsShift = 1, SpvFragmentShadingRateHorizontal2PixelsShift = 2, SpvFragmentShadingRateHorizontal4PixelsShift = 3, SpvFragmentShadingRateMax = 0x7fffffff, } SpvFragmentShadingRateShift; typedef enum SpvFragmentShadingRateMask_ { SpvFragmentShadingRateMaskNone = 0, SpvFragmentShadingRateVertical2PixelsMask = 0x00000001, SpvFragmentShadingRateVertical4PixelsMask = 0x00000002, SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004, SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008, } SpvFragmentShadingRateMask; typedef enum SpvFPDenormMode_ { SpvFPDenormModePreserve = 0, SpvFPDenormModeFlushToZero = 1, SpvFPDenormModeMax = 0x7fffffff, } SpvFPDenormMode; typedef enum SpvFPOperationMode_ { SpvFPOperationModeIEEE = 0, SpvFPOperationModeALT = 1, SpvFPOperationModeMax = 0x7fffffff, } SpvFPOperationMode; typedef enum SpvQuantizationModes_ { SpvQuantizationModesTRN = 0, SpvQuantizationModesTRN_ZERO = 1, SpvQuantizationModesRND = 2, SpvQuantizationModesRND_ZERO = 3, SpvQuantizationModesRND_INF = 4, SpvQuantizationModesRND_MIN_INF = 5, SpvQuantizationModesRND_CONV = 6, SpvQuantizationModesRND_CONV_ODD = 7, SpvQuantizationModesMax = 0x7fffffff, } SpvQuantizationModes; typedef enum SpvOverflowModes_ { SpvOverflowModesWRAP = 0, SpvOverflowModesSAT = 1, SpvOverflowModesSAT_ZERO = 2, SpvOverflowModesSAT_SYM = 3, SpvOverflowModesMax = 0x7fffffff, } SpvOverflowModes; typedef enum SpvPackedVectorFormat_ { SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0, SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0, SpvPackedVectorFormatMax = 0x7fffffff, } SpvPackedVectorFormat; typedef enum SpvCooperativeMatrixOperandsShift_ { SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0, SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1, SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2, SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3, SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4, SpvCooperativeMatrixOperandsMax = 0x7fffffff, } SpvCooperativeMatrixOperandsShift; typedef enum SpvCooperativeMatrixOperandsMask_ { SpvCooperativeMatrixOperandsMaskNone = 0, SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001, SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002, SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004, SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008, SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010, } SpvCooperativeMatrixOperandsMask; typedef enum SpvCooperativeMatrixLayout_ { SpvCooperativeMatrixLayoutRowMajorKHR = 0, SpvCooperativeMatrixLayoutColumnMajorKHR = 1, SpvCooperativeMatrixLayoutRowBlockedInterleavedARM = 4202, SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM = 4203, SpvCooperativeMatrixLayoutMax = 0x7fffffff, } SpvCooperativeMatrixLayout; typedef enum SpvCooperativeMatrixUse_ { SpvCooperativeMatrixUseMatrixAKHR = 0, SpvCooperativeMatrixUseMatrixBKHR = 1, SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2, SpvCooperativeMatrixUseMax = 0x7fffffff, } SpvCooperativeMatrixUse; typedef enum SpvInitializationModeQualifier_ { SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0, SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1, SpvInitializationModeQualifierMax = 0x7fffffff, } SpvInitializationModeQualifier; typedef enum SpvHostAccessQualifier_ { SpvHostAccessQualifierNoneINTEL = 0, SpvHostAccessQualifierReadINTEL = 1, SpvHostAccessQualifierWriteINTEL = 2, SpvHostAccessQualifierReadWriteINTEL = 3, SpvHostAccessQualifierMax = 0x7fffffff, } SpvHostAccessQualifier; typedef enum SpvLoadCacheControl_ { SpvLoadCacheControlUncachedINTEL = 0, SpvLoadCacheControlCachedINTEL = 1, SpvLoadCacheControlStreamingINTEL = 2, SpvLoadCacheControlInvalidateAfterReadINTEL = 3, SpvLoadCacheControlConstCachedINTEL = 4, SpvLoadCacheControlMax = 0x7fffffff, } SpvLoadCacheControl; typedef enum SpvStoreCacheControl_ { SpvStoreCacheControlUncachedINTEL = 0, SpvStoreCacheControlWriteThroughINTEL = 1, SpvStoreCacheControlWriteBackINTEL = 2, SpvStoreCacheControlStreamingINTEL = 3, SpvStoreCacheControlMax = 0x7fffffff, } SpvStoreCacheControl; typedef enum SpvNamedMaximumNumberOfRegisters_ { SpvNamedMaximumNumberOfRegistersAutoINTEL = 0, SpvNamedMaximumNumberOfRegistersMax = 0x7fffffff, } SpvNamedMaximumNumberOfRegisters; typedef enum SpvRawAccessChainOperandsShift_ { SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0, SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1, SpvRawAccessChainOperandsMax = 0x7fffffff, } SpvRawAccessChainOperandsShift; typedef enum SpvRawAccessChainOperandsMask_ { SpvRawAccessChainOperandsMaskNone = 0, SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001, SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002, } SpvRawAccessChainOperandsMask; typedef enum SpvOp_ { SpvOpNop = 0, SpvOpUndef = 1, SpvOpSourceContinued = 2, SpvOpSource = 3, SpvOpSourceExtension = 4, SpvOpName = 5, SpvOpMemberName = 6, SpvOpString = 7, SpvOpLine = 8, SpvOpExtension = 10, SpvOpExtInstImport = 11, SpvOpExtInst = 12, SpvOpMemoryModel = 14, SpvOpEntryPoint = 15, SpvOpExecutionMode = 16, SpvOpCapability = 17, SpvOpTypeVoid = 19, SpvOpTypeBool = 20, SpvOpTypeInt = 21, SpvOpTypeFloat = 22, SpvOpTypeVector = 23, SpvOpTypeMatrix = 24, SpvOpTypeImage = 25, SpvOpTypeSampler = 26, SpvOpTypeSampledImage = 27, SpvOpTypeArray = 28, SpvOpTypeRuntimeArray = 29, SpvOpTypeStruct = 30, SpvOpTypeOpaque = 31, SpvOpTypePointer = 32, SpvOpTypeFunction = 33, SpvOpTypeEvent = 34, SpvOpTypeDeviceEvent = 35, SpvOpTypeReserveId = 36, SpvOpTypeQueue = 37, SpvOpTypePipe = 38, SpvOpTypeForwardPointer = 39, SpvOpConstantTrue = 41, SpvOpConstantFalse = 42, SpvOpConstant = 43, SpvOpConstantComposite = 44, SpvOpConstantSampler = 45, SpvOpConstantNull = 46, SpvOpSpecConstantTrue = 48, SpvOpSpecConstantFalse = 49, SpvOpSpecConstant = 50, SpvOpSpecConstantComposite = 51, SpvOpSpecConstantOp = 52, SpvOpFunction = 54, SpvOpFunctionParameter = 55, SpvOpFunctionEnd = 56, SpvOpFunctionCall = 57, SpvOpVariable = 59, SpvOpImageTexelPointer = 60, SpvOpLoad = 61, SpvOpStore = 62, SpvOpCopyMemory = 63, SpvOpCopyMemorySized = 64, SpvOpAccessChain = 65, SpvOpInBoundsAccessChain = 66, SpvOpPtrAccessChain = 67, SpvOpArrayLength = 68, SpvOpGenericPtrMemSemantics = 69, SpvOpInBoundsPtrAccessChain = 70, SpvOpDecorate = 71, SpvOpMemberDecorate = 72, SpvOpDecorationGroup = 73, SpvOpGroupDecorate = 74, SpvOpGroupMemberDecorate = 75, SpvOpVectorExtractDynamic = 77, SpvOpVectorInsertDynamic = 78, SpvOpVectorShuffle = 79, SpvOpCompositeConstruct = 80, SpvOpCompositeExtract = 81, SpvOpCompositeInsert = 82, SpvOpCopyObject = 83, SpvOpTranspose = 84, SpvOpSampledImage = 86, SpvOpImageSampleImplicitLod = 87, SpvOpImageSampleExplicitLod = 88, SpvOpImageSampleDrefImplicitLod = 89, SpvOpImageSampleDrefExplicitLod = 90, SpvOpImageSampleProjImplicitLod = 91, SpvOpImageSampleProjExplicitLod = 92, SpvOpImageSampleProjDrefImplicitLod = 93, SpvOpImageSampleProjDrefExplicitLod = 94, SpvOpImageFetch = 95, SpvOpImageGather = 96, SpvOpImageDrefGather = 97, SpvOpImageRead = 98, SpvOpImageWrite = 99, SpvOpImage = 100, SpvOpImageQueryFormat = 101, SpvOpImageQueryOrder = 102, SpvOpImageQuerySizeLod = 103, SpvOpImageQuerySize = 104, SpvOpImageQueryLod = 105, SpvOpImageQueryLevels = 106, SpvOpImageQuerySamples = 107, SpvOpConvertFToU = 109, SpvOpConvertFToS = 110, SpvOpConvertSToF = 111, SpvOpConvertUToF = 112, SpvOpUConvert = 113, SpvOpSConvert = 114, SpvOpFConvert = 115, SpvOpQuantizeToF16 = 116, SpvOpConvertPtrToU = 117, SpvOpSatConvertSToU = 118, SpvOpSatConvertUToS = 119, SpvOpConvertUToPtr = 120, SpvOpPtrCastToGeneric = 121, SpvOpGenericCastToPtr = 122, SpvOpGenericCastToPtrExplicit = 123, SpvOpBitcast = 124, SpvOpSNegate = 126, SpvOpFNegate = 127, SpvOpIAdd = 128, SpvOpFAdd = 129, SpvOpISub = 130, SpvOpFSub = 131, SpvOpIMul = 132, SpvOpFMul = 133, SpvOpUDiv = 134, SpvOpSDiv = 135, SpvOpFDiv = 136, SpvOpUMod = 137, SpvOpSRem = 138, SpvOpSMod = 139, SpvOpFRem = 140, SpvOpFMod = 141, SpvOpVectorTimesScalar = 142, SpvOpMatrixTimesScalar = 143, SpvOpVectorTimesMatrix = 144, SpvOpMatrixTimesVector = 145, SpvOpMatrixTimesMatrix = 146, SpvOpOuterProduct = 147, SpvOpDot = 148, SpvOpIAddCarry = 149, SpvOpISubBorrow = 150, SpvOpUMulExtended = 151, SpvOpSMulExtended = 152, SpvOpAny = 154, SpvOpAll = 155, SpvOpIsNan = 156, SpvOpIsInf = 157, SpvOpIsFinite = 158, SpvOpIsNormal = 159, SpvOpSignBitSet = 160, SpvOpLessOrGreater = 161, SpvOpOrdered = 162, SpvOpUnordered = 163, SpvOpLogicalEqual = 164, SpvOpLogicalNotEqual = 165, SpvOpLogicalOr = 166, SpvOpLogicalAnd = 167, SpvOpLogicalNot = 168, SpvOpSelect = 169, SpvOpIEqual = 170, SpvOpINotEqual = 171, SpvOpUGreaterThan = 172, SpvOpSGreaterThan = 173, SpvOpUGreaterThanEqual = 174, SpvOpSGreaterThanEqual = 175, SpvOpULessThan = 176, SpvOpSLessThan = 177, SpvOpULessThanEqual = 178, SpvOpSLessThanEqual = 179, SpvOpFOrdEqual = 180, SpvOpFUnordEqual = 181, SpvOpFOrdNotEqual = 182, SpvOpFUnordNotEqual = 183, SpvOpFOrdLessThan = 184, SpvOpFUnordLessThan = 185, SpvOpFOrdGreaterThan = 186, SpvOpFUnordGreaterThan = 187, SpvOpFOrdLessThanEqual = 188, SpvOpFUnordLessThanEqual = 189, SpvOpFOrdGreaterThanEqual = 190, SpvOpFUnordGreaterThanEqual = 191, SpvOpShiftRightLogical = 194, SpvOpShiftRightArithmetic = 195, SpvOpShiftLeftLogical = 196, SpvOpBitwiseOr = 197, SpvOpBitwiseXor = 198, SpvOpBitwiseAnd = 199, SpvOpNot = 200, SpvOpBitFieldInsert = 201, SpvOpBitFieldSExtract = 202, SpvOpBitFieldUExtract = 203, SpvOpBitReverse = 204, SpvOpBitCount = 205, SpvOpDPdx = 207, SpvOpDPdy = 208, SpvOpFwidth = 209, SpvOpDPdxFine = 210, SpvOpDPdyFine = 211, SpvOpFwidthFine = 212, SpvOpDPdxCoarse = 213, SpvOpDPdyCoarse = 214, SpvOpFwidthCoarse = 215, SpvOpEmitVertex = 218, SpvOpEndPrimitive = 219, SpvOpEmitStreamVertex = 220, SpvOpEndStreamPrimitive = 221, SpvOpControlBarrier = 224, SpvOpMemoryBarrier = 225, SpvOpAtomicLoad = 227, SpvOpAtomicStore = 228, SpvOpAtomicExchange = 229, SpvOpAtomicCompareExchange = 230, SpvOpAtomicCompareExchangeWeak = 231, SpvOpAtomicIIncrement = 232, SpvOpAtomicIDecrement = 233, SpvOpAtomicIAdd = 234, SpvOpAtomicISub = 235, SpvOpAtomicSMin = 236, SpvOpAtomicUMin = 237, SpvOpAtomicSMax = 238, SpvOpAtomicUMax = 239, SpvOpAtomicAnd = 240, SpvOpAtomicOr = 241, SpvOpAtomicXor = 242, SpvOpPhi = 245, SpvOpLoopMerge = 246, SpvOpSelectionMerge = 247, SpvOpLabel = 248, SpvOpBranch = 249, SpvOpBranchConditional = 250, SpvOpSwitch = 251, SpvOpKill = 252, SpvOpReturn = 253, SpvOpReturnValue = 254, SpvOpUnreachable = 255, SpvOpLifetimeStart = 256, SpvOpLifetimeStop = 257, SpvOpGroupAsyncCopy = 259, SpvOpGroupWaitEvents = 260, SpvOpGroupAll = 261, SpvOpGroupAny = 262, SpvOpGroupBroadcast = 263, SpvOpGroupIAdd = 264, SpvOpGroupFAdd = 265, SpvOpGroupFMin = 266, SpvOpGroupUMin = 267, SpvOpGroupSMin = 268, SpvOpGroupFMax = 269, SpvOpGroupUMax = 270, SpvOpGroupSMax = 271, SpvOpReadPipe = 274, SpvOpWritePipe = 275, SpvOpReservedReadPipe = 276, SpvOpReservedWritePipe = 277, SpvOpReserveReadPipePackets = 278, SpvOpReserveWritePipePackets = 279, SpvOpCommitReadPipe = 280, SpvOpCommitWritePipe = 281, SpvOpIsValidReserveId = 282, SpvOpGetNumPipePackets = 283, SpvOpGetMaxPipePackets = 284, SpvOpGroupReserveReadPipePackets = 285, SpvOpGroupReserveWritePipePackets = 286, SpvOpGroupCommitReadPipe = 287, SpvOpGroupCommitWritePipe = 288, SpvOpEnqueueMarker = 291, SpvOpEnqueueKernel = 292, SpvOpGetKernelNDrangeSubGroupCount = 293, SpvOpGetKernelNDrangeMaxSubGroupSize = 294, SpvOpGetKernelWorkGroupSize = 295, SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, SpvOpRetainEvent = 297, SpvOpReleaseEvent = 298, SpvOpCreateUserEvent = 299, SpvOpIsValidEvent = 300, SpvOpSetUserEventStatus = 301, SpvOpCaptureEventProfilingInfo = 302, SpvOpGetDefaultQueue = 303, SpvOpBuildNDRange = 304, SpvOpImageSparseSampleImplicitLod = 305, SpvOpImageSparseSampleExplicitLod = 306, SpvOpImageSparseSampleDrefImplicitLod = 307, SpvOpImageSparseSampleDrefExplicitLod = 308, SpvOpImageSparseSampleProjImplicitLod = 309, SpvOpImageSparseSampleProjExplicitLod = 310, SpvOpImageSparseSampleProjDrefImplicitLod = 311, SpvOpImageSparseSampleProjDrefExplicitLod = 312, SpvOpImageSparseFetch = 313, SpvOpImageSparseGather = 314, SpvOpImageSparseDrefGather = 315, SpvOpImageSparseTexelsResident = 316, SpvOpNoLine = 317, SpvOpAtomicFlagTestAndSet = 318, SpvOpAtomicFlagClear = 319, SpvOpImageSparseRead = 320, SpvOpSizeOf = 321, SpvOpTypePipeStorage = 322, SpvOpConstantPipeStorage = 323, SpvOpCreatePipeFromPipeStorage = 324, SpvOpGetKernelLocalSizeForSubgroupCount = 325, SpvOpGetKernelMaxNumSubgroups = 326, SpvOpTypeNamedBarrier = 327, SpvOpNamedBarrierInitialize = 328, SpvOpMemoryNamedBarrier = 329, SpvOpModuleProcessed = 330, SpvOpExecutionModeId = 331, SpvOpDecorateId = 332, SpvOpGroupNonUniformElect = 333, SpvOpGroupNonUniformAll = 334, SpvOpGroupNonUniformAny = 335, SpvOpGroupNonUniformAllEqual = 336, SpvOpGroupNonUniformBroadcast = 337, SpvOpGroupNonUniformBroadcastFirst = 338, SpvOpGroupNonUniformBallot = 339, SpvOpGroupNonUniformInverseBallot = 340, SpvOpGroupNonUniformBallotBitExtract = 341, SpvOpGroupNonUniformBallotBitCount = 342, SpvOpGroupNonUniformBallotFindLSB = 343, SpvOpGroupNonUniformBallotFindMSB = 344, SpvOpGroupNonUniformShuffle = 345, SpvOpGroupNonUniformShuffleXor = 346, SpvOpGroupNonUniformShuffleUp = 347, SpvOpGroupNonUniformShuffleDown = 348, SpvOpGroupNonUniformIAdd = 349, SpvOpGroupNonUniformFAdd = 350, SpvOpGroupNonUniformIMul = 351, SpvOpGroupNonUniformFMul = 352, SpvOpGroupNonUniformSMin = 353, SpvOpGroupNonUniformUMin = 354, SpvOpGroupNonUniformFMin = 355, SpvOpGroupNonUniformSMax = 356, SpvOpGroupNonUniformUMax = 357, SpvOpGroupNonUniformFMax = 358, SpvOpGroupNonUniformBitwiseAnd = 359, SpvOpGroupNonUniformBitwiseOr = 360, SpvOpGroupNonUniformBitwiseXor = 361, SpvOpGroupNonUniformLogicalAnd = 362, SpvOpGroupNonUniformLogicalOr = 363, SpvOpGroupNonUniformLogicalXor = 364, SpvOpGroupNonUniformQuadBroadcast = 365, SpvOpGroupNonUniformQuadSwap = 366, SpvOpCopyLogical = 400, SpvOpPtrEqual = 401, SpvOpPtrNotEqual = 402, SpvOpPtrDiff = 403, SpvOpColorAttachmentReadEXT = 4160, SpvOpDepthAttachmentReadEXT = 4161, SpvOpStencilAttachmentReadEXT = 4162, SpvOpTerminateInvocation = 4416, SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupFirstInvocationKHR = 4422, SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, SpvOpGroupNonUniformRotateKHR = 4431, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpExtInstWithForwardRefsKHR = 4433, SpvOpTraceRayKHR = 4445, SpvOpExecuteCallableKHR = 4446, SpvOpConvertUToAccelerationStructureKHR = 4447, SpvOpIgnoreIntersectionKHR = 4448, SpvOpTerminateRayKHR = 4449, SpvOpSDot = 4450, SpvOpSDotKHR = 4450, SpvOpUDot = 4451, SpvOpUDotKHR = 4451, SpvOpSUDot = 4452, SpvOpSUDotKHR = 4452, SpvOpSDotAccSat = 4453, SpvOpSDotAccSatKHR = 4453, SpvOpUDotAccSat = 4454, SpvOpUDotAccSatKHR = 4454, SpvOpSUDotAccSat = 4455, SpvOpSUDotAccSatKHR = 4455, SpvOpTypeCooperativeMatrixKHR = 4456, SpvOpCooperativeMatrixLoadKHR = 4457, SpvOpCooperativeMatrixStoreKHR = 4458, SpvOpCooperativeMatrixMulAddKHR = 4459, SpvOpCooperativeMatrixLengthKHR = 4460, SpvOpConstantCompositeReplicateEXT = 4461, SpvOpSpecConstantCompositeReplicateEXT = 4462, SpvOpCompositeConstructReplicateEXT = 4463, SpvOpTypeRayQueryKHR = 4472, SpvOpRayQueryInitializeKHR = 4473, SpvOpRayQueryTerminateKHR = 4474, SpvOpRayQueryGenerateIntersectionKHR = 4475, SpvOpRayQueryConfirmIntersectionKHR = 4476, SpvOpRayQueryProceedKHR = 4477, SpvOpRayQueryGetIntersectionTypeKHR = 4479, SpvOpImageSampleWeightedQCOM = 4480, SpvOpImageBoxFilterQCOM = 4481, SpvOpImageBlockMatchSSDQCOM = 4482, SpvOpImageBlockMatchSADQCOM = 4483, SpvOpImageBlockMatchWindowSSDQCOM = 4500, SpvOpImageBlockMatchWindowSADQCOM = 4501, SpvOpImageBlockMatchGatherSSDQCOM = 4502, SpvOpImageBlockMatchGatherSADQCOM = 4503, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, SpvOpGroupUMinNonUniformAMD = 5003, SpvOpGroupSMinNonUniformAMD = 5004, SpvOpGroupFMaxNonUniformAMD = 5005, SpvOpGroupUMaxNonUniformAMD = 5006, SpvOpGroupSMaxNonUniformAMD = 5007, SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentFetchAMD = 5012, SpvOpReadClockKHR = 5056, SpvOpFinalizeNodePayloadsAMDX = 5075, SpvOpFinishWritingNodePayloadAMDX = 5078, SpvOpInitializeNodePayloadsAMDX = 5090, SpvOpGroupNonUniformQuadAllKHR = 5110, SpvOpGroupNonUniformQuadAnyKHR = 5111, SpvOpHitObjectRecordHitMotionNV = 5249, SpvOpHitObjectRecordHitWithIndexMotionNV = 5250, SpvOpHitObjectRecordMissMotionNV = 5251, SpvOpHitObjectGetWorldToObjectNV = 5252, SpvOpHitObjectGetObjectToWorldNV = 5253, SpvOpHitObjectGetObjectRayDirectionNV = 5254, SpvOpHitObjectGetObjectRayOriginNV = 5255, SpvOpHitObjectTraceRayMotionNV = 5256, SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257, SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258, SpvOpHitObjectRecordEmptyNV = 5259, SpvOpHitObjectTraceRayNV = 5260, SpvOpHitObjectRecordHitNV = 5261, SpvOpHitObjectRecordHitWithIndexNV = 5262, SpvOpHitObjectRecordMissNV = 5263, SpvOpHitObjectExecuteShaderNV = 5264, SpvOpHitObjectGetCurrentTimeNV = 5265, SpvOpHitObjectGetAttributesNV = 5266, SpvOpHitObjectGetHitKindNV = 5267, SpvOpHitObjectGetPrimitiveIndexNV = 5268, SpvOpHitObjectGetGeometryIndexNV = 5269, SpvOpHitObjectGetInstanceIdNV = 5270, SpvOpHitObjectGetInstanceCustomIndexNV = 5271, SpvOpHitObjectGetWorldRayDirectionNV = 5272, SpvOpHitObjectGetWorldRayOriginNV = 5273, SpvOpHitObjectGetRayTMaxNV = 5274, SpvOpHitObjectGetRayTMinNV = 5275, SpvOpHitObjectIsEmptyNV = 5276, SpvOpHitObjectIsHitNV = 5277, SpvOpHitObjectIsMissNV = 5278, SpvOpReorderThreadWithHitObjectNV = 5279, SpvOpReorderThreadWithHintNV = 5280, SpvOpTypeHitObjectNV = 5281, SpvOpImageSampleFootprintNV = 5283, SpvOpEmitMeshTasksEXT = 5294, SpvOpSetMeshOutputsEXT = 5295, SpvOpGroupNonUniformPartitionNV = 5296, SpvOpWritePackedPrimitiveIndices4x8NV = 5299, SpvOpFetchMicroTriangleVertexPositionNV = 5300, SpvOpFetchMicroTriangleVertexBarycentricNV = 5301, SpvOpReportIntersectionKHR = 5334, SpvOpReportIntersectionNV = 5334, SpvOpIgnoreIntersectionNV = 5335, SpvOpTerminateRayNV = 5336, SpvOpTraceNV = 5337, SpvOpTraceMotionNV = 5338, SpvOpTraceRayMotionNV = 5339, SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, SpvOpTypeAccelerationStructureKHR = 5341, SpvOpTypeAccelerationStructureNV = 5341, SpvOpExecuteCallableNV = 5344, SpvOpTypeCooperativeMatrixNV = 5358, SpvOpCooperativeMatrixLoadNV = 5359, SpvOpCooperativeMatrixStoreNV = 5360, SpvOpCooperativeMatrixMulAddNV = 5361, SpvOpCooperativeMatrixLengthNV = 5362, SpvOpBeginInvocationInterlockEXT = 5364, SpvOpEndInvocationInterlockEXT = 5365, SpvOpDemoteToHelperInvocation = 5380, SpvOpDemoteToHelperInvocationEXT = 5380, SpvOpIsHelperInvocationEXT = 5381, SpvOpConvertUToImageNV = 5391, SpvOpConvertUToSamplerNV = 5392, SpvOpConvertImageToUNV = 5393, SpvOpConvertSamplerToUNV = 5394, SpvOpConvertUToSampledImageNV = 5395, SpvOpConvertSampledImageToUNV = 5396, SpvOpSamplerImageAddressingModeNV = 5397, SpvOpRawAccessChainNV = 5398, SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleUpINTEL = 5573, SpvOpSubgroupShuffleXorINTEL = 5574, SpvOpSubgroupBlockReadINTEL = 5575, SpvOpSubgroupBlockWriteINTEL = 5576, SpvOpSubgroupImageBlockReadINTEL = 5577, SpvOpSubgroupImageBlockWriteINTEL = 5578, SpvOpSubgroupImageMediaBlockReadINTEL = 5580, SpvOpSubgroupImageMediaBlockWriteINTEL = 5581, SpvOpUCountLeadingZerosINTEL = 5585, SpvOpUCountTrailingZerosINTEL = 5586, SpvOpAbsISubINTEL = 5587, SpvOpAbsUSubINTEL = 5588, SpvOpIAddSatINTEL = 5589, SpvOpUAddSatINTEL = 5590, SpvOpIAverageINTEL = 5591, SpvOpUAverageINTEL = 5592, SpvOpIAverageRoundedINTEL = 5593, SpvOpUAverageRoundedINTEL = 5594, SpvOpISubSatINTEL = 5595, SpvOpUSubSatINTEL = 5596, SpvOpIMul32x16INTEL = 5597, SpvOpUMul32x16INTEL = 5598, SpvOpConstantFunctionPointerINTEL = 5600, SpvOpFunctionPointerCallINTEL = 5601, SpvOpAsmTargetINTEL = 5609, SpvOpAsmINTEL = 5610, SpvOpAsmCallINTEL = 5611, SpvOpAtomicFMinEXT = 5614, SpvOpAtomicFMaxEXT = 5615, SpvOpAssumeTrueKHR = 5630, SpvOpExpectKHR = 5631, SpvOpDecorateString = 5632, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateString = 5633, SpvOpMemberDecorateStringGOOGLE = 5633, SpvOpVmeImageINTEL = 5699, SpvOpTypeVmeImageINTEL = 5700, SpvOpTypeAvcImePayloadINTEL = 5701, SpvOpTypeAvcRefPayloadINTEL = 5702, SpvOpTypeAvcSicPayloadINTEL = 5703, SpvOpTypeAvcMcePayloadINTEL = 5704, SpvOpTypeAvcMceResultINTEL = 5705, SpvOpTypeAvcImeResultINTEL = 5706, SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709, SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710, SpvOpTypeAvcRefResultINTEL = 5711, SpvOpTypeAvcSicResultINTEL = 5712, SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732, SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733, SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735, SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737, SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738, SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739, SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743, SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, SpvOpSubgroupAvcImeInitializeINTEL = 5747, SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748, SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749, SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750, SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765, SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776, SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, SpvOpSubgroupAvcFmeInitializeINTEL = 5781, SpvOpSubgroupAvcBmeInitializeINTEL = 5782, SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790, SpvOpSubgroupAvcSicInitializeINTEL = 5791, SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792, SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803, SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808, SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816, SpvOpVariableLengthArrayINTEL = 5818, SpvOpSaveMemoryINTEL = 5819, SpvOpRestoreMemoryINTEL = 5820, SpvOpArbitraryFloatSinCosPiINTEL = 5840, SpvOpArbitraryFloatCastINTEL = 5841, SpvOpArbitraryFloatCastFromIntINTEL = 5842, SpvOpArbitraryFloatCastToIntINTEL = 5843, SpvOpArbitraryFloatAddINTEL = 5846, SpvOpArbitraryFloatSubINTEL = 5847, SpvOpArbitraryFloatMulINTEL = 5848, SpvOpArbitraryFloatDivINTEL = 5849, SpvOpArbitraryFloatGTINTEL = 5850, SpvOpArbitraryFloatGEINTEL = 5851, SpvOpArbitraryFloatLTINTEL = 5852, SpvOpArbitraryFloatLEINTEL = 5853, SpvOpArbitraryFloatEQINTEL = 5854, SpvOpArbitraryFloatRecipINTEL = 5855, SpvOpArbitraryFloatRSqrtINTEL = 5856, SpvOpArbitraryFloatCbrtINTEL = 5857, SpvOpArbitraryFloatHypotINTEL = 5858, SpvOpArbitraryFloatSqrtINTEL = 5859, SpvOpArbitraryFloatLogINTEL = 5860, SpvOpArbitraryFloatLog2INTEL = 5861, SpvOpArbitraryFloatLog10INTEL = 5862, SpvOpArbitraryFloatLog1pINTEL = 5863, SpvOpArbitraryFloatExpINTEL = 5864, SpvOpArbitraryFloatExp2INTEL = 5865, SpvOpArbitraryFloatExp10INTEL = 5866, SpvOpArbitraryFloatExpm1INTEL = 5867, SpvOpArbitraryFloatSinINTEL = 5868, SpvOpArbitraryFloatCosINTEL = 5869, SpvOpArbitraryFloatSinCosINTEL = 5870, SpvOpArbitraryFloatSinPiINTEL = 5871, SpvOpArbitraryFloatCosPiINTEL = 5872, SpvOpArbitraryFloatASinINTEL = 5873, SpvOpArbitraryFloatASinPiINTEL = 5874, SpvOpArbitraryFloatACosINTEL = 5875, SpvOpArbitraryFloatACosPiINTEL = 5876, SpvOpArbitraryFloatATanINTEL = 5877, SpvOpArbitraryFloatATanPiINTEL = 5878, SpvOpArbitraryFloatATan2INTEL = 5879, SpvOpArbitraryFloatPowINTEL = 5880, SpvOpArbitraryFloatPowRINTEL = 5881, SpvOpArbitraryFloatPowNINTEL = 5882, SpvOpLoopControlINTEL = 5887, SpvOpAliasDomainDeclINTEL = 5911, SpvOpAliasScopeDeclINTEL = 5912, SpvOpAliasScopeListDeclINTEL = 5913, SpvOpFixedSqrtINTEL = 5923, SpvOpFixedRecipINTEL = 5924, SpvOpFixedRsqrtINTEL = 5925, SpvOpFixedSinINTEL = 5926, SpvOpFixedCosINTEL = 5927, SpvOpFixedSinCosINTEL = 5928, SpvOpFixedSinPiINTEL = 5929, SpvOpFixedCosPiINTEL = 5930, SpvOpFixedSinCosPiINTEL = 5931, SpvOpFixedLogINTEL = 5932, SpvOpFixedExpINTEL = 5933, SpvOpPtrCastToCrossWorkgroupINTEL = 5934, SpvOpCrossWorkgroupCastToPtrINTEL = 5938, SpvOpReadPipeBlockingINTEL = 5946, SpvOpWritePipeBlockingINTEL = 5947, SpvOpFPGARegINTEL = 5949, SpvOpRayQueryGetRayTMinKHR = 6016, SpvOpRayQueryGetRayFlagsKHR = 6017, SpvOpRayQueryGetIntersectionTKHR = 6018, SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020, SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022, SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024, SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025, SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028, SpvOpRayQueryGetWorldRayDirectionKHR = 6029, SpvOpRayQueryGetWorldRayOriginKHR = 6030, SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031, SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032, SpvOpAtomicFAddEXT = 6035, SpvOpTypeBufferSurfaceINTEL = 6086, SpvOpTypeStructContinuedINTEL = 6090, SpvOpConstantCompositeContinuedINTEL = 6091, SpvOpSpecConstantCompositeContinuedINTEL = 6092, SpvOpCompositeConstructContinuedINTEL = 6096, SpvOpConvertFToBF16INTEL = 6116, SpvOpConvertBF16ToFINTEL = 6117, SpvOpControlBarrierArriveINTEL = 6142, SpvOpControlBarrierWaitINTEL = 6143, SpvOpGroupIMulKHR = 6401, SpvOpGroupFMulKHR = 6402, SpvOpGroupBitwiseAndKHR = 6403, SpvOpGroupBitwiseOrKHR = 6404, SpvOpGroupBitwiseXorKHR = 6405, SpvOpGroupLogicalAndKHR = 6406, SpvOpGroupLogicalOrKHR = 6407, SpvOpGroupLogicalXorKHR = 6408, SpvOpMaskedGatherINTEL = 6428, SpvOpMaskedScatterINTEL = 6429, SpvOpMax = 0x7fffffff, } SpvOp; #ifdef SPV_ENABLE_UTILITY_CODE #ifndef __cplusplus #include #endif inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) { *hasResult = *hasResultType = false; switch (opcode) { default: /* unknown opcode */ break; case SpvOpNop: *hasResult = false; *hasResultType = false; break; case SpvOpUndef: *hasResult = true; *hasResultType = true; break; case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break; case SpvOpSource: *hasResult = false; *hasResultType = false; break; case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break; case SpvOpName: *hasResult = false; *hasResultType = false; break; case SpvOpMemberName: *hasResult = false; *hasResultType = false; break; case SpvOpString: *hasResult = true; *hasResultType = false; break; case SpvOpLine: *hasResult = false; *hasResultType = false; break; case SpvOpExtension: *hasResult = false; *hasResultType = false; break; case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break; case SpvOpExtInst: *hasResult = true; *hasResultType = true; break; case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break; case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break; case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break; case SpvOpCapability: *hasResult = false; *hasResultType = false; break; case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break; case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break; case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break; case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break; case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break; case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break; case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break; case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break; case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break; case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break; case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break; case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break; case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break; case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break; case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break; case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break; case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break; case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break; case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break; case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break; case SpvOpConstant: *hasResult = true; *hasResultType = true; break; case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break; case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break; case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break; case SpvOpFunction: *hasResult = true; *hasResultType = true; break; case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break; case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break; case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break; case SpvOpVariable: *hasResult = true; *hasResultType = true; break; case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break; case SpvOpLoad: *hasResult = true; *hasResultType = true; break; case SpvOpStore: *hasResult = false; *hasResultType = false; break; case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break; case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break; case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break; case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break; case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break; case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break; case SpvOpTranspose: *hasResult = true; *hasResultType = true; break; case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break; case SpvOpImageGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageRead: *hasResult = true; *hasResultType = true; break; case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break; case SpvOpImage: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break; case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break; case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break; case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break; case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break; case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break; case SpvOpUConvert: *hasResult = true; *hasResultType = true; break; case SpvOpSConvert: *hasResult = true; *hasResultType = true; break; case SpvOpFConvert: *hasResult = true; *hasResultType = true; break; case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break; case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break; case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break; case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break; case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; case SpvOpBitcast: *hasResult = true; *hasResultType = true; break; case SpvOpSNegate: *hasResult = true; *hasResultType = true; break; case SpvOpFNegate: *hasResult = true; *hasResultType = true; break; case SpvOpIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpFAdd: *hasResult = true; *hasResultType = true; break; case SpvOpISub: *hasResult = true; *hasResultType = true; break; case SpvOpFSub: *hasResult = true; *hasResultType = true; break; case SpvOpIMul: *hasResult = true; *hasResultType = true; break; case SpvOpFMul: *hasResult = true; *hasResultType = true; break; case SpvOpUDiv: *hasResult = true; *hasResultType = true; break; case SpvOpSDiv: *hasResult = true; *hasResultType = true; break; case SpvOpFDiv: *hasResult = true; *hasResultType = true; break; case SpvOpUMod: *hasResult = true; *hasResultType = true; break; case SpvOpSRem: *hasResult = true; *hasResultType = true; break; case SpvOpSMod: *hasResult = true; *hasResultType = true; break; case SpvOpFRem: *hasResult = true; *hasResultType = true; break; case SpvOpFMod: *hasResult = true; *hasResultType = true; break; case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break; case SpvOpDot: *hasResult = true; *hasResultType = true; break; case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break; case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break; case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break; case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break; case SpvOpAny: *hasResult = true; *hasResultType = true; break; case SpvOpAll: *hasResult = true; *hasResultType = true; break; case SpvOpIsNan: *hasResult = true; *hasResultType = true; break; case SpvOpIsInf: *hasResult = true; *hasResultType = true; break; case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break; case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break; case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break; case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break; case SpvOpOrdered: *hasResult = true; *hasResultType = true; break; case SpvOpUnordered: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break; case SpvOpSelect: *hasResult = true; *hasResultType = true; break; case SpvOpIEqual: *hasResult = true; *hasResultType = true; break; case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpULessThan: *hasResult = true; *hasResultType = true; break; case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break; case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break; case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break; case SpvOpNot: *hasResult = true; *hasResultType = true; break; case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break; case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break; case SpvOpBitCount: *hasResult = true; *hasResultType = true; break; case SpvOpDPdx: *hasResult = true; *hasResultType = true; break; case SpvOpDPdy: *hasResult = true; *hasResultType = true; break; case SpvOpFwidth: *hasResult = true; *hasResultType = true; break; case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break; case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break; case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break; case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break; case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break; case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break; case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break; case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break; case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break; case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break; case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break; case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break; case SpvOpPhi: *hasResult = true; *hasResultType = true; break; case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break; case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break; case SpvOpLabel: *hasResult = true; *hasResultType = false; break; case SpvOpBranch: *hasResult = false; *hasResultType = false; break; case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break; case SpvOpSwitch: *hasResult = false; *hasResultType = false; break; case SpvOpKill: *hasResult = false; *hasResultType = false; break; case SpvOpReturn: *hasResult = false; *hasResultType = false; break; case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break; case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break; case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break; case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break; case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break; case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break; case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break; case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break; case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break; case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break; case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break; case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break; case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break; case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break; case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break; case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break; case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break; case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break; case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; case SpvOpNoLine: *hasResult = false; *hasResultType = false; break; case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break; case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break; case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break; case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break; case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break; case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break; case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break; case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break; case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; case SpvOpSDot: *hasResult = true; *hasResultType = true; break; case SpvOpUDot: *hasResult = true; *hasResultType = true; break; case SpvOpSUDot: *hasResult = true; *hasResultType = true; break; case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break; case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break; case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break; case SpvOpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break; case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break; case SpvOpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break; case SpvOpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; case SpvOpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break; case SpvOpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break; case SpvOpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break; case SpvOpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break; case SpvOpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break; case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break; case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case SpvOpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break; case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case SpvOpRawAccessChainNV: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break; case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break; case SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break; } } inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) { switch (value) { case SpvSourceLanguageUnknown: return "Unknown"; case SpvSourceLanguageESSL: return "ESSL"; case SpvSourceLanguageGLSL: return "GLSL"; case SpvSourceLanguageOpenCL_C: return "OpenCL_C"; case SpvSourceLanguageOpenCL_CPP: return "OpenCL_CPP"; case SpvSourceLanguageHLSL: return "HLSL"; case SpvSourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL"; case SpvSourceLanguageSYCL: return "SYCL"; case SpvSourceLanguageHERO_C: return "HERO_C"; case SpvSourceLanguageNZSL: return "NZSL"; case SpvSourceLanguageWGSL: return "WGSL"; case SpvSourceLanguageSlang: return "Slang"; case SpvSourceLanguageZig: return "Zig"; default: return "Unknown"; } } inline const char* SpvExecutionModelToString(SpvExecutionModel value) { switch (value) { case SpvExecutionModelVertex: return "Vertex"; case SpvExecutionModelTessellationControl: return "TessellationControl"; case SpvExecutionModelTessellationEvaluation: return "TessellationEvaluation"; case SpvExecutionModelGeometry: return "Geometry"; case SpvExecutionModelFragment: return "Fragment"; case SpvExecutionModelGLCompute: return "GLCompute"; case SpvExecutionModelKernel: return "Kernel"; case SpvExecutionModelTaskNV: return "TaskNV"; case SpvExecutionModelMeshNV: return "MeshNV"; case SpvExecutionModelRayGenerationKHR: return "RayGenerationKHR"; case SpvExecutionModelIntersectionKHR: return "IntersectionKHR"; case SpvExecutionModelAnyHitKHR: return "AnyHitKHR"; case SpvExecutionModelClosestHitKHR: return "ClosestHitKHR"; case SpvExecutionModelMissKHR: return "MissKHR"; case SpvExecutionModelCallableKHR: return "CallableKHR"; case SpvExecutionModelTaskEXT: return "TaskEXT"; case SpvExecutionModelMeshEXT: return "MeshEXT"; default: return "Unknown"; } } inline const char* SpvAddressingModelToString(SpvAddressingModel value) { switch (value) { case SpvAddressingModelLogical: return "Logical"; case SpvAddressingModelPhysical32: return "Physical32"; case SpvAddressingModelPhysical64: return "Physical64"; case SpvAddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64"; default: return "Unknown"; } } inline const char* SpvMemoryModelToString(SpvMemoryModel value) { switch (value) { case SpvMemoryModelSimple: return "Simple"; case SpvMemoryModelGLSL450: return "GLSL450"; case SpvMemoryModelOpenCL: return "OpenCL"; case SpvMemoryModelVulkan: return "Vulkan"; default: return "Unknown"; } } inline const char* SpvExecutionModeToString(SpvExecutionMode value) { switch (value) { case SpvExecutionModeInvocations: return "Invocations"; case SpvExecutionModeSpacingEqual: return "SpacingEqual"; case SpvExecutionModeSpacingFractionalEven: return "SpacingFractionalEven"; case SpvExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd"; case SpvExecutionModeVertexOrderCw: return "VertexOrderCw"; case SpvExecutionModeVertexOrderCcw: return "VertexOrderCcw"; case SpvExecutionModePixelCenterInteger: return "PixelCenterInteger"; case SpvExecutionModeOriginUpperLeft: return "OriginUpperLeft"; case SpvExecutionModeOriginLowerLeft: return "OriginLowerLeft"; case SpvExecutionModeEarlyFragmentTests: return "EarlyFragmentTests"; case SpvExecutionModePointMode: return "PointMode"; case SpvExecutionModeXfb: return "Xfb"; case SpvExecutionModeDepthReplacing: return "DepthReplacing"; case SpvExecutionModeDepthGreater: return "DepthGreater"; case SpvExecutionModeDepthLess: return "DepthLess"; case SpvExecutionModeDepthUnchanged: return "DepthUnchanged"; case SpvExecutionModeLocalSize: return "LocalSize"; case SpvExecutionModeLocalSizeHint: return "LocalSizeHint"; case SpvExecutionModeInputPoints: return "InputPoints"; case SpvExecutionModeInputLines: return "InputLines"; case SpvExecutionModeInputLinesAdjacency: return "InputLinesAdjacency"; case SpvExecutionModeTriangles: return "Triangles"; case SpvExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency"; case SpvExecutionModeQuads: return "Quads"; case SpvExecutionModeIsolines: return "Isolines"; case SpvExecutionModeOutputVertices: return "OutputVertices"; case SpvExecutionModeOutputPoints: return "OutputPoints"; case SpvExecutionModeOutputLineStrip: return "OutputLineStrip"; case SpvExecutionModeOutputTriangleStrip: return "OutputTriangleStrip"; case SpvExecutionModeVecTypeHint: return "VecTypeHint"; case SpvExecutionModeContractionOff: return "ContractionOff"; case SpvExecutionModeInitializer: return "Initializer"; case SpvExecutionModeFinalizer: return "Finalizer"; case SpvExecutionModeSubgroupSize: return "SubgroupSize"; case SpvExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup"; case SpvExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId"; case SpvExecutionModeLocalSizeId: return "LocalSizeId"; case SpvExecutionModeLocalSizeHintId: return "LocalSizeHintId"; case SpvExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT"; case SpvExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT"; case SpvExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT"; case SpvExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR"; case SpvExecutionModePostDepthCoverage: return "PostDepthCoverage"; case SpvExecutionModeDenormPreserve: return "DenormPreserve"; case SpvExecutionModeDenormFlushToZero: return "DenormFlushToZero"; case SpvExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; case SpvExecutionModeRoundingModeRTE: return "RoundingModeRTE"; case SpvExecutionModeRoundingModeRTZ: return "RoundingModeRTZ"; case SpvExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD"; case SpvExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT"; case SpvExecutionModeCoalescingAMDX: return "CoalescingAMDX"; case SpvExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX"; case SpvExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX"; case SpvExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX"; case SpvExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX"; case SpvExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD"; case SpvExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD"; case SpvExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD"; case SpvExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD"; case SpvExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD"; case SpvExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD"; case SpvExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR"; case SpvExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR"; case SpvExecutionModeOutputLinesEXT: return "OutputLinesEXT"; case SpvExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT"; case SpvExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV"; case SpvExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV"; case SpvExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT"; case SpvExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT"; case SpvExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT"; case SpvExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT"; case SpvExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; case SpvExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL"; case SpvExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL"; case SpvExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL"; case SpvExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL"; case SpvExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL"; case SpvExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL"; case SpvExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL"; case SpvExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL"; case SpvExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL"; case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL"; case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR"; case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault"; case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL"; case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL"; case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL"; case SpvExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL"; case SpvExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL"; case SpvExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL"; default: return "Unknown"; } } inline const char* SpvStorageClassToString(SpvStorageClass value) { switch (value) { case SpvStorageClassUniformConstant: return "UniformConstant"; case SpvStorageClassInput: return "Input"; case SpvStorageClassUniform: return "Uniform"; case SpvStorageClassOutput: return "Output"; case SpvStorageClassWorkgroup: return "Workgroup"; case SpvStorageClassCrossWorkgroup: return "CrossWorkgroup"; case SpvStorageClassPrivate: return "Private"; case SpvStorageClassFunction: return "Function"; case SpvStorageClassGeneric: return "Generic"; case SpvStorageClassPushConstant: return "PushConstant"; case SpvStorageClassAtomicCounter: return "AtomicCounter"; case SpvStorageClassImage: return "Image"; case SpvStorageClassStorageBuffer: return "StorageBuffer"; case SpvStorageClassTileImageEXT: return "TileImageEXT"; case SpvStorageClassNodePayloadAMDX: return "NodePayloadAMDX"; case SpvStorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX"; case SpvStorageClassCallableDataKHR: return "CallableDataKHR"; case SpvStorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR"; case SpvStorageClassRayPayloadKHR: return "RayPayloadKHR"; case SpvStorageClassHitAttributeKHR: return "HitAttributeKHR"; case SpvStorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR"; case SpvStorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR"; case SpvStorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer"; case SpvStorageClassHitObjectAttributeNV: return "HitObjectAttributeNV"; case SpvStorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; case SpvStorageClassCodeSectionINTEL: return "CodeSectionINTEL"; case SpvStorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL"; case SpvStorageClassHostOnlyINTEL: return "HostOnlyINTEL"; default: return "Unknown"; } } inline const char* SpvDimToString(SpvDim value) { switch (value) { case SpvDim1D: return "1D"; case SpvDim2D: return "2D"; case SpvDim3D: return "3D"; case SpvDimCube: return "Cube"; case SpvDimRect: return "Rect"; case SpvDimBuffer: return "Buffer"; case SpvDimSubpassData: return "SubpassData"; case SpvDimTileImageDataEXT: return "TileImageDataEXT"; default: return "Unknown"; } } inline const char* SpvSamplerAddressingModeToString(SpvSamplerAddressingMode value) { switch (value) { case SpvSamplerAddressingModeNone: return "None"; case SpvSamplerAddressingModeClampToEdge: return "ClampToEdge"; case SpvSamplerAddressingModeClamp: return "Clamp"; case SpvSamplerAddressingModeRepeat: return "Repeat"; case SpvSamplerAddressingModeRepeatMirrored: return "RepeatMirrored"; default: return "Unknown"; } } inline const char* SpvSamplerFilterModeToString(SpvSamplerFilterMode value) { switch (value) { case SpvSamplerFilterModeNearest: return "Nearest"; case SpvSamplerFilterModeLinear: return "Linear"; default: return "Unknown"; } } inline const char* SpvImageFormatToString(SpvImageFormat value) { switch (value) { case SpvImageFormatUnknown: return "Unknown"; case SpvImageFormatRgba32f: return "Rgba32f"; case SpvImageFormatRgba16f: return "Rgba16f"; case SpvImageFormatR32f: return "R32f"; case SpvImageFormatRgba8: return "Rgba8"; case SpvImageFormatRgba8Snorm: return "Rgba8Snorm"; case SpvImageFormatRg32f: return "Rg32f"; case SpvImageFormatRg16f: return "Rg16f"; case SpvImageFormatR11fG11fB10f: return "R11fG11fB10f"; case SpvImageFormatR16f: return "R16f"; case SpvImageFormatRgba16: return "Rgba16"; case SpvImageFormatRgb10A2: return "Rgb10A2"; case SpvImageFormatRg16: return "Rg16"; case SpvImageFormatRg8: return "Rg8"; case SpvImageFormatR16: return "R16"; case SpvImageFormatR8: return "R8"; case SpvImageFormatRgba16Snorm: return "Rgba16Snorm"; case SpvImageFormatRg16Snorm: return "Rg16Snorm"; case SpvImageFormatRg8Snorm: return "Rg8Snorm"; case SpvImageFormatR16Snorm: return "R16Snorm"; case SpvImageFormatR8Snorm: return "R8Snorm"; case SpvImageFormatRgba32i: return "Rgba32i"; case SpvImageFormatRgba16i: return "Rgba16i"; case SpvImageFormatRgba8i: return "Rgba8i"; case SpvImageFormatR32i: return "R32i"; case SpvImageFormatRg32i: return "Rg32i"; case SpvImageFormatRg16i: return "Rg16i"; case SpvImageFormatRg8i: return "Rg8i"; case SpvImageFormatR16i: return "R16i"; case SpvImageFormatR8i: return "R8i"; case SpvImageFormatRgba32ui: return "Rgba32ui"; case SpvImageFormatRgba16ui: return "Rgba16ui"; case SpvImageFormatRgba8ui: return "Rgba8ui"; case SpvImageFormatR32ui: return "R32ui"; case SpvImageFormatRgb10a2ui: return "Rgb10a2ui"; case SpvImageFormatRg32ui: return "Rg32ui"; case SpvImageFormatRg16ui: return "Rg16ui"; case SpvImageFormatRg8ui: return "Rg8ui"; case SpvImageFormatR16ui: return "R16ui"; case SpvImageFormatR8ui: return "R8ui"; case SpvImageFormatR64ui: return "R64ui"; case SpvImageFormatR64i: return "R64i"; default: return "Unknown"; } } inline const char* SpvImageChannelOrderToString(SpvImageChannelOrder value) { switch (value) { case SpvImageChannelOrderR: return "R"; case SpvImageChannelOrderA: return "A"; case SpvImageChannelOrderRG: return "RG"; case SpvImageChannelOrderRA: return "RA"; case SpvImageChannelOrderRGB: return "RGB"; case SpvImageChannelOrderRGBA: return "RGBA"; case SpvImageChannelOrderBGRA: return "BGRA"; case SpvImageChannelOrderARGB: return "ARGB"; case SpvImageChannelOrderIntensity: return "Intensity"; case SpvImageChannelOrderLuminance: return "Luminance"; case SpvImageChannelOrderRx: return "Rx"; case SpvImageChannelOrderRGx: return "RGx"; case SpvImageChannelOrderRGBx: return "RGBx"; case SpvImageChannelOrderDepth: return "Depth"; case SpvImageChannelOrderDepthStencil: return "DepthStencil"; case SpvImageChannelOrdersRGB: return "sRGB"; case SpvImageChannelOrdersRGBx: return "sRGBx"; case SpvImageChannelOrdersRGBA: return "sRGBA"; case SpvImageChannelOrdersBGRA: return "sBGRA"; case SpvImageChannelOrderABGR: return "ABGR"; default: return "Unknown"; } } inline const char* SpvImageChannelDataTypeToString(SpvImageChannelDataType value) { switch (value) { case SpvImageChannelDataTypeSnormInt8: return "SnormInt8"; case SpvImageChannelDataTypeSnormInt16: return "SnormInt16"; case SpvImageChannelDataTypeUnormInt8: return "UnormInt8"; case SpvImageChannelDataTypeUnormInt16: return "UnormInt16"; case SpvImageChannelDataTypeUnormShort565: return "UnormShort565"; case SpvImageChannelDataTypeUnormShort555: return "UnormShort555"; case SpvImageChannelDataTypeUnormInt101010: return "UnormInt101010"; case SpvImageChannelDataTypeSignedInt8: return "SignedInt8"; case SpvImageChannelDataTypeSignedInt16: return "SignedInt16"; case SpvImageChannelDataTypeSignedInt32: return "SignedInt32"; case SpvImageChannelDataTypeUnsignedInt8: return "UnsignedInt8"; case SpvImageChannelDataTypeUnsignedInt16: return "UnsignedInt16"; case SpvImageChannelDataTypeUnsignedInt32: return "UnsignedInt32"; case SpvImageChannelDataTypeHalfFloat: return "HalfFloat"; case SpvImageChannelDataTypeFloat: return "Float"; case SpvImageChannelDataTypeUnormInt24: return "UnormInt24"; case SpvImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2"; case SpvImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT"; case SpvImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT"; default: return "Unknown"; } } inline const char* SpvFPRoundingModeToString(SpvFPRoundingMode value) { switch (value) { case SpvFPRoundingModeRTE: return "RTE"; case SpvFPRoundingModeRTZ: return "RTZ"; case SpvFPRoundingModeRTP: return "RTP"; case SpvFPRoundingModeRTN: return "RTN"; default: return "Unknown"; } } inline const char* SpvLinkageTypeToString(SpvLinkageType value) { switch (value) { case SpvLinkageTypeExport: return "Export"; case SpvLinkageTypeImport: return "Import"; case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR"; default: return "Unknown"; } } inline const char* SpvAccessQualifierToString(SpvAccessQualifier value) { switch (value) { case SpvAccessQualifierReadOnly: return "ReadOnly"; case SpvAccessQualifierWriteOnly: return "WriteOnly"; case SpvAccessQualifierReadWrite: return "ReadWrite"; default: return "Unknown"; } } inline const char* SpvFunctionParameterAttributeToString(SpvFunctionParameterAttribute value) { switch (value) { case SpvFunctionParameterAttributeZext: return "Zext"; case SpvFunctionParameterAttributeSext: return "Sext"; case SpvFunctionParameterAttributeByVal: return "ByVal"; case SpvFunctionParameterAttributeSret: return "Sret"; case SpvFunctionParameterAttributeNoAlias: return "NoAlias"; case SpvFunctionParameterAttributeNoCapture: return "NoCapture"; case SpvFunctionParameterAttributeNoWrite: return "NoWrite"; case SpvFunctionParameterAttributeNoReadWrite: return "NoReadWrite"; case SpvFunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL"; default: return "Unknown"; } } inline const char* SpvDecorationToString(SpvDecoration value) { switch (value) { case SpvDecorationRelaxedPrecision: return "RelaxedPrecision"; case SpvDecorationSpecId: return "SpecId"; case SpvDecorationBlock: return "Block"; case SpvDecorationBufferBlock: return "BufferBlock"; case SpvDecorationRowMajor: return "RowMajor"; case SpvDecorationColMajor: return "ColMajor"; case SpvDecorationArrayStride: return "ArrayStride"; case SpvDecorationMatrixStride: return "MatrixStride"; case SpvDecorationGLSLShared: return "GLSLShared"; case SpvDecorationGLSLPacked: return "GLSLPacked"; case SpvDecorationCPacked: return "CPacked"; case SpvDecorationBuiltIn: return "BuiltIn"; case SpvDecorationNoPerspective: return "NoPerspective"; case SpvDecorationFlat: return "Flat"; case SpvDecorationPatch: return "Patch"; case SpvDecorationCentroid: return "Centroid"; case SpvDecorationSample: return "Sample"; case SpvDecorationInvariant: return "Invariant"; case SpvDecorationRestrict: return "Restrict"; case SpvDecorationAliased: return "Aliased"; case SpvDecorationVolatile: return "Volatile"; case SpvDecorationConstant: return "Constant"; case SpvDecorationCoherent: return "Coherent"; case SpvDecorationNonWritable: return "NonWritable"; case SpvDecorationNonReadable: return "NonReadable"; case SpvDecorationUniform: return "Uniform"; case SpvDecorationUniformId: return "UniformId"; case SpvDecorationSaturatedConversion: return "SaturatedConversion"; case SpvDecorationStream: return "Stream"; case SpvDecorationLocation: return "Location"; case SpvDecorationComponent: return "Component"; case SpvDecorationIndex: return "Index"; case SpvDecorationBinding: return "Binding"; case SpvDecorationDescriptorSet: return "DescriptorSet"; case SpvDecorationOffset: return "Offset"; case SpvDecorationXfbBuffer: return "XfbBuffer"; case SpvDecorationXfbStride: return "XfbStride"; case SpvDecorationFuncParamAttr: return "FuncParamAttr"; case SpvDecorationFPRoundingMode: return "FPRoundingMode"; case SpvDecorationFPFastMathMode: return "FPFastMathMode"; case SpvDecorationLinkageAttributes: return "LinkageAttributes"; case SpvDecorationNoContraction: return "NoContraction"; case SpvDecorationInputAttachmentIndex: return "InputAttachmentIndex"; case SpvDecorationAlignment: return "Alignment"; case SpvDecorationMaxByteOffset: return "MaxByteOffset"; case SpvDecorationAlignmentId: return "AlignmentId"; case SpvDecorationMaxByteOffsetId: return "MaxByteOffsetId"; case SpvDecorationNoSignedWrap: return "NoSignedWrap"; case SpvDecorationNoUnsignedWrap: return "NoUnsignedWrap"; case SpvDecorationWeightTextureQCOM: return "WeightTextureQCOM"; case SpvDecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM"; case SpvDecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM"; case SpvDecorationExplicitInterpAMD: return "ExplicitInterpAMD"; case SpvDecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX"; case SpvDecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX"; case SpvDecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX"; case SpvDecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX"; case SpvDecorationOverrideCoverageNV: return "OverrideCoverageNV"; case SpvDecorationPassthroughNV: return "PassthroughNV"; case SpvDecorationViewportRelativeNV: return "ViewportRelativeNV"; case SpvDecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; case SpvDecorationPerPrimitiveEXT: return "PerPrimitiveEXT"; case SpvDecorationPerViewNV: return "PerViewNV"; case SpvDecorationPerTaskNV: return "PerTaskNV"; case SpvDecorationPerVertexKHR: return "PerVertexKHR"; case SpvDecorationNonUniform: return "NonUniform"; case SpvDecorationRestrictPointer: return "RestrictPointer"; case SpvDecorationAliasedPointer: return "AliasedPointer"; case SpvDecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV"; case SpvDecorationBindlessSamplerNV: return "BindlessSamplerNV"; case SpvDecorationBindlessImageNV: return "BindlessImageNV"; case SpvDecorationBoundSamplerNV: return "BoundSamplerNV"; case SpvDecorationBoundImageNV: return "BoundImageNV"; case SpvDecorationSIMTCallINTEL: return "SIMTCallINTEL"; case SpvDecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL"; case SpvDecorationClobberINTEL: return "ClobberINTEL"; case SpvDecorationSideEffectsINTEL: return "SideEffectsINTEL"; case SpvDecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL"; case SpvDecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL"; case SpvDecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL"; case SpvDecorationStackCallINTEL: return "StackCallINTEL"; case SpvDecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL"; case SpvDecorationCounterBuffer: return "CounterBuffer"; case SpvDecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE"; case SpvDecorationUserTypeGOOGLE: return "UserTypeGOOGLE"; case SpvDecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL"; case SpvDecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL"; case SpvDecorationRegisterINTEL: return "RegisterINTEL"; case SpvDecorationMemoryINTEL: return "MemoryINTEL"; case SpvDecorationNumbanksINTEL: return "NumbanksINTEL"; case SpvDecorationBankwidthINTEL: return "BankwidthINTEL"; case SpvDecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL"; case SpvDecorationSinglepumpINTEL: return "SinglepumpINTEL"; case SpvDecorationDoublepumpINTEL: return "DoublepumpINTEL"; case SpvDecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL"; case SpvDecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL"; case SpvDecorationMergeINTEL: return "MergeINTEL"; case SpvDecorationBankBitsINTEL: return "BankBitsINTEL"; case SpvDecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL"; case SpvDecorationStridesizeINTEL: return "StridesizeINTEL"; case SpvDecorationWordsizeINTEL: return "WordsizeINTEL"; case SpvDecorationTrueDualPortINTEL: return "TrueDualPortINTEL"; case SpvDecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL"; case SpvDecorationCacheSizeINTEL: return "CacheSizeINTEL"; case SpvDecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL"; case SpvDecorationPrefetchINTEL: return "PrefetchINTEL"; case SpvDecorationStallEnableINTEL: return "StallEnableINTEL"; case SpvDecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL"; case SpvDecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL"; case SpvDecorationAliasScopeINTEL: return "AliasScopeINTEL"; case SpvDecorationNoAliasINTEL: return "NoAliasINTEL"; case SpvDecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL"; case SpvDecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL"; case SpvDecorationPipelineEnableINTEL: return "PipelineEnableINTEL"; case SpvDecorationBufferLocationINTEL: return "BufferLocationINTEL"; case SpvDecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL"; case SpvDecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL"; case SpvDecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL"; case SpvDecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL"; case SpvDecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL"; case SpvDecorationStallFreeINTEL: return "StallFreeINTEL"; case SpvDecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL"; case SpvDecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL"; case SpvDecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL"; case SpvDecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL"; case SpvDecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL"; case SpvDecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL"; case SpvDecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL"; case SpvDecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL"; case SpvDecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL"; case SpvDecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL"; case SpvDecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL"; case SpvDecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL"; case SpvDecorationHostAccessINTEL: return "HostAccessINTEL"; case SpvDecorationInitModeINTEL: return "InitModeINTEL"; case SpvDecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL"; case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL"; default: return "Unknown"; } } inline const char* SpvBuiltInToString(SpvBuiltIn value) { switch (value) { case SpvBuiltInPosition: return "Position"; case SpvBuiltInPointSize: return "PointSize"; case SpvBuiltInClipDistance: return "ClipDistance"; case SpvBuiltInCullDistance: return "CullDistance"; case SpvBuiltInVertexId: return "VertexId"; case SpvBuiltInInstanceId: return "InstanceId"; case SpvBuiltInPrimitiveId: return "PrimitiveId"; case SpvBuiltInInvocationId: return "InvocationId"; case SpvBuiltInLayer: return "Layer"; case SpvBuiltInViewportIndex: return "ViewportIndex"; case SpvBuiltInTessLevelOuter: return "TessLevelOuter"; case SpvBuiltInTessLevelInner: return "TessLevelInner"; case SpvBuiltInTessCoord: return "TessCoord"; case SpvBuiltInPatchVertices: return "PatchVertices"; case SpvBuiltInFragCoord: return "FragCoord"; case SpvBuiltInPointCoord: return "PointCoord"; case SpvBuiltInFrontFacing: return "FrontFacing"; case SpvBuiltInSampleId: return "SampleId"; case SpvBuiltInSamplePosition: return "SamplePosition"; case SpvBuiltInSampleMask: return "SampleMask"; case SpvBuiltInFragDepth: return "FragDepth"; case SpvBuiltInHelperInvocation: return "HelperInvocation"; case SpvBuiltInNumWorkgroups: return "NumWorkgroups"; case SpvBuiltInWorkgroupSize: return "WorkgroupSize"; case SpvBuiltInWorkgroupId: return "WorkgroupId"; case SpvBuiltInLocalInvocationId: return "LocalInvocationId"; case SpvBuiltInGlobalInvocationId: return "GlobalInvocationId"; case SpvBuiltInLocalInvocationIndex: return "LocalInvocationIndex"; case SpvBuiltInWorkDim: return "WorkDim"; case SpvBuiltInGlobalSize: return "GlobalSize"; case SpvBuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize"; case SpvBuiltInGlobalOffset: return "GlobalOffset"; case SpvBuiltInGlobalLinearId: return "GlobalLinearId"; case SpvBuiltInSubgroupSize: return "SubgroupSize"; case SpvBuiltInSubgroupMaxSize: return "SubgroupMaxSize"; case SpvBuiltInNumSubgroups: return "NumSubgroups"; case SpvBuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups"; case SpvBuiltInSubgroupId: return "SubgroupId"; case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId"; case SpvBuiltInVertexIndex: return "VertexIndex"; case SpvBuiltInInstanceIndex: return "InstanceIndex"; case SpvBuiltInCoreIDARM: return "CoreIDARM"; case SpvBuiltInCoreCountARM: return "CoreCountARM"; case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM"; case SpvBuiltInWarpIDARM: return "WarpIDARM"; case SpvBuiltInWarpMaxIDARM: return "WarpMaxIDARM"; case SpvBuiltInSubgroupEqMask: return "SubgroupEqMask"; case SpvBuiltInSubgroupGeMask: return "SubgroupGeMask"; case SpvBuiltInSubgroupGtMask: return "SubgroupGtMask"; case SpvBuiltInSubgroupLeMask: return "SubgroupLeMask"; case SpvBuiltInSubgroupLtMask: return "SubgroupLtMask"; case SpvBuiltInBaseVertex: return "BaseVertex"; case SpvBuiltInBaseInstance: return "BaseInstance"; case SpvBuiltInDrawIndex: return "DrawIndex"; case SpvBuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR"; case SpvBuiltInDeviceIndex: return "DeviceIndex"; case SpvBuiltInViewIndex: return "ViewIndex"; case SpvBuiltInShadingRateKHR: return "ShadingRateKHR"; case SpvBuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD"; case SpvBuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD"; case SpvBuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD"; case SpvBuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD"; case SpvBuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD"; case SpvBuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD"; case SpvBuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD"; case SpvBuiltInFragStencilRefEXT: return "FragStencilRefEXT"; case SpvBuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX"; case SpvBuiltInShaderIndexAMDX: return "ShaderIndexAMDX"; case SpvBuiltInViewportMaskNV: return "ViewportMaskNV"; case SpvBuiltInSecondaryPositionNV: return "SecondaryPositionNV"; case SpvBuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; case SpvBuiltInPositionPerViewNV: return "PositionPerViewNV"; case SpvBuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; case SpvBuiltInFullyCoveredEXT: return "FullyCoveredEXT"; case SpvBuiltInTaskCountNV: return "TaskCountNV"; case SpvBuiltInPrimitiveCountNV: return "PrimitiveCountNV"; case SpvBuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV"; case SpvBuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV"; case SpvBuiltInCullDistancePerViewNV: return "CullDistancePerViewNV"; case SpvBuiltInLayerPerViewNV: return "LayerPerViewNV"; case SpvBuiltInMeshViewCountNV: return "MeshViewCountNV"; case SpvBuiltInMeshViewIndicesNV: return "MeshViewIndicesNV"; case SpvBuiltInBaryCoordKHR: return "BaryCoordKHR"; case SpvBuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR"; case SpvBuiltInFragSizeEXT: return "FragSizeEXT"; case SpvBuiltInFragInvocationCountEXT: return "FragInvocationCountEXT"; case SpvBuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT"; case SpvBuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT"; case SpvBuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT"; case SpvBuiltInCullPrimitiveEXT: return "CullPrimitiveEXT"; case SpvBuiltInLaunchIdKHR: return "LaunchIdKHR"; case SpvBuiltInLaunchSizeKHR: return "LaunchSizeKHR"; case SpvBuiltInWorldRayOriginKHR: return "WorldRayOriginKHR"; case SpvBuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR"; case SpvBuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR"; case SpvBuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR"; case SpvBuiltInRayTminKHR: return "RayTminKHR"; case SpvBuiltInRayTmaxKHR: return "RayTmaxKHR"; case SpvBuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR"; case SpvBuiltInObjectToWorldKHR: return "ObjectToWorldKHR"; case SpvBuiltInWorldToObjectKHR: return "WorldToObjectKHR"; case SpvBuiltInHitTNV: return "HitTNV"; case SpvBuiltInHitKindKHR: return "HitKindKHR"; case SpvBuiltInCurrentRayTimeNV: return "CurrentRayTimeNV"; case SpvBuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR"; case SpvBuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV"; case SpvBuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV"; case SpvBuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR"; case SpvBuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR"; case SpvBuiltInWarpsPerSMNV: return "WarpsPerSMNV"; case SpvBuiltInSMCountNV: return "SMCountNV"; case SpvBuiltInWarpIDNV: return "WarpIDNV"; case SpvBuiltInSMIDNV: return "SMIDNV"; case SpvBuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV"; case SpvBuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV"; case SpvBuiltInCullMaskKHR: return "CullMaskKHR"; default: return "Unknown"; } } inline const char* SpvScopeToString(SpvScope value) { switch (value) { case SpvScopeCrossDevice: return "CrossDevice"; case SpvScopeDevice: return "Device"; case SpvScopeWorkgroup: return "Workgroup"; case SpvScopeSubgroup: return "Subgroup"; case SpvScopeInvocation: return "Invocation"; case SpvScopeQueueFamily: return "QueueFamily"; case SpvScopeShaderCallKHR: return "ShaderCallKHR"; default: return "Unknown"; } } inline const char* SpvGroupOperationToString(SpvGroupOperation value) { switch (value) { case SpvGroupOperationReduce: return "Reduce"; case SpvGroupOperationInclusiveScan: return "InclusiveScan"; case SpvGroupOperationExclusiveScan: return "ExclusiveScan"; case SpvGroupOperationClusteredReduce: return "ClusteredReduce"; case SpvGroupOperationPartitionedReduceNV: return "PartitionedReduceNV"; case SpvGroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV"; case SpvGroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV"; default: return "Unknown"; } } inline const char* SpvKernelEnqueueFlagsToString(SpvKernelEnqueueFlags value) { switch (value) { case SpvKernelEnqueueFlagsNoWait: return "NoWait"; case SpvKernelEnqueueFlagsWaitKernel: return "WaitKernel"; case SpvKernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup"; default: return "Unknown"; } } inline const char* SpvCapabilityToString(SpvCapability value) { switch (value) { case SpvCapabilityMatrix: return "Matrix"; case SpvCapabilityShader: return "Shader"; case SpvCapabilityGeometry: return "Geometry"; case SpvCapabilityTessellation: return "Tessellation"; case SpvCapabilityAddresses: return "Addresses"; case SpvCapabilityLinkage: return "Linkage"; case SpvCapabilityKernel: return "Kernel"; case SpvCapabilityVector16: return "Vector16"; case SpvCapabilityFloat16Buffer: return "Float16Buffer"; case SpvCapabilityFloat16: return "Float16"; case SpvCapabilityFloat64: return "Float64"; case SpvCapabilityInt64: return "Int64"; case SpvCapabilityInt64Atomics: return "Int64Atomics"; case SpvCapabilityImageBasic: return "ImageBasic"; case SpvCapabilityImageReadWrite: return "ImageReadWrite"; case SpvCapabilityImageMipmap: return "ImageMipmap"; case SpvCapabilityPipes: return "Pipes"; case SpvCapabilityGroups: return "Groups"; case SpvCapabilityDeviceEnqueue: return "DeviceEnqueue"; case SpvCapabilityLiteralSampler: return "LiteralSampler"; case SpvCapabilityAtomicStorage: return "AtomicStorage"; case SpvCapabilityInt16: return "Int16"; case SpvCapabilityTessellationPointSize: return "TessellationPointSize"; case SpvCapabilityGeometryPointSize: return "GeometryPointSize"; case SpvCapabilityImageGatherExtended: return "ImageGatherExtended"; case SpvCapabilityStorageImageMultisample: return "StorageImageMultisample"; case SpvCapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing"; case SpvCapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing"; case SpvCapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing"; case SpvCapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing"; case SpvCapabilityClipDistance: return "ClipDistance"; case SpvCapabilityCullDistance: return "CullDistance"; case SpvCapabilityImageCubeArray: return "ImageCubeArray"; case SpvCapabilitySampleRateShading: return "SampleRateShading"; case SpvCapabilityImageRect: return "ImageRect"; case SpvCapabilitySampledRect: return "SampledRect"; case SpvCapabilityGenericPointer: return "GenericPointer"; case SpvCapabilityInt8: return "Int8"; case SpvCapabilityInputAttachment: return "InputAttachment"; case SpvCapabilitySparseResidency: return "SparseResidency"; case SpvCapabilityMinLod: return "MinLod"; case SpvCapabilitySampled1D: return "Sampled1D"; case SpvCapabilityImage1D: return "Image1D"; case SpvCapabilitySampledCubeArray: return "SampledCubeArray"; case SpvCapabilitySampledBuffer: return "SampledBuffer"; case SpvCapabilityImageBuffer: return "ImageBuffer"; case SpvCapabilityImageMSArray: return "ImageMSArray"; case SpvCapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats"; case SpvCapabilityImageQuery: return "ImageQuery"; case SpvCapabilityDerivativeControl: return "DerivativeControl"; case SpvCapabilityInterpolationFunction: return "InterpolationFunction"; case SpvCapabilityTransformFeedback: return "TransformFeedback"; case SpvCapabilityGeometryStreams: return "GeometryStreams"; case SpvCapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat"; case SpvCapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat"; case SpvCapabilityMultiViewport: return "MultiViewport"; case SpvCapabilitySubgroupDispatch: return "SubgroupDispatch"; case SpvCapabilityNamedBarrier: return "NamedBarrier"; case SpvCapabilityPipeStorage: return "PipeStorage"; case SpvCapabilityGroupNonUniform: return "GroupNonUniform"; case SpvCapabilityGroupNonUniformVote: return "GroupNonUniformVote"; case SpvCapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic"; case SpvCapabilityGroupNonUniformBallot: return "GroupNonUniformBallot"; case SpvCapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle"; case SpvCapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative"; case SpvCapabilityGroupNonUniformClustered: return "GroupNonUniformClustered"; case SpvCapabilityGroupNonUniformQuad: return "GroupNonUniformQuad"; case SpvCapabilityShaderLayer: return "ShaderLayer"; case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex"; case SpvCapabilityUniformDecoration: return "UniformDecoration"; case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM"; case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT"; case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT"; case SpvCapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT"; case SpvCapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM"; case SpvCapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR"; case SpvCapabilitySubgroupBallotKHR: return "SubgroupBallotKHR"; case SpvCapabilityDrawParameters: return "DrawParameters"; case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR"; case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR"; case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR"; case SpvCapabilitySubgroupVoteKHR: return "SubgroupVoteKHR"; case SpvCapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess"; case SpvCapabilityStorageUniform16: return "StorageUniform16"; case SpvCapabilityStoragePushConstant16: return "StoragePushConstant16"; case SpvCapabilityStorageInputOutput16: return "StorageInputOutput16"; case SpvCapabilityDeviceGroup: return "DeviceGroup"; case SpvCapabilityMultiView: return "MultiView"; case SpvCapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer"; case SpvCapabilityVariablePointers: return "VariablePointers"; case SpvCapabilityAtomicStorageOps: return "AtomicStorageOps"; case SpvCapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage"; case SpvCapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess"; case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess"; case SpvCapabilityStoragePushConstant8: return "StoragePushConstant8"; case SpvCapabilityDenormPreserve: return "DenormPreserve"; case SpvCapabilityDenormFlushToZero: return "DenormFlushToZero"; case SpvCapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; case SpvCapabilityRoundingModeRTE: return "RoundingModeRTE"; case SpvCapabilityRoundingModeRTZ: return "RoundingModeRTZ"; case SpvCapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR"; case SpvCapabilityRayQueryKHR: return "RayQueryKHR"; case SpvCapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR"; case SpvCapabilityRayTracingKHR: return "RayTracingKHR"; case SpvCapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM"; case SpvCapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM"; case SpvCapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM"; case SpvCapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM"; case SpvCapabilityFloat16ImageAMD: return "Float16ImageAMD"; case SpvCapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; case SpvCapabilityFragmentMaskAMD: return "FragmentMaskAMD"; case SpvCapabilityStencilExportEXT: return "StencilExportEXT"; case SpvCapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD"; case SpvCapabilityInt64ImageEXT: return "Int64ImageEXT"; case SpvCapabilityShaderClockKHR: return "ShaderClockKHR"; case SpvCapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX"; case SpvCapabilityQuadControlKHR: return "QuadControlKHR"; case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV"; case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT"; case SpvCapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; case SpvCapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; case SpvCapabilityPerViewAttributesNV: return "PerViewAttributesNV"; case SpvCapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT"; case SpvCapabilityMeshShadingNV: return "MeshShadingNV"; case SpvCapabilityImageFootprintNV: return "ImageFootprintNV"; case SpvCapabilityMeshShadingEXT: return "MeshShadingEXT"; case SpvCapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR"; case SpvCapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV"; case SpvCapabilityFragmentDensityEXT: return "FragmentDensityEXT"; case SpvCapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; case SpvCapabilityShaderNonUniform: return "ShaderNonUniform"; case SpvCapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray"; case SpvCapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing"; case SpvCapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing"; case SpvCapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing"; case SpvCapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing"; case SpvCapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing"; case SpvCapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing"; case SpvCapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing"; case SpvCapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing"; case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing"; case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing"; case SpvCapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR"; case SpvCapabilityRayTracingNV: return "RayTracingNV"; case SpvCapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV"; case SpvCapabilityVulkanMemoryModel: return "VulkanMemoryModel"; case SpvCapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope"; case SpvCapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses"; case SpvCapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV"; case SpvCapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR"; case SpvCapabilityCooperativeMatrixNV: return "CooperativeMatrixNV"; case SpvCapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT"; case SpvCapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT"; case SpvCapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV"; case SpvCapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT"; case SpvCapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation"; case SpvCapabilityDisplacementMicromapNV: return "DisplacementMicromapNV"; case SpvCapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT"; case SpvCapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; case SpvCapabilityBindlessTextureNV: return "BindlessTextureNV"; case SpvCapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR"; case SpvCapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV"; case SpvCapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV"; case SpvCapabilityRawAccessChainsNV: return "RawAccessChainsNV"; case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL"; case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL"; case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL"; case SpvCapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL"; case SpvCapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL"; case SpvCapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL"; case SpvCapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL"; case SpvCapabilityFunctionPointersINTEL: return "FunctionPointersINTEL"; case SpvCapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL"; case SpvCapabilityAsmINTEL: return "AsmINTEL"; case SpvCapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT"; case SpvCapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT"; case SpvCapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT"; case SpvCapabilityVectorComputeINTEL: return "VectorComputeINTEL"; case SpvCapabilityVectorAnyINTEL: return "VectorAnyINTEL"; case SpvCapabilityExpectAssumeKHR: return "ExpectAssumeKHR"; case SpvCapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL"; case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL"; case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL"; case SpvCapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL"; case SpvCapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL"; case SpvCapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL"; case SpvCapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL"; case SpvCapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL"; case SpvCapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL"; case SpvCapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL"; case SpvCapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL"; case SpvCapabilityKernelAttributesINTEL: return "KernelAttributesINTEL"; case SpvCapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL"; case SpvCapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL"; case SpvCapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL"; case SpvCapabilityLoopFuseINTEL: return "LoopFuseINTEL"; case SpvCapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL"; case SpvCapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL"; case SpvCapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL"; case SpvCapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL"; case SpvCapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL"; case SpvCapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL"; case SpvCapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL"; case SpvCapabilityIOPipesINTEL: return "IOPipesINTEL"; case SpvCapabilityBlockingPipesINTEL: return "BlockingPipesINTEL"; case SpvCapabilityFPGARegINTEL: return "FPGARegINTEL"; case SpvCapabilityDotProductInputAll: return "DotProductInputAll"; case SpvCapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit"; case SpvCapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked"; case SpvCapabilityDotProduct: return "DotProduct"; case SpvCapabilityRayCullMaskKHR: return "RayCullMaskKHR"; case SpvCapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR"; case SpvCapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT"; case SpvCapabilityBitInstructions: return "BitInstructions"; case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR"; case SpvCapabilityFloatControls2: return "FloatControls2"; case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL"; case SpvCapabilityOptNoneINTEL: return "OptNoneINTEL"; case SpvCapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT"; case SpvCapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL"; case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL"; case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL"; case SpvCapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL"; case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL"; case SpvCapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL"; case SpvCapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL"; case SpvCapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL"; case SpvCapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL"; case SpvCapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL"; case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR"; case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL"; case SpvCapabilityCacheControlsINTEL: return "CacheControlsINTEL"; case SpvCapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL"; default: return "Unknown"; } } inline const char* SpvRayQueryIntersectionToString(SpvRayQueryIntersection value) { switch (value) { case SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR"; case SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR"; default: return "Unknown"; } } inline const char* SpvRayQueryCommittedIntersectionTypeToString(SpvRayQueryCommittedIntersectionType value) { switch (value) { case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR"; case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR"; case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR"; default: return "Unknown"; } } inline const char* SpvRayQueryCandidateIntersectionTypeToString(SpvRayQueryCandidateIntersectionType value) { switch (value) { case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR"; case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR"; default: return "Unknown"; } } inline const char* SpvFPDenormModeToString(SpvFPDenormMode value) { switch (value) { case SpvFPDenormModePreserve: return "Preserve"; case SpvFPDenormModeFlushToZero: return "FlushToZero"; default: return "Unknown"; } } inline const char* SpvFPOperationModeToString(SpvFPOperationMode value) { switch (value) { case SpvFPOperationModeIEEE: return "IEEE"; case SpvFPOperationModeALT: return "ALT"; default: return "Unknown"; } } inline const char* SpvQuantizationModesToString(SpvQuantizationModes value) { switch (value) { case SpvQuantizationModesTRN: return "TRN"; case SpvQuantizationModesTRN_ZERO: return "TRN_ZERO"; case SpvQuantizationModesRND: return "RND"; case SpvQuantizationModesRND_ZERO: return "RND_ZERO"; case SpvQuantizationModesRND_INF: return "RND_INF"; case SpvQuantizationModesRND_MIN_INF: return "RND_MIN_INF"; case SpvQuantizationModesRND_CONV: return "RND_CONV"; case SpvQuantizationModesRND_CONV_ODD: return "RND_CONV_ODD"; default: return "Unknown"; } } inline const char* SpvOverflowModesToString(SpvOverflowModes value) { switch (value) { case SpvOverflowModesWRAP: return "WRAP"; case SpvOverflowModesSAT: return "SAT"; case SpvOverflowModesSAT_ZERO: return "SAT_ZERO"; case SpvOverflowModesSAT_SYM: return "SAT_SYM"; default: return "Unknown"; } } inline const char* SpvPackedVectorFormatToString(SpvPackedVectorFormat value) { switch (value) { case SpvPackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit"; default: return "Unknown"; } } inline const char* SpvCooperativeMatrixLayoutToString(SpvCooperativeMatrixLayout value) { switch (value) { case SpvCooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR"; case SpvCooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR"; case SpvCooperativeMatrixLayoutRowBlockedInterleavedARM: return "RowBlockedInterleavedARM"; case SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM"; default: return "Unknown"; } } inline const char* SpvCooperativeMatrixUseToString(SpvCooperativeMatrixUse value) { switch (value) { case SpvCooperativeMatrixUseMatrixAKHR: return "MatrixAKHR"; case SpvCooperativeMatrixUseMatrixBKHR: return "MatrixBKHR"; case SpvCooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR"; default: return "Unknown"; } } inline const char* SpvInitializationModeQualifierToString(SpvInitializationModeQualifier value) { switch (value) { case SpvInitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL"; case SpvInitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL"; default: return "Unknown"; } } inline const char* SpvHostAccessQualifierToString(SpvHostAccessQualifier value) { switch (value) { case SpvHostAccessQualifierNoneINTEL: return "NoneINTEL"; case SpvHostAccessQualifierReadINTEL: return "ReadINTEL"; case SpvHostAccessQualifierWriteINTEL: return "WriteINTEL"; case SpvHostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL"; default: return "Unknown"; } } inline const char* SpvLoadCacheControlToString(SpvLoadCacheControl value) { switch (value) { case SpvLoadCacheControlUncachedINTEL: return "UncachedINTEL"; case SpvLoadCacheControlCachedINTEL: return "CachedINTEL"; case SpvLoadCacheControlStreamingINTEL: return "StreamingINTEL"; case SpvLoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL"; case SpvLoadCacheControlConstCachedINTEL: return "ConstCachedINTEL"; default: return "Unknown"; } } inline const char* SpvStoreCacheControlToString(SpvStoreCacheControl value) { switch (value) { case SpvStoreCacheControlUncachedINTEL: return "UncachedINTEL"; case SpvStoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL"; case SpvStoreCacheControlWriteBackINTEL: return "WriteBackINTEL"; case SpvStoreCacheControlStreamingINTEL: return "StreamingINTEL"; default: return "Unknown"; } } inline const char* SpvNamedMaximumNumberOfRegistersToString(SpvNamedMaximumNumberOfRegisters value) { switch (value) { case SpvNamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL"; default: return "Unknown"; } } inline const char* SpvOpToString(SpvOp value) { switch (value) { case SpvOpNop: return "OpNop"; case SpvOpUndef: return "OpUndef"; case SpvOpSourceContinued: return "OpSourceContinued"; case SpvOpSource: return "OpSource"; case SpvOpSourceExtension: return "OpSourceExtension"; case SpvOpName: return "OpName"; case SpvOpMemberName: return "OpMemberName"; case SpvOpString: return "OpString"; case SpvOpLine: return "OpLine"; case SpvOpExtension: return "OpExtension"; case SpvOpExtInstImport: return "OpExtInstImport"; case SpvOpExtInst: return "OpExtInst"; case SpvOpMemoryModel: return "OpMemoryModel"; case SpvOpEntryPoint: return "OpEntryPoint"; case SpvOpExecutionMode: return "OpExecutionMode"; case SpvOpCapability: return "OpCapability"; case SpvOpTypeVoid: return "OpTypeVoid"; case SpvOpTypeBool: return "OpTypeBool"; case SpvOpTypeInt: return "OpTypeInt"; case SpvOpTypeFloat: return "OpTypeFloat"; case SpvOpTypeVector: return "OpTypeVector"; case SpvOpTypeMatrix: return "OpTypeMatrix"; case SpvOpTypeImage: return "OpTypeImage"; case SpvOpTypeSampler: return "OpTypeSampler"; case SpvOpTypeSampledImage: return "OpTypeSampledImage"; case SpvOpTypeArray: return "OpTypeArray"; case SpvOpTypeRuntimeArray: return "OpTypeRuntimeArray"; case SpvOpTypeStruct: return "OpTypeStruct"; case SpvOpTypeOpaque: return "OpTypeOpaque"; case SpvOpTypePointer: return "OpTypePointer"; case SpvOpTypeFunction: return "OpTypeFunction"; case SpvOpTypeEvent: return "OpTypeEvent"; case SpvOpTypeDeviceEvent: return "OpTypeDeviceEvent"; case SpvOpTypeReserveId: return "OpTypeReserveId"; case SpvOpTypeQueue: return "OpTypeQueue"; case SpvOpTypePipe: return "OpTypePipe"; case SpvOpTypeForwardPointer: return "OpTypeForwardPointer"; case SpvOpConstantTrue: return "OpConstantTrue"; case SpvOpConstantFalse: return "OpConstantFalse"; case SpvOpConstant: return "OpConstant"; case SpvOpConstantComposite: return "OpConstantComposite"; case SpvOpConstantSampler: return "OpConstantSampler"; case SpvOpConstantNull: return "OpConstantNull"; case SpvOpSpecConstantTrue: return "OpSpecConstantTrue"; case SpvOpSpecConstantFalse: return "OpSpecConstantFalse"; case SpvOpSpecConstant: return "OpSpecConstant"; case SpvOpSpecConstantComposite: return "OpSpecConstantComposite"; case SpvOpSpecConstantOp: return "OpSpecConstantOp"; case SpvOpFunction: return "OpFunction"; case SpvOpFunctionParameter: return "OpFunctionParameter"; case SpvOpFunctionEnd: return "OpFunctionEnd"; case SpvOpFunctionCall: return "OpFunctionCall"; case SpvOpVariable: return "OpVariable"; case SpvOpImageTexelPointer: return "OpImageTexelPointer"; case SpvOpLoad: return "OpLoad"; case SpvOpStore: return "OpStore"; case SpvOpCopyMemory: return "OpCopyMemory"; case SpvOpCopyMemorySized: return "OpCopyMemorySized"; case SpvOpAccessChain: return "OpAccessChain"; case SpvOpInBoundsAccessChain: return "OpInBoundsAccessChain"; case SpvOpPtrAccessChain: return "OpPtrAccessChain"; case SpvOpArrayLength: return "OpArrayLength"; case SpvOpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics"; case SpvOpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain"; case SpvOpDecorate: return "OpDecorate"; case SpvOpMemberDecorate: return "OpMemberDecorate"; case SpvOpDecorationGroup: return "OpDecorationGroup"; case SpvOpGroupDecorate: return "OpGroupDecorate"; case SpvOpGroupMemberDecorate: return "OpGroupMemberDecorate"; case SpvOpVectorExtractDynamic: return "OpVectorExtractDynamic"; case SpvOpVectorInsertDynamic: return "OpVectorInsertDynamic"; case SpvOpVectorShuffle: return "OpVectorShuffle"; case SpvOpCompositeConstruct: return "OpCompositeConstruct"; case SpvOpCompositeExtract: return "OpCompositeExtract"; case SpvOpCompositeInsert: return "OpCompositeInsert"; case SpvOpCopyObject: return "OpCopyObject"; case SpvOpTranspose: return "OpTranspose"; case SpvOpSampledImage: return "OpSampledImage"; case SpvOpImageSampleImplicitLod: return "OpImageSampleImplicitLod"; case SpvOpImageSampleExplicitLod: return "OpImageSampleExplicitLod"; case SpvOpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod"; case SpvOpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod"; case SpvOpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod"; case SpvOpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod"; case SpvOpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod"; case SpvOpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod"; case SpvOpImageFetch: return "OpImageFetch"; case SpvOpImageGather: return "OpImageGather"; case SpvOpImageDrefGather: return "OpImageDrefGather"; case SpvOpImageRead: return "OpImageRead"; case SpvOpImageWrite: return "OpImageWrite"; case SpvOpImage: return "OpImage"; case SpvOpImageQueryFormat: return "OpImageQueryFormat"; case SpvOpImageQueryOrder: return "OpImageQueryOrder"; case SpvOpImageQuerySizeLod: return "OpImageQuerySizeLod"; case SpvOpImageQuerySize: return "OpImageQuerySize"; case SpvOpImageQueryLod: return "OpImageQueryLod"; case SpvOpImageQueryLevels: return "OpImageQueryLevels"; case SpvOpImageQuerySamples: return "OpImageQuerySamples"; case SpvOpConvertFToU: return "OpConvertFToU"; case SpvOpConvertFToS: return "OpConvertFToS"; case SpvOpConvertSToF: return "OpConvertSToF"; case SpvOpConvertUToF: return "OpConvertUToF"; case SpvOpUConvert: return "OpUConvert"; case SpvOpSConvert: return "OpSConvert"; case SpvOpFConvert: return "OpFConvert"; case SpvOpQuantizeToF16: return "OpQuantizeToF16"; case SpvOpConvertPtrToU: return "OpConvertPtrToU"; case SpvOpSatConvertSToU: return "OpSatConvertSToU"; case SpvOpSatConvertUToS: return "OpSatConvertUToS"; case SpvOpConvertUToPtr: return "OpConvertUToPtr"; case SpvOpPtrCastToGeneric: return "OpPtrCastToGeneric"; case SpvOpGenericCastToPtr: return "OpGenericCastToPtr"; case SpvOpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit"; case SpvOpBitcast: return "OpBitcast"; case SpvOpSNegate: return "OpSNegate"; case SpvOpFNegate: return "OpFNegate"; case SpvOpIAdd: return "OpIAdd"; case SpvOpFAdd: return "OpFAdd"; case SpvOpISub: return "OpISub"; case SpvOpFSub: return "OpFSub"; case SpvOpIMul: return "OpIMul"; case SpvOpFMul: return "OpFMul"; case SpvOpUDiv: return "OpUDiv"; case SpvOpSDiv: return "OpSDiv"; case SpvOpFDiv: return "OpFDiv"; case SpvOpUMod: return "OpUMod"; case SpvOpSRem: return "OpSRem"; case SpvOpSMod: return "OpSMod"; case SpvOpFRem: return "OpFRem"; case SpvOpFMod: return "OpFMod"; case SpvOpVectorTimesScalar: return "OpVectorTimesScalar"; case SpvOpMatrixTimesScalar: return "OpMatrixTimesScalar"; case SpvOpVectorTimesMatrix: return "OpVectorTimesMatrix"; case SpvOpMatrixTimesVector: return "OpMatrixTimesVector"; case SpvOpMatrixTimesMatrix: return "OpMatrixTimesMatrix"; case SpvOpOuterProduct: return "OpOuterProduct"; case SpvOpDot: return "OpDot"; case SpvOpIAddCarry: return "OpIAddCarry"; case SpvOpISubBorrow: return "OpISubBorrow"; case SpvOpUMulExtended: return "OpUMulExtended"; case SpvOpSMulExtended: return "OpSMulExtended"; case SpvOpAny: return "OpAny"; case SpvOpAll: return "OpAll"; case SpvOpIsNan: return "OpIsNan"; case SpvOpIsInf: return "OpIsInf"; case SpvOpIsFinite: return "OpIsFinite"; case SpvOpIsNormal: return "OpIsNormal"; case SpvOpSignBitSet: return "OpSignBitSet"; case SpvOpLessOrGreater: return "OpLessOrGreater"; case SpvOpOrdered: return "OpOrdered"; case SpvOpUnordered: return "OpUnordered"; case SpvOpLogicalEqual: return "OpLogicalEqual"; case SpvOpLogicalNotEqual: return "OpLogicalNotEqual"; case SpvOpLogicalOr: return "OpLogicalOr"; case SpvOpLogicalAnd: return "OpLogicalAnd"; case SpvOpLogicalNot: return "OpLogicalNot"; case SpvOpSelect: return "OpSelect"; case SpvOpIEqual: return "OpIEqual"; case SpvOpINotEqual: return "OpINotEqual"; case SpvOpUGreaterThan: return "OpUGreaterThan"; case SpvOpSGreaterThan: return "OpSGreaterThan"; case SpvOpUGreaterThanEqual: return "OpUGreaterThanEqual"; case SpvOpSGreaterThanEqual: return "OpSGreaterThanEqual"; case SpvOpULessThan: return "OpULessThan"; case SpvOpSLessThan: return "OpSLessThan"; case SpvOpULessThanEqual: return "OpULessThanEqual"; case SpvOpSLessThanEqual: return "OpSLessThanEqual"; case SpvOpFOrdEqual: return "OpFOrdEqual"; case SpvOpFUnordEqual: return "OpFUnordEqual"; case SpvOpFOrdNotEqual: return "OpFOrdNotEqual"; case SpvOpFUnordNotEqual: return "OpFUnordNotEqual"; case SpvOpFOrdLessThan: return "OpFOrdLessThan"; case SpvOpFUnordLessThan: return "OpFUnordLessThan"; case SpvOpFOrdGreaterThan: return "OpFOrdGreaterThan"; case SpvOpFUnordGreaterThan: return "OpFUnordGreaterThan"; case SpvOpFOrdLessThanEqual: return "OpFOrdLessThanEqual"; case SpvOpFUnordLessThanEqual: return "OpFUnordLessThanEqual"; case SpvOpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual"; case SpvOpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual"; case SpvOpShiftRightLogical: return "OpShiftRightLogical"; case SpvOpShiftRightArithmetic: return "OpShiftRightArithmetic"; case SpvOpShiftLeftLogical: return "OpShiftLeftLogical"; case SpvOpBitwiseOr: return "OpBitwiseOr"; case SpvOpBitwiseXor: return "OpBitwiseXor"; case SpvOpBitwiseAnd: return "OpBitwiseAnd"; case SpvOpNot: return "OpNot"; case SpvOpBitFieldInsert: return "OpBitFieldInsert"; case SpvOpBitFieldSExtract: return "OpBitFieldSExtract"; case SpvOpBitFieldUExtract: return "OpBitFieldUExtract"; case SpvOpBitReverse: return "OpBitReverse"; case SpvOpBitCount: return "OpBitCount"; case SpvOpDPdx: return "OpDPdx"; case SpvOpDPdy: return "OpDPdy"; case SpvOpFwidth: return "OpFwidth"; case SpvOpDPdxFine: return "OpDPdxFine"; case SpvOpDPdyFine: return "OpDPdyFine"; case SpvOpFwidthFine: return "OpFwidthFine"; case SpvOpDPdxCoarse: return "OpDPdxCoarse"; case SpvOpDPdyCoarse: return "OpDPdyCoarse"; case SpvOpFwidthCoarse: return "OpFwidthCoarse"; case SpvOpEmitVertex: return "OpEmitVertex"; case SpvOpEndPrimitive: return "OpEndPrimitive"; case SpvOpEmitStreamVertex: return "OpEmitStreamVertex"; case SpvOpEndStreamPrimitive: return "OpEndStreamPrimitive"; case SpvOpControlBarrier: return "OpControlBarrier"; case SpvOpMemoryBarrier: return "OpMemoryBarrier"; case SpvOpAtomicLoad: return "OpAtomicLoad"; case SpvOpAtomicStore: return "OpAtomicStore"; case SpvOpAtomicExchange: return "OpAtomicExchange"; case SpvOpAtomicCompareExchange: return "OpAtomicCompareExchange"; case SpvOpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak"; case SpvOpAtomicIIncrement: return "OpAtomicIIncrement"; case SpvOpAtomicIDecrement: return "OpAtomicIDecrement"; case SpvOpAtomicIAdd: return "OpAtomicIAdd"; case SpvOpAtomicISub: return "OpAtomicISub"; case SpvOpAtomicSMin: return "OpAtomicSMin"; case SpvOpAtomicUMin: return "OpAtomicUMin"; case SpvOpAtomicSMax: return "OpAtomicSMax"; case SpvOpAtomicUMax: return "OpAtomicUMax"; case SpvOpAtomicAnd: return "OpAtomicAnd"; case SpvOpAtomicOr: return "OpAtomicOr"; case SpvOpAtomicXor: return "OpAtomicXor"; case SpvOpPhi: return "OpPhi"; case SpvOpLoopMerge: return "OpLoopMerge"; case SpvOpSelectionMerge: return "OpSelectionMerge"; case SpvOpLabel: return "OpLabel"; case SpvOpBranch: return "OpBranch"; case SpvOpBranchConditional: return "OpBranchConditional"; case SpvOpSwitch: return "OpSwitch"; case SpvOpKill: return "OpKill"; case SpvOpReturn: return "OpReturn"; case SpvOpReturnValue: return "OpReturnValue"; case SpvOpUnreachable: return "OpUnreachable"; case SpvOpLifetimeStart: return "OpLifetimeStart"; case SpvOpLifetimeStop: return "OpLifetimeStop"; case SpvOpGroupAsyncCopy: return "OpGroupAsyncCopy"; case SpvOpGroupWaitEvents: return "OpGroupWaitEvents"; case SpvOpGroupAll: return "OpGroupAll"; case SpvOpGroupAny: return "OpGroupAny"; case SpvOpGroupBroadcast: return "OpGroupBroadcast"; case SpvOpGroupIAdd: return "OpGroupIAdd"; case SpvOpGroupFAdd: return "OpGroupFAdd"; case SpvOpGroupFMin: return "OpGroupFMin"; case SpvOpGroupUMin: return "OpGroupUMin"; case SpvOpGroupSMin: return "OpGroupSMin"; case SpvOpGroupFMax: return "OpGroupFMax"; case SpvOpGroupUMax: return "OpGroupUMax"; case SpvOpGroupSMax: return "OpGroupSMax"; case SpvOpReadPipe: return "OpReadPipe"; case SpvOpWritePipe: return "OpWritePipe"; case SpvOpReservedReadPipe: return "OpReservedReadPipe"; case SpvOpReservedWritePipe: return "OpReservedWritePipe"; case SpvOpReserveReadPipePackets: return "OpReserveReadPipePackets"; case SpvOpReserveWritePipePackets: return "OpReserveWritePipePackets"; case SpvOpCommitReadPipe: return "OpCommitReadPipe"; case SpvOpCommitWritePipe: return "OpCommitWritePipe"; case SpvOpIsValidReserveId: return "OpIsValidReserveId"; case SpvOpGetNumPipePackets: return "OpGetNumPipePackets"; case SpvOpGetMaxPipePackets: return "OpGetMaxPipePackets"; case SpvOpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets"; case SpvOpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets"; case SpvOpGroupCommitReadPipe: return "OpGroupCommitReadPipe"; case SpvOpGroupCommitWritePipe: return "OpGroupCommitWritePipe"; case SpvOpEnqueueMarker: return "OpEnqueueMarker"; case SpvOpEnqueueKernel: return "OpEnqueueKernel"; case SpvOpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount"; case SpvOpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize"; case SpvOpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize"; case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple"; case SpvOpRetainEvent: return "OpRetainEvent"; case SpvOpReleaseEvent: return "OpReleaseEvent"; case SpvOpCreateUserEvent: return "OpCreateUserEvent"; case SpvOpIsValidEvent: return "OpIsValidEvent"; case SpvOpSetUserEventStatus: return "OpSetUserEventStatus"; case SpvOpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo"; case SpvOpGetDefaultQueue: return "OpGetDefaultQueue"; case SpvOpBuildNDRange: return "OpBuildNDRange"; case SpvOpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod"; case SpvOpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod"; case SpvOpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod"; case SpvOpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod"; case SpvOpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod"; case SpvOpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod"; case SpvOpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod"; case SpvOpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod"; case SpvOpImageSparseFetch: return "OpImageSparseFetch"; case SpvOpImageSparseGather: return "OpImageSparseGather"; case SpvOpImageSparseDrefGather: return "OpImageSparseDrefGather"; case SpvOpImageSparseTexelsResident: return "OpImageSparseTexelsResident"; case SpvOpNoLine: return "OpNoLine"; case SpvOpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet"; case SpvOpAtomicFlagClear: return "OpAtomicFlagClear"; case SpvOpImageSparseRead: return "OpImageSparseRead"; case SpvOpSizeOf: return "OpSizeOf"; case SpvOpTypePipeStorage: return "OpTypePipeStorage"; case SpvOpConstantPipeStorage: return "OpConstantPipeStorage"; case SpvOpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage"; case SpvOpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount"; case SpvOpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups"; case SpvOpTypeNamedBarrier: return "OpTypeNamedBarrier"; case SpvOpNamedBarrierInitialize: return "OpNamedBarrierInitialize"; case SpvOpMemoryNamedBarrier: return "OpMemoryNamedBarrier"; case SpvOpModuleProcessed: return "OpModuleProcessed"; case SpvOpExecutionModeId: return "OpExecutionModeId"; case SpvOpDecorateId: return "OpDecorateId"; case SpvOpGroupNonUniformElect: return "OpGroupNonUniformElect"; case SpvOpGroupNonUniformAll: return "OpGroupNonUniformAll"; case SpvOpGroupNonUniformAny: return "OpGroupNonUniformAny"; case SpvOpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual"; case SpvOpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast"; case SpvOpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst"; case SpvOpGroupNonUniformBallot: return "OpGroupNonUniformBallot"; case SpvOpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot"; case SpvOpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract"; case SpvOpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount"; case SpvOpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB"; case SpvOpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB"; case SpvOpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle"; case SpvOpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor"; case SpvOpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp"; case SpvOpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown"; case SpvOpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd"; case SpvOpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd"; case SpvOpGroupNonUniformIMul: return "OpGroupNonUniformIMul"; case SpvOpGroupNonUniformFMul: return "OpGroupNonUniformFMul"; case SpvOpGroupNonUniformSMin: return "OpGroupNonUniformSMin"; case SpvOpGroupNonUniformUMin: return "OpGroupNonUniformUMin"; case SpvOpGroupNonUniformFMin: return "OpGroupNonUniformFMin"; case SpvOpGroupNonUniformSMax: return "OpGroupNonUniformSMax"; case SpvOpGroupNonUniformUMax: return "OpGroupNonUniformUMax"; case SpvOpGroupNonUniformFMax: return "OpGroupNonUniformFMax"; case SpvOpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd"; case SpvOpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr"; case SpvOpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor"; case SpvOpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd"; case SpvOpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr"; case SpvOpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor"; case SpvOpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast"; case SpvOpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap"; case SpvOpCopyLogical: return "OpCopyLogical"; case SpvOpPtrEqual: return "OpPtrEqual"; case SpvOpPtrNotEqual: return "OpPtrNotEqual"; case SpvOpPtrDiff: return "OpPtrDiff"; case SpvOpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT"; case SpvOpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT"; case SpvOpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT"; case SpvOpTerminateInvocation: return "OpTerminateInvocation"; case SpvOpSubgroupBallotKHR: return "OpSubgroupBallotKHR"; case SpvOpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR"; case SpvOpSubgroupAllKHR: return "OpSubgroupAllKHR"; case SpvOpSubgroupAnyKHR: return "OpSubgroupAnyKHR"; case SpvOpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR"; case SpvOpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR"; case SpvOpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR"; case SpvOpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR"; case SpvOpTraceRayKHR: return "OpTraceRayKHR"; case SpvOpExecuteCallableKHR: return "OpExecuteCallableKHR"; case SpvOpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR"; case SpvOpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR"; case SpvOpTerminateRayKHR: return "OpTerminateRayKHR"; case SpvOpSDot: return "OpSDot"; case SpvOpUDot: return "OpUDot"; case SpvOpSUDot: return "OpSUDot"; case SpvOpSDotAccSat: return "OpSDotAccSat"; case SpvOpUDotAccSat: return "OpUDotAccSat"; case SpvOpSUDotAccSat: return "OpSUDotAccSat"; case SpvOpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR"; case SpvOpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR"; case SpvOpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR"; case SpvOpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR"; case SpvOpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR"; case SpvOpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT"; case SpvOpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT"; case SpvOpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT"; case SpvOpTypeRayQueryKHR: return "OpTypeRayQueryKHR"; case SpvOpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR"; case SpvOpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR"; case SpvOpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR"; case SpvOpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR"; case SpvOpRayQueryProceedKHR: return "OpRayQueryProceedKHR"; case SpvOpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR"; case SpvOpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM"; case SpvOpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM"; case SpvOpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM"; case SpvOpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM"; case SpvOpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM"; case SpvOpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM"; case SpvOpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM"; case SpvOpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM"; case SpvOpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD"; case SpvOpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD"; case SpvOpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD"; case SpvOpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD"; case SpvOpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD"; case SpvOpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD"; case SpvOpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD"; case SpvOpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD"; case SpvOpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD"; case SpvOpFragmentFetchAMD: return "OpFragmentFetchAMD"; case SpvOpReadClockKHR: return "OpReadClockKHR"; case SpvOpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX"; case SpvOpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX"; case SpvOpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX"; case SpvOpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR"; case SpvOpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR"; case SpvOpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV"; case SpvOpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV"; case SpvOpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV"; case SpvOpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV"; case SpvOpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV"; case SpvOpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV"; case SpvOpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV"; case SpvOpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV"; case SpvOpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV"; case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV"; case SpvOpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV"; case SpvOpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV"; case SpvOpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV"; case SpvOpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV"; case SpvOpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV"; case SpvOpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV"; case SpvOpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV"; case SpvOpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV"; case SpvOpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV"; case SpvOpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV"; case SpvOpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV"; case SpvOpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV"; case SpvOpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV"; case SpvOpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV"; case SpvOpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV"; case SpvOpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV"; case SpvOpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV"; case SpvOpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV"; case SpvOpHitObjectIsHitNV: return "OpHitObjectIsHitNV"; case SpvOpHitObjectIsMissNV: return "OpHitObjectIsMissNV"; case SpvOpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV"; case SpvOpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV"; case SpvOpTypeHitObjectNV: return "OpTypeHitObjectNV"; case SpvOpImageSampleFootprintNV: return "OpImageSampleFootprintNV"; case SpvOpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT"; case SpvOpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT"; case SpvOpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; case SpvOpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV"; case SpvOpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV"; case SpvOpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV"; case SpvOpReportIntersectionKHR: return "OpReportIntersectionKHR"; case SpvOpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case SpvOpTerminateRayNV: return "OpTerminateRayNV"; case SpvOpTraceNV: return "OpTraceNV"; case SpvOpTraceMotionNV: return "OpTraceMotionNV"; case SpvOpTraceRayMotionNV: return "OpTraceRayMotionNV"; case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR"; case SpvOpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR"; case SpvOpExecuteCallableNV: return "OpExecuteCallableNV"; case SpvOpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; case SpvOpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; case SpvOpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; case SpvOpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV"; case SpvOpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV"; case SpvOpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT"; case SpvOpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT"; case SpvOpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation"; case SpvOpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT"; case SpvOpConvertUToImageNV: return "OpConvertUToImageNV"; case SpvOpConvertUToSamplerNV: return "OpConvertUToSamplerNV"; case SpvOpConvertImageToUNV: return "OpConvertImageToUNV"; case SpvOpConvertSamplerToUNV: return "OpConvertSamplerToUNV"; case SpvOpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV"; case SpvOpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV"; case SpvOpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV"; case SpvOpRawAccessChainNV: return "OpRawAccessChainNV"; case SpvOpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL"; case SpvOpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL"; case SpvOpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL"; case SpvOpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL"; case SpvOpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL"; case SpvOpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL"; case SpvOpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL"; case SpvOpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL"; case SpvOpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL"; case SpvOpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL"; case SpvOpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL"; case SpvOpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL"; case SpvOpAbsISubINTEL: return "OpAbsISubINTEL"; case SpvOpAbsUSubINTEL: return "OpAbsUSubINTEL"; case SpvOpIAddSatINTEL: return "OpIAddSatINTEL"; case SpvOpUAddSatINTEL: return "OpUAddSatINTEL"; case SpvOpIAverageINTEL: return "OpIAverageINTEL"; case SpvOpUAverageINTEL: return "OpUAverageINTEL"; case SpvOpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL"; case SpvOpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL"; case SpvOpISubSatINTEL: return "OpISubSatINTEL"; case SpvOpUSubSatINTEL: return "OpUSubSatINTEL"; case SpvOpIMul32x16INTEL: return "OpIMul32x16INTEL"; case SpvOpUMul32x16INTEL: return "OpUMul32x16INTEL"; case SpvOpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL"; case SpvOpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL"; case SpvOpAsmTargetINTEL: return "OpAsmTargetINTEL"; case SpvOpAsmINTEL: return "OpAsmINTEL"; case SpvOpAsmCallINTEL: return "OpAsmCallINTEL"; case SpvOpAtomicFMinEXT: return "OpAtomicFMinEXT"; case SpvOpAtomicFMaxEXT: return "OpAtomicFMaxEXT"; case SpvOpAssumeTrueKHR: return "OpAssumeTrueKHR"; case SpvOpExpectKHR: return "OpExpectKHR"; case SpvOpDecorateString: return "OpDecorateString"; case SpvOpMemberDecorateString: return "OpMemberDecorateString"; case SpvOpVmeImageINTEL: return "OpVmeImageINTEL"; case SpvOpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL"; case SpvOpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL"; case SpvOpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL"; case SpvOpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL"; case SpvOpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL"; case SpvOpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL"; case SpvOpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL"; case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL"; case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL"; case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL"; case SpvOpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL"; case SpvOpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL"; case SpvOpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL"; case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL"; case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL"; case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL"; case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL"; case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL"; case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL"; case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL"; case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL"; case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL"; case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL"; case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL"; case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL"; case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL"; case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL"; case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL"; case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL"; case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL"; case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL"; case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL"; case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL"; case SpvOpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL"; case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL"; case SpvOpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL"; case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL"; case SpvOpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL"; case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL"; case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL"; case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL"; case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL"; case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL"; case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL"; case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL"; case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL"; case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL"; case SpvOpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL"; case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL"; case SpvOpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL"; case SpvOpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL"; case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL"; case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL"; case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL"; case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL"; case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL"; case SpvOpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL"; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL"; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL"; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL"; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL"; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL"; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL"; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL"; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL"; case SpvOpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL"; case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL"; case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL"; case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL"; case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL"; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL"; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL"; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL"; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL"; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL"; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL"; case SpvOpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL"; case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL"; case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL"; case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL"; case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL"; case SpvOpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL"; case SpvOpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL"; case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL"; case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL"; case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL"; case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL"; case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL"; case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL"; case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL"; case SpvOpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL"; case SpvOpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL"; case SpvOpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL"; case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL"; case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL"; case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL"; case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL"; case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL"; case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL"; case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL"; case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL"; case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL"; case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL"; case SpvOpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL"; case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL"; case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL"; case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL"; case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL"; case SpvOpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL"; case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL"; case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL"; case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL"; case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL"; case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL"; case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL"; case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL"; case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL"; case SpvOpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL"; case SpvOpSaveMemoryINTEL: return "OpSaveMemoryINTEL"; case SpvOpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL"; case SpvOpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL"; case SpvOpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL"; case SpvOpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL"; case SpvOpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL"; case SpvOpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL"; case SpvOpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL"; case SpvOpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL"; case SpvOpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL"; case SpvOpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL"; case SpvOpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL"; case SpvOpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL"; case SpvOpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL"; case SpvOpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL"; case SpvOpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL"; case SpvOpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL"; case SpvOpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL"; case SpvOpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL"; case SpvOpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL"; case SpvOpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL"; case SpvOpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL"; case SpvOpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL"; case SpvOpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL"; case SpvOpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL"; case SpvOpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL"; case SpvOpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL"; case SpvOpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL"; case SpvOpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL"; case SpvOpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL"; case SpvOpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL"; case SpvOpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL"; case SpvOpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL"; case SpvOpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL"; case SpvOpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL"; case SpvOpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL"; case SpvOpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL"; case SpvOpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL"; case SpvOpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL"; case SpvOpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL"; case SpvOpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL"; case SpvOpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL"; case SpvOpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL"; case SpvOpLoopControlINTEL: return "OpLoopControlINTEL"; case SpvOpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL"; case SpvOpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL"; case SpvOpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL"; case SpvOpFixedSqrtINTEL: return "OpFixedSqrtINTEL"; case SpvOpFixedRecipINTEL: return "OpFixedRecipINTEL"; case SpvOpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL"; case SpvOpFixedSinINTEL: return "OpFixedSinINTEL"; case SpvOpFixedCosINTEL: return "OpFixedCosINTEL"; case SpvOpFixedSinCosINTEL: return "OpFixedSinCosINTEL"; case SpvOpFixedSinPiINTEL: return "OpFixedSinPiINTEL"; case SpvOpFixedCosPiINTEL: return "OpFixedCosPiINTEL"; case SpvOpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL"; case SpvOpFixedLogINTEL: return "OpFixedLogINTEL"; case SpvOpFixedExpINTEL: return "OpFixedExpINTEL"; case SpvOpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL"; case SpvOpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL"; case SpvOpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL"; case SpvOpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL"; case SpvOpFPGARegINTEL: return "OpFPGARegINTEL"; case SpvOpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR"; case SpvOpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR"; case SpvOpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR"; case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR"; case SpvOpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR"; case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR"; case SpvOpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR"; case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR"; case SpvOpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR"; case SpvOpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR"; case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR"; case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR"; case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR"; case SpvOpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR"; case SpvOpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR"; case SpvOpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR"; case SpvOpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR"; case SpvOpAtomicFAddEXT: return "OpAtomicFAddEXT"; case SpvOpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL"; case SpvOpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL"; case SpvOpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL"; case SpvOpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL"; case SpvOpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL"; case SpvOpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL"; case SpvOpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL"; case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL"; case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL"; case SpvOpGroupIMulKHR: return "OpGroupIMulKHR"; case SpvOpGroupFMulKHR: return "OpGroupFMulKHR"; case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR"; case SpvOpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR"; case SpvOpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR"; case SpvOpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR"; case SpvOpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR"; case SpvOpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR"; case SpvOpMaskedGatherINTEL: return "OpMaskedGatherINTEL"; case SpvOpMaskedScatterINTEL: return "OpMaskedScatterINTEL"; default: return "Unknown"; } } #endif /* SPV_ENABLE_UTILITY_CODE */ #endif spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.hpp000066400000000000000000007653551463234063200234350ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C#, D, Beef // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL // - Beef will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10600 #define SPV_REVISION 1 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010600; static const unsigned int Revision = 1; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum SourceLanguage { SourceLanguageUnknown = 0, SourceLanguageESSL = 1, SourceLanguageGLSL = 2, SourceLanguageOpenCL_C = 3, SourceLanguageOpenCL_CPP = 4, SourceLanguageHLSL = 5, SourceLanguageCPP_for_OpenCL = 6, SourceLanguageSYCL = 7, SourceLanguageHERO_C = 8, SourceLanguageNZSL = 9, SourceLanguageWGSL = 10, SourceLanguageSlang = 11, SourceLanguageZig = 12, SourceLanguageMax = 0x7fffffff, }; enum ExecutionModel { ExecutionModelVertex = 0, ExecutionModelTessellationControl = 1, ExecutionModelTessellationEvaluation = 2, ExecutionModelGeometry = 3, ExecutionModelFragment = 4, ExecutionModelGLCompute = 5, ExecutionModelKernel = 6, ExecutionModelTaskNV = 5267, ExecutionModelMeshNV = 5268, ExecutionModelRayGenerationKHR = 5313, ExecutionModelRayGenerationNV = 5313, ExecutionModelIntersectionKHR = 5314, ExecutionModelIntersectionNV = 5314, ExecutionModelAnyHitKHR = 5315, ExecutionModelAnyHitNV = 5315, ExecutionModelClosestHitKHR = 5316, ExecutionModelClosestHitNV = 5316, ExecutionModelMissKHR = 5317, ExecutionModelMissNV = 5317, ExecutionModelCallableKHR = 5318, ExecutionModelCallableNV = 5318, ExecutionModelTaskEXT = 5364, ExecutionModelMeshEXT = 5365, ExecutionModelMax = 0x7fffffff, }; enum AddressingModel { AddressingModelLogical = 0, AddressingModelPhysical32 = 1, AddressingModelPhysical64 = 2, AddressingModelPhysicalStorageBuffer64 = 5348, AddressingModelPhysicalStorageBuffer64EXT = 5348, AddressingModelMax = 0x7fffffff, }; enum MemoryModel { MemoryModelSimple = 0, MemoryModelGLSL450 = 1, MemoryModelOpenCL = 2, MemoryModelVulkan = 3, MemoryModelVulkanKHR = 3, MemoryModelMax = 0x7fffffff, }; enum ExecutionMode { ExecutionModeInvocations = 0, ExecutionModeSpacingEqual = 1, ExecutionModeSpacingFractionalEven = 2, ExecutionModeSpacingFractionalOdd = 3, ExecutionModeVertexOrderCw = 4, ExecutionModeVertexOrderCcw = 5, ExecutionModePixelCenterInteger = 6, ExecutionModeOriginUpperLeft = 7, ExecutionModeOriginLowerLeft = 8, ExecutionModeEarlyFragmentTests = 9, ExecutionModePointMode = 10, ExecutionModeXfb = 11, ExecutionModeDepthReplacing = 12, ExecutionModeDepthGreater = 14, ExecutionModeDepthLess = 15, ExecutionModeDepthUnchanged = 16, ExecutionModeLocalSize = 17, ExecutionModeLocalSizeHint = 18, ExecutionModeInputPoints = 19, ExecutionModeInputLines = 20, ExecutionModeInputLinesAdjacency = 21, ExecutionModeTriangles = 22, ExecutionModeInputTrianglesAdjacency = 23, ExecutionModeQuads = 24, ExecutionModeIsolines = 25, ExecutionModeOutputVertices = 26, ExecutionModeOutputPoints = 27, ExecutionModeOutputLineStrip = 28, ExecutionModeOutputTriangleStrip = 29, ExecutionModeVecTypeHint = 30, ExecutionModeContractionOff = 31, ExecutionModeInitializer = 33, ExecutionModeFinalizer = 34, ExecutionModeSubgroupSize = 35, ExecutionModeSubgroupsPerWorkgroup = 36, ExecutionModeSubgroupsPerWorkgroupId = 37, ExecutionModeLocalSizeId = 38, ExecutionModeLocalSizeHintId = 39, ExecutionModeNonCoherentColorAttachmentReadEXT = 4169, ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170, ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171, ExecutionModeSubgroupUniformControlFlowKHR = 4421, ExecutionModePostDepthCoverage = 4446, ExecutionModeDenormPreserve = 4459, ExecutionModeDenormFlushToZero = 4460, ExecutionModeSignedZeroInfNanPreserve = 4461, ExecutionModeRoundingModeRTE = 4462, ExecutionModeRoundingModeRTZ = 4463, ExecutionModeEarlyAndLateFragmentTestsAMD = 5017, ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeCoalescingAMDX = 5069, ExecutionModeMaxNodeRecursionAMDX = 5071, ExecutionModeStaticNumWorkgroupsAMDX = 5072, ExecutionModeShaderIndexAMDX = 5073, ExecutionModeMaxNumWorkgroupsAMDX = 5077, ExecutionModeStencilRefUnchangedFrontAMD = 5079, ExecutionModeStencilRefGreaterFrontAMD = 5080, ExecutionModeStencilRefLessFrontAMD = 5081, ExecutionModeStencilRefUnchangedBackAMD = 5082, ExecutionModeStencilRefGreaterBackAMD = 5083, ExecutionModeStencilRefLessBackAMD = 5084, ExecutionModeQuadDerivativesKHR = 5088, ExecutionModeRequireFullQuadsKHR = 5089, ExecutionModeOutputLinesEXT = 5269, ExecutionModeOutputLinesNV = 5269, ExecutionModeOutputPrimitivesEXT = 5270, ExecutionModeOutputPrimitivesNV = 5270, ExecutionModeDerivativeGroupQuadsNV = 5289, ExecutionModeDerivativeGroupLinearNV = 5290, ExecutionModeOutputTrianglesEXT = 5298, ExecutionModeOutputTrianglesNV = 5298, ExecutionModePixelInterlockOrderedEXT = 5366, ExecutionModePixelInterlockUnorderedEXT = 5367, ExecutionModeSampleInterlockOrderedEXT = 5368, ExecutionModeSampleInterlockUnorderedEXT = 5369, ExecutionModeShadingRateInterlockOrderedEXT = 5370, ExecutionModeShadingRateInterlockUnorderedEXT = 5371, ExecutionModeSharedLocalMemorySizeINTEL = 5618, ExecutionModeRoundingModeRTPINTEL = 5620, ExecutionModeRoundingModeRTNINTEL = 5621, ExecutionModeFloatingPointModeALTINTEL = 5622, ExecutionModeFloatingPointModeIEEEINTEL = 5623, ExecutionModeMaxWorkgroupSizeINTEL = 5893, ExecutionModeMaxWorkDimINTEL = 5894, ExecutionModeNoGlobalOffsetINTEL = 5895, ExecutionModeNumSIMDWorkitemsINTEL = 5896, ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, ExecutionModeMaximallyReconvergesKHR = 6023, ExecutionModeFPFastMathDefault = 6028, ExecutionModeStreamingInterfaceINTEL = 6154, ExecutionModeRegisterMapInterfaceINTEL = 6160, ExecutionModeNamedBarrierCountINTEL = 6417, ExecutionModeMaximumRegistersINTEL = 6461, ExecutionModeMaximumRegistersIdINTEL = 6462, ExecutionModeNamedMaximumRegistersINTEL = 6463, ExecutionModeMax = 0x7fffffff, }; enum StorageClass { StorageClassUniformConstant = 0, StorageClassInput = 1, StorageClassUniform = 2, StorageClassOutput = 3, StorageClassWorkgroup = 4, StorageClassCrossWorkgroup = 5, StorageClassPrivate = 6, StorageClassFunction = 7, StorageClassGeneric = 8, StorageClassPushConstant = 9, StorageClassAtomicCounter = 10, StorageClassImage = 11, StorageClassStorageBuffer = 12, StorageClassTileImageEXT = 4172, StorageClassNodePayloadAMDX = 5068, StorageClassNodeOutputPayloadAMDX = 5076, StorageClassCallableDataKHR = 5328, StorageClassCallableDataNV = 5328, StorageClassIncomingCallableDataKHR = 5329, StorageClassIncomingCallableDataNV = 5329, StorageClassRayPayloadKHR = 5338, StorageClassRayPayloadNV = 5338, StorageClassHitAttributeKHR = 5339, StorageClassHitAttributeNV = 5339, StorageClassIncomingRayPayloadKHR = 5342, StorageClassIncomingRayPayloadNV = 5342, StorageClassShaderRecordBufferKHR = 5343, StorageClassShaderRecordBufferNV = 5343, StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBufferEXT = 5349, StorageClassHitObjectAttributeNV = 5385, StorageClassTaskPayloadWorkgroupEXT = 5402, StorageClassCodeSectionINTEL = 5605, StorageClassDeviceOnlyINTEL = 5936, StorageClassHostOnlyINTEL = 5937, StorageClassMax = 0x7fffffff, }; enum Dim { Dim1D = 0, Dim2D = 1, Dim3D = 2, DimCube = 3, DimRect = 4, DimBuffer = 5, DimSubpassData = 6, DimTileImageDataEXT = 4173, DimMax = 0x7fffffff, }; enum SamplerAddressingMode { SamplerAddressingModeNone = 0, SamplerAddressingModeClampToEdge = 1, SamplerAddressingModeClamp = 2, SamplerAddressingModeRepeat = 3, SamplerAddressingModeRepeatMirrored = 4, SamplerAddressingModeMax = 0x7fffffff, }; enum SamplerFilterMode { SamplerFilterModeNearest = 0, SamplerFilterModeLinear = 1, SamplerFilterModeMax = 0x7fffffff, }; enum ImageFormat { ImageFormatUnknown = 0, ImageFormatRgba32f = 1, ImageFormatRgba16f = 2, ImageFormatR32f = 3, ImageFormatRgba8 = 4, ImageFormatRgba8Snorm = 5, ImageFormatRg32f = 6, ImageFormatRg16f = 7, ImageFormatR11fG11fB10f = 8, ImageFormatR16f = 9, ImageFormatRgba16 = 10, ImageFormatRgb10A2 = 11, ImageFormatRg16 = 12, ImageFormatRg8 = 13, ImageFormatR16 = 14, ImageFormatR8 = 15, ImageFormatRgba16Snorm = 16, ImageFormatRg16Snorm = 17, ImageFormatRg8Snorm = 18, ImageFormatR16Snorm = 19, ImageFormatR8Snorm = 20, ImageFormatRgba32i = 21, ImageFormatRgba16i = 22, ImageFormatRgba8i = 23, ImageFormatR32i = 24, ImageFormatRg32i = 25, ImageFormatRg16i = 26, ImageFormatRg8i = 27, ImageFormatR16i = 28, ImageFormatR8i = 29, ImageFormatRgba32ui = 30, ImageFormatRgba16ui = 31, ImageFormatRgba8ui = 32, ImageFormatR32ui = 33, ImageFormatRgb10a2ui = 34, ImageFormatRg32ui = 35, ImageFormatRg16ui = 36, ImageFormatRg8ui = 37, ImageFormatR16ui = 38, ImageFormatR8ui = 39, ImageFormatR64ui = 40, ImageFormatR64i = 41, ImageFormatMax = 0x7fffffff, }; enum ImageChannelOrder { ImageChannelOrderR = 0, ImageChannelOrderA = 1, ImageChannelOrderRG = 2, ImageChannelOrderRA = 3, ImageChannelOrderRGB = 4, ImageChannelOrderRGBA = 5, ImageChannelOrderBGRA = 6, ImageChannelOrderARGB = 7, ImageChannelOrderIntensity = 8, ImageChannelOrderLuminance = 9, ImageChannelOrderRx = 10, ImageChannelOrderRGx = 11, ImageChannelOrderRGBx = 12, ImageChannelOrderDepth = 13, ImageChannelOrderDepthStencil = 14, ImageChannelOrdersRGB = 15, ImageChannelOrdersRGBx = 16, ImageChannelOrdersRGBA = 17, ImageChannelOrdersBGRA = 18, ImageChannelOrderABGR = 19, ImageChannelOrderMax = 0x7fffffff, }; enum ImageChannelDataType { ImageChannelDataTypeSnormInt8 = 0, ImageChannelDataTypeSnormInt16 = 1, ImageChannelDataTypeUnormInt8 = 2, ImageChannelDataTypeUnormInt16 = 3, ImageChannelDataTypeUnormShort565 = 4, ImageChannelDataTypeUnormShort555 = 5, ImageChannelDataTypeUnormInt101010 = 6, ImageChannelDataTypeSignedInt8 = 7, ImageChannelDataTypeSignedInt16 = 8, ImageChannelDataTypeSignedInt32 = 9, ImageChannelDataTypeUnsignedInt8 = 10, ImageChannelDataTypeUnsignedInt16 = 11, ImageChannelDataTypeUnsignedInt32 = 12, ImageChannelDataTypeHalfFloat = 13, ImageChannelDataTypeFloat = 14, ImageChannelDataTypeUnormInt24 = 15, ImageChannelDataTypeUnormInt101010_2 = 16, ImageChannelDataTypeUnsignedIntRaw10EXT = 19, ImageChannelDataTypeUnsignedIntRaw12EXT = 20, ImageChannelDataTypeMax = 0x7fffffff, }; enum ImageOperandsShift { ImageOperandsBiasShift = 0, ImageOperandsLodShift = 1, ImageOperandsGradShift = 2, ImageOperandsConstOffsetShift = 3, ImageOperandsOffsetShift = 4, ImageOperandsConstOffsetsShift = 5, ImageOperandsSampleShift = 6, ImageOperandsMinLodShift = 7, ImageOperandsMakeTexelAvailableShift = 8, ImageOperandsMakeTexelAvailableKHRShift = 8, ImageOperandsMakeTexelVisibleShift = 9, ImageOperandsMakeTexelVisibleKHRShift = 9, ImageOperandsNonPrivateTexelShift = 10, ImageOperandsNonPrivateTexelKHRShift = 10, ImageOperandsVolatileTexelShift = 11, ImageOperandsVolatileTexelKHRShift = 11, ImageOperandsSignExtendShift = 12, ImageOperandsZeroExtendShift = 13, ImageOperandsNontemporalShift = 14, ImageOperandsOffsetsShift = 16, ImageOperandsMax = 0x7fffffff, }; enum ImageOperandsMask { ImageOperandsMaskNone = 0, ImageOperandsBiasMask = 0x00000001, ImageOperandsLodMask = 0x00000002, ImageOperandsGradMask = 0x00000004, ImageOperandsConstOffsetMask = 0x00000008, ImageOperandsOffsetMask = 0x00000010, ImageOperandsConstOffsetsMask = 0x00000020, ImageOperandsSampleMask = 0x00000040, ImageOperandsMinLodMask = 0x00000080, ImageOperandsMakeTexelAvailableMask = 0x00000100, ImageOperandsMakeTexelAvailableKHRMask = 0x00000100, ImageOperandsMakeTexelVisibleMask = 0x00000200, ImageOperandsMakeTexelVisibleKHRMask = 0x00000200, ImageOperandsNonPrivateTexelMask = 0x00000400, ImageOperandsNonPrivateTexelKHRMask = 0x00000400, ImageOperandsVolatileTexelMask = 0x00000800, ImageOperandsVolatileTexelKHRMask = 0x00000800, ImageOperandsSignExtendMask = 0x00001000, ImageOperandsZeroExtendMask = 0x00002000, ImageOperandsNontemporalMask = 0x00004000, ImageOperandsOffsetsMask = 0x00010000, }; enum FPFastMathModeShift { FPFastMathModeNotNaNShift = 0, FPFastMathModeNotInfShift = 1, FPFastMathModeNSZShift = 2, FPFastMathModeAllowRecipShift = 3, FPFastMathModeFastShift = 4, FPFastMathModeAllowContractShift = 16, FPFastMathModeAllowContractFastINTELShift = 16, FPFastMathModeAllowReassocShift = 17, FPFastMathModeAllowReassocINTELShift = 17, FPFastMathModeAllowTransformShift = 18, FPFastMathModeMax = 0x7fffffff, }; enum FPFastMathModeMask { FPFastMathModeMaskNone = 0, FPFastMathModeNotNaNMask = 0x00000001, FPFastMathModeNotInfMask = 0x00000002, FPFastMathModeNSZMask = 0x00000004, FPFastMathModeAllowRecipMask = 0x00000008, FPFastMathModeFastMask = 0x00000010, FPFastMathModeAllowContractMask = 0x00010000, FPFastMathModeAllowContractFastINTELMask = 0x00010000, FPFastMathModeAllowReassocMask = 0x00020000, FPFastMathModeAllowReassocINTELMask = 0x00020000, FPFastMathModeAllowTransformMask = 0x00040000, }; enum FPRoundingMode { FPRoundingModeRTE = 0, FPRoundingModeRTZ = 1, FPRoundingModeRTP = 2, FPRoundingModeRTN = 3, FPRoundingModeMax = 0x7fffffff, }; enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, LinkageTypeLinkOnceODR = 2, LinkageTypeMax = 0x7fffffff, }; enum AccessQualifier { AccessQualifierReadOnly = 0, AccessQualifierWriteOnly = 1, AccessQualifierReadWrite = 2, AccessQualifierMax = 0x7fffffff, }; enum FunctionParameterAttribute { FunctionParameterAttributeZext = 0, FunctionParameterAttributeSext = 1, FunctionParameterAttributeByVal = 2, FunctionParameterAttributeSret = 3, FunctionParameterAttributeNoAlias = 4, FunctionParameterAttributeNoCapture = 5, FunctionParameterAttributeNoWrite = 6, FunctionParameterAttributeNoReadWrite = 7, FunctionParameterAttributeRuntimeAlignedINTEL = 5940, FunctionParameterAttributeMax = 0x7fffffff, }; enum Decoration { DecorationRelaxedPrecision = 0, DecorationSpecId = 1, DecorationBlock = 2, DecorationBufferBlock = 3, DecorationRowMajor = 4, DecorationColMajor = 5, DecorationArrayStride = 6, DecorationMatrixStride = 7, DecorationGLSLShared = 8, DecorationGLSLPacked = 9, DecorationCPacked = 10, DecorationBuiltIn = 11, DecorationNoPerspective = 13, DecorationFlat = 14, DecorationPatch = 15, DecorationCentroid = 16, DecorationSample = 17, DecorationInvariant = 18, DecorationRestrict = 19, DecorationAliased = 20, DecorationVolatile = 21, DecorationConstant = 22, DecorationCoherent = 23, DecorationNonWritable = 24, DecorationNonReadable = 25, DecorationUniform = 26, DecorationUniformId = 27, DecorationSaturatedConversion = 28, DecorationStream = 29, DecorationLocation = 30, DecorationComponent = 31, DecorationIndex = 32, DecorationBinding = 33, DecorationDescriptorSet = 34, DecorationOffset = 35, DecorationXfbBuffer = 36, DecorationXfbStride = 37, DecorationFuncParamAttr = 38, DecorationFPRoundingMode = 39, DecorationFPFastMathMode = 40, DecorationLinkageAttributes = 41, DecorationNoContraction = 42, DecorationInputAttachmentIndex = 43, DecorationAlignment = 44, DecorationMaxByteOffset = 45, DecorationAlignmentId = 46, DecorationMaxByteOffsetId = 47, DecorationNoSignedWrap = 4469, DecorationNoUnsignedWrap = 4470, DecorationWeightTextureQCOM = 4487, DecorationBlockMatchTextureQCOM = 4488, DecorationBlockMatchSamplerQCOM = 4499, DecorationExplicitInterpAMD = 4999, DecorationNodeSharesPayloadLimitsWithAMDX = 5019, DecorationNodeMaxPayloadsAMDX = 5020, DecorationTrackFinishWritingAMDX = 5078, DecorationPayloadNodeNameAMDX = 5091, DecorationOverrideCoverageNV = 5248, DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, DecorationSecondaryViewportRelativeNV = 5256, DecorationPerPrimitiveEXT = 5271, DecorationPerPrimitiveNV = 5271, DecorationPerViewNV = 5272, DecorationPerTaskNV = 5273, DecorationPerVertexKHR = 5285, DecorationPerVertexNV = 5285, DecorationNonUniform = 5300, DecorationNonUniformEXT = 5300, DecorationRestrictPointer = 5355, DecorationRestrictPointerEXT = 5355, DecorationAliasedPointer = 5356, DecorationAliasedPointerEXT = 5356, DecorationHitObjectShaderRecordBufferNV = 5386, DecorationBindlessSamplerNV = 5398, DecorationBindlessImageNV = 5399, DecorationBoundSamplerNV = 5400, DecorationBoundImageNV = 5401, DecorationSIMTCallINTEL = 5599, DecorationReferencedIndirectlyINTEL = 5602, DecorationClobberINTEL = 5607, DecorationSideEffectsINTEL = 5608, DecorationVectorComputeVariableINTEL = 5624, DecorationFuncParamIOKindINTEL = 5625, DecorationVectorComputeFunctionINTEL = 5626, DecorationStackCallINTEL = 5627, DecorationGlobalVariableOffsetINTEL = 5628, DecorationCounterBuffer = 5634, DecorationHlslCounterBufferGOOGLE = 5634, DecorationHlslSemanticGOOGLE = 5635, DecorationUserSemantic = 5635, DecorationUserTypeGOOGLE = 5636, DecorationFunctionRoundingModeINTEL = 5822, DecorationFunctionDenormModeINTEL = 5823, DecorationRegisterINTEL = 5825, DecorationMemoryINTEL = 5826, DecorationNumbanksINTEL = 5827, DecorationBankwidthINTEL = 5828, DecorationMaxPrivateCopiesINTEL = 5829, DecorationSinglepumpINTEL = 5830, DecorationDoublepumpINTEL = 5831, DecorationMaxReplicatesINTEL = 5832, DecorationSimpleDualPortINTEL = 5833, DecorationMergeINTEL = 5834, DecorationBankBitsINTEL = 5835, DecorationForcePow2DepthINTEL = 5836, DecorationStridesizeINTEL = 5883, DecorationWordsizeINTEL = 5884, DecorationTrueDualPortINTEL = 5885, DecorationBurstCoalesceINTEL = 5899, DecorationCacheSizeINTEL = 5900, DecorationDontStaticallyCoalesceINTEL = 5901, DecorationPrefetchINTEL = 5902, DecorationStallEnableINTEL = 5905, DecorationFuseLoopsInFunctionINTEL = 5907, DecorationMathOpDSPModeINTEL = 5909, DecorationAliasScopeINTEL = 5914, DecorationNoAliasINTEL = 5915, DecorationInitiationIntervalINTEL = 5917, DecorationMaxConcurrencyINTEL = 5918, DecorationPipelineEnableINTEL = 5919, DecorationBufferLocationINTEL = 5921, DecorationIOPipeStorageINTEL = 5944, DecorationFunctionFloatingPointModeINTEL = 6080, DecorationSingleElementVectorINTEL = 6085, DecorationVectorComputeCallableFunctionINTEL = 6087, DecorationMediaBlockIOINTEL = 6140, DecorationStallFreeINTEL = 6151, DecorationFPMaxErrorDecorationINTEL = 6170, DecorationLatencyControlLabelINTEL = 6172, DecorationLatencyControlConstraintINTEL = 6173, DecorationConduitKernelArgumentINTEL = 6175, DecorationRegisterMapKernelArgumentINTEL = 6176, DecorationMMHostInterfaceAddressWidthINTEL = 6177, DecorationMMHostInterfaceDataWidthINTEL = 6178, DecorationMMHostInterfaceLatencyINTEL = 6179, DecorationMMHostInterfaceReadWriteModeINTEL = 6180, DecorationMMHostInterfaceMaxBurstINTEL = 6181, DecorationMMHostInterfaceWaitRequestINTEL = 6182, DecorationStableKernelArgumentINTEL = 6183, DecorationHostAccessINTEL = 6188, DecorationInitModeINTEL = 6190, DecorationImplementInRegisterMapINTEL = 6191, DecorationCacheControlLoadINTEL = 6442, DecorationCacheControlStoreINTEL = 6443, DecorationMax = 0x7fffffff, }; enum BuiltIn { BuiltInPosition = 0, BuiltInPointSize = 1, BuiltInClipDistance = 3, BuiltInCullDistance = 4, BuiltInVertexId = 5, BuiltInInstanceId = 6, BuiltInPrimitiveId = 7, BuiltInInvocationId = 8, BuiltInLayer = 9, BuiltInViewportIndex = 10, BuiltInTessLevelOuter = 11, BuiltInTessLevelInner = 12, BuiltInTessCoord = 13, BuiltInPatchVertices = 14, BuiltInFragCoord = 15, BuiltInPointCoord = 16, BuiltInFrontFacing = 17, BuiltInSampleId = 18, BuiltInSamplePosition = 19, BuiltInSampleMask = 20, BuiltInFragDepth = 22, BuiltInHelperInvocation = 23, BuiltInNumWorkgroups = 24, BuiltInWorkgroupSize = 25, BuiltInWorkgroupId = 26, BuiltInLocalInvocationId = 27, BuiltInGlobalInvocationId = 28, BuiltInLocalInvocationIndex = 29, BuiltInWorkDim = 30, BuiltInGlobalSize = 31, BuiltInEnqueuedWorkgroupSize = 32, BuiltInGlobalOffset = 33, BuiltInGlobalLinearId = 34, BuiltInSubgroupSize = 36, BuiltInSubgroupMaxSize = 37, BuiltInNumSubgroups = 38, BuiltInNumEnqueuedSubgroups = 39, BuiltInSubgroupId = 40, BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, BuiltInCoreIDARM = 4160, BuiltInCoreCountARM = 4161, BuiltInCoreMaxIDARM = 4162, BuiltInWarpIDARM = 4163, BuiltInWarpMaxIDARM = 4164, BuiltInSubgroupEqMask = 4416, BuiltInSubgroupEqMaskKHR = 4416, BuiltInSubgroupGeMask = 4417, BuiltInSubgroupGeMaskKHR = 4417, BuiltInSubgroupGtMask = 4418, BuiltInSubgroupGtMaskKHR = 4418, BuiltInSubgroupLeMask = 4419, BuiltInSubgroupLeMaskKHR = 4419, BuiltInSubgroupLtMask = 4420, BuiltInSubgroupLtMaskKHR = 4420, BuiltInBaseVertex = 4424, BuiltInBaseInstance = 4425, BuiltInDrawIndex = 4426, BuiltInPrimitiveShadingRateKHR = 4432, BuiltInDeviceIndex = 4438, BuiltInViewIndex = 4440, BuiltInShadingRateKHR = 4444, BuiltInBaryCoordNoPerspAMD = 4992, BuiltInBaryCoordNoPerspCentroidAMD = 4993, BuiltInBaryCoordNoPerspSampleAMD = 4994, BuiltInBaryCoordSmoothAMD = 4995, BuiltInBaryCoordSmoothCentroidAMD = 4996, BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordPullModelAMD = 4998, BuiltInFragStencilRefEXT = 5014, BuiltInCoalescedInputCountAMDX = 5021, BuiltInShaderIndexAMDX = 5073, BuiltInViewportMaskNV = 5253, BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryViewportMaskNV = 5258, BuiltInPositionPerViewNV = 5261, BuiltInViewportMaskPerViewNV = 5262, BuiltInFullyCoveredEXT = 5264, BuiltInTaskCountNV = 5274, BuiltInPrimitiveCountNV = 5275, BuiltInPrimitiveIndicesNV = 5276, BuiltInClipDistancePerViewNV = 5277, BuiltInCullDistancePerViewNV = 5278, BuiltInLayerPerViewNV = 5279, BuiltInMeshViewCountNV = 5280, BuiltInMeshViewIndicesNV = 5281, BuiltInBaryCoordKHR = 5286, BuiltInBaryCoordNV = 5286, BuiltInBaryCoordNoPerspKHR = 5287, BuiltInBaryCoordNoPerspNV = 5287, BuiltInFragSizeEXT = 5292, BuiltInFragmentSizeNV = 5292, BuiltInFragInvocationCountEXT = 5293, BuiltInInvocationsPerPixelNV = 5293, BuiltInPrimitivePointIndicesEXT = 5294, BuiltInPrimitiveLineIndicesEXT = 5295, BuiltInPrimitiveTriangleIndicesEXT = 5296, BuiltInCullPrimitiveEXT = 5299, BuiltInLaunchIdKHR = 5319, BuiltInLaunchIdNV = 5319, BuiltInLaunchSizeKHR = 5320, BuiltInLaunchSizeNV = 5320, BuiltInWorldRayOriginKHR = 5321, BuiltInWorldRayOriginNV = 5321, BuiltInWorldRayDirectionKHR = 5322, BuiltInWorldRayDirectionNV = 5322, BuiltInObjectRayOriginKHR = 5323, BuiltInObjectRayOriginNV = 5323, BuiltInObjectRayDirectionKHR = 5324, BuiltInObjectRayDirectionNV = 5324, BuiltInRayTminKHR = 5325, BuiltInRayTminNV = 5325, BuiltInRayTmaxKHR = 5326, BuiltInRayTmaxNV = 5326, BuiltInInstanceCustomIndexKHR = 5327, BuiltInInstanceCustomIndexNV = 5327, BuiltInObjectToWorldKHR = 5330, BuiltInObjectToWorldNV = 5330, BuiltInWorldToObjectKHR = 5331, BuiltInWorldToObjectNV = 5331, BuiltInHitTNV = 5332, BuiltInHitKindKHR = 5333, BuiltInHitKindNV = 5333, BuiltInCurrentRayTimeNV = 5334, BuiltInHitTriangleVertexPositionsKHR = 5335, BuiltInHitMicroTriangleVertexPositionsNV = 5337, BuiltInHitMicroTriangleVertexBarycentricsNV = 5344, BuiltInIncomingRayFlagsKHR = 5351, BuiltInIncomingRayFlagsNV = 5351, BuiltInRayGeometryIndexKHR = 5352, BuiltInWarpsPerSMNV = 5374, BuiltInSMCountNV = 5375, BuiltInWarpIDNV = 5376, BuiltInSMIDNV = 5377, BuiltInHitKindFrontFacingMicroTriangleNV = 5405, BuiltInHitKindBackFacingMicroTriangleNV = 5406, BuiltInCullMaskKHR = 6021, BuiltInMax = 0x7fffffff, }; enum SelectionControlShift { SelectionControlFlattenShift = 0, SelectionControlDontFlattenShift = 1, SelectionControlMax = 0x7fffffff, }; enum SelectionControlMask { SelectionControlMaskNone = 0, SelectionControlFlattenMask = 0x00000001, SelectionControlDontFlattenMask = 0x00000002, }; enum LoopControlShift { LoopControlUnrollShift = 0, LoopControlDontUnrollShift = 1, LoopControlDependencyInfiniteShift = 2, LoopControlDependencyLengthShift = 3, LoopControlMinIterationsShift = 4, LoopControlMaxIterationsShift = 5, LoopControlIterationMultipleShift = 6, LoopControlPeelCountShift = 7, LoopControlPartialCountShift = 8, LoopControlInitiationIntervalINTELShift = 16, LoopControlMaxConcurrencyINTELShift = 17, LoopControlDependencyArrayINTELShift = 18, LoopControlPipelineEnableINTELShift = 19, LoopControlLoopCoalesceINTELShift = 20, LoopControlMaxInterleavingINTELShift = 21, LoopControlSpeculatedIterationsINTELShift = 22, LoopControlNoFusionINTELShift = 23, LoopControlLoopCountINTELShift = 24, LoopControlMaxReinvocationDelayINTELShift = 25, LoopControlMax = 0x7fffffff, }; enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, LoopControlDependencyInfiniteMask = 0x00000004, LoopControlDependencyLengthMask = 0x00000008, LoopControlMinIterationsMask = 0x00000010, LoopControlMaxIterationsMask = 0x00000020, LoopControlIterationMultipleMask = 0x00000040, LoopControlPeelCountMask = 0x00000080, LoopControlPartialCountMask = 0x00000100, LoopControlInitiationIntervalINTELMask = 0x00010000, LoopControlMaxConcurrencyINTELMask = 0x00020000, LoopControlDependencyArrayINTELMask = 0x00040000, LoopControlPipelineEnableINTELMask = 0x00080000, LoopControlLoopCoalesceINTELMask = 0x00100000, LoopControlMaxInterleavingINTELMask = 0x00200000, LoopControlSpeculatedIterationsINTELMask = 0x00400000, LoopControlNoFusionINTELMask = 0x00800000, LoopControlLoopCountINTELMask = 0x01000000, LoopControlMaxReinvocationDelayINTELMask = 0x02000000, }; enum FunctionControlShift { FunctionControlInlineShift = 0, FunctionControlDontInlineShift = 1, FunctionControlPureShift = 2, FunctionControlConstShift = 3, FunctionControlOptNoneINTELShift = 16, FunctionControlMax = 0x7fffffff, }; enum FunctionControlMask { FunctionControlMaskNone = 0, FunctionControlInlineMask = 0x00000001, FunctionControlDontInlineMask = 0x00000002, FunctionControlPureMask = 0x00000004, FunctionControlConstMask = 0x00000008, FunctionControlOptNoneINTELMask = 0x00010000, }; enum MemorySemanticsShift { MemorySemanticsAcquireShift = 1, MemorySemanticsReleaseShift = 2, MemorySemanticsAcquireReleaseShift = 3, MemorySemanticsSequentiallyConsistentShift = 4, MemorySemanticsUniformMemoryShift = 6, MemorySemanticsSubgroupMemoryShift = 7, MemorySemanticsWorkgroupMemoryShift = 8, MemorySemanticsCrossWorkgroupMemoryShift = 9, MemorySemanticsAtomicCounterMemoryShift = 10, MemorySemanticsImageMemoryShift = 11, MemorySemanticsOutputMemoryShift = 12, MemorySemanticsOutputMemoryKHRShift = 12, MemorySemanticsMakeAvailableShift = 13, MemorySemanticsMakeAvailableKHRShift = 13, MemorySemanticsMakeVisibleShift = 14, MemorySemanticsMakeVisibleKHRShift = 14, MemorySemanticsVolatileShift = 15, MemorySemanticsMax = 0x7fffffff, }; enum MemorySemanticsMask { MemorySemanticsMaskNone = 0, MemorySemanticsAcquireMask = 0x00000002, MemorySemanticsReleaseMask = 0x00000004, MemorySemanticsAcquireReleaseMask = 0x00000008, MemorySemanticsSequentiallyConsistentMask = 0x00000010, MemorySemanticsUniformMemoryMask = 0x00000040, MemorySemanticsSubgroupMemoryMask = 0x00000080, MemorySemanticsWorkgroupMemoryMask = 0x00000100, MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, MemorySemanticsAtomicCounterMemoryMask = 0x00000400, MemorySemanticsImageMemoryMask = 0x00000800, MemorySemanticsOutputMemoryMask = 0x00001000, MemorySemanticsOutputMemoryKHRMask = 0x00001000, MemorySemanticsMakeAvailableMask = 0x00002000, MemorySemanticsMakeAvailableKHRMask = 0x00002000, MemorySemanticsMakeVisibleMask = 0x00004000, MemorySemanticsMakeVisibleKHRMask = 0x00004000, MemorySemanticsVolatileMask = 0x00008000, }; enum MemoryAccessShift { MemoryAccessVolatileShift = 0, MemoryAccessAlignedShift = 1, MemoryAccessNontemporalShift = 2, MemoryAccessMakePointerAvailableShift = 3, MemoryAccessMakePointerAvailableKHRShift = 3, MemoryAccessMakePointerVisibleShift = 4, MemoryAccessMakePointerVisibleKHRShift = 4, MemoryAccessNonPrivatePointerShift = 5, MemoryAccessNonPrivatePointerKHRShift = 5, MemoryAccessAliasScopeINTELMaskShift = 16, MemoryAccessNoAliasINTELMaskShift = 17, MemoryAccessMax = 0x7fffffff, }; enum MemoryAccessMask { MemoryAccessMaskNone = 0, MemoryAccessVolatileMask = 0x00000001, MemoryAccessAlignedMask = 0x00000002, MemoryAccessNontemporalMask = 0x00000004, MemoryAccessMakePointerAvailableMask = 0x00000008, MemoryAccessMakePointerAvailableKHRMask = 0x00000008, MemoryAccessMakePointerVisibleMask = 0x00000010, MemoryAccessMakePointerVisibleKHRMask = 0x00000010, MemoryAccessNonPrivatePointerMask = 0x00000020, MemoryAccessNonPrivatePointerKHRMask = 0x00000020, MemoryAccessAliasScopeINTELMaskMask = 0x00010000, MemoryAccessNoAliasINTELMaskMask = 0x00020000, }; enum Scope { ScopeCrossDevice = 0, ScopeDevice = 1, ScopeWorkgroup = 2, ScopeSubgroup = 3, ScopeInvocation = 4, ScopeQueueFamily = 5, ScopeQueueFamilyKHR = 5, ScopeShaderCallKHR = 6, ScopeMax = 0x7fffffff, }; enum GroupOperation { GroupOperationReduce = 0, GroupOperationInclusiveScan = 1, GroupOperationExclusiveScan = 2, GroupOperationClusteredReduce = 3, GroupOperationPartitionedReduceNV = 6, GroupOperationPartitionedInclusiveScanNV = 7, GroupOperationPartitionedExclusiveScanNV = 8, GroupOperationMax = 0x7fffffff, }; enum KernelEnqueueFlags { KernelEnqueueFlagsNoWait = 0, KernelEnqueueFlagsWaitKernel = 1, KernelEnqueueFlagsWaitWorkGroup = 2, KernelEnqueueFlagsMax = 0x7fffffff, }; enum KernelProfilingInfoShift { KernelProfilingInfoCmdExecTimeShift = 0, KernelProfilingInfoMax = 0x7fffffff, }; enum KernelProfilingInfoMask { KernelProfilingInfoMaskNone = 0, KernelProfilingInfoCmdExecTimeMask = 0x00000001, }; enum Capability { CapabilityMatrix = 0, CapabilityShader = 1, CapabilityGeometry = 2, CapabilityTessellation = 3, CapabilityAddresses = 4, CapabilityLinkage = 5, CapabilityKernel = 6, CapabilityVector16 = 7, CapabilityFloat16Buffer = 8, CapabilityFloat16 = 9, CapabilityFloat64 = 10, CapabilityInt64 = 11, CapabilityInt64Atomics = 12, CapabilityImageBasic = 13, CapabilityImageReadWrite = 14, CapabilityImageMipmap = 15, CapabilityPipes = 17, CapabilityGroups = 18, CapabilityDeviceEnqueue = 19, CapabilityLiteralSampler = 20, CapabilityAtomicStorage = 21, CapabilityInt16 = 22, CapabilityTessellationPointSize = 23, CapabilityGeometryPointSize = 24, CapabilityImageGatherExtended = 25, CapabilityStorageImageMultisample = 27, CapabilityUniformBufferArrayDynamicIndexing = 28, CapabilitySampledImageArrayDynamicIndexing = 29, CapabilityStorageBufferArrayDynamicIndexing = 30, CapabilityStorageImageArrayDynamicIndexing = 31, CapabilityClipDistance = 32, CapabilityCullDistance = 33, CapabilityImageCubeArray = 34, CapabilitySampleRateShading = 35, CapabilityImageRect = 36, CapabilitySampledRect = 37, CapabilityGenericPointer = 38, CapabilityInt8 = 39, CapabilityInputAttachment = 40, CapabilitySparseResidency = 41, CapabilityMinLod = 42, CapabilitySampled1D = 43, CapabilityImage1D = 44, CapabilitySampledCubeArray = 45, CapabilitySampledBuffer = 46, CapabilityImageBuffer = 47, CapabilityImageMSArray = 48, CapabilityStorageImageExtendedFormats = 49, CapabilityImageQuery = 50, CapabilityDerivativeControl = 51, CapabilityInterpolationFunction = 52, CapabilityTransformFeedback = 53, CapabilityGeometryStreams = 54, CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, CapabilitySubgroupDispatch = 58, CapabilityNamedBarrier = 59, CapabilityPipeStorage = 60, CapabilityGroupNonUniform = 61, CapabilityGroupNonUniformVote = 62, CapabilityGroupNonUniformArithmetic = 63, CapabilityGroupNonUniformBallot = 64, CapabilityGroupNonUniformShuffle = 65, CapabilityGroupNonUniformShuffleRelative = 66, CapabilityGroupNonUniformClustered = 67, CapabilityGroupNonUniformQuad = 68, CapabilityShaderLayer = 69, CapabilityShaderViewportIndex = 70, CapabilityUniformDecoration = 71, CapabilityCoreBuiltinsARM = 4165, CapabilityTileImageColorReadAccessEXT = 4166, CapabilityTileImageDepthReadAccessEXT = 4167, CapabilityTileImageStencilReadAccessEXT = 4168, CapabilityCooperativeMatrixLayoutsARM = 4201, CapabilityFragmentShadingRateKHR = 4422, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, CapabilitySubgroupVoteKHR = 4431, CapabilityStorageBuffer16BitAccess = 4433, CapabilityStorageUniformBufferBlock16 = 4433, CapabilityStorageUniform16 = 4434, CapabilityUniformAndStorageBuffer16BitAccess = 4434, CapabilityStoragePushConstant16 = 4435, CapabilityStorageInputOutput16 = 4436, CapabilityDeviceGroup = 4437, CapabilityMultiView = 4439, CapabilityVariablePointersStorageBuffer = 4441, CapabilityVariablePointers = 4442, CapabilityAtomicStorageOps = 4445, CapabilitySampleMaskPostDepthCoverage = 4447, CapabilityStorageBuffer8BitAccess = 4448, CapabilityUniformAndStorageBuffer8BitAccess = 4449, CapabilityStoragePushConstant8 = 4450, CapabilityDenormPreserve = 4464, CapabilityDenormFlushToZero = 4465, CapabilitySignedZeroInfNanPreserve = 4466, CapabilityRoundingModeRTE = 4467, CapabilityRoundingModeRTZ = 4468, CapabilityRayQueryProvisionalKHR = 4471, CapabilityRayQueryKHR = 4472, CapabilityRayTraversalPrimitiveCullingKHR = 4478, CapabilityRayTracingKHR = 4479, CapabilityTextureSampleWeightedQCOM = 4484, CapabilityTextureBoxFilterQCOM = 4485, CapabilityTextureBlockMatchQCOM = 4486, CapabilityTextureBlockMatch2QCOM = 4498, CapabilityFloat16ImageAMD = 5008, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, CapabilityStencilExportEXT = 5013, CapabilityImageReadWriteLodAMD = 5015, CapabilityInt64ImageEXT = 5016, CapabilityShaderClockKHR = 5055, CapabilityShaderEnqueueAMDX = 5067, CapabilityQuadControlKHR = 5087, CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilityGeometryShaderPassthroughNV = 5251, CapabilityShaderViewportIndexLayerEXT = 5254, CapabilityShaderViewportIndexLayerNV = 5254, CapabilityShaderViewportMaskNV = 5255, CapabilityShaderStereoViewNV = 5259, CapabilityPerViewAttributesNV = 5260, CapabilityFragmentFullyCoveredEXT = 5265, CapabilityMeshShadingNV = 5266, CapabilityImageFootprintNV = 5282, CapabilityMeshShadingEXT = 5283, CapabilityFragmentBarycentricKHR = 5284, CapabilityFragmentBarycentricNV = 5284, CapabilityComputeDerivativeGroupQuadsNV = 5288, CapabilityFragmentDensityEXT = 5291, CapabilityShadingRateNV = 5291, CapabilityGroupNonUniformPartitionedNV = 5297, CapabilityShaderNonUniform = 5301, CapabilityShaderNonUniformEXT = 5301, CapabilityRuntimeDescriptorArray = 5302, CapabilityRuntimeDescriptorArrayEXT = 5302, CapabilityInputAttachmentArrayDynamicIndexing = 5303, CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, CapabilityUniformTexelBufferArrayDynamicIndexing = 5304, CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, CapabilityStorageTexelBufferArrayDynamicIndexing = 5305, CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, CapabilityUniformBufferArrayNonUniformIndexing = 5306, CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, CapabilitySampledImageArrayNonUniformIndexing = 5307, CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, CapabilityStorageBufferArrayNonUniformIndexing = 5308, CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, CapabilityStorageImageArrayNonUniformIndexing = 5309, CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, CapabilityInputAttachmentArrayNonUniformIndexing = 5310, CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, CapabilityRayTracingPositionFetchKHR = 5336, CapabilityRayTracingNV = 5340, CapabilityRayTracingMotionBlurNV = 5341, CapabilityVulkanMemoryModel = 5345, CapabilityVulkanMemoryModelKHR = 5345, CapabilityVulkanMemoryModelDeviceScope = 5346, CapabilityVulkanMemoryModelDeviceScopeKHR = 5346, CapabilityPhysicalStorageBufferAddresses = 5347, CapabilityPhysicalStorageBufferAddressesEXT = 5347, CapabilityComputeDerivativeGroupLinearNV = 5350, CapabilityRayTracingProvisionalKHR = 5353, CapabilityCooperativeMatrixNV = 5357, CapabilityFragmentShaderSampleInterlockEXT = 5363, CapabilityFragmentShaderShadingRateInterlockEXT = 5372, CapabilityShaderSMBuiltinsNV = 5373, CapabilityFragmentShaderPixelInterlockEXT = 5378, CapabilityDemoteToHelperInvocation = 5379, CapabilityDemoteToHelperInvocationEXT = 5379, CapabilityDisplacementMicromapNV = 5380, CapabilityRayTracingOpacityMicromapEXT = 5381, CapabilityShaderInvocationReorderNV = 5383, CapabilityBindlessTextureNV = 5390, CapabilityRayQueryPositionFetchKHR = 5391, CapabilityAtomicFloat16VectorNV = 5404, CapabilityRayTracingDisplacementMicromapNV = 5409, CapabilityRawAccessChainsNV = 5414, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilitySubgroupImageMediaBlockIOINTEL = 5579, CapabilityRoundToInfinityINTEL = 5582, CapabilityFloatingPointModeINTEL = 5583, CapabilityIntegerFunctions2INTEL = 5584, CapabilityFunctionPointersINTEL = 5603, CapabilityIndirectReferencesINTEL = 5604, CapabilityAsmINTEL = 5606, CapabilityAtomicFloat32MinMaxEXT = 5612, CapabilityAtomicFloat64MinMaxEXT = 5613, CapabilityAtomicFloat16MinMaxEXT = 5616, CapabilityVectorComputeINTEL = 5617, CapabilityVectorAnyINTEL = 5619, CapabilityExpectAssumeKHR = 5629, CapabilitySubgroupAvcMotionEstimationINTEL = 5696, CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, CapabilityVariableLengthArrayINTEL = 5817, CapabilityFunctionFloatControlINTEL = 5821, CapabilityFPGAMemoryAttributesINTEL = 5824, CapabilityFPFastMathModeINTEL = 5837, CapabilityArbitraryPrecisionIntegersINTEL = 5844, CapabilityArbitraryPrecisionFloatingPointINTEL = 5845, CapabilityUnstructuredLoopControlsINTEL = 5886, CapabilityFPGALoopControlsINTEL = 5888, CapabilityKernelAttributesINTEL = 5892, CapabilityFPGAKernelAttributesINTEL = 5897, CapabilityFPGAMemoryAccessesINTEL = 5898, CapabilityFPGAClusterAttributesINTEL = 5904, CapabilityLoopFuseINTEL = 5906, CapabilityFPGADSPControlINTEL = 5908, CapabilityMemoryAccessAliasingINTEL = 5910, CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916, CapabilityFPGABufferLocationINTEL = 5920, CapabilityArbitraryPrecisionFixedPointINTEL = 5922, CapabilityUSMStorageClassesINTEL = 5935, CapabilityRuntimeAlignedAttributeINTEL = 5939, CapabilityIOPipesINTEL = 5943, CapabilityBlockingPipesINTEL = 5945, CapabilityFPGARegINTEL = 5948, CapabilityDotProductInputAll = 6016, CapabilityDotProductInputAllKHR = 6016, CapabilityDotProductInput4x8Bit = 6017, CapabilityDotProductInput4x8BitKHR = 6017, CapabilityDotProductInput4x8BitPacked = 6018, CapabilityDotProductInput4x8BitPackedKHR = 6018, CapabilityDotProduct = 6019, CapabilityDotProductKHR = 6019, CapabilityRayCullMaskKHR = 6020, CapabilityCooperativeMatrixKHR = 6022, CapabilityReplicatedCompositesEXT = 6024, CapabilityBitInstructions = 6025, CapabilityGroupNonUniformRotateKHR = 6026, CapabilityFloatControls2 = 6029, CapabilityAtomicFloat32AddEXT = 6033, CapabilityAtomicFloat64AddEXT = 6034, CapabilityLongCompositesINTEL = 6089, CapabilityOptNoneINTEL = 6094, CapabilityAtomicFloat16AddEXT = 6095, CapabilityDebugInfoModuleINTEL = 6114, CapabilityBFloat16ConversionINTEL = 6115, CapabilitySplitBarrierINTEL = 6141, CapabilityFPGAClusterAttributesV2INTEL = 6150, CapabilityFPGAKernelAttributesv2INTEL = 6161, CapabilityFPMaxErrorINTEL = 6169, CapabilityFPGALatencyControlINTEL = 6171, CapabilityFPGAArgumentInterfacesINTEL = 6174, CapabilityGlobalVariableHostAccessINTEL = 6187, CapabilityGlobalVariableFPGADecorationsINTEL = 6189, CapabilityGroupUniformArithmeticKHR = 6400, CapabilityMaskedGatherScatterINTEL = 6427, CapabilityCacheControlsINTEL = 6441, CapabilityRegisterLimitsINTEL = 6460, CapabilityMax = 0x7fffffff, }; enum RayFlagsShift { RayFlagsOpaqueKHRShift = 0, RayFlagsNoOpaqueKHRShift = 1, RayFlagsTerminateOnFirstHitKHRShift = 2, RayFlagsSkipClosestHitShaderKHRShift = 3, RayFlagsCullBackFacingTrianglesKHRShift = 4, RayFlagsCullFrontFacingTrianglesKHRShift = 5, RayFlagsCullOpaqueKHRShift = 6, RayFlagsCullNoOpaqueKHRShift = 7, RayFlagsSkipTrianglesKHRShift = 8, RayFlagsSkipAABBsKHRShift = 9, RayFlagsForceOpacityMicromap2StateEXTShift = 10, RayFlagsMax = 0x7fffffff, }; enum RayFlagsMask { RayFlagsMaskNone = 0, RayFlagsOpaqueKHRMask = 0x00000001, RayFlagsNoOpaqueKHRMask = 0x00000002, RayFlagsTerminateOnFirstHitKHRMask = 0x00000004, RayFlagsSkipClosestHitShaderKHRMask = 0x00000008, RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010, RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020, RayFlagsCullOpaqueKHRMask = 0x00000040, RayFlagsCullNoOpaqueKHRMask = 0x00000080, RayFlagsSkipTrianglesKHRMask = 0x00000100, RayFlagsSkipAABBsKHRMask = 0x00000200, RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400, }; enum RayQueryIntersection { RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0, RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1, RayQueryIntersectionMax = 0x7fffffff, }; enum RayQueryCommittedIntersectionType { RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0, RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1, RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2, RayQueryCommittedIntersectionTypeMax = 0x7fffffff, }; enum RayQueryCandidateIntersectionType { RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0, RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1, RayQueryCandidateIntersectionTypeMax = 0x7fffffff, }; enum FragmentShadingRateShift { FragmentShadingRateVertical2PixelsShift = 0, FragmentShadingRateVertical4PixelsShift = 1, FragmentShadingRateHorizontal2PixelsShift = 2, FragmentShadingRateHorizontal4PixelsShift = 3, FragmentShadingRateMax = 0x7fffffff, }; enum FragmentShadingRateMask { FragmentShadingRateMaskNone = 0, FragmentShadingRateVertical2PixelsMask = 0x00000001, FragmentShadingRateVertical4PixelsMask = 0x00000002, FragmentShadingRateHorizontal2PixelsMask = 0x00000004, FragmentShadingRateHorizontal4PixelsMask = 0x00000008, }; enum FPDenormMode { FPDenormModePreserve = 0, FPDenormModeFlushToZero = 1, FPDenormModeMax = 0x7fffffff, }; enum FPOperationMode { FPOperationModeIEEE = 0, FPOperationModeALT = 1, FPOperationModeMax = 0x7fffffff, }; enum QuantizationModes { QuantizationModesTRN = 0, QuantizationModesTRN_ZERO = 1, QuantizationModesRND = 2, QuantizationModesRND_ZERO = 3, QuantizationModesRND_INF = 4, QuantizationModesRND_MIN_INF = 5, QuantizationModesRND_CONV = 6, QuantizationModesRND_CONV_ODD = 7, QuantizationModesMax = 0x7fffffff, }; enum OverflowModes { OverflowModesWRAP = 0, OverflowModesSAT = 1, OverflowModesSAT_ZERO = 2, OverflowModesSAT_SYM = 3, OverflowModesMax = 0x7fffffff, }; enum PackedVectorFormat { PackedVectorFormatPackedVectorFormat4x8Bit = 0, PackedVectorFormatPackedVectorFormat4x8BitKHR = 0, PackedVectorFormatMax = 0x7fffffff, }; enum CooperativeMatrixOperandsShift { CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0, CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1, CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2, CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3, CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4, CooperativeMatrixOperandsMax = 0x7fffffff, }; enum CooperativeMatrixOperandsMask { CooperativeMatrixOperandsMaskNone = 0, CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001, CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002, CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004, CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008, CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010, }; enum CooperativeMatrixLayout { CooperativeMatrixLayoutRowMajorKHR = 0, CooperativeMatrixLayoutColumnMajorKHR = 1, CooperativeMatrixLayoutRowBlockedInterleavedARM = 4202, CooperativeMatrixLayoutColumnBlockedInterleavedARM = 4203, CooperativeMatrixLayoutMax = 0x7fffffff, }; enum CooperativeMatrixUse { CooperativeMatrixUseMatrixAKHR = 0, CooperativeMatrixUseMatrixBKHR = 1, CooperativeMatrixUseMatrixAccumulatorKHR = 2, CooperativeMatrixUseMax = 0x7fffffff, }; enum InitializationModeQualifier { InitializationModeQualifierInitOnDeviceReprogramINTEL = 0, InitializationModeQualifierInitOnDeviceResetINTEL = 1, InitializationModeQualifierMax = 0x7fffffff, }; enum HostAccessQualifier { HostAccessQualifierNoneINTEL = 0, HostAccessQualifierReadINTEL = 1, HostAccessQualifierWriteINTEL = 2, HostAccessQualifierReadWriteINTEL = 3, HostAccessQualifierMax = 0x7fffffff, }; enum LoadCacheControl { LoadCacheControlUncachedINTEL = 0, LoadCacheControlCachedINTEL = 1, LoadCacheControlStreamingINTEL = 2, LoadCacheControlInvalidateAfterReadINTEL = 3, LoadCacheControlConstCachedINTEL = 4, LoadCacheControlMax = 0x7fffffff, }; enum StoreCacheControl { StoreCacheControlUncachedINTEL = 0, StoreCacheControlWriteThroughINTEL = 1, StoreCacheControlWriteBackINTEL = 2, StoreCacheControlStreamingINTEL = 3, StoreCacheControlMax = 0x7fffffff, }; enum NamedMaximumNumberOfRegisters { NamedMaximumNumberOfRegistersAutoINTEL = 0, NamedMaximumNumberOfRegistersMax = 0x7fffffff, }; enum RawAccessChainOperandsShift { RawAccessChainOperandsRobustnessPerComponentNVShift = 0, RawAccessChainOperandsRobustnessPerElementNVShift = 1, RawAccessChainOperandsMax = 0x7fffffff, }; enum RawAccessChainOperandsMask { RawAccessChainOperandsMaskNone = 0, RawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001, RawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002, }; enum Op { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpGroupNonUniformElect = 333, OpGroupNonUniformAll = 334, OpGroupNonUniformAny = 335, OpGroupNonUniformAllEqual = 336, OpGroupNonUniformBroadcast = 337, OpGroupNonUniformBroadcastFirst = 338, OpGroupNonUniformBallot = 339, OpGroupNonUniformInverseBallot = 340, OpGroupNonUniformBallotBitExtract = 341, OpGroupNonUniformBallotBitCount = 342, OpGroupNonUniformBallotFindLSB = 343, OpGroupNonUniformBallotFindMSB = 344, OpGroupNonUniformShuffle = 345, OpGroupNonUniformShuffleXor = 346, OpGroupNonUniformShuffleUp = 347, OpGroupNonUniformShuffleDown = 348, OpGroupNonUniformIAdd = 349, OpGroupNonUniformFAdd = 350, OpGroupNonUniformIMul = 351, OpGroupNonUniformFMul = 352, OpGroupNonUniformSMin = 353, OpGroupNonUniformUMin = 354, OpGroupNonUniformFMin = 355, OpGroupNonUniformSMax = 356, OpGroupNonUniformUMax = 357, OpGroupNonUniformFMax = 358, OpGroupNonUniformBitwiseAnd = 359, OpGroupNonUniformBitwiseOr = 360, OpGroupNonUniformBitwiseXor = 361, OpGroupNonUniformLogicalAnd = 362, OpGroupNonUniformLogicalOr = 363, OpGroupNonUniformLogicalXor = 364, OpGroupNonUniformQuadBroadcast = 365, OpGroupNonUniformQuadSwap = 366, OpCopyLogical = 400, OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, OpSDot = 4450, OpSDotKHR = 4450, OpUDot = 4451, OpUDotKHR = 4451, OpSUDot = 4452, OpSUDotKHR = 4452, OpSDotAccSat = 4453, OpSDotAccSatKHR = 4453, OpUDotAccSat = 4454, OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, OpTypeCooperativeMatrixKHR = 4456, OpCooperativeMatrixLoadKHR = 4457, OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, OpConstantCompositeReplicateEXT = 4461, OpSpecConstantCompositeReplicateEXT = 4462, OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, OpRayQueryGenerateIntersectionKHR = 4475, OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, OpImageSampleWeightedQCOM = 4480, OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpFinalizeNodePayloadsAMDX = 5075, OpFinishWritingNodePayloadAMDX = 5078, OpInitializeNodePayloadsAMDX = 5090, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, OpHitObjectRecordHitWithIndexMotionNV = 5250, OpHitObjectRecordMissMotionNV = 5251, OpHitObjectGetWorldToObjectNV = 5252, OpHitObjectGetObjectToWorldNV = 5253, OpHitObjectGetObjectRayDirectionNV = 5254, OpHitObjectGetObjectRayOriginNV = 5255, OpHitObjectTraceRayMotionNV = 5256, OpHitObjectGetShaderRecordBufferHandleNV = 5257, OpHitObjectGetShaderBindingTableRecordIndexNV = 5258, OpHitObjectRecordEmptyNV = 5259, OpHitObjectTraceRayNV = 5260, OpHitObjectRecordHitNV = 5261, OpHitObjectRecordHitWithIndexNV = 5262, OpHitObjectRecordMissNV = 5263, OpHitObjectExecuteShaderNV = 5264, OpHitObjectGetCurrentTimeNV = 5265, OpHitObjectGetAttributesNV = 5266, OpHitObjectGetHitKindNV = 5267, OpHitObjectGetPrimitiveIndexNV = 5268, OpHitObjectGetGeometryIndexNV = 5269, OpHitObjectGetInstanceIdNV = 5270, OpHitObjectGetInstanceCustomIndexNV = 5271, OpHitObjectGetWorldRayDirectionNV = 5272, OpHitObjectGetWorldRayOriginNV = 5273, OpHitObjectGetRayTMaxNV = 5274, OpHitObjectGetRayTMinNV = 5275, OpHitObjectIsEmptyNV = 5276, OpHitObjectIsHitNV = 5277, OpHitObjectIsMissNV = 5278, OpReorderThreadWithHitObjectNV = 5279, OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, OpConvertSamplerToUNV = 5394, OpConvertUToSampledImageNV = 5395, OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpSubgroupImageMediaBlockReadINTEL = 5580, OpSubgroupImageMediaBlockWriteINTEL = 5581, OpUCountLeadingZerosINTEL = 5585, OpUCountTrailingZerosINTEL = 5586, OpAbsISubINTEL = 5587, OpAbsUSubINTEL = 5588, OpIAddSatINTEL = 5589, OpUAddSatINTEL = 5590, OpIAverageINTEL = 5591, OpUAverageINTEL = 5592, OpIAverageRoundedINTEL = 5593, OpUAverageRoundedINTEL = 5594, OpISubSatINTEL = 5595, OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, OpAsmTargetINTEL = 5609, OpAsmINTEL = 5610, OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, OpAssumeTrueKHR = 5630, OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, OpMemberDecorateStringGOOGLE = 5633, OpVmeImageINTEL = 5699, OpTypeVmeImageINTEL = 5700, OpTypeAvcImePayloadINTEL = 5701, OpTypeAvcRefPayloadINTEL = 5702, OpTypeAvcSicPayloadINTEL = 5703, OpTypeAvcMcePayloadINTEL = 5704, OpTypeAvcMceResultINTEL = 5705, OpTypeAvcImeResultINTEL = 5706, OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, OpTypeAvcImeDualReferenceStreaminINTEL = 5710, OpTypeAvcRefResultINTEL = 5711, OpTypeAvcSicResultINTEL = 5712, OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, OpSubgroupAvcMceConvertToImeResultINTEL = 5733, OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, OpSubgroupAvcMceConvertToRefResultINTEL = 5735, OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, OpSubgroupAvcMceConvertToSicResultINTEL = 5737, OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, OpSubgroupAvcImeInitializeINTEL = 5747, OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, OpSubgroupAvcImeSetDualReferenceINTEL = 5749, OpSubgroupAvcImeRefWindowSizeINTEL = 5750, OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, OpSubgroupAvcImeSetWeightedSadINTEL = 5756, OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, OpSubgroupAvcImeConvertToMceResultINTEL = 5765, OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, OpSubgroupAvcImeGetBorderReachedINTEL = 5776, OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, OpSubgroupAvcFmeInitializeINTEL = 5781, OpSubgroupAvcBmeInitializeINTEL = 5782, OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, OpSubgroupAvcRefConvertToMceResultINTEL = 5790, OpSubgroupAvcSicInitializeINTEL = 5791, OpSubgroupAvcSicConfigureSkcINTEL = 5792, OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, OpSubgroupAvcSicEvaluateIpeINTEL = 5803, OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, OpSubgroupAvcSicConvertToMceResultINTEL = 5808, OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, OpArbitraryFloatSinCosPiINTEL = 5840, OpArbitraryFloatCastINTEL = 5841, OpArbitraryFloatCastFromIntINTEL = 5842, OpArbitraryFloatCastToIntINTEL = 5843, OpArbitraryFloatAddINTEL = 5846, OpArbitraryFloatSubINTEL = 5847, OpArbitraryFloatMulINTEL = 5848, OpArbitraryFloatDivINTEL = 5849, OpArbitraryFloatGTINTEL = 5850, OpArbitraryFloatGEINTEL = 5851, OpArbitraryFloatLTINTEL = 5852, OpArbitraryFloatLEINTEL = 5853, OpArbitraryFloatEQINTEL = 5854, OpArbitraryFloatRecipINTEL = 5855, OpArbitraryFloatRSqrtINTEL = 5856, OpArbitraryFloatCbrtINTEL = 5857, OpArbitraryFloatHypotINTEL = 5858, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, OpArbitraryFloatLog10INTEL = 5862, OpArbitraryFloatLog1pINTEL = 5863, OpArbitraryFloatExpINTEL = 5864, OpArbitraryFloatExp2INTEL = 5865, OpArbitraryFloatExp10INTEL = 5866, OpArbitraryFloatExpm1INTEL = 5867, OpArbitraryFloatSinINTEL = 5868, OpArbitraryFloatCosINTEL = 5869, OpArbitraryFloatSinCosINTEL = 5870, OpArbitraryFloatSinPiINTEL = 5871, OpArbitraryFloatCosPiINTEL = 5872, OpArbitraryFloatASinINTEL = 5873, OpArbitraryFloatASinPiINTEL = 5874, OpArbitraryFloatACosINTEL = 5875, OpArbitraryFloatACosPiINTEL = 5876, OpArbitraryFloatATanINTEL = 5877, OpArbitraryFloatATanPiINTEL = 5878, OpArbitraryFloatATan2INTEL = 5879, OpArbitraryFloatPowINTEL = 5880, OpArbitraryFloatPowRINTEL = 5881, OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, OpFixedSqrtINTEL = 5923, OpFixedRecipINTEL = 5924, OpFixedRsqrtINTEL = 5925, OpFixedSinINTEL = 5926, OpFixedCosINTEL = 5927, OpFixedSinCosINTEL = 5928, OpFixedSinPiINTEL = 5929, OpFixedCosPiINTEL = 5930, OpFixedSinCosPiINTEL = 5931, OpFixedLogINTEL = 5932, OpFixedExpINTEL = 5933, OpPtrCastToCrossWorkgroupINTEL = 5934, OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, OpRayQueryGetIntersectionTKHR = 6018, OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, OpRayQueryGetIntersectionInstanceIdKHR = 6020, OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, OpRayQueryGetIntersectionGeometryIndexKHR = 6022, OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, OpRayQueryGetIntersectionBarycentricsKHR = 6024, OpRayQueryGetIntersectionFrontFaceKHR = 6025, OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, OpRayQueryGetWorldRayDirectionKHR = 6029, OpRayQueryGetWorldRayOriginKHR = 6030, OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, OpTypeBufferSurfaceINTEL = 6086, OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, OpCompositeConstructContinuedINTEL = 6096, OpConvertFToBF16INTEL = 6116, OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, OpGroupBitwiseOrKHR = 6404, OpGroupBitwiseXorKHR = 6405, OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, OpMax = 0x7fffffff, }; #ifdef SPV_ENABLE_UTILITY_CODE #ifndef __cplusplus #include #endif inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { *hasResult = *hasResultType = false; switch (opcode) { default: /* unknown opcode */ break; case OpNop: *hasResult = false; *hasResultType = false; break; case OpUndef: *hasResult = true; *hasResultType = true; break; case OpSourceContinued: *hasResult = false; *hasResultType = false; break; case OpSource: *hasResult = false; *hasResultType = false; break; case OpSourceExtension: *hasResult = false; *hasResultType = false; break; case OpName: *hasResult = false; *hasResultType = false; break; case OpMemberName: *hasResult = false; *hasResultType = false; break; case OpString: *hasResult = true; *hasResultType = false; break; case OpLine: *hasResult = false; *hasResultType = false; break; case OpExtension: *hasResult = false; *hasResultType = false; break; case OpExtInstImport: *hasResult = true; *hasResultType = false; break; case OpExtInst: *hasResult = true; *hasResultType = true; break; case OpMemoryModel: *hasResult = false; *hasResultType = false; break; case OpEntryPoint: *hasResult = false; *hasResultType = false; break; case OpExecutionMode: *hasResult = false; *hasResultType = false; break; case OpCapability: *hasResult = false; *hasResultType = false; break; case OpTypeVoid: *hasResult = true; *hasResultType = false; break; case OpTypeBool: *hasResult = true; *hasResultType = false; break; case OpTypeInt: *hasResult = true; *hasResultType = false; break; case OpTypeFloat: *hasResult = true; *hasResultType = false; break; case OpTypeVector: *hasResult = true; *hasResultType = false; break; case OpTypeMatrix: *hasResult = true; *hasResultType = false; break; case OpTypeImage: *hasResult = true; *hasResultType = false; break; case OpTypeSampler: *hasResult = true; *hasResultType = false; break; case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; case OpTypeArray: *hasResult = true; *hasResultType = false; break; case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; case OpTypeStruct: *hasResult = true; *hasResultType = false; break; case OpTypeOpaque: *hasResult = true; *hasResultType = false; break; case OpTypePointer: *hasResult = true; *hasResultType = false; break; case OpTypeFunction: *hasResult = true; *hasResultType = false; break; case OpTypeEvent: *hasResult = true; *hasResultType = false; break; case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; case OpTypeReserveId: *hasResult = true; *hasResultType = false; break; case OpTypeQueue: *hasResult = true; *hasResultType = false; break; case OpTypePipe: *hasResult = true; *hasResultType = false; break; case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; case OpConstantTrue: *hasResult = true; *hasResultType = true; break; case OpConstantFalse: *hasResult = true; *hasResultType = true; break; case OpConstant: *hasResult = true; *hasResultType = true; break; case OpConstantComposite: *hasResult = true; *hasResultType = true; break; case OpConstantSampler: *hasResult = true; *hasResultType = true; break; case OpConstantNull: *hasResult = true; *hasResultType = true; break; case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; case OpSpecConstant: *hasResult = true; *hasResultType = true; break; case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; case OpFunction: *hasResult = true; *hasResultType = true; break; case OpFunctionParameter: *hasResult = true; *hasResultType = true; break; case OpFunctionEnd: *hasResult = false; *hasResultType = false; break; case OpFunctionCall: *hasResult = true; *hasResultType = true; break; case OpVariable: *hasResult = true; *hasResultType = true; break; case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; case OpLoad: *hasResult = true; *hasResultType = true; break; case OpStore: *hasResult = false; *hasResultType = false; break; case OpCopyMemory: *hasResult = false; *hasResultType = false; break; case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; case OpAccessChain: *hasResult = true; *hasResultType = true; break; case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; case OpArrayLength: *hasResult = true; *hasResultType = true; break; case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; case OpDecorate: *hasResult = false; *hasResultType = false; break; case OpMemberDecorate: *hasResult = false; *hasResultType = false; break; case OpDecorationGroup: *hasResult = true; *hasResultType = false; break; case OpGroupDecorate: *hasResult = false; *hasResultType = false; break; case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; case OpVectorShuffle: *hasResult = true; *hasResultType = true; break; case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; case OpCompositeExtract: *hasResult = true; *hasResultType = true; break; case OpCompositeInsert: *hasResult = true; *hasResultType = true; break; case OpCopyObject: *hasResult = true; *hasResultType = true; break; case OpTranspose: *hasResult = true; *hasResultType = true; break; case OpSampledImage: *hasResult = true; *hasResultType = true; break; case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageFetch: *hasResult = true; *hasResultType = true; break; case OpImageGather: *hasResult = true; *hasResultType = true; break; case OpImageDrefGather: *hasResult = true; *hasResultType = true; break; case OpImageRead: *hasResult = true; *hasResultType = true; break; case OpImageWrite: *hasResult = false; *hasResultType = false; break; case OpImage: *hasResult = true; *hasResultType = true; break; case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; case OpImageQuerySize: *hasResult = true; *hasResultType = true; break; case OpImageQueryLod: *hasResult = true; *hasResultType = true; break; case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; case OpConvertFToU: *hasResult = true; *hasResultType = true; break; case OpConvertFToS: *hasResult = true; *hasResultType = true; break; case OpConvertSToF: *hasResult = true; *hasResultType = true; break; case OpConvertUToF: *hasResult = true; *hasResultType = true; break; case OpUConvert: *hasResult = true; *hasResultType = true; break; case OpSConvert: *hasResult = true; *hasResultType = true; break; case OpFConvert: *hasResult = true; *hasResultType = true; break; case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; case OpBitcast: *hasResult = true; *hasResultType = true; break; case OpSNegate: *hasResult = true; *hasResultType = true; break; case OpFNegate: *hasResult = true; *hasResultType = true; break; case OpIAdd: *hasResult = true; *hasResultType = true; break; case OpFAdd: *hasResult = true; *hasResultType = true; break; case OpISub: *hasResult = true; *hasResultType = true; break; case OpFSub: *hasResult = true; *hasResultType = true; break; case OpIMul: *hasResult = true; *hasResultType = true; break; case OpFMul: *hasResult = true; *hasResultType = true; break; case OpUDiv: *hasResult = true; *hasResultType = true; break; case OpSDiv: *hasResult = true; *hasResultType = true; break; case OpFDiv: *hasResult = true; *hasResultType = true; break; case OpUMod: *hasResult = true; *hasResultType = true; break; case OpSRem: *hasResult = true; *hasResultType = true; break; case OpSMod: *hasResult = true; *hasResultType = true; break; case OpFRem: *hasResult = true; *hasResultType = true; break; case OpFMod: *hasResult = true; *hasResultType = true; break; case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; case OpOuterProduct: *hasResult = true; *hasResultType = true; break; case OpDot: *hasResult = true; *hasResultType = true; break; case OpIAddCarry: *hasResult = true; *hasResultType = true; break; case OpISubBorrow: *hasResult = true; *hasResultType = true; break; case OpUMulExtended: *hasResult = true; *hasResultType = true; break; case OpSMulExtended: *hasResult = true; *hasResultType = true; break; case OpAny: *hasResult = true; *hasResultType = true; break; case OpAll: *hasResult = true; *hasResultType = true; break; case OpIsNan: *hasResult = true; *hasResultType = true; break; case OpIsInf: *hasResult = true; *hasResultType = true; break; case OpIsFinite: *hasResult = true; *hasResultType = true; break; case OpIsNormal: *hasResult = true; *hasResultType = true; break; case OpSignBitSet: *hasResult = true; *hasResultType = true; break; case OpLessOrGreater: *hasResult = true; *hasResultType = true; break; case OpOrdered: *hasResult = true; *hasResultType = true; break; case OpUnordered: *hasResult = true; *hasResultType = true; break; case OpLogicalEqual: *hasResult = true; *hasResultType = true; break; case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; case OpLogicalOr: *hasResult = true; *hasResultType = true; break; case OpLogicalAnd: *hasResult = true; *hasResultType = true; break; case OpLogicalNot: *hasResult = true; *hasResultType = true; break; case OpSelect: *hasResult = true; *hasResultType = true; break; case OpIEqual: *hasResult = true; *hasResultType = true; break; case OpINotEqual: *hasResult = true; *hasResultType = true; break; case OpUGreaterThan: *hasResult = true; *hasResultType = true; break; case OpSGreaterThan: *hasResult = true; *hasResultType = true; break; case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case OpULessThan: *hasResult = true; *hasResultType = true; break; case OpSLessThan: *hasResult = true; *hasResultType = true; break; case OpULessThanEqual: *hasResult = true; *hasResultType = true; break; case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; case OpFOrdEqual: *hasResult = true; *hasResultType = true; break; case OpFUnordEqual: *hasResult = true; *hasResultType = true; break; case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; case OpBitwiseOr: *hasResult = true; *hasResultType = true; break; case OpBitwiseXor: *hasResult = true; *hasResultType = true; break; case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; case OpNot: *hasResult = true; *hasResultType = true; break; case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; case OpBitReverse: *hasResult = true; *hasResultType = true; break; case OpBitCount: *hasResult = true; *hasResultType = true; break; case OpDPdx: *hasResult = true; *hasResultType = true; break; case OpDPdy: *hasResult = true; *hasResultType = true; break; case OpFwidth: *hasResult = true; *hasResultType = true; break; case OpDPdxFine: *hasResult = true; *hasResultType = true; break; case OpDPdyFine: *hasResult = true; *hasResultType = true; break; case OpFwidthFine: *hasResult = true; *hasResultType = true; break; case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; case OpEmitVertex: *hasResult = false; *hasResultType = false; break; case OpEndPrimitive: *hasResult = false; *hasResultType = false; break; case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; case OpControlBarrier: *hasResult = false; *hasResultType = false; break; case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; case OpAtomicLoad: *hasResult = true; *hasResultType = true; break; case OpAtomicStore: *hasResult = false; *hasResultType = false; break; case OpAtomicExchange: *hasResult = true; *hasResultType = true; break; case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; case OpAtomicISub: *hasResult = true; *hasResultType = true; break; case OpAtomicSMin: *hasResult = true; *hasResultType = true; break; case OpAtomicUMin: *hasResult = true; *hasResultType = true; break; case OpAtomicSMax: *hasResult = true; *hasResultType = true; break; case OpAtomicUMax: *hasResult = true; *hasResultType = true; break; case OpAtomicAnd: *hasResult = true; *hasResultType = true; break; case OpAtomicOr: *hasResult = true; *hasResultType = true; break; case OpAtomicXor: *hasResult = true; *hasResultType = true; break; case OpPhi: *hasResult = true; *hasResultType = true; break; case OpLoopMerge: *hasResult = false; *hasResultType = false; break; case OpSelectionMerge: *hasResult = false; *hasResultType = false; break; case OpLabel: *hasResult = true; *hasResultType = false; break; case OpBranch: *hasResult = false; *hasResultType = false; break; case OpBranchConditional: *hasResult = false; *hasResultType = false; break; case OpSwitch: *hasResult = false; *hasResultType = false; break; case OpKill: *hasResult = false; *hasResultType = false; break; case OpReturn: *hasResult = false; *hasResultType = false; break; case OpReturnValue: *hasResult = false; *hasResultType = false; break; case OpUnreachable: *hasResult = false; *hasResultType = false; break; case OpLifetimeStart: *hasResult = false; *hasResultType = false; break; case OpLifetimeStop: *hasResult = false; *hasResultType = false; break; case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; case OpGroupAll: *hasResult = true; *hasResultType = true; break; case OpGroupAny: *hasResult = true; *hasResultType = true; break; case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; case OpGroupIAdd: *hasResult = true; *hasResultType = true; break; case OpGroupFAdd: *hasResult = true; *hasResultType = true; break; case OpGroupFMin: *hasResult = true; *hasResultType = true; break; case OpGroupUMin: *hasResult = true; *hasResultType = true; break; case OpGroupSMin: *hasResult = true; *hasResultType = true; break; case OpGroupFMax: *hasResult = true; *hasResultType = true; break; case OpGroupUMax: *hasResult = true; *hasResultType = true; break; case OpGroupSMax: *hasResult = true; *hasResultType = true; break; case OpReadPipe: *hasResult = true; *hasResultType = true; break; case OpWritePipe: *hasResult = true; *hasResultType = true; break; case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; case OpRetainEvent: *hasResult = false; *hasResultType = false; break; case OpReleaseEvent: *hasResult = false; *hasResultType = false; break; case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; case OpIsValidEvent: *hasResult = true; *hasResultType = true; break; case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; case OpBuildNDRange: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; case OpImageSparseGather: *hasResult = true; *hasResultType = true; break; case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; case OpNoLine: *hasResult = false; *hasResultType = false; break; case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; case OpImageSparseRead: *hasResult = true; *hasResultType = true; break; case OpSizeOf: *hasResult = true; *hasResultType = true; break; case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; case OpModuleProcessed: *hasResult = false; *hasResultType = false; break; case OpExecutionModeId: *hasResult = false; *hasResultType = false; break; case OpDecorateId: *hasResult = false; *hasResultType = false; break; case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; case OpCopyLogical: *hasResult = true; *hasResultType = true; break; case OpPtrEqual: *hasResult = true; *hasResultType = true; break; case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case OpPtrDiff: *hasResult = true; *hasResultType = true; break; case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case OpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break; case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; case OpSDot: *hasResult = true; *hasResultType = true; break; case OpUDot: *hasResult = true; *hasResultType = true; break; case OpSUDot: *hasResult = true; *hasResultType = true; break; case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break; case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break; case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break; case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break; case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break; case OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break; case OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break; case OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break; case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break; case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break; case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; case OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break; case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break; case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break; case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break; case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break; case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break; case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break; case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break; case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case OpTraceNV: *hasResult = false; *hasResultType = false; break; case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case OpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break; case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break; case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; case OpAsmINTEL: *hasResult = true; *hasResultType = true; break; case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; case OpExpectKHR: *hasResult = true; *hasResultType = true; break; case OpDecorateString: *hasResult = false; *hasResultType = false; break; case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break; case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break; case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break; case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break; case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break; case OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break; case OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break; } } inline const char* SourceLanguageToString(SourceLanguage value) { switch (value) { case SourceLanguageUnknown: return "Unknown"; case SourceLanguageESSL: return "ESSL"; case SourceLanguageGLSL: return "GLSL"; case SourceLanguageOpenCL_C: return "OpenCL_C"; case SourceLanguageOpenCL_CPP: return "OpenCL_CPP"; case SourceLanguageHLSL: return "HLSL"; case SourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL"; case SourceLanguageSYCL: return "SYCL"; case SourceLanguageHERO_C: return "HERO_C"; case SourceLanguageNZSL: return "NZSL"; case SourceLanguageWGSL: return "WGSL"; case SourceLanguageSlang: return "Slang"; case SourceLanguageZig: return "Zig"; default: return "Unknown"; } } inline const char* ExecutionModelToString(ExecutionModel value) { switch (value) { case ExecutionModelVertex: return "Vertex"; case ExecutionModelTessellationControl: return "TessellationControl"; case ExecutionModelTessellationEvaluation: return "TessellationEvaluation"; case ExecutionModelGeometry: return "Geometry"; case ExecutionModelFragment: return "Fragment"; case ExecutionModelGLCompute: return "GLCompute"; case ExecutionModelKernel: return "Kernel"; case ExecutionModelTaskNV: return "TaskNV"; case ExecutionModelMeshNV: return "MeshNV"; case ExecutionModelRayGenerationKHR: return "RayGenerationKHR"; case ExecutionModelIntersectionKHR: return "IntersectionKHR"; case ExecutionModelAnyHitKHR: return "AnyHitKHR"; case ExecutionModelClosestHitKHR: return "ClosestHitKHR"; case ExecutionModelMissKHR: return "MissKHR"; case ExecutionModelCallableKHR: return "CallableKHR"; case ExecutionModelTaskEXT: return "TaskEXT"; case ExecutionModelMeshEXT: return "MeshEXT"; default: return "Unknown"; } } inline const char* AddressingModelToString(AddressingModel value) { switch (value) { case AddressingModelLogical: return "Logical"; case AddressingModelPhysical32: return "Physical32"; case AddressingModelPhysical64: return "Physical64"; case AddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64"; default: return "Unknown"; } } inline const char* MemoryModelToString(MemoryModel value) { switch (value) { case MemoryModelSimple: return "Simple"; case MemoryModelGLSL450: return "GLSL450"; case MemoryModelOpenCL: return "OpenCL"; case MemoryModelVulkan: return "Vulkan"; default: return "Unknown"; } } inline const char* ExecutionModeToString(ExecutionMode value) { switch (value) { case ExecutionModeInvocations: return "Invocations"; case ExecutionModeSpacingEqual: return "SpacingEqual"; case ExecutionModeSpacingFractionalEven: return "SpacingFractionalEven"; case ExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd"; case ExecutionModeVertexOrderCw: return "VertexOrderCw"; case ExecutionModeVertexOrderCcw: return "VertexOrderCcw"; case ExecutionModePixelCenterInteger: return "PixelCenterInteger"; case ExecutionModeOriginUpperLeft: return "OriginUpperLeft"; case ExecutionModeOriginLowerLeft: return "OriginLowerLeft"; case ExecutionModeEarlyFragmentTests: return "EarlyFragmentTests"; case ExecutionModePointMode: return "PointMode"; case ExecutionModeXfb: return "Xfb"; case ExecutionModeDepthReplacing: return "DepthReplacing"; case ExecutionModeDepthGreater: return "DepthGreater"; case ExecutionModeDepthLess: return "DepthLess"; case ExecutionModeDepthUnchanged: return "DepthUnchanged"; case ExecutionModeLocalSize: return "LocalSize"; case ExecutionModeLocalSizeHint: return "LocalSizeHint"; case ExecutionModeInputPoints: return "InputPoints"; case ExecutionModeInputLines: return "InputLines"; case ExecutionModeInputLinesAdjacency: return "InputLinesAdjacency"; case ExecutionModeTriangles: return "Triangles"; case ExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency"; case ExecutionModeQuads: return "Quads"; case ExecutionModeIsolines: return "Isolines"; case ExecutionModeOutputVertices: return "OutputVertices"; case ExecutionModeOutputPoints: return "OutputPoints"; case ExecutionModeOutputLineStrip: return "OutputLineStrip"; case ExecutionModeOutputTriangleStrip: return "OutputTriangleStrip"; case ExecutionModeVecTypeHint: return "VecTypeHint"; case ExecutionModeContractionOff: return "ContractionOff"; case ExecutionModeInitializer: return "Initializer"; case ExecutionModeFinalizer: return "Finalizer"; case ExecutionModeSubgroupSize: return "SubgroupSize"; case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup"; case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId"; case ExecutionModeLocalSizeId: return "LocalSizeId"; case ExecutionModeLocalSizeHintId: return "LocalSizeHintId"; case ExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT"; case ExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT"; case ExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT"; case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR"; case ExecutionModePostDepthCoverage: return "PostDepthCoverage"; case ExecutionModeDenormPreserve: return "DenormPreserve"; case ExecutionModeDenormFlushToZero: return "DenormFlushToZero"; case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; case ExecutionModeRoundingModeRTE: return "RoundingModeRTE"; case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ"; case ExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD"; case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT"; case ExecutionModeCoalescingAMDX: return "CoalescingAMDX"; case ExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX"; case ExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX"; case ExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX"; case ExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX"; case ExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD"; case ExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD"; case ExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD"; case ExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD"; case ExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD"; case ExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD"; case ExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR"; case ExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR"; case ExecutionModeOutputLinesEXT: return "OutputLinesEXT"; case ExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT"; case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV"; case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV"; case ExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT"; case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT"; case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT"; case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT"; case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; case ExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL"; case ExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL"; case ExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL"; case ExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL"; case ExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL"; case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL"; case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL"; case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL"; case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL"; case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL"; case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR"; case ExecutionModeFPFastMathDefault: return "FPFastMathDefault"; case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL"; case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL"; case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL"; case ExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL"; case ExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL"; case ExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL"; default: return "Unknown"; } } inline const char* StorageClassToString(StorageClass value) { switch (value) { case StorageClassUniformConstant: return "UniformConstant"; case StorageClassInput: return "Input"; case StorageClassUniform: return "Uniform"; case StorageClassOutput: return "Output"; case StorageClassWorkgroup: return "Workgroup"; case StorageClassCrossWorkgroup: return "CrossWorkgroup"; case StorageClassPrivate: return "Private"; case StorageClassFunction: return "Function"; case StorageClassGeneric: return "Generic"; case StorageClassPushConstant: return "PushConstant"; case StorageClassAtomicCounter: return "AtomicCounter"; case StorageClassImage: return "Image"; case StorageClassStorageBuffer: return "StorageBuffer"; case StorageClassTileImageEXT: return "TileImageEXT"; case StorageClassNodePayloadAMDX: return "NodePayloadAMDX"; case StorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX"; case StorageClassCallableDataKHR: return "CallableDataKHR"; case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR"; case StorageClassRayPayloadKHR: return "RayPayloadKHR"; case StorageClassHitAttributeKHR: return "HitAttributeKHR"; case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR"; case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR"; case StorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer"; case StorageClassHitObjectAttributeNV: return "HitObjectAttributeNV"; case StorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; case StorageClassCodeSectionINTEL: return "CodeSectionINTEL"; case StorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL"; case StorageClassHostOnlyINTEL: return "HostOnlyINTEL"; default: return "Unknown"; } } inline const char* DimToString(Dim value) { switch (value) { case Dim1D: return "1D"; case Dim2D: return "2D"; case Dim3D: return "3D"; case DimCube: return "Cube"; case DimRect: return "Rect"; case DimBuffer: return "Buffer"; case DimSubpassData: return "SubpassData"; case DimTileImageDataEXT: return "TileImageDataEXT"; default: return "Unknown"; } } inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) { switch (value) { case SamplerAddressingModeNone: return "None"; case SamplerAddressingModeClampToEdge: return "ClampToEdge"; case SamplerAddressingModeClamp: return "Clamp"; case SamplerAddressingModeRepeat: return "Repeat"; case SamplerAddressingModeRepeatMirrored: return "RepeatMirrored"; default: return "Unknown"; } } inline const char* SamplerFilterModeToString(SamplerFilterMode value) { switch (value) { case SamplerFilterModeNearest: return "Nearest"; case SamplerFilterModeLinear: return "Linear"; default: return "Unknown"; } } inline const char* ImageFormatToString(ImageFormat value) { switch (value) { case ImageFormatUnknown: return "Unknown"; case ImageFormatRgba32f: return "Rgba32f"; case ImageFormatRgba16f: return "Rgba16f"; case ImageFormatR32f: return "R32f"; case ImageFormatRgba8: return "Rgba8"; case ImageFormatRgba8Snorm: return "Rgba8Snorm"; case ImageFormatRg32f: return "Rg32f"; case ImageFormatRg16f: return "Rg16f"; case ImageFormatR11fG11fB10f: return "R11fG11fB10f"; case ImageFormatR16f: return "R16f"; case ImageFormatRgba16: return "Rgba16"; case ImageFormatRgb10A2: return "Rgb10A2"; case ImageFormatRg16: return "Rg16"; case ImageFormatRg8: return "Rg8"; case ImageFormatR16: return "R16"; case ImageFormatR8: return "R8"; case ImageFormatRgba16Snorm: return "Rgba16Snorm"; case ImageFormatRg16Snorm: return "Rg16Snorm"; case ImageFormatRg8Snorm: return "Rg8Snorm"; case ImageFormatR16Snorm: return "R16Snorm"; case ImageFormatR8Snorm: return "R8Snorm"; case ImageFormatRgba32i: return "Rgba32i"; case ImageFormatRgba16i: return "Rgba16i"; case ImageFormatRgba8i: return "Rgba8i"; case ImageFormatR32i: return "R32i"; case ImageFormatRg32i: return "Rg32i"; case ImageFormatRg16i: return "Rg16i"; case ImageFormatRg8i: return "Rg8i"; case ImageFormatR16i: return "R16i"; case ImageFormatR8i: return "R8i"; case ImageFormatRgba32ui: return "Rgba32ui"; case ImageFormatRgba16ui: return "Rgba16ui"; case ImageFormatRgba8ui: return "Rgba8ui"; case ImageFormatR32ui: return "R32ui"; case ImageFormatRgb10a2ui: return "Rgb10a2ui"; case ImageFormatRg32ui: return "Rg32ui"; case ImageFormatRg16ui: return "Rg16ui"; case ImageFormatRg8ui: return "Rg8ui"; case ImageFormatR16ui: return "R16ui"; case ImageFormatR8ui: return "R8ui"; case ImageFormatR64ui: return "R64ui"; case ImageFormatR64i: return "R64i"; default: return "Unknown"; } } inline const char* ImageChannelOrderToString(ImageChannelOrder value) { switch (value) { case ImageChannelOrderR: return "R"; case ImageChannelOrderA: return "A"; case ImageChannelOrderRG: return "RG"; case ImageChannelOrderRA: return "RA"; case ImageChannelOrderRGB: return "RGB"; case ImageChannelOrderRGBA: return "RGBA"; case ImageChannelOrderBGRA: return "BGRA"; case ImageChannelOrderARGB: return "ARGB"; case ImageChannelOrderIntensity: return "Intensity"; case ImageChannelOrderLuminance: return "Luminance"; case ImageChannelOrderRx: return "Rx"; case ImageChannelOrderRGx: return "RGx"; case ImageChannelOrderRGBx: return "RGBx"; case ImageChannelOrderDepth: return "Depth"; case ImageChannelOrderDepthStencil: return "DepthStencil"; case ImageChannelOrdersRGB: return "sRGB"; case ImageChannelOrdersRGBx: return "sRGBx"; case ImageChannelOrdersRGBA: return "sRGBA"; case ImageChannelOrdersBGRA: return "sBGRA"; case ImageChannelOrderABGR: return "ABGR"; default: return "Unknown"; } } inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) { switch (value) { case ImageChannelDataTypeSnormInt8: return "SnormInt8"; case ImageChannelDataTypeSnormInt16: return "SnormInt16"; case ImageChannelDataTypeUnormInt8: return "UnormInt8"; case ImageChannelDataTypeUnormInt16: return "UnormInt16"; case ImageChannelDataTypeUnormShort565: return "UnormShort565"; case ImageChannelDataTypeUnormShort555: return "UnormShort555"; case ImageChannelDataTypeUnormInt101010: return "UnormInt101010"; case ImageChannelDataTypeSignedInt8: return "SignedInt8"; case ImageChannelDataTypeSignedInt16: return "SignedInt16"; case ImageChannelDataTypeSignedInt32: return "SignedInt32"; case ImageChannelDataTypeUnsignedInt8: return "UnsignedInt8"; case ImageChannelDataTypeUnsignedInt16: return "UnsignedInt16"; case ImageChannelDataTypeUnsignedInt32: return "UnsignedInt32"; case ImageChannelDataTypeHalfFloat: return "HalfFloat"; case ImageChannelDataTypeFloat: return "Float"; case ImageChannelDataTypeUnormInt24: return "UnormInt24"; case ImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2"; case ImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT"; case ImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT"; default: return "Unknown"; } } inline const char* FPRoundingModeToString(FPRoundingMode value) { switch (value) { case FPRoundingModeRTE: return "RTE"; case FPRoundingModeRTZ: return "RTZ"; case FPRoundingModeRTP: return "RTP"; case FPRoundingModeRTN: return "RTN"; default: return "Unknown"; } } inline const char* LinkageTypeToString(LinkageType value) { switch (value) { case LinkageTypeExport: return "Export"; case LinkageTypeImport: return "Import"; case LinkageTypeLinkOnceODR: return "LinkOnceODR"; default: return "Unknown"; } } inline const char* AccessQualifierToString(AccessQualifier value) { switch (value) { case AccessQualifierReadOnly: return "ReadOnly"; case AccessQualifierWriteOnly: return "WriteOnly"; case AccessQualifierReadWrite: return "ReadWrite"; default: return "Unknown"; } } inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) { switch (value) { case FunctionParameterAttributeZext: return "Zext"; case FunctionParameterAttributeSext: return "Sext"; case FunctionParameterAttributeByVal: return "ByVal"; case FunctionParameterAttributeSret: return "Sret"; case FunctionParameterAttributeNoAlias: return "NoAlias"; case FunctionParameterAttributeNoCapture: return "NoCapture"; case FunctionParameterAttributeNoWrite: return "NoWrite"; case FunctionParameterAttributeNoReadWrite: return "NoReadWrite"; case FunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL"; default: return "Unknown"; } } inline const char* DecorationToString(Decoration value) { switch (value) { case DecorationRelaxedPrecision: return "RelaxedPrecision"; case DecorationSpecId: return "SpecId"; case DecorationBlock: return "Block"; case DecorationBufferBlock: return "BufferBlock"; case DecorationRowMajor: return "RowMajor"; case DecorationColMajor: return "ColMajor"; case DecorationArrayStride: return "ArrayStride"; case DecorationMatrixStride: return "MatrixStride"; case DecorationGLSLShared: return "GLSLShared"; case DecorationGLSLPacked: return "GLSLPacked"; case DecorationCPacked: return "CPacked"; case DecorationBuiltIn: return "BuiltIn"; case DecorationNoPerspective: return "NoPerspective"; case DecorationFlat: return "Flat"; case DecorationPatch: return "Patch"; case DecorationCentroid: return "Centroid"; case DecorationSample: return "Sample"; case DecorationInvariant: return "Invariant"; case DecorationRestrict: return "Restrict"; case DecorationAliased: return "Aliased"; case DecorationVolatile: return "Volatile"; case DecorationConstant: return "Constant"; case DecorationCoherent: return "Coherent"; case DecorationNonWritable: return "NonWritable"; case DecorationNonReadable: return "NonReadable"; case DecorationUniform: return "Uniform"; case DecorationUniformId: return "UniformId"; case DecorationSaturatedConversion: return "SaturatedConversion"; case DecorationStream: return "Stream"; case DecorationLocation: return "Location"; case DecorationComponent: return "Component"; case DecorationIndex: return "Index"; case DecorationBinding: return "Binding"; case DecorationDescriptorSet: return "DescriptorSet"; case DecorationOffset: return "Offset"; case DecorationXfbBuffer: return "XfbBuffer"; case DecorationXfbStride: return "XfbStride"; case DecorationFuncParamAttr: return "FuncParamAttr"; case DecorationFPRoundingMode: return "FPRoundingMode"; case DecorationFPFastMathMode: return "FPFastMathMode"; case DecorationLinkageAttributes: return "LinkageAttributes"; case DecorationNoContraction: return "NoContraction"; case DecorationInputAttachmentIndex: return "InputAttachmentIndex"; case DecorationAlignment: return "Alignment"; case DecorationMaxByteOffset: return "MaxByteOffset"; case DecorationAlignmentId: return "AlignmentId"; case DecorationMaxByteOffsetId: return "MaxByteOffsetId"; case DecorationNoSignedWrap: return "NoSignedWrap"; case DecorationNoUnsignedWrap: return "NoUnsignedWrap"; case DecorationWeightTextureQCOM: return "WeightTextureQCOM"; case DecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM"; case DecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM"; case DecorationExplicitInterpAMD: return "ExplicitInterpAMD"; case DecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX"; case DecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX"; case DecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX"; case DecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX"; case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; case DecorationPassthroughNV: return "PassthroughNV"; case DecorationViewportRelativeNV: return "ViewportRelativeNV"; case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; case DecorationPerPrimitiveEXT: return "PerPrimitiveEXT"; case DecorationPerViewNV: return "PerViewNV"; case DecorationPerTaskNV: return "PerTaskNV"; case DecorationPerVertexKHR: return "PerVertexKHR"; case DecorationNonUniform: return "NonUniform"; case DecorationRestrictPointer: return "RestrictPointer"; case DecorationAliasedPointer: return "AliasedPointer"; case DecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV"; case DecorationBindlessSamplerNV: return "BindlessSamplerNV"; case DecorationBindlessImageNV: return "BindlessImageNV"; case DecorationBoundSamplerNV: return "BoundSamplerNV"; case DecorationBoundImageNV: return "BoundImageNV"; case DecorationSIMTCallINTEL: return "SIMTCallINTEL"; case DecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL"; case DecorationClobberINTEL: return "ClobberINTEL"; case DecorationSideEffectsINTEL: return "SideEffectsINTEL"; case DecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL"; case DecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL"; case DecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL"; case DecorationStackCallINTEL: return "StackCallINTEL"; case DecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL"; case DecorationCounterBuffer: return "CounterBuffer"; case DecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE"; case DecorationUserTypeGOOGLE: return "UserTypeGOOGLE"; case DecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL"; case DecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL"; case DecorationRegisterINTEL: return "RegisterINTEL"; case DecorationMemoryINTEL: return "MemoryINTEL"; case DecorationNumbanksINTEL: return "NumbanksINTEL"; case DecorationBankwidthINTEL: return "BankwidthINTEL"; case DecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL"; case DecorationSinglepumpINTEL: return "SinglepumpINTEL"; case DecorationDoublepumpINTEL: return "DoublepumpINTEL"; case DecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL"; case DecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL"; case DecorationMergeINTEL: return "MergeINTEL"; case DecorationBankBitsINTEL: return "BankBitsINTEL"; case DecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL"; case DecorationStridesizeINTEL: return "StridesizeINTEL"; case DecorationWordsizeINTEL: return "WordsizeINTEL"; case DecorationTrueDualPortINTEL: return "TrueDualPortINTEL"; case DecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL"; case DecorationCacheSizeINTEL: return "CacheSizeINTEL"; case DecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL"; case DecorationPrefetchINTEL: return "PrefetchINTEL"; case DecorationStallEnableINTEL: return "StallEnableINTEL"; case DecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL"; case DecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL"; case DecorationAliasScopeINTEL: return "AliasScopeINTEL"; case DecorationNoAliasINTEL: return "NoAliasINTEL"; case DecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL"; case DecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL"; case DecorationPipelineEnableINTEL: return "PipelineEnableINTEL"; case DecorationBufferLocationINTEL: return "BufferLocationINTEL"; case DecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL"; case DecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL"; case DecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL"; case DecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL"; case DecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL"; case DecorationStallFreeINTEL: return "StallFreeINTEL"; case DecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL"; case DecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL"; case DecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL"; case DecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL"; case DecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL"; case DecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL"; case DecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL"; case DecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL"; case DecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL"; case DecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL"; case DecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL"; case DecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL"; case DecorationHostAccessINTEL: return "HostAccessINTEL"; case DecorationInitModeINTEL: return "InitModeINTEL"; case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL"; case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL"; default: return "Unknown"; } } inline const char* BuiltInToString(BuiltIn value) { switch (value) { case BuiltInPosition: return "Position"; case BuiltInPointSize: return "PointSize"; case BuiltInClipDistance: return "ClipDistance"; case BuiltInCullDistance: return "CullDistance"; case BuiltInVertexId: return "VertexId"; case BuiltInInstanceId: return "InstanceId"; case BuiltInPrimitiveId: return "PrimitiveId"; case BuiltInInvocationId: return "InvocationId"; case BuiltInLayer: return "Layer"; case BuiltInViewportIndex: return "ViewportIndex"; case BuiltInTessLevelOuter: return "TessLevelOuter"; case BuiltInTessLevelInner: return "TessLevelInner"; case BuiltInTessCoord: return "TessCoord"; case BuiltInPatchVertices: return "PatchVertices"; case BuiltInFragCoord: return "FragCoord"; case BuiltInPointCoord: return "PointCoord"; case BuiltInFrontFacing: return "FrontFacing"; case BuiltInSampleId: return "SampleId"; case BuiltInSamplePosition: return "SamplePosition"; case BuiltInSampleMask: return "SampleMask"; case BuiltInFragDepth: return "FragDepth"; case BuiltInHelperInvocation: return "HelperInvocation"; case BuiltInNumWorkgroups: return "NumWorkgroups"; case BuiltInWorkgroupSize: return "WorkgroupSize"; case BuiltInWorkgroupId: return "WorkgroupId"; case BuiltInLocalInvocationId: return "LocalInvocationId"; case BuiltInGlobalInvocationId: return "GlobalInvocationId"; case BuiltInLocalInvocationIndex: return "LocalInvocationIndex"; case BuiltInWorkDim: return "WorkDim"; case BuiltInGlobalSize: return "GlobalSize"; case BuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize"; case BuiltInGlobalOffset: return "GlobalOffset"; case BuiltInGlobalLinearId: return "GlobalLinearId"; case BuiltInSubgroupSize: return "SubgroupSize"; case BuiltInSubgroupMaxSize: return "SubgroupMaxSize"; case BuiltInNumSubgroups: return "NumSubgroups"; case BuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups"; case BuiltInSubgroupId: return "SubgroupId"; case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId"; case BuiltInVertexIndex: return "VertexIndex"; case BuiltInInstanceIndex: return "InstanceIndex"; case BuiltInCoreIDARM: return "CoreIDARM"; case BuiltInCoreCountARM: return "CoreCountARM"; case BuiltInCoreMaxIDARM: return "CoreMaxIDARM"; case BuiltInWarpIDARM: return "WarpIDARM"; case BuiltInWarpMaxIDARM: return "WarpMaxIDARM"; case BuiltInSubgroupEqMask: return "SubgroupEqMask"; case BuiltInSubgroupGeMask: return "SubgroupGeMask"; case BuiltInSubgroupGtMask: return "SubgroupGtMask"; case BuiltInSubgroupLeMask: return "SubgroupLeMask"; case BuiltInSubgroupLtMask: return "SubgroupLtMask"; case BuiltInBaseVertex: return "BaseVertex"; case BuiltInBaseInstance: return "BaseInstance"; case BuiltInDrawIndex: return "DrawIndex"; case BuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR"; case BuiltInDeviceIndex: return "DeviceIndex"; case BuiltInViewIndex: return "ViewIndex"; case BuiltInShadingRateKHR: return "ShadingRateKHR"; case BuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD"; case BuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD"; case BuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD"; case BuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD"; case BuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD"; case BuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD"; case BuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD"; case BuiltInFragStencilRefEXT: return "FragStencilRefEXT"; case BuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX"; case BuiltInShaderIndexAMDX: return "ShaderIndexAMDX"; case BuiltInViewportMaskNV: return "ViewportMaskNV"; case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; case BuiltInPositionPerViewNV: return "PositionPerViewNV"; case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; case BuiltInFullyCoveredEXT: return "FullyCoveredEXT"; case BuiltInTaskCountNV: return "TaskCountNV"; case BuiltInPrimitiveCountNV: return "PrimitiveCountNV"; case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV"; case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV"; case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV"; case BuiltInLayerPerViewNV: return "LayerPerViewNV"; case BuiltInMeshViewCountNV: return "MeshViewCountNV"; case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV"; case BuiltInBaryCoordKHR: return "BaryCoordKHR"; case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR"; case BuiltInFragSizeEXT: return "FragSizeEXT"; case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT"; case BuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT"; case BuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT"; case BuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT"; case BuiltInCullPrimitiveEXT: return "CullPrimitiveEXT"; case BuiltInLaunchIdKHR: return "LaunchIdKHR"; case BuiltInLaunchSizeKHR: return "LaunchSizeKHR"; case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR"; case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR"; case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR"; case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR"; case BuiltInRayTminKHR: return "RayTminKHR"; case BuiltInRayTmaxKHR: return "RayTmaxKHR"; case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR"; case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR"; case BuiltInWorldToObjectKHR: return "WorldToObjectKHR"; case BuiltInHitTNV: return "HitTNV"; case BuiltInHitKindKHR: return "HitKindKHR"; case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV"; case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR"; case BuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV"; case BuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV"; case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR"; case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR"; case BuiltInWarpsPerSMNV: return "WarpsPerSMNV"; case BuiltInSMCountNV: return "SMCountNV"; case BuiltInWarpIDNV: return "WarpIDNV"; case BuiltInSMIDNV: return "SMIDNV"; case BuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV"; case BuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV"; case BuiltInCullMaskKHR: return "CullMaskKHR"; default: return "Unknown"; } } inline const char* ScopeToString(Scope value) { switch (value) { case ScopeCrossDevice: return "CrossDevice"; case ScopeDevice: return "Device"; case ScopeWorkgroup: return "Workgroup"; case ScopeSubgroup: return "Subgroup"; case ScopeInvocation: return "Invocation"; case ScopeQueueFamily: return "QueueFamily"; case ScopeShaderCallKHR: return "ShaderCallKHR"; default: return "Unknown"; } } inline const char* GroupOperationToString(GroupOperation value) { switch (value) { case GroupOperationReduce: return "Reduce"; case GroupOperationInclusiveScan: return "InclusiveScan"; case GroupOperationExclusiveScan: return "ExclusiveScan"; case GroupOperationClusteredReduce: return "ClusteredReduce"; case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV"; case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV"; case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV"; default: return "Unknown"; } } inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) { switch (value) { case KernelEnqueueFlagsNoWait: return "NoWait"; case KernelEnqueueFlagsWaitKernel: return "WaitKernel"; case KernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup"; default: return "Unknown"; } } inline const char* CapabilityToString(Capability value) { switch (value) { case CapabilityMatrix: return "Matrix"; case CapabilityShader: return "Shader"; case CapabilityGeometry: return "Geometry"; case CapabilityTessellation: return "Tessellation"; case CapabilityAddresses: return "Addresses"; case CapabilityLinkage: return "Linkage"; case CapabilityKernel: return "Kernel"; case CapabilityVector16: return "Vector16"; case CapabilityFloat16Buffer: return "Float16Buffer"; case CapabilityFloat16: return "Float16"; case CapabilityFloat64: return "Float64"; case CapabilityInt64: return "Int64"; case CapabilityInt64Atomics: return "Int64Atomics"; case CapabilityImageBasic: return "ImageBasic"; case CapabilityImageReadWrite: return "ImageReadWrite"; case CapabilityImageMipmap: return "ImageMipmap"; case CapabilityPipes: return "Pipes"; case CapabilityGroups: return "Groups"; case CapabilityDeviceEnqueue: return "DeviceEnqueue"; case CapabilityLiteralSampler: return "LiteralSampler"; case CapabilityAtomicStorage: return "AtomicStorage"; case CapabilityInt16: return "Int16"; case CapabilityTessellationPointSize: return "TessellationPointSize"; case CapabilityGeometryPointSize: return "GeometryPointSize"; case CapabilityImageGatherExtended: return "ImageGatherExtended"; case CapabilityStorageImageMultisample: return "StorageImageMultisample"; case CapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing"; case CapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing"; case CapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing"; case CapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing"; case CapabilityClipDistance: return "ClipDistance"; case CapabilityCullDistance: return "CullDistance"; case CapabilityImageCubeArray: return "ImageCubeArray"; case CapabilitySampleRateShading: return "SampleRateShading"; case CapabilityImageRect: return "ImageRect"; case CapabilitySampledRect: return "SampledRect"; case CapabilityGenericPointer: return "GenericPointer"; case CapabilityInt8: return "Int8"; case CapabilityInputAttachment: return "InputAttachment"; case CapabilitySparseResidency: return "SparseResidency"; case CapabilityMinLod: return "MinLod"; case CapabilitySampled1D: return "Sampled1D"; case CapabilityImage1D: return "Image1D"; case CapabilitySampledCubeArray: return "SampledCubeArray"; case CapabilitySampledBuffer: return "SampledBuffer"; case CapabilityImageBuffer: return "ImageBuffer"; case CapabilityImageMSArray: return "ImageMSArray"; case CapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats"; case CapabilityImageQuery: return "ImageQuery"; case CapabilityDerivativeControl: return "DerivativeControl"; case CapabilityInterpolationFunction: return "InterpolationFunction"; case CapabilityTransformFeedback: return "TransformFeedback"; case CapabilityGeometryStreams: return "GeometryStreams"; case CapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat"; case CapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat"; case CapabilityMultiViewport: return "MultiViewport"; case CapabilitySubgroupDispatch: return "SubgroupDispatch"; case CapabilityNamedBarrier: return "NamedBarrier"; case CapabilityPipeStorage: return "PipeStorage"; case CapabilityGroupNonUniform: return "GroupNonUniform"; case CapabilityGroupNonUniformVote: return "GroupNonUniformVote"; case CapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic"; case CapabilityGroupNonUniformBallot: return "GroupNonUniformBallot"; case CapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle"; case CapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative"; case CapabilityGroupNonUniformClustered: return "GroupNonUniformClustered"; case CapabilityGroupNonUniformQuad: return "GroupNonUniformQuad"; case CapabilityShaderLayer: return "ShaderLayer"; case CapabilityShaderViewportIndex: return "ShaderViewportIndex"; case CapabilityUniformDecoration: return "UniformDecoration"; case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM"; case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT"; case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT"; case CapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT"; case CapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM"; case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR"; case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR"; case CapabilityDrawParameters: return "DrawParameters"; case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR"; case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR"; case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR"; case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR"; case CapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess"; case CapabilityStorageUniform16: return "StorageUniform16"; case CapabilityStoragePushConstant16: return "StoragePushConstant16"; case CapabilityStorageInputOutput16: return "StorageInputOutput16"; case CapabilityDeviceGroup: return "DeviceGroup"; case CapabilityMultiView: return "MultiView"; case CapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer"; case CapabilityVariablePointers: return "VariablePointers"; case CapabilityAtomicStorageOps: return "AtomicStorageOps"; case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage"; case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess"; case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess"; case CapabilityStoragePushConstant8: return "StoragePushConstant8"; case CapabilityDenormPreserve: return "DenormPreserve"; case CapabilityDenormFlushToZero: return "DenormFlushToZero"; case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; case CapabilityRoundingModeRTE: return "RoundingModeRTE"; case CapabilityRoundingModeRTZ: return "RoundingModeRTZ"; case CapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR"; case CapabilityRayQueryKHR: return "RayQueryKHR"; case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR"; case CapabilityRayTracingKHR: return "RayTracingKHR"; case CapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM"; case CapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM"; case CapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM"; case CapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM"; case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; case CapabilityFragmentMaskAMD: return "FragmentMaskAMD"; case CapabilityStencilExportEXT: return "StencilExportEXT"; case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD"; case CapabilityInt64ImageEXT: return "Int64ImageEXT"; case CapabilityShaderClockKHR: return "ShaderClockKHR"; case CapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX"; case CapabilityQuadControlKHR: return "QuadControlKHR"; case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV"; case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT"; case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT"; case CapabilityMeshShadingNV: return "MeshShadingNV"; case CapabilityImageFootprintNV: return "ImageFootprintNV"; case CapabilityMeshShadingEXT: return "MeshShadingEXT"; case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR"; case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV"; case CapabilityFragmentDensityEXT: return "FragmentDensityEXT"; case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; case CapabilityShaderNonUniform: return "ShaderNonUniform"; case CapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray"; case CapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing"; case CapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing"; case CapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing"; case CapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing"; case CapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing"; case CapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing"; case CapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing"; case CapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing"; case CapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing"; case CapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing"; case CapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR"; case CapabilityRayTracingNV: return "RayTracingNV"; case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV"; case CapabilityVulkanMemoryModel: return "VulkanMemoryModel"; case CapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope"; case CapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses"; case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV"; case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR"; case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV"; case CapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT"; case CapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT"; case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV"; case CapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT"; case CapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation"; case CapabilityDisplacementMicromapNV: return "DisplacementMicromapNV"; case CapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT"; case CapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; case CapabilityBindlessTextureNV: return "BindlessTextureNV"; case CapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR"; case CapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV"; case CapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV"; case CapabilityRawAccessChainsNV: return "RawAccessChainsNV"; case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL"; case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL"; case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL"; case CapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL"; case CapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL"; case CapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL"; case CapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL"; case CapabilityFunctionPointersINTEL: return "FunctionPointersINTEL"; case CapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL"; case CapabilityAsmINTEL: return "AsmINTEL"; case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT"; case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT"; case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT"; case CapabilityVectorComputeINTEL: return "VectorComputeINTEL"; case CapabilityVectorAnyINTEL: return "VectorAnyINTEL"; case CapabilityExpectAssumeKHR: return "ExpectAssumeKHR"; case CapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL"; case CapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL"; case CapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL"; case CapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL"; case CapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL"; case CapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL"; case CapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL"; case CapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL"; case CapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL"; case CapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL"; case CapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL"; case CapabilityKernelAttributesINTEL: return "KernelAttributesINTEL"; case CapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL"; case CapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL"; case CapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL"; case CapabilityLoopFuseINTEL: return "LoopFuseINTEL"; case CapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL"; case CapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL"; case CapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL"; case CapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL"; case CapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL"; case CapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL"; case CapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL"; case CapabilityIOPipesINTEL: return "IOPipesINTEL"; case CapabilityBlockingPipesINTEL: return "BlockingPipesINTEL"; case CapabilityFPGARegINTEL: return "FPGARegINTEL"; case CapabilityDotProductInputAll: return "DotProductInputAll"; case CapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit"; case CapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked"; case CapabilityDotProduct: return "DotProduct"; case CapabilityRayCullMaskKHR: return "RayCullMaskKHR"; case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR"; case CapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT"; case CapabilityBitInstructions: return "BitInstructions"; case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR"; case CapabilityFloatControls2: return "FloatControls2"; case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; case CapabilityLongCompositesINTEL: return "LongCompositesINTEL"; case CapabilityOptNoneINTEL: return "OptNoneINTEL"; case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT"; case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL"; case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL"; case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL"; case CapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL"; case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL"; case CapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL"; case CapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL"; case CapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL"; case CapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL"; case CapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL"; case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR"; case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL"; case CapabilityCacheControlsINTEL: return "CacheControlsINTEL"; case CapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL"; default: return "Unknown"; } } inline const char* RayQueryIntersectionToString(RayQueryIntersection value) { switch (value) { case RayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR"; case RayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR"; default: return "Unknown"; } } inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) { switch (value) { case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR"; case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR"; case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR"; default: return "Unknown"; } } inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) { switch (value) { case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR"; case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR"; default: return "Unknown"; } } inline const char* FPDenormModeToString(FPDenormMode value) { switch (value) { case FPDenormModePreserve: return "Preserve"; case FPDenormModeFlushToZero: return "FlushToZero"; default: return "Unknown"; } } inline const char* FPOperationModeToString(FPOperationMode value) { switch (value) { case FPOperationModeIEEE: return "IEEE"; case FPOperationModeALT: return "ALT"; default: return "Unknown"; } } inline const char* QuantizationModesToString(QuantizationModes value) { switch (value) { case QuantizationModesTRN: return "TRN"; case QuantizationModesTRN_ZERO: return "TRN_ZERO"; case QuantizationModesRND: return "RND"; case QuantizationModesRND_ZERO: return "RND_ZERO"; case QuantizationModesRND_INF: return "RND_INF"; case QuantizationModesRND_MIN_INF: return "RND_MIN_INF"; case QuantizationModesRND_CONV: return "RND_CONV"; case QuantizationModesRND_CONV_ODD: return "RND_CONV_ODD"; default: return "Unknown"; } } inline const char* OverflowModesToString(OverflowModes value) { switch (value) { case OverflowModesWRAP: return "WRAP"; case OverflowModesSAT: return "SAT"; case OverflowModesSAT_ZERO: return "SAT_ZERO"; case OverflowModesSAT_SYM: return "SAT_SYM"; default: return "Unknown"; } } inline const char* PackedVectorFormatToString(PackedVectorFormat value) { switch (value) { case PackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit"; default: return "Unknown"; } } inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) { switch (value) { case CooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR"; case CooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR"; case CooperativeMatrixLayoutRowBlockedInterleavedARM: return "RowBlockedInterleavedARM"; case CooperativeMatrixLayoutColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM"; default: return "Unknown"; } } inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) { switch (value) { case CooperativeMatrixUseMatrixAKHR: return "MatrixAKHR"; case CooperativeMatrixUseMatrixBKHR: return "MatrixBKHR"; case CooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR"; default: return "Unknown"; } } inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) { switch (value) { case InitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL"; case InitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL"; default: return "Unknown"; } } inline const char* HostAccessQualifierToString(HostAccessQualifier value) { switch (value) { case HostAccessQualifierNoneINTEL: return "NoneINTEL"; case HostAccessQualifierReadINTEL: return "ReadINTEL"; case HostAccessQualifierWriteINTEL: return "WriteINTEL"; case HostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL"; default: return "Unknown"; } } inline const char* LoadCacheControlToString(LoadCacheControl value) { switch (value) { case LoadCacheControlUncachedINTEL: return "UncachedINTEL"; case LoadCacheControlCachedINTEL: return "CachedINTEL"; case LoadCacheControlStreamingINTEL: return "StreamingINTEL"; case LoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL"; case LoadCacheControlConstCachedINTEL: return "ConstCachedINTEL"; default: return "Unknown"; } } inline const char* StoreCacheControlToString(StoreCacheControl value) { switch (value) { case StoreCacheControlUncachedINTEL: return "UncachedINTEL"; case StoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL"; case StoreCacheControlWriteBackINTEL: return "WriteBackINTEL"; case StoreCacheControlStreamingINTEL: return "StreamingINTEL"; default: return "Unknown"; } } inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) { switch (value) { case NamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL"; default: return "Unknown"; } } inline const char* OpToString(Op value) { switch (value) { case OpNop: return "OpNop"; case OpUndef: return "OpUndef"; case OpSourceContinued: return "OpSourceContinued"; case OpSource: return "OpSource"; case OpSourceExtension: return "OpSourceExtension"; case OpName: return "OpName"; case OpMemberName: return "OpMemberName"; case OpString: return "OpString"; case OpLine: return "OpLine"; case OpExtension: return "OpExtension"; case OpExtInstImport: return "OpExtInstImport"; case OpExtInst: return "OpExtInst"; case OpMemoryModel: return "OpMemoryModel"; case OpEntryPoint: return "OpEntryPoint"; case OpExecutionMode: return "OpExecutionMode"; case OpCapability: return "OpCapability"; case OpTypeVoid: return "OpTypeVoid"; case OpTypeBool: return "OpTypeBool"; case OpTypeInt: return "OpTypeInt"; case OpTypeFloat: return "OpTypeFloat"; case OpTypeVector: return "OpTypeVector"; case OpTypeMatrix: return "OpTypeMatrix"; case OpTypeImage: return "OpTypeImage"; case OpTypeSampler: return "OpTypeSampler"; case OpTypeSampledImage: return "OpTypeSampledImage"; case OpTypeArray: return "OpTypeArray"; case OpTypeRuntimeArray: return "OpTypeRuntimeArray"; case OpTypeStruct: return "OpTypeStruct"; case OpTypeOpaque: return "OpTypeOpaque"; case OpTypePointer: return "OpTypePointer"; case OpTypeFunction: return "OpTypeFunction"; case OpTypeEvent: return "OpTypeEvent"; case OpTypeDeviceEvent: return "OpTypeDeviceEvent"; case OpTypeReserveId: return "OpTypeReserveId"; case OpTypeQueue: return "OpTypeQueue"; case OpTypePipe: return "OpTypePipe"; case OpTypeForwardPointer: return "OpTypeForwardPointer"; case OpConstantTrue: return "OpConstantTrue"; case OpConstantFalse: return "OpConstantFalse"; case OpConstant: return "OpConstant"; case OpConstantComposite: return "OpConstantComposite"; case OpConstantSampler: return "OpConstantSampler"; case OpConstantNull: return "OpConstantNull"; case OpSpecConstantTrue: return "OpSpecConstantTrue"; case OpSpecConstantFalse: return "OpSpecConstantFalse"; case OpSpecConstant: return "OpSpecConstant"; case OpSpecConstantComposite: return "OpSpecConstantComposite"; case OpSpecConstantOp: return "OpSpecConstantOp"; case OpFunction: return "OpFunction"; case OpFunctionParameter: return "OpFunctionParameter"; case OpFunctionEnd: return "OpFunctionEnd"; case OpFunctionCall: return "OpFunctionCall"; case OpVariable: return "OpVariable"; case OpImageTexelPointer: return "OpImageTexelPointer"; case OpLoad: return "OpLoad"; case OpStore: return "OpStore"; case OpCopyMemory: return "OpCopyMemory"; case OpCopyMemorySized: return "OpCopyMemorySized"; case OpAccessChain: return "OpAccessChain"; case OpInBoundsAccessChain: return "OpInBoundsAccessChain"; case OpPtrAccessChain: return "OpPtrAccessChain"; case OpArrayLength: return "OpArrayLength"; case OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics"; case OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain"; case OpDecorate: return "OpDecorate"; case OpMemberDecorate: return "OpMemberDecorate"; case OpDecorationGroup: return "OpDecorationGroup"; case OpGroupDecorate: return "OpGroupDecorate"; case OpGroupMemberDecorate: return "OpGroupMemberDecorate"; case OpVectorExtractDynamic: return "OpVectorExtractDynamic"; case OpVectorInsertDynamic: return "OpVectorInsertDynamic"; case OpVectorShuffle: return "OpVectorShuffle"; case OpCompositeConstruct: return "OpCompositeConstruct"; case OpCompositeExtract: return "OpCompositeExtract"; case OpCompositeInsert: return "OpCompositeInsert"; case OpCopyObject: return "OpCopyObject"; case OpTranspose: return "OpTranspose"; case OpSampledImage: return "OpSampledImage"; case OpImageSampleImplicitLod: return "OpImageSampleImplicitLod"; case OpImageSampleExplicitLod: return "OpImageSampleExplicitLod"; case OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod"; case OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod"; case OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod"; case OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod"; case OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod"; case OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod"; case OpImageFetch: return "OpImageFetch"; case OpImageGather: return "OpImageGather"; case OpImageDrefGather: return "OpImageDrefGather"; case OpImageRead: return "OpImageRead"; case OpImageWrite: return "OpImageWrite"; case OpImage: return "OpImage"; case OpImageQueryFormat: return "OpImageQueryFormat"; case OpImageQueryOrder: return "OpImageQueryOrder"; case OpImageQuerySizeLod: return "OpImageQuerySizeLod"; case OpImageQuerySize: return "OpImageQuerySize"; case OpImageQueryLod: return "OpImageQueryLod"; case OpImageQueryLevels: return "OpImageQueryLevels"; case OpImageQuerySamples: return "OpImageQuerySamples"; case OpConvertFToU: return "OpConvertFToU"; case OpConvertFToS: return "OpConvertFToS"; case OpConvertSToF: return "OpConvertSToF"; case OpConvertUToF: return "OpConvertUToF"; case OpUConvert: return "OpUConvert"; case OpSConvert: return "OpSConvert"; case OpFConvert: return "OpFConvert"; case OpQuantizeToF16: return "OpQuantizeToF16"; case OpConvertPtrToU: return "OpConvertPtrToU"; case OpSatConvertSToU: return "OpSatConvertSToU"; case OpSatConvertUToS: return "OpSatConvertUToS"; case OpConvertUToPtr: return "OpConvertUToPtr"; case OpPtrCastToGeneric: return "OpPtrCastToGeneric"; case OpGenericCastToPtr: return "OpGenericCastToPtr"; case OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit"; case OpBitcast: return "OpBitcast"; case OpSNegate: return "OpSNegate"; case OpFNegate: return "OpFNegate"; case OpIAdd: return "OpIAdd"; case OpFAdd: return "OpFAdd"; case OpISub: return "OpISub"; case OpFSub: return "OpFSub"; case OpIMul: return "OpIMul"; case OpFMul: return "OpFMul"; case OpUDiv: return "OpUDiv"; case OpSDiv: return "OpSDiv"; case OpFDiv: return "OpFDiv"; case OpUMod: return "OpUMod"; case OpSRem: return "OpSRem"; case OpSMod: return "OpSMod"; case OpFRem: return "OpFRem"; case OpFMod: return "OpFMod"; case OpVectorTimesScalar: return "OpVectorTimesScalar"; case OpMatrixTimesScalar: return "OpMatrixTimesScalar"; case OpVectorTimesMatrix: return "OpVectorTimesMatrix"; case OpMatrixTimesVector: return "OpMatrixTimesVector"; case OpMatrixTimesMatrix: return "OpMatrixTimesMatrix"; case OpOuterProduct: return "OpOuterProduct"; case OpDot: return "OpDot"; case OpIAddCarry: return "OpIAddCarry"; case OpISubBorrow: return "OpISubBorrow"; case OpUMulExtended: return "OpUMulExtended"; case OpSMulExtended: return "OpSMulExtended"; case OpAny: return "OpAny"; case OpAll: return "OpAll"; case OpIsNan: return "OpIsNan"; case OpIsInf: return "OpIsInf"; case OpIsFinite: return "OpIsFinite"; case OpIsNormal: return "OpIsNormal"; case OpSignBitSet: return "OpSignBitSet"; case OpLessOrGreater: return "OpLessOrGreater"; case OpOrdered: return "OpOrdered"; case OpUnordered: return "OpUnordered"; case OpLogicalEqual: return "OpLogicalEqual"; case OpLogicalNotEqual: return "OpLogicalNotEqual"; case OpLogicalOr: return "OpLogicalOr"; case OpLogicalAnd: return "OpLogicalAnd"; case OpLogicalNot: return "OpLogicalNot"; case OpSelect: return "OpSelect"; case OpIEqual: return "OpIEqual"; case OpINotEqual: return "OpINotEqual"; case OpUGreaterThan: return "OpUGreaterThan"; case OpSGreaterThan: return "OpSGreaterThan"; case OpUGreaterThanEqual: return "OpUGreaterThanEqual"; case OpSGreaterThanEqual: return "OpSGreaterThanEqual"; case OpULessThan: return "OpULessThan"; case OpSLessThan: return "OpSLessThan"; case OpULessThanEqual: return "OpULessThanEqual"; case OpSLessThanEqual: return "OpSLessThanEqual"; case OpFOrdEqual: return "OpFOrdEqual"; case OpFUnordEqual: return "OpFUnordEqual"; case OpFOrdNotEqual: return "OpFOrdNotEqual"; case OpFUnordNotEqual: return "OpFUnordNotEqual"; case OpFOrdLessThan: return "OpFOrdLessThan"; case OpFUnordLessThan: return "OpFUnordLessThan"; case OpFOrdGreaterThan: return "OpFOrdGreaterThan"; case OpFUnordGreaterThan: return "OpFUnordGreaterThan"; case OpFOrdLessThanEqual: return "OpFOrdLessThanEqual"; case OpFUnordLessThanEqual: return "OpFUnordLessThanEqual"; case OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual"; case OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual"; case OpShiftRightLogical: return "OpShiftRightLogical"; case OpShiftRightArithmetic: return "OpShiftRightArithmetic"; case OpShiftLeftLogical: return "OpShiftLeftLogical"; case OpBitwiseOr: return "OpBitwiseOr"; case OpBitwiseXor: return "OpBitwiseXor"; case OpBitwiseAnd: return "OpBitwiseAnd"; case OpNot: return "OpNot"; case OpBitFieldInsert: return "OpBitFieldInsert"; case OpBitFieldSExtract: return "OpBitFieldSExtract"; case OpBitFieldUExtract: return "OpBitFieldUExtract"; case OpBitReverse: return "OpBitReverse"; case OpBitCount: return "OpBitCount"; case OpDPdx: return "OpDPdx"; case OpDPdy: return "OpDPdy"; case OpFwidth: return "OpFwidth"; case OpDPdxFine: return "OpDPdxFine"; case OpDPdyFine: return "OpDPdyFine"; case OpFwidthFine: return "OpFwidthFine"; case OpDPdxCoarse: return "OpDPdxCoarse"; case OpDPdyCoarse: return "OpDPdyCoarse"; case OpFwidthCoarse: return "OpFwidthCoarse"; case OpEmitVertex: return "OpEmitVertex"; case OpEndPrimitive: return "OpEndPrimitive"; case OpEmitStreamVertex: return "OpEmitStreamVertex"; case OpEndStreamPrimitive: return "OpEndStreamPrimitive"; case OpControlBarrier: return "OpControlBarrier"; case OpMemoryBarrier: return "OpMemoryBarrier"; case OpAtomicLoad: return "OpAtomicLoad"; case OpAtomicStore: return "OpAtomicStore"; case OpAtomicExchange: return "OpAtomicExchange"; case OpAtomicCompareExchange: return "OpAtomicCompareExchange"; case OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak"; case OpAtomicIIncrement: return "OpAtomicIIncrement"; case OpAtomicIDecrement: return "OpAtomicIDecrement"; case OpAtomicIAdd: return "OpAtomicIAdd"; case OpAtomicISub: return "OpAtomicISub"; case OpAtomicSMin: return "OpAtomicSMin"; case OpAtomicUMin: return "OpAtomicUMin"; case OpAtomicSMax: return "OpAtomicSMax"; case OpAtomicUMax: return "OpAtomicUMax"; case OpAtomicAnd: return "OpAtomicAnd"; case OpAtomicOr: return "OpAtomicOr"; case OpAtomicXor: return "OpAtomicXor"; case OpPhi: return "OpPhi"; case OpLoopMerge: return "OpLoopMerge"; case OpSelectionMerge: return "OpSelectionMerge"; case OpLabel: return "OpLabel"; case OpBranch: return "OpBranch"; case OpBranchConditional: return "OpBranchConditional"; case OpSwitch: return "OpSwitch"; case OpKill: return "OpKill"; case OpReturn: return "OpReturn"; case OpReturnValue: return "OpReturnValue"; case OpUnreachable: return "OpUnreachable"; case OpLifetimeStart: return "OpLifetimeStart"; case OpLifetimeStop: return "OpLifetimeStop"; case OpGroupAsyncCopy: return "OpGroupAsyncCopy"; case OpGroupWaitEvents: return "OpGroupWaitEvents"; case OpGroupAll: return "OpGroupAll"; case OpGroupAny: return "OpGroupAny"; case OpGroupBroadcast: return "OpGroupBroadcast"; case OpGroupIAdd: return "OpGroupIAdd"; case OpGroupFAdd: return "OpGroupFAdd"; case OpGroupFMin: return "OpGroupFMin"; case OpGroupUMin: return "OpGroupUMin"; case OpGroupSMin: return "OpGroupSMin"; case OpGroupFMax: return "OpGroupFMax"; case OpGroupUMax: return "OpGroupUMax"; case OpGroupSMax: return "OpGroupSMax"; case OpReadPipe: return "OpReadPipe"; case OpWritePipe: return "OpWritePipe"; case OpReservedReadPipe: return "OpReservedReadPipe"; case OpReservedWritePipe: return "OpReservedWritePipe"; case OpReserveReadPipePackets: return "OpReserveReadPipePackets"; case OpReserveWritePipePackets: return "OpReserveWritePipePackets"; case OpCommitReadPipe: return "OpCommitReadPipe"; case OpCommitWritePipe: return "OpCommitWritePipe"; case OpIsValidReserveId: return "OpIsValidReserveId"; case OpGetNumPipePackets: return "OpGetNumPipePackets"; case OpGetMaxPipePackets: return "OpGetMaxPipePackets"; case OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets"; case OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets"; case OpGroupCommitReadPipe: return "OpGroupCommitReadPipe"; case OpGroupCommitWritePipe: return "OpGroupCommitWritePipe"; case OpEnqueueMarker: return "OpEnqueueMarker"; case OpEnqueueKernel: return "OpEnqueueKernel"; case OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount"; case OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize"; case OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize"; case OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple"; case OpRetainEvent: return "OpRetainEvent"; case OpReleaseEvent: return "OpReleaseEvent"; case OpCreateUserEvent: return "OpCreateUserEvent"; case OpIsValidEvent: return "OpIsValidEvent"; case OpSetUserEventStatus: return "OpSetUserEventStatus"; case OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo"; case OpGetDefaultQueue: return "OpGetDefaultQueue"; case OpBuildNDRange: return "OpBuildNDRange"; case OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod"; case OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod"; case OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod"; case OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod"; case OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod"; case OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod"; case OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod"; case OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod"; case OpImageSparseFetch: return "OpImageSparseFetch"; case OpImageSparseGather: return "OpImageSparseGather"; case OpImageSparseDrefGather: return "OpImageSparseDrefGather"; case OpImageSparseTexelsResident: return "OpImageSparseTexelsResident"; case OpNoLine: return "OpNoLine"; case OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet"; case OpAtomicFlagClear: return "OpAtomicFlagClear"; case OpImageSparseRead: return "OpImageSparseRead"; case OpSizeOf: return "OpSizeOf"; case OpTypePipeStorage: return "OpTypePipeStorage"; case OpConstantPipeStorage: return "OpConstantPipeStorage"; case OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage"; case OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount"; case OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups"; case OpTypeNamedBarrier: return "OpTypeNamedBarrier"; case OpNamedBarrierInitialize: return "OpNamedBarrierInitialize"; case OpMemoryNamedBarrier: return "OpMemoryNamedBarrier"; case OpModuleProcessed: return "OpModuleProcessed"; case OpExecutionModeId: return "OpExecutionModeId"; case OpDecorateId: return "OpDecorateId"; case OpGroupNonUniformElect: return "OpGroupNonUniformElect"; case OpGroupNonUniformAll: return "OpGroupNonUniformAll"; case OpGroupNonUniformAny: return "OpGroupNonUniformAny"; case OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual"; case OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast"; case OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst"; case OpGroupNonUniformBallot: return "OpGroupNonUniformBallot"; case OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot"; case OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract"; case OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount"; case OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB"; case OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB"; case OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle"; case OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor"; case OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp"; case OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown"; case OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd"; case OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd"; case OpGroupNonUniformIMul: return "OpGroupNonUniformIMul"; case OpGroupNonUniformFMul: return "OpGroupNonUniformFMul"; case OpGroupNonUniformSMin: return "OpGroupNonUniformSMin"; case OpGroupNonUniformUMin: return "OpGroupNonUniformUMin"; case OpGroupNonUniformFMin: return "OpGroupNonUniformFMin"; case OpGroupNonUniformSMax: return "OpGroupNonUniformSMax"; case OpGroupNonUniformUMax: return "OpGroupNonUniformUMax"; case OpGroupNonUniformFMax: return "OpGroupNonUniformFMax"; case OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd"; case OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr"; case OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor"; case OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd"; case OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr"; case OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor"; case OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast"; case OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap"; case OpCopyLogical: return "OpCopyLogical"; case OpPtrEqual: return "OpPtrEqual"; case OpPtrNotEqual: return "OpPtrNotEqual"; case OpPtrDiff: return "OpPtrDiff"; case OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT"; case OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT"; case OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT"; case OpTerminateInvocation: return "OpTerminateInvocation"; case OpSubgroupBallotKHR: return "OpSubgroupBallotKHR"; case OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR"; case OpSubgroupAllKHR: return "OpSubgroupAllKHR"; case OpSubgroupAnyKHR: return "OpSubgroupAnyKHR"; case OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR"; case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR"; case OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR"; case OpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR"; case OpTraceRayKHR: return "OpTraceRayKHR"; case OpExecuteCallableKHR: return "OpExecuteCallableKHR"; case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR"; case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR"; case OpTerminateRayKHR: return "OpTerminateRayKHR"; case OpSDot: return "OpSDot"; case OpUDot: return "OpUDot"; case OpSUDot: return "OpSUDot"; case OpSDotAccSat: return "OpSDotAccSat"; case OpUDotAccSat: return "OpUDotAccSat"; case OpSUDotAccSat: return "OpSUDotAccSat"; case OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR"; case OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR"; case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR"; case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR"; case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR"; case OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT"; case OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT"; case OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT"; case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR"; case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR"; case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR"; case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR"; case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR"; case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR"; case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR"; case OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM"; case OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM"; case OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM"; case OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM"; case OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM"; case OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM"; case OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM"; case OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM"; case OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD"; case OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD"; case OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD"; case OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD"; case OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD"; case OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD"; case OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD"; case OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD"; case OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD"; case OpFragmentFetchAMD: return "OpFragmentFetchAMD"; case OpReadClockKHR: return "OpReadClockKHR"; case OpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX"; case OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX"; case OpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX"; case OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR"; case OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR"; case OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV"; case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV"; case OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV"; case OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV"; case OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV"; case OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV"; case OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV"; case OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV"; case OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV"; case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV"; case OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV"; case OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV"; case OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV"; case OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV"; case OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV"; case OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV"; case OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV"; case OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV"; case OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV"; case OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV"; case OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV"; case OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV"; case OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV"; case OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV"; case OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV"; case OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV"; case OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV"; case OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV"; case OpHitObjectIsHitNV: return "OpHitObjectIsHitNV"; case OpHitObjectIsMissNV: return "OpHitObjectIsMissNV"; case OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV"; case OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV"; case OpTypeHitObjectNV: return "OpTypeHitObjectNV"; case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV"; case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT"; case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT"; case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV"; case OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV"; case OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV"; case OpReportIntersectionKHR: return "OpReportIntersectionKHR"; case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case OpTerminateRayNV: return "OpTerminateRayNV"; case OpTraceNV: return "OpTraceNV"; case OpTraceMotionNV: return "OpTraceMotionNV"; case OpTraceRayMotionNV: return "OpTraceRayMotionNV"; case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR"; case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR"; case OpExecuteCallableNV: return "OpExecuteCallableNV"; case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV"; case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV"; case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT"; case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT"; case OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation"; case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT"; case OpConvertUToImageNV: return "OpConvertUToImageNV"; case OpConvertUToSamplerNV: return "OpConvertUToSamplerNV"; case OpConvertImageToUNV: return "OpConvertImageToUNV"; case OpConvertSamplerToUNV: return "OpConvertSamplerToUNV"; case OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV"; case OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV"; case OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV"; case OpRawAccessChainNV: return "OpRawAccessChainNV"; case OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL"; case OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL"; case OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL"; case OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL"; case OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL"; case OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL"; case OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL"; case OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL"; case OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL"; case OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL"; case OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL"; case OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL"; case OpAbsISubINTEL: return "OpAbsISubINTEL"; case OpAbsUSubINTEL: return "OpAbsUSubINTEL"; case OpIAddSatINTEL: return "OpIAddSatINTEL"; case OpUAddSatINTEL: return "OpUAddSatINTEL"; case OpIAverageINTEL: return "OpIAverageINTEL"; case OpUAverageINTEL: return "OpUAverageINTEL"; case OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL"; case OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL"; case OpISubSatINTEL: return "OpISubSatINTEL"; case OpUSubSatINTEL: return "OpUSubSatINTEL"; case OpIMul32x16INTEL: return "OpIMul32x16INTEL"; case OpUMul32x16INTEL: return "OpUMul32x16INTEL"; case OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL"; case OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL"; case OpAsmTargetINTEL: return "OpAsmTargetINTEL"; case OpAsmINTEL: return "OpAsmINTEL"; case OpAsmCallINTEL: return "OpAsmCallINTEL"; case OpAtomicFMinEXT: return "OpAtomicFMinEXT"; case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT"; case OpAssumeTrueKHR: return "OpAssumeTrueKHR"; case OpExpectKHR: return "OpExpectKHR"; case OpDecorateString: return "OpDecorateString"; case OpMemberDecorateString: return "OpMemberDecorateString"; case OpVmeImageINTEL: return "OpVmeImageINTEL"; case OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL"; case OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL"; case OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL"; case OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL"; case OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL"; case OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL"; case OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL"; case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL"; case OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL"; case OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL"; case OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL"; case OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL"; case OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL"; case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL"; case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL"; case OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL"; case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL"; case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL"; case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL"; case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL"; case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL"; case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL"; case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL"; case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL"; case OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL"; case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL"; case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL"; case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL"; case OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL"; case OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL"; case OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL"; case OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL"; case OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL"; case OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL"; case OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL"; case OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL"; case OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL"; case OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL"; case OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL"; case OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL"; case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL"; case OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL"; case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL"; case OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL"; case OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL"; case OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL"; case OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL"; case OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL"; case OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL"; case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL"; case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL"; case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL"; case OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL"; case OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL"; case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL"; case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL"; case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL"; case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL"; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL"; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL"; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL"; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL"; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL"; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL"; case OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL"; case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL"; case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL"; case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL"; case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL"; case OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL"; case OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL"; case OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL"; case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL"; case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL"; case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL"; case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL"; case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL"; case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL"; case OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL"; case OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL"; case OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL"; case OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL"; case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL"; case OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL"; case OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL"; case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL"; case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL"; case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL"; case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL"; case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL"; case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL"; case OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL"; case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL"; case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL"; case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL"; case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL"; case OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL"; case OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL"; case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL"; case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL"; case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL"; case OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL"; case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL"; case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL"; case OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL"; case OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL"; case OpSaveMemoryINTEL: return "OpSaveMemoryINTEL"; case OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL"; case OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL"; case OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL"; case OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL"; case OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL"; case OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL"; case OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL"; case OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL"; case OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL"; case OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL"; case OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL"; case OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL"; case OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL"; case OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL"; case OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL"; case OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL"; case OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL"; case OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL"; case OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL"; case OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL"; case OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL"; case OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL"; case OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL"; case OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL"; case OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL"; case OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL"; case OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL"; case OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL"; case OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL"; case OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL"; case OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL"; case OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL"; case OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL"; case OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL"; case OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL"; case OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL"; case OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL"; case OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL"; case OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL"; case OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL"; case OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL"; case OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL"; case OpLoopControlINTEL: return "OpLoopControlINTEL"; case OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL"; case OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL"; case OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL"; case OpFixedSqrtINTEL: return "OpFixedSqrtINTEL"; case OpFixedRecipINTEL: return "OpFixedRecipINTEL"; case OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL"; case OpFixedSinINTEL: return "OpFixedSinINTEL"; case OpFixedCosINTEL: return "OpFixedCosINTEL"; case OpFixedSinCosINTEL: return "OpFixedSinCosINTEL"; case OpFixedSinPiINTEL: return "OpFixedSinPiINTEL"; case OpFixedCosPiINTEL: return "OpFixedCosPiINTEL"; case OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL"; case OpFixedLogINTEL: return "OpFixedLogINTEL"; case OpFixedExpINTEL: return "OpFixedExpINTEL"; case OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL"; case OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL"; case OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL"; case OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL"; case OpFPGARegINTEL: return "OpFPGARegINTEL"; case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR"; case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR"; case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR"; case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR"; case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR"; case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR"; case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR"; case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR"; case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR"; case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR"; case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR"; case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR"; case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR"; case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR"; case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR"; case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR"; case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR"; case OpAtomicFAddEXT: return "OpAtomicFAddEXT"; case OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL"; case OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL"; case OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL"; case OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL"; case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL"; case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL"; case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL"; case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL"; case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL"; case OpGroupIMulKHR: return "OpGroupIMulKHR"; case OpGroupFMulKHR: return "OpGroupFMulKHR"; case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR"; case OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR"; case OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR"; case OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR"; case OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR"; case OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR"; case OpMaskedGatherINTEL: return "OpMaskedGatherINTEL"; case OpMaskedScatterINTEL: return "OpMaskedScatterINTEL"; default: return "Unknown"; } } #endif /* SPV_ENABLE_UTILITY_CODE */ // Overload bitwise operators for mask bit combining inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); } inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); } inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); } inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); } inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); } inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); } inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); } inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); } inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); } inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); } inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); } inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); } inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); } inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); } inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); } inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); } inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); } inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); } inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); } inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); } inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); } inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); } inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); } inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); } inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); } inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); } inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); } inline RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); } inline RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); } inline RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); } inline RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.hpp11000066400000000000000000007401131463234063200235600ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // This header is automatically generated by the same tool that creates // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: // C, C++, C++11, JSON, Lua, Python, C#, D, Beef // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] // - C# will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL // - Beef will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have // "Mask" in their name, and a parallel enum that has the shift // amount (1 << x) for each corresponding enumerant. #ifndef spirv_HPP #define spirv_HPP namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10600 #define SPV_REVISION 1 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010600; static const unsigned int Revision = 1; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; enum class SourceLanguage : unsigned { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, HERO_C = 8, NZSL = 9, WGSL = 10, Slang = 11, Zig = 12, Max = 0x7fffffff, }; enum class ExecutionModel : unsigned { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, TaskNV = 5267, MeshNV = 5268, RayGenerationKHR = 5313, RayGenerationNV = 5313, IntersectionKHR = 5314, IntersectionNV = 5314, AnyHitKHR = 5315, AnyHitNV = 5315, ClosestHitKHR = 5316, ClosestHitNV = 5316, MissKHR = 5317, MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, TaskEXT = 5364, MeshEXT = 5365, Max = 0x7fffffff, }; enum class AddressingModel : unsigned { Logical = 0, Physical32 = 1, Physical64 = 2, PhysicalStorageBuffer64 = 5348, PhysicalStorageBuffer64EXT = 5348, Max = 0x7fffffff, }; enum class MemoryModel : unsigned { Simple = 0, GLSL450 = 1, OpenCL = 2, Vulkan = 3, VulkanKHR = 3, Max = 0x7fffffff, }; enum class ExecutionMode : unsigned { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, NonCoherentColorAttachmentReadEXT = 4169, NonCoherentDepthAttachmentReadEXT = 4170, NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, DenormFlushToZero = 4460, SignedZeroInfNanPreserve = 4461, RoundingModeRTE = 4462, RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, CoalescingAMDX = 5069, MaxNodeRecursionAMDX = 5071, StaticNumWorkgroupsAMDX = 5072, ShaderIndexAMDX = 5073, MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, QuadDerivativesKHR = 5088, RequireFullQuadsKHR = 5089, OutputLinesEXT = 5269, OutputLinesNV = 5269, OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, SampleInterlockOrderedEXT = 5368, SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, FloatingPointModeALTINTEL = 5622, FloatingPointModeIEEEINTEL = 5623, MaxWorkgroupSizeINTEL = 5893, MaxWorkDimINTEL = 5894, NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, MaximallyReconvergesKHR = 6023, FPFastMathDefault = 6028, StreamingInterfaceINTEL = 6154, RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, MaximumRegistersINTEL = 6461, MaximumRegistersIdINTEL = 6462, NamedMaximumRegistersINTEL = 6463, Max = 0x7fffffff, }; enum class StorageClass : unsigned { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, TileImageEXT = 4172, NodePayloadAMDX = 5068, NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, IncomingCallableDataNV = 5329, RayPayloadKHR = 5338, RayPayloadNV = 5338, HitAttributeKHR = 5339, HitAttributeNV = 5339, IncomingRayPayloadKHR = 5342, IncomingRayPayloadNV = 5342, ShaderRecordBufferKHR = 5343, ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, Max = 0x7fffffff, }; enum class Dim : unsigned { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, TileImageDataEXT = 4173, Max = 0x7fffffff, }; enum class SamplerAddressingMode : unsigned { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, Max = 0x7fffffff, }; enum class SamplerFilterMode : unsigned { Nearest = 0, Linear = 1, Max = 0x7fffffff, }; enum class ImageFormat : unsigned { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, R64ui = 40, R64i = 41, Max = 0x7fffffff, }; enum class ImageChannelOrder : unsigned { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, Max = 0x7fffffff, }; enum class ImageChannelDataType : unsigned { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, UnsignedIntRaw10EXT = 19, UnsignedIntRaw12EXT = 20, Max = 0x7fffffff, }; enum class ImageOperandsShift : unsigned { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, MakeTexelAvailable = 8, MakeTexelAvailableKHR = 8, MakeTexelVisible = 9, MakeTexelVisibleKHR = 9, NonPrivateTexel = 10, NonPrivateTexelKHR = 10, VolatileTexel = 11, VolatileTexelKHR = 11, SignExtend = 12, ZeroExtend = 13, Nontemporal = 14, Offsets = 16, Max = 0x7fffffff, }; enum class ImageOperandsMask : unsigned { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, MakeTexelAvailable = 0x00000100, MakeTexelAvailableKHR = 0x00000100, MakeTexelVisible = 0x00000200, MakeTexelVisibleKHR = 0x00000200, NonPrivateTexel = 0x00000400, NonPrivateTexelKHR = 0x00000400, VolatileTexel = 0x00000800, VolatileTexelKHR = 0x00000800, SignExtend = 0x00001000, ZeroExtend = 0x00002000, Nontemporal = 0x00004000, Offsets = 0x00010000, }; enum class FPFastMathModeShift : unsigned { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, AllowContract = 16, AllowContractFastINTEL = 16, AllowReassoc = 17, AllowReassocINTEL = 17, AllowTransform = 18, Max = 0x7fffffff, }; enum class FPFastMathModeMask : unsigned { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, AllowContract = 0x00010000, AllowContractFastINTEL = 0x00010000, AllowReassoc = 0x00020000, AllowReassocINTEL = 0x00020000, AllowTransform = 0x00040000, }; enum class FPRoundingMode : unsigned { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, Max = 0x7fffffff, }; enum class LinkageType : unsigned { Export = 0, Import = 1, LinkOnceODR = 2, Max = 0x7fffffff, }; enum class AccessQualifier : unsigned { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, Max = 0x7fffffff, }; enum class FunctionParameterAttribute : unsigned { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, RuntimeAlignedINTEL = 5940, Max = 0x7fffffff, }; enum class Decoration : unsigned { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, UniformId = 27, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, WeightTextureQCOM = 4487, BlockMatchTextureQCOM = 4488, BlockMatchSamplerQCOM = 4499, ExplicitInterpAMD = 4999, NodeSharesPayloadLimitsWithAMDX = 5019, NodeMaxPayloadsAMDX = 5020, TrackFinishWritingAMDX = 5078, PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, PerVertexKHR = 5285, PerVertexNV = 5285, NonUniform = 5300, NonUniformEXT = 5300, RestrictPointer = 5355, RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, BoundImageNV = 5401, SIMTCallINTEL = 5599, ReferencedIndirectlyINTEL = 5602, ClobberINTEL = 5607, SideEffectsINTEL = 5608, VectorComputeVariableINTEL = 5624, FuncParamIOKindINTEL = 5625, VectorComputeFunctionINTEL = 5626, StackCallINTEL = 5627, GlobalVariableOffsetINTEL = 5628, CounterBuffer = 5634, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, UserSemantic = 5635, UserTypeGOOGLE = 5636, FunctionRoundingModeINTEL = 5822, FunctionDenormModeINTEL = 5823, RegisterINTEL = 5825, MemoryINTEL = 5826, NumbanksINTEL = 5827, BankwidthINTEL = 5828, MaxPrivateCopiesINTEL = 5829, SinglepumpINTEL = 5830, DoublepumpINTEL = 5831, MaxReplicatesINTEL = 5832, SimpleDualPortINTEL = 5833, MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, StridesizeINTEL = 5883, WordsizeINTEL = 5884, TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, InitiationIntervalINTEL = 5917, MaxConcurrencyINTEL = 5918, PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, StallFreeINTEL = 6151, FPMaxErrorDecorationINTEL = 6170, LatencyControlLabelINTEL = 6172, LatencyControlConstraintINTEL = 6173, ConduitKernelArgumentINTEL = 6175, RegisterMapKernelArgumentINTEL = 6176, MMHostInterfaceAddressWidthINTEL = 6177, MMHostInterfaceDataWidthINTEL = 6178, MMHostInterfaceLatencyINTEL = 6179, MMHostInterfaceReadWriteModeINTEL = 6180, MMHostInterfaceMaxBurstINTEL = 6181, MMHostInterfaceWaitRequestINTEL = 6182, StableKernelArgumentINTEL = 6183, HostAccessINTEL = 6188, InitModeINTEL = 6190, ImplementInRegisterMapINTEL = 6191, CacheControlLoadINTEL = 6442, CacheControlStoreINTEL = 6443, Max = 0x7fffffff, }; enum class BuiltIn : unsigned { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, CoreIDARM = 4160, CoreCountARM = 4161, CoreMaxIDARM = 4162, WarpIDARM = 4163, WarpMaxIDARM = 4164, SubgroupEqMask = 4416, SubgroupEqMaskKHR = 4416, SubgroupGeMask = 4417, SubgroupGeMaskKHR = 4417, SubgroupGtMask = 4418, SubgroupGtMaskKHR = 4418, SubgroupLeMask = 4419, SubgroupLeMaskKHR = 4419, SubgroupLtMask = 4420, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, PrimitiveShadingRateKHR = 4432, DeviceIndex = 4438, ViewIndex = 4440, ShadingRateKHR = 4444, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, CoalescedInputCountAMDX = 5021, ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, FullyCoveredEXT = 5264, TaskCountNV = 5274, PrimitiveCountNV = 5275, PrimitiveIndicesNV = 5276, ClipDistancePerViewNV = 5277, CullDistancePerViewNV = 5278, LayerPerViewNV = 5279, MeshViewCountNV = 5280, MeshViewIndicesNV = 5281, BaryCoordKHR = 5286, BaryCoordNV = 5286, BaryCoordNoPerspKHR = 5287, BaryCoordNoPerspNV = 5287, FragSizeEXT = 5292, FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, PrimitivePointIndicesEXT = 5294, PrimitiveLineIndicesEXT = 5295, PrimitiveTriangleIndicesEXT = 5296, CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, LaunchSizeNV = 5320, WorldRayOriginKHR = 5321, WorldRayOriginNV = 5321, WorldRayDirectionKHR = 5322, WorldRayDirectionNV = 5322, ObjectRayOriginKHR = 5323, ObjectRayOriginNV = 5323, ObjectRayDirectionKHR = 5324, ObjectRayDirectionNV = 5324, RayTminKHR = 5325, RayTminNV = 5325, RayTmaxKHR = 5326, RayTmaxNV = 5326, InstanceCustomIndexKHR = 5327, InstanceCustomIndexNV = 5327, ObjectToWorldKHR = 5330, ObjectToWorldNV = 5330, WorldToObjectKHR = 5331, WorldToObjectNV = 5331, HitTNV = 5332, HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, HitTriangleVertexPositionsKHR = 5335, HitMicroTriangleVertexPositionsNV = 5337, HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, WarpsPerSMNV = 5374, SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, HitKindFrontFacingMicroTriangleNV = 5405, HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, Max = 0x7fffffff, }; enum class SelectionControlShift : unsigned { Flatten = 0, DontFlatten = 1, Max = 0x7fffffff, }; enum class SelectionControlMask : unsigned { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }; enum class LoopControlShift : unsigned { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, MinIterations = 4, MaxIterations = 5, IterationMultiple = 6, PeelCount = 7, PartialCount = 8, InitiationIntervalINTEL = 16, MaxConcurrencyINTEL = 17, DependencyArrayINTEL = 18, PipelineEnableINTEL = 19, LoopCoalesceINTEL = 20, MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, LoopCountINTEL = 24, MaxReinvocationDelayINTEL = 25, Max = 0x7fffffff, }; enum class LoopControlMask : unsigned { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, MinIterations = 0x00000010, MaxIterations = 0x00000020, IterationMultiple = 0x00000040, PeelCount = 0x00000080, PartialCount = 0x00000100, InitiationIntervalINTEL = 0x00010000, MaxConcurrencyINTEL = 0x00020000, DependencyArrayINTEL = 0x00040000, PipelineEnableINTEL = 0x00080000, LoopCoalesceINTEL = 0x00100000, MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, LoopCountINTEL = 0x01000000, MaxReinvocationDelayINTEL = 0x02000000, }; enum class FunctionControlShift : unsigned { Inline = 0, DontInline = 1, Pure = 2, Const = 3, OptNoneINTEL = 16, Max = 0x7fffffff, }; enum class FunctionControlMask : unsigned { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, OptNoneINTEL = 0x00010000, }; enum class MemorySemanticsShift : unsigned { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, OutputMemory = 12, OutputMemoryKHR = 12, MakeAvailable = 13, MakeAvailableKHR = 13, MakeVisible = 14, MakeVisibleKHR = 14, Volatile = 15, Max = 0x7fffffff, }; enum class MemorySemanticsMask : unsigned { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, OutputMemory = 0x00001000, OutputMemoryKHR = 0x00001000, MakeAvailable = 0x00002000, MakeAvailableKHR = 0x00002000, MakeVisible = 0x00004000, MakeVisibleKHR = 0x00004000, Volatile = 0x00008000, }; enum class MemoryAccessShift : unsigned { Volatile = 0, Aligned = 1, Nontemporal = 2, MakePointerAvailable = 3, MakePointerAvailableKHR = 3, MakePointerVisible = 4, MakePointerVisibleKHR = 4, NonPrivatePointer = 5, NonPrivatePointerKHR = 5, AliasScopeINTELMask = 16, NoAliasINTELMask = 17, Max = 0x7fffffff, }; enum class MemoryAccessMask : unsigned { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, MakePointerAvailable = 0x00000008, MakePointerAvailableKHR = 0x00000008, MakePointerVisible = 0x00000010, MakePointerVisibleKHR = 0x00000010, NonPrivatePointer = 0x00000020, NonPrivatePointerKHR = 0x00000020, AliasScopeINTELMask = 0x00010000, NoAliasINTELMask = 0x00020000, }; enum class Scope : unsigned { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, QueueFamily = 5, QueueFamilyKHR = 5, ShaderCallKHR = 6, Max = 0x7fffffff, }; enum class GroupOperation : unsigned { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, ClusteredReduce = 3, PartitionedReduceNV = 6, PartitionedInclusiveScanNV = 7, PartitionedExclusiveScanNV = 8, Max = 0x7fffffff, }; enum class KernelEnqueueFlags : unsigned { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, Max = 0x7fffffff, }; enum class KernelProfilingInfoShift : unsigned { CmdExecTime = 0, Max = 0x7fffffff, }; enum class KernelProfilingInfoMask : unsigned { MaskNone = 0, CmdExecTime = 0x00000001, }; enum class Capability : unsigned { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, GroupNonUniform = 61, GroupNonUniformVote = 62, GroupNonUniformArithmetic = 63, GroupNonUniformBallot = 64, GroupNonUniformShuffle = 65, GroupNonUniformShuffleRelative = 66, GroupNonUniformClustered = 67, GroupNonUniformQuad = 68, ShaderLayer = 69, ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, TileImageColorReadAccessEXT = 4166, TileImageDepthReadAccessEXT = 4167, TileImageStencilReadAccessEXT = 4168, CooperativeMatrixLayoutsARM = 4201, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, WorkgroupMemoryExplicitLayoutKHR = 4428, WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, StorageBuffer8BitAccess = 4448, UniformAndStorageBuffer8BitAccess = 4449, StoragePushConstant8 = 4450, DenormPreserve = 4464, DenormFlushToZero = 4465, SignedZeroInfNanPreserve = 4466, RoundingModeRTE = 4467, RoundingModeRTZ = 4468, RayQueryProvisionalKHR = 4471, RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, TextureSampleWeightedQCOM = 4484, TextureBoxFilterQCOM = 4485, TextureBlockMatchQCOM = 4486, TextureBlockMatch2QCOM = 4498, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, ShaderEnqueueAMDX = 5067, QuadControlKHR = 5087, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, FragmentDensityEXT = 5291, ShadingRateNV = 5291, GroupNonUniformPartitionedNV = 5297, ShaderNonUniform = 5301, ShaderNonUniformEXT = 5301, RuntimeDescriptorArray = 5302, RuntimeDescriptorArrayEXT = 5302, InputAttachmentArrayDynamicIndexing = 5303, InputAttachmentArrayDynamicIndexingEXT = 5303, UniformTexelBufferArrayDynamicIndexing = 5304, UniformTexelBufferArrayDynamicIndexingEXT = 5304, StorageTexelBufferArrayDynamicIndexing = 5305, StorageTexelBufferArrayDynamicIndexingEXT = 5305, UniformBufferArrayNonUniformIndexing = 5306, UniformBufferArrayNonUniformIndexingEXT = 5306, SampledImageArrayNonUniformIndexing = 5307, SampledImageArrayNonUniformIndexingEXT = 5307, StorageBufferArrayNonUniformIndexing = 5308, StorageBufferArrayNonUniformIndexingEXT = 5308, StorageImageArrayNonUniformIndexing = 5309, StorageImageArrayNonUniformIndexingEXT = 5309, InputAttachmentArrayNonUniformIndexing = 5310, InputAttachmentArrayNonUniformIndexingEXT = 5310, UniformTexelBufferArrayNonUniformIndexing = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, VulkanMemoryModelKHR = 5345, VulkanMemoryModelDeviceScope = 5346, VulkanMemoryModelDeviceScopeKHR = 5346, PhysicalStorageBufferAddresses = 5347, PhysicalStorageBufferAddressesEXT = 5347, ComputeDerivativeGroupLinearNV = 5350, RayTracingProvisionalKHR = 5353, CooperativeMatrixNV = 5357, FragmentShaderSampleInterlockEXT = 5363, FragmentShaderShadingRateInterlockEXT = 5372, ShaderSMBuiltinsNV = 5373, FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, AtomicFloat16VectorNV = 5404, RayTracingDisplacementMicromapNV = 5409, RawAccessChainsNV = 5414, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, SubgroupImageMediaBlockIOINTEL = 5579, RoundToInfinityINTEL = 5582, FloatingPointModeINTEL = 5583, IntegerFunctions2INTEL = 5584, FunctionPointersINTEL = 5603, IndirectReferencesINTEL = 5604, AsmINTEL = 5606, AtomicFloat32MinMaxEXT = 5612, AtomicFloat64MinMaxEXT = 5613, AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, VariableLengthArrayINTEL = 5817, FunctionFloatControlINTEL = 5821, FPGAMemoryAttributesINTEL = 5824, FPFastMathModeINTEL = 5837, ArbitraryPrecisionIntegersINTEL = 5844, ArbitraryPrecisionFloatingPointINTEL = 5845, UnstructuredLoopControlsINTEL = 5886, FPGALoopControlsINTEL = 5888, KernelAttributesINTEL = 5892, FPGAKernelAttributesINTEL = 5897, FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, DotProductInputAll = 6016, DotProductInputAllKHR = 6016, DotProductInput4x8Bit = 6017, DotProductInput4x8BitKHR = 6017, DotProductInput4x8BitPacked = 6018, DotProductInput4x8BitPackedKHR = 6018, DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, CooperativeMatrixKHR = 6022, ReplicatedCompositesEXT = 6024, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, FloatControls2 = 6029, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, FPGAClusterAttributesV2INTEL = 6150, FPGAKernelAttributesv2INTEL = 6161, FPMaxErrorINTEL = 6169, FPGALatencyControlINTEL = 6171, FPGAArgumentInterfacesINTEL = 6174, GlobalVariableHostAccessINTEL = 6187, GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, MaskedGatherScatterINTEL = 6427, CacheControlsINTEL = 6441, RegisterLimitsINTEL = 6460, Max = 0x7fffffff, }; enum class RayFlagsShift : unsigned { OpaqueKHR = 0, NoOpaqueKHR = 1, TerminateOnFirstHitKHR = 2, SkipClosestHitShaderKHR = 3, CullBackFacingTrianglesKHR = 4, CullFrontFacingTrianglesKHR = 5, CullOpaqueKHR = 6, CullNoOpaqueKHR = 7, SkipTrianglesKHR = 8, SkipAABBsKHR = 9, ForceOpacityMicromap2StateEXT = 10, Max = 0x7fffffff, }; enum class RayFlagsMask : unsigned { MaskNone = 0, OpaqueKHR = 0x00000001, NoOpaqueKHR = 0x00000002, TerminateOnFirstHitKHR = 0x00000004, SkipClosestHitShaderKHR = 0x00000008, CullBackFacingTrianglesKHR = 0x00000010, CullFrontFacingTrianglesKHR = 0x00000020, CullOpaqueKHR = 0x00000040, CullNoOpaqueKHR = 0x00000080, SkipTrianglesKHR = 0x00000100, SkipAABBsKHR = 0x00000200, ForceOpacityMicromap2StateEXT = 0x00000400, }; enum class RayQueryIntersection : unsigned { RayQueryCandidateIntersectionKHR = 0, RayQueryCommittedIntersectionKHR = 1, Max = 0x7fffffff, }; enum class RayQueryCommittedIntersectionType : unsigned { RayQueryCommittedIntersectionNoneKHR = 0, RayQueryCommittedIntersectionTriangleKHR = 1, RayQueryCommittedIntersectionGeneratedKHR = 2, Max = 0x7fffffff, }; enum class RayQueryCandidateIntersectionType : unsigned { RayQueryCandidateIntersectionTriangleKHR = 0, RayQueryCandidateIntersectionAABBKHR = 1, Max = 0x7fffffff, }; enum class FragmentShadingRateShift : unsigned { Vertical2Pixels = 0, Vertical4Pixels = 1, Horizontal2Pixels = 2, Horizontal4Pixels = 3, Max = 0x7fffffff, }; enum class FragmentShadingRateMask : unsigned { MaskNone = 0, Vertical2Pixels = 0x00000001, Vertical4Pixels = 0x00000002, Horizontal2Pixels = 0x00000004, Horizontal4Pixels = 0x00000008, }; enum class FPDenormMode : unsigned { Preserve = 0, FlushToZero = 1, Max = 0x7fffffff, }; enum class FPOperationMode : unsigned { IEEE = 0, ALT = 1, Max = 0x7fffffff, }; enum class QuantizationModes : unsigned { TRN = 0, TRN_ZERO = 1, RND = 2, RND_ZERO = 3, RND_INF = 4, RND_MIN_INF = 5, RND_CONV = 6, RND_CONV_ODD = 7, Max = 0x7fffffff, }; enum class OverflowModes : unsigned { WRAP = 0, SAT = 1, SAT_ZERO = 2, SAT_SYM = 3, Max = 0x7fffffff, }; enum class PackedVectorFormat : unsigned { PackedVectorFormat4x8Bit = 0, PackedVectorFormat4x8BitKHR = 0, Max = 0x7fffffff, }; enum class CooperativeMatrixOperandsShift : unsigned { MatrixASignedComponentsKHR = 0, MatrixBSignedComponentsKHR = 1, MatrixCSignedComponentsKHR = 2, MatrixResultSignedComponentsKHR = 3, SaturatingAccumulationKHR = 4, Max = 0x7fffffff, }; enum class CooperativeMatrixOperandsMask : unsigned { MaskNone = 0, MatrixASignedComponentsKHR = 0x00000001, MatrixBSignedComponentsKHR = 0x00000002, MatrixCSignedComponentsKHR = 0x00000004, MatrixResultSignedComponentsKHR = 0x00000008, SaturatingAccumulationKHR = 0x00000010, }; enum class CooperativeMatrixLayout : unsigned { RowMajorKHR = 0, ColumnMajorKHR = 1, RowBlockedInterleavedARM = 4202, ColumnBlockedInterleavedARM = 4203, Max = 0x7fffffff, }; enum class CooperativeMatrixUse : unsigned { MatrixAKHR = 0, MatrixBKHR = 1, MatrixAccumulatorKHR = 2, Max = 0x7fffffff, }; enum class InitializationModeQualifier : unsigned { InitOnDeviceReprogramINTEL = 0, InitOnDeviceResetINTEL = 1, Max = 0x7fffffff, }; enum class HostAccessQualifier : unsigned { NoneINTEL = 0, ReadINTEL = 1, WriteINTEL = 2, ReadWriteINTEL = 3, Max = 0x7fffffff, }; enum class LoadCacheControl : unsigned { UncachedINTEL = 0, CachedINTEL = 1, StreamingINTEL = 2, InvalidateAfterReadINTEL = 3, ConstCachedINTEL = 4, Max = 0x7fffffff, }; enum class StoreCacheControl : unsigned { UncachedINTEL = 0, WriteThroughINTEL = 1, WriteBackINTEL = 2, StreamingINTEL = 3, Max = 0x7fffffff, }; enum class NamedMaximumNumberOfRegisters : unsigned { AutoINTEL = 0, Max = 0x7fffffff, }; enum class RawAccessChainOperandsShift : unsigned { RobustnessPerComponentNV = 0, RobustnessPerElementNV = 1, Max = 0x7fffffff, }; enum class RawAccessChainOperandsMask : unsigned { MaskNone = 0, RobustnessPerComponentNV = 0x00000001, RobustnessPerElementNV = 0x00000002, }; enum class Op : unsigned { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpGroupNonUniformElect = 333, OpGroupNonUniformAll = 334, OpGroupNonUniformAny = 335, OpGroupNonUniformAllEqual = 336, OpGroupNonUniformBroadcast = 337, OpGroupNonUniformBroadcastFirst = 338, OpGroupNonUniformBallot = 339, OpGroupNonUniformInverseBallot = 340, OpGroupNonUniformBallotBitExtract = 341, OpGroupNonUniformBallotBitCount = 342, OpGroupNonUniformBallotFindLSB = 343, OpGroupNonUniformBallotFindMSB = 344, OpGroupNonUniformShuffle = 345, OpGroupNonUniformShuffleXor = 346, OpGroupNonUniformShuffleUp = 347, OpGroupNonUniformShuffleDown = 348, OpGroupNonUniformIAdd = 349, OpGroupNonUniformFAdd = 350, OpGroupNonUniformIMul = 351, OpGroupNonUniformFMul = 352, OpGroupNonUniformSMin = 353, OpGroupNonUniformUMin = 354, OpGroupNonUniformFMin = 355, OpGroupNonUniformSMax = 356, OpGroupNonUniformUMax = 357, OpGroupNonUniformFMax = 358, OpGroupNonUniformBitwiseAnd = 359, OpGroupNonUniformBitwiseOr = 360, OpGroupNonUniformBitwiseXor = 361, OpGroupNonUniformLogicalAnd = 362, OpGroupNonUniformLogicalOr = 363, OpGroupNonUniformLogicalXor = 364, OpGroupNonUniformQuadBroadcast = 365, OpGroupNonUniformQuadSwap = 366, OpCopyLogical = 400, OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, OpSDot = 4450, OpSDotKHR = 4450, OpUDot = 4451, OpUDotKHR = 4451, OpSUDot = 4452, OpSUDotKHR = 4452, OpSDotAccSat = 4453, OpSDotAccSatKHR = 4453, OpUDotAccSat = 4454, OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, OpTypeCooperativeMatrixKHR = 4456, OpCooperativeMatrixLoadKHR = 4457, OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, OpConstantCompositeReplicateEXT = 4461, OpSpecConstantCompositeReplicateEXT = 4462, OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, OpRayQueryGenerateIntersectionKHR = 4475, OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, OpImageSampleWeightedQCOM = 4480, OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpFinalizeNodePayloadsAMDX = 5075, OpFinishWritingNodePayloadAMDX = 5078, OpInitializeNodePayloadsAMDX = 5090, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, OpHitObjectRecordHitWithIndexMotionNV = 5250, OpHitObjectRecordMissMotionNV = 5251, OpHitObjectGetWorldToObjectNV = 5252, OpHitObjectGetObjectToWorldNV = 5253, OpHitObjectGetObjectRayDirectionNV = 5254, OpHitObjectGetObjectRayOriginNV = 5255, OpHitObjectTraceRayMotionNV = 5256, OpHitObjectGetShaderRecordBufferHandleNV = 5257, OpHitObjectGetShaderBindingTableRecordIndexNV = 5258, OpHitObjectRecordEmptyNV = 5259, OpHitObjectTraceRayNV = 5260, OpHitObjectRecordHitNV = 5261, OpHitObjectRecordHitWithIndexNV = 5262, OpHitObjectRecordMissNV = 5263, OpHitObjectExecuteShaderNV = 5264, OpHitObjectGetCurrentTimeNV = 5265, OpHitObjectGetAttributesNV = 5266, OpHitObjectGetHitKindNV = 5267, OpHitObjectGetPrimitiveIndexNV = 5268, OpHitObjectGetGeometryIndexNV = 5269, OpHitObjectGetInstanceIdNV = 5270, OpHitObjectGetInstanceCustomIndexNV = 5271, OpHitObjectGetWorldRayDirectionNV = 5272, OpHitObjectGetWorldRayOriginNV = 5273, OpHitObjectGetRayTMaxNV = 5274, OpHitObjectGetRayTMinNV = 5275, OpHitObjectIsEmptyNV = 5276, OpHitObjectIsHitNV = 5277, OpHitObjectIsMissNV = 5278, OpReorderThreadWithHitObjectNV = 5279, OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, OpConvertSamplerToUNV = 5394, OpConvertUToSampledImageNV = 5395, OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpSubgroupImageMediaBlockReadINTEL = 5580, OpSubgroupImageMediaBlockWriteINTEL = 5581, OpUCountLeadingZerosINTEL = 5585, OpUCountTrailingZerosINTEL = 5586, OpAbsISubINTEL = 5587, OpAbsUSubINTEL = 5588, OpIAddSatINTEL = 5589, OpUAddSatINTEL = 5590, OpIAverageINTEL = 5591, OpUAverageINTEL = 5592, OpIAverageRoundedINTEL = 5593, OpUAverageRoundedINTEL = 5594, OpISubSatINTEL = 5595, OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, OpAsmTargetINTEL = 5609, OpAsmINTEL = 5610, OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, OpAssumeTrueKHR = 5630, OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, OpMemberDecorateStringGOOGLE = 5633, OpVmeImageINTEL = 5699, OpTypeVmeImageINTEL = 5700, OpTypeAvcImePayloadINTEL = 5701, OpTypeAvcRefPayloadINTEL = 5702, OpTypeAvcSicPayloadINTEL = 5703, OpTypeAvcMcePayloadINTEL = 5704, OpTypeAvcMceResultINTEL = 5705, OpTypeAvcImeResultINTEL = 5706, OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, OpTypeAvcImeDualReferenceStreaminINTEL = 5710, OpTypeAvcRefResultINTEL = 5711, OpTypeAvcSicResultINTEL = 5712, OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, OpSubgroupAvcMceConvertToImeResultINTEL = 5733, OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, OpSubgroupAvcMceConvertToRefResultINTEL = 5735, OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, OpSubgroupAvcMceConvertToSicResultINTEL = 5737, OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, OpSubgroupAvcImeInitializeINTEL = 5747, OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, OpSubgroupAvcImeSetDualReferenceINTEL = 5749, OpSubgroupAvcImeRefWindowSizeINTEL = 5750, OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, OpSubgroupAvcImeSetWeightedSadINTEL = 5756, OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, OpSubgroupAvcImeConvertToMceResultINTEL = 5765, OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, OpSubgroupAvcImeGetBorderReachedINTEL = 5776, OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, OpSubgroupAvcFmeInitializeINTEL = 5781, OpSubgroupAvcBmeInitializeINTEL = 5782, OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, OpSubgroupAvcRefConvertToMceResultINTEL = 5790, OpSubgroupAvcSicInitializeINTEL = 5791, OpSubgroupAvcSicConfigureSkcINTEL = 5792, OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, OpSubgroupAvcSicEvaluateIpeINTEL = 5803, OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, OpSubgroupAvcSicConvertToMceResultINTEL = 5808, OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, OpArbitraryFloatSinCosPiINTEL = 5840, OpArbitraryFloatCastINTEL = 5841, OpArbitraryFloatCastFromIntINTEL = 5842, OpArbitraryFloatCastToIntINTEL = 5843, OpArbitraryFloatAddINTEL = 5846, OpArbitraryFloatSubINTEL = 5847, OpArbitraryFloatMulINTEL = 5848, OpArbitraryFloatDivINTEL = 5849, OpArbitraryFloatGTINTEL = 5850, OpArbitraryFloatGEINTEL = 5851, OpArbitraryFloatLTINTEL = 5852, OpArbitraryFloatLEINTEL = 5853, OpArbitraryFloatEQINTEL = 5854, OpArbitraryFloatRecipINTEL = 5855, OpArbitraryFloatRSqrtINTEL = 5856, OpArbitraryFloatCbrtINTEL = 5857, OpArbitraryFloatHypotINTEL = 5858, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, OpArbitraryFloatLog10INTEL = 5862, OpArbitraryFloatLog1pINTEL = 5863, OpArbitraryFloatExpINTEL = 5864, OpArbitraryFloatExp2INTEL = 5865, OpArbitraryFloatExp10INTEL = 5866, OpArbitraryFloatExpm1INTEL = 5867, OpArbitraryFloatSinINTEL = 5868, OpArbitraryFloatCosINTEL = 5869, OpArbitraryFloatSinCosINTEL = 5870, OpArbitraryFloatSinPiINTEL = 5871, OpArbitraryFloatCosPiINTEL = 5872, OpArbitraryFloatASinINTEL = 5873, OpArbitraryFloatASinPiINTEL = 5874, OpArbitraryFloatACosINTEL = 5875, OpArbitraryFloatACosPiINTEL = 5876, OpArbitraryFloatATanINTEL = 5877, OpArbitraryFloatATanPiINTEL = 5878, OpArbitraryFloatATan2INTEL = 5879, OpArbitraryFloatPowINTEL = 5880, OpArbitraryFloatPowRINTEL = 5881, OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, OpFixedSqrtINTEL = 5923, OpFixedRecipINTEL = 5924, OpFixedRsqrtINTEL = 5925, OpFixedSinINTEL = 5926, OpFixedCosINTEL = 5927, OpFixedSinCosINTEL = 5928, OpFixedSinPiINTEL = 5929, OpFixedCosPiINTEL = 5930, OpFixedSinCosPiINTEL = 5931, OpFixedLogINTEL = 5932, OpFixedExpINTEL = 5933, OpPtrCastToCrossWorkgroupINTEL = 5934, OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, OpRayQueryGetIntersectionTKHR = 6018, OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, OpRayQueryGetIntersectionInstanceIdKHR = 6020, OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, OpRayQueryGetIntersectionGeometryIndexKHR = 6022, OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, OpRayQueryGetIntersectionBarycentricsKHR = 6024, OpRayQueryGetIntersectionFrontFaceKHR = 6025, OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, OpRayQueryGetWorldRayDirectionKHR = 6029, OpRayQueryGetWorldRayOriginKHR = 6030, OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, OpTypeBufferSurfaceINTEL = 6086, OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, OpCompositeConstructContinuedINTEL = 6096, OpConvertFToBF16INTEL = 6116, OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, OpGroupBitwiseOrKHR = 6404, OpGroupBitwiseXorKHR = 6405, OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, Max = 0x7fffffff, }; #ifdef SPV_ENABLE_UTILITY_CODE #ifndef __cplusplus #include #endif inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { *hasResult = *hasResultType = false; switch (opcode) { default: /* unknown opcode */ break; case Op::OpNop: *hasResult = false; *hasResultType = false; break; case Op::OpUndef: *hasResult = true; *hasResultType = true; break; case Op::OpSourceContinued: *hasResult = false; *hasResultType = false; break; case Op::OpSource: *hasResult = false; *hasResultType = false; break; case Op::OpSourceExtension: *hasResult = false; *hasResultType = false; break; case Op::OpName: *hasResult = false; *hasResultType = false; break; case Op::OpMemberName: *hasResult = false; *hasResultType = false; break; case Op::OpString: *hasResult = true; *hasResultType = false; break; case Op::OpLine: *hasResult = false; *hasResultType = false; break; case Op::OpExtension: *hasResult = false; *hasResultType = false; break; case Op::OpExtInstImport: *hasResult = true; *hasResultType = false; break; case Op::OpExtInst: *hasResult = true; *hasResultType = true; break; case Op::OpMemoryModel: *hasResult = false; *hasResultType = false; break; case Op::OpEntryPoint: *hasResult = false; *hasResultType = false; break; case Op::OpExecutionMode: *hasResult = false; *hasResultType = false; break; case Op::OpCapability: *hasResult = false; *hasResultType = false; break; case Op::OpTypeVoid: *hasResult = true; *hasResultType = false; break; case Op::OpTypeBool: *hasResult = true; *hasResultType = false; break; case Op::OpTypeInt: *hasResult = true; *hasResultType = false; break; case Op::OpTypeFloat: *hasResult = true; *hasResultType = false; break; case Op::OpTypeVector: *hasResult = true; *hasResultType = false; break; case Op::OpTypeMatrix: *hasResult = true; *hasResultType = false; break; case Op::OpTypeImage: *hasResult = true; *hasResultType = false; break; case Op::OpTypeSampler: *hasResult = true; *hasResultType = false; break; case Op::OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; case Op::OpTypeArray: *hasResult = true; *hasResultType = false; break; case Op::OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; case Op::OpTypeStruct: *hasResult = true; *hasResultType = false; break; case Op::OpTypeOpaque: *hasResult = true; *hasResultType = false; break; case Op::OpTypePointer: *hasResult = true; *hasResultType = false; break; case Op::OpTypeFunction: *hasResult = true; *hasResultType = false; break; case Op::OpTypeEvent: *hasResult = true; *hasResultType = false; break; case Op::OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; case Op::OpTypeReserveId: *hasResult = true; *hasResultType = false; break; case Op::OpTypeQueue: *hasResult = true; *hasResultType = false; break; case Op::OpTypePipe: *hasResult = true; *hasResultType = false; break; case Op::OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; case Op::OpConstantTrue: *hasResult = true; *hasResultType = true; break; case Op::OpConstantFalse: *hasResult = true; *hasResultType = true; break; case Op::OpConstant: *hasResult = true; *hasResultType = true; break; case Op::OpConstantComposite: *hasResult = true; *hasResultType = true; break; case Op::OpConstantSampler: *hasResult = true; *hasResultType = true; break; case Op::OpConstantNull: *hasResult = true; *hasResultType = true; break; case Op::OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; case Op::OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; case Op::OpSpecConstant: *hasResult = true; *hasResultType = true; break; case Op::OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; case Op::OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; case Op::OpFunction: *hasResult = true; *hasResultType = true; break; case Op::OpFunctionParameter: *hasResult = true; *hasResultType = true; break; case Op::OpFunctionEnd: *hasResult = false; *hasResultType = false; break; case Op::OpFunctionCall: *hasResult = true; *hasResultType = true; break; case Op::OpVariable: *hasResult = true; *hasResultType = true; break; case Op::OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; case Op::OpLoad: *hasResult = true; *hasResultType = true; break; case Op::OpStore: *hasResult = false; *hasResultType = false; break; case Op::OpCopyMemory: *hasResult = false; *hasResultType = false; break; case Op::OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; case Op::OpAccessChain: *hasResult = true; *hasResultType = true; break; case Op::OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; case Op::OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; case Op::OpArrayLength: *hasResult = true; *hasResultType = true; break; case Op::OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; case Op::OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; case Op::OpDecorate: *hasResult = false; *hasResultType = false; break; case Op::OpMemberDecorate: *hasResult = false; *hasResultType = false; break; case Op::OpDecorationGroup: *hasResult = true; *hasResultType = false; break; case Op::OpGroupDecorate: *hasResult = false; *hasResultType = false; break; case Op::OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; case Op::OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; case Op::OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; case Op::OpVectorShuffle: *hasResult = true; *hasResultType = true; break; case Op::OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; case Op::OpCompositeExtract: *hasResult = true; *hasResultType = true; break; case Op::OpCompositeInsert: *hasResult = true; *hasResultType = true; break; case Op::OpCopyObject: *hasResult = true; *hasResultType = true; break; case Op::OpTranspose: *hasResult = true; *hasResultType = true; break; case Op::OpSampledImage: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageFetch: *hasResult = true; *hasResultType = true; break; case Op::OpImageGather: *hasResult = true; *hasResultType = true; break; case Op::OpImageDrefGather: *hasResult = true; *hasResultType = true; break; case Op::OpImageRead: *hasResult = true; *hasResultType = true; break; case Op::OpImageWrite: *hasResult = false; *hasResultType = false; break; case Op::OpImage: *hasResult = true; *hasResultType = true; break; case Op::OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; case Op::OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; case Op::OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageQuerySize: *hasResult = true; *hasResultType = true; break; case Op::OpImageQueryLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; case Op::OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; case Op::OpConvertFToU: *hasResult = true; *hasResultType = true; break; case Op::OpConvertFToS: *hasResult = true; *hasResultType = true; break; case Op::OpConvertSToF: *hasResult = true; *hasResultType = true; break; case Op::OpConvertUToF: *hasResult = true; *hasResultType = true; break; case Op::OpUConvert: *hasResult = true; *hasResultType = true; break; case Op::OpSConvert: *hasResult = true; *hasResultType = true; break; case Op::OpFConvert: *hasResult = true; *hasResultType = true; break; case Op::OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; case Op::OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; case Op::OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; case Op::OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; case Op::OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; case Op::OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; case Op::OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; case Op::OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; case Op::OpBitcast: *hasResult = true; *hasResultType = true; break; case Op::OpSNegate: *hasResult = true; *hasResultType = true; break; case Op::OpFNegate: *hasResult = true; *hasResultType = true; break; case Op::OpIAdd: *hasResult = true; *hasResultType = true; break; case Op::OpFAdd: *hasResult = true; *hasResultType = true; break; case Op::OpISub: *hasResult = true; *hasResultType = true; break; case Op::OpFSub: *hasResult = true; *hasResultType = true; break; case Op::OpIMul: *hasResult = true; *hasResultType = true; break; case Op::OpFMul: *hasResult = true; *hasResultType = true; break; case Op::OpUDiv: *hasResult = true; *hasResultType = true; break; case Op::OpSDiv: *hasResult = true; *hasResultType = true; break; case Op::OpFDiv: *hasResult = true; *hasResultType = true; break; case Op::OpUMod: *hasResult = true; *hasResultType = true; break; case Op::OpSRem: *hasResult = true; *hasResultType = true; break; case Op::OpSMod: *hasResult = true; *hasResultType = true; break; case Op::OpFRem: *hasResult = true; *hasResultType = true; break; case Op::OpFMod: *hasResult = true; *hasResultType = true; break; case Op::OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; case Op::OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; case Op::OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; case Op::OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; case Op::OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; case Op::OpOuterProduct: *hasResult = true; *hasResultType = true; break; case Op::OpDot: *hasResult = true; *hasResultType = true; break; case Op::OpIAddCarry: *hasResult = true; *hasResultType = true; break; case Op::OpISubBorrow: *hasResult = true; *hasResultType = true; break; case Op::OpUMulExtended: *hasResult = true; *hasResultType = true; break; case Op::OpSMulExtended: *hasResult = true; *hasResultType = true; break; case Op::OpAny: *hasResult = true; *hasResultType = true; break; case Op::OpAll: *hasResult = true; *hasResultType = true; break; case Op::OpIsNan: *hasResult = true; *hasResultType = true; break; case Op::OpIsInf: *hasResult = true; *hasResultType = true; break; case Op::OpIsFinite: *hasResult = true; *hasResultType = true; break; case Op::OpIsNormal: *hasResult = true; *hasResultType = true; break; case Op::OpSignBitSet: *hasResult = true; *hasResultType = true; break; case Op::OpLessOrGreater: *hasResult = true; *hasResultType = true; break; case Op::OpOrdered: *hasResult = true; *hasResultType = true; break; case Op::OpUnordered: *hasResult = true; *hasResultType = true; break; case Op::OpLogicalEqual: *hasResult = true; *hasResultType = true; break; case Op::OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpLogicalOr: *hasResult = true; *hasResultType = true; break; case Op::OpLogicalAnd: *hasResult = true; *hasResultType = true; break; case Op::OpLogicalNot: *hasResult = true; *hasResultType = true; break; case Op::OpSelect: *hasResult = true; *hasResultType = true; break; case Op::OpIEqual: *hasResult = true; *hasResultType = true; break; case Op::OpINotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpUGreaterThan: *hasResult = true; *hasResultType = true; break; case Op::OpSGreaterThan: *hasResult = true; *hasResultType = true; break; case Op::OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpULessThan: *hasResult = true; *hasResultType = true; break; case Op::OpSLessThan: *hasResult = true; *hasResultType = true; break; case Op::OpULessThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFOrdEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFUnordEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; case Op::OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; case Op::OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; case Op::OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; case Op::OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case Op::OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; case Op::OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; case Op::OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; case Op::OpBitwiseOr: *hasResult = true; *hasResultType = true; break; case Op::OpBitwiseXor: *hasResult = true; *hasResultType = true; break; case Op::OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; case Op::OpNot: *hasResult = true; *hasResultType = true; break; case Op::OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; case Op::OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; case Op::OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; case Op::OpBitReverse: *hasResult = true; *hasResultType = true; break; case Op::OpBitCount: *hasResult = true; *hasResultType = true; break; case Op::OpDPdx: *hasResult = true; *hasResultType = true; break; case Op::OpDPdy: *hasResult = true; *hasResultType = true; break; case Op::OpFwidth: *hasResult = true; *hasResultType = true; break; case Op::OpDPdxFine: *hasResult = true; *hasResultType = true; break; case Op::OpDPdyFine: *hasResult = true; *hasResultType = true; break; case Op::OpFwidthFine: *hasResult = true; *hasResultType = true; break; case Op::OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; case Op::OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; case Op::OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; case Op::OpEmitVertex: *hasResult = false; *hasResultType = false; break; case Op::OpEndPrimitive: *hasResult = false; *hasResultType = false; break; case Op::OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; case Op::OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; case Op::OpControlBarrier: *hasResult = false; *hasResultType = false; break; case Op::OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; case Op::OpAtomicLoad: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicStore: *hasResult = false; *hasResultType = false; break; case Op::OpAtomicExchange: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicISub: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicSMin: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicUMin: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicSMax: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicUMax: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicAnd: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicOr: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicXor: *hasResult = true; *hasResultType = true; break; case Op::OpPhi: *hasResult = true; *hasResultType = true; break; case Op::OpLoopMerge: *hasResult = false; *hasResultType = false; break; case Op::OpSelectionMerge: *hasResult = false; *hasResultType = false; break; case Op::OpLabel: *hasResult = true; *hasResultType = false; break; case Op::OpBranch: *hasResult = false; *hasResultType = false; break; case Op::OpBranchConditional: *hasResult = false; *hasResultType = false; break; case Op::OpSwitch: *hasResult = false; *hasResultType = false; break; case Op::OpKill: *hasResult = false; *hasResultType = false; break; case Op::OpReturn: *hasResult = false; *hasResultType = false; break; case Op::OpReturnValue: *hasResult = false; *hasResultType = false; break; case Op::OpUnreachable: *hasResult = false; *hasResultType = false; break; case Op::OpLifetimeStart: *hasResult = false; *hasResultType = false; break; case Op::OpLifetimeStop: *hasResult = false; *hasResultType = false; break; case Op::OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; case Op::OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; case Op::OpGroupAll: *hasResult = true; *hasResultType = true; break; case Op::OpGroupAny: *hasResult = true; *hasResultType = true; break; case Op::OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; case Op::OpGroupIAdd: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFAdd: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFMin: *hasResult = true; *hasResultType = true; break; case Op::OpGroupUMin: *hasResult = true; *hasResultType = true; break; case Op::OpGroupSMin: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFMax: *hasResult = true; *hasResultType = true; break; case Op::OpGroupUMax: *hasResult = true; *hasResultType = true; break; case Op::OpGroupSMax: *hasResult = true; *hasResultType = true; break; case Op::OpReadPipe: *hasResult = true; *hasResultType = true; break; case Op::OpWritePipe: *hasResult = true; *hasResultType = true; break; case Op::OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; case Op::OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; case Op::OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case Op::OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case Op::OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; case Op::OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; case Op::OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; case Op::OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; case Op::OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; case Op::OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case Op::OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case Op::OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; case Op::OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; case Op::OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; case Op::OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; case Op::OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; case Op::OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; case Op::OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; case Op::OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; case Op::OpRetainEvent: *hasResult = false; *hasResultType = false; break; case Op::OpReleaseEvent: *hasResult = false; *hasResultType = false; break; case Op::OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; case Op::OpIsValidEvent: *hasResult = true; *hasResultType = true; break; case Op::OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; case Op::OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; case Op::OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; case Op::OpBuildNDRange: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseGather: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; case Op::OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; case Op::OpNoLine: *hasResult = false; *hasResultType = false; break; case Op::OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; case Op::OpImageSparseRead: *hasResult = true; *hasResultType = true; break; case Op::OpSizeOf: *hasResult = true; *hasResultType = true; break; case Op::OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; case Op::OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; case Op::OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; case Op::OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; case Op::OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; case Op::OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; case Op::OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; case Op::OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; case Op::OpModuleProcessed: *hasResult = false; *hasResultType = false; break; case Op::OpExecutionModeId: *hasResult = false; *hasResultType = false; break; case Op::OpDecorateId: *hasResult = false; *hasResultType = false; break; case Op::OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; case Op::OpCopyLogical: *hasResult = true; *hasResultType = true; break; case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break; case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break; case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case Op::OpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break; case Op::OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case Op::OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; case Op::OpSDot: *hasResult = true; *hasResultType = true; break; case Op::OpUDot: *hasResult = true; *hasResultType = true; break; case Op::OpSUDot: *hasResult = true; *hasResultType = true; break; case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break; case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break; case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break; case Op::OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break; case Op::OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break; case Op::OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break; case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break; case Op::OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break; case Op::OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; case Op::OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break; case Op::OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break; case Op::OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break; case Op::OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break; case Op::OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break; case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break; case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case Op::OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break; case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case Op::OpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break; case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; case Op::OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case Op::OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case Op::OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break; case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break; case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; case Op::OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break; case Op::OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break; } } inline const char* SourceLanguageToString(SourceLanguage value) { switch (value) { case SourceLanguageUnknown: return "Unknown"; case SourceLanguageESSL: return "ESSL"; case SourceLanguageGLSL: return "GLSL"; case SourceLanguageOpenCL_C: return "OpenCL_C"; case SourceLanguageOpenCL_CPP: return "OpenCL_CPP"; case SourceLanguageHLSL: return "HLSL"; case SourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL"; case SourceLanguageSYCL: return "SYCL"; case SourceLanguageHERO_C: return "HERO_C"; case SourceLanguageNZSL: return "NZSL"; case SourceLanguageWGSL: return "WGSL"; case SourceLanguageSlang: return "Slang"; case SourceLanguageZig: return "Zig"; default: return "Unknown"; } } inline const char* ExecutionModelToString(ExecutionModel value) { switch (value) { case ExecutionModelVertex: return "Vertex"; case ExecutionModelTessellationControl: return "TessellationControl"; case ExecutionModelTessellationEvaluation: return "TessellationEvaluation"; case ExecutionModelGeometry: return "Geometry"; case ExecutionModelFragment: return "Fragment"; case ExecutionModelGLCompute: return "GLCompute"; case ExecutionModelKernel: return "Kernel"; case ExecutionModelTaskNV: return "TaskNV"; case ExecutionModelMeshNV: return "MeshNV"; case ExecutionModelRayGenerationKHR: return "RayGenerationKHR"; case ExecutionModelIntersectionKHR: return "IntersectionKHR"; case ExecutionModelAnyHitKHR: return "AnyHitKHR"; case ExecutionModelClosestHitKHR: return "ClosestHitKHR"; case ExecutionModelMissKHR: return "MissKHR"; case ExecutionModelCallableKHR: return "CallableKHR"; case ExecutionModelTaskEXT: return "TaskEXT"; case ExecutionModelMeshEXT: return "MeshEXT"; default: return "Unknown"; } } inline const char* AddressingModelToString(AddressingModel value) { switch (value) { case AddressingModelLogical: return "Logical"; case AddressingModelPhysical32: return "Physical32"; case AddressingModelPhysical64: return "Physical64"; case AddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64"; default: return "Unknown"; } } inline const char* MemoryModelToString(MemoryModel value) { switch (value) { case MemoryModelSimple: return "Simple"; case MemoryModelGLSL450: return "GLSL450"; case MemoryModelOpenCL: return "OpenCL"; case MemoryModelVulkan: return "Vulkan"; default: return "Unknown"; } } inline const char* ExecutionModeToString(ExecutionMode value) { switch (value) { case ExecutionModeInvocations: return "Invocations"; case ExecutionModeSpacingEqual: return "SpacingEqual"; case ExecutionModeSpacingFractionalEven: return "SpacingFractionalEven"; case ExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd"; case ExecutionModeVertexOrderCw: return "VertexOrderCw"; case ExecutionModeVertexOrderCcw: return "VertexOrderCcw"; case ExecutionModePixelCenterInteger: return "PixelCenterInteger"; case ExecutionModeOriginUpperLeft: return "OriginUpperLeft"; case ExecutionModeOriginLowerLeft: return "OriginLowerLeft"; case ExecutionModeEarlyFragmentTests: return "EarlyFragmentTests"; case ExecutionModePointMode: return "PointMode"; case ExecutionModeXfb: return "Xfb"; case ExecutionModeDepthReplacing: return "DepthReplacing"; case ExecutionModeDepthGreater: return "DepthGreater"; case ExecutionModeDepthLess: return "DepthLess"; case ExecutionModeDepthUnchanged: return "DepthUnchanged"; case ExecutionModeLocalSize: return "LocalSize"; case ExecutionModeLocalSizeHint: return "LocalSizeHint"; case ExecutionModeInputPoints: return "InputPoints"; case ExecutionModeInputLines: return "InputLines"; case ExecutionModeInputLinesAdjacency: return "InputLinesAdjacency"; case ExecutionModeTriangles: return "Triangles"; case ExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency"; case ExecutionModeQuads: return "Quads"; case ExecutionModeIsolines: return "Isolines"; case ExecutionModeOutputVertices: return "OutputVertices"; case ExecutionModeOutputPoints: return "OutputPoints"; case ExecutionModeOutputLineStrip: return "OutputLineStrip"; case ExecutionModeOutputTriangleStrip: return "OutputTriangleStrip"; case ExecutionModeVecTypeHint: return "VecTypeHint"; case ExecutionModeContractionOff: return "ContractionOff"; case ExecutionModeInitializer: return "Initializer"; case ExecutionModeFinalizer: return "Finalizer"; case ExecutionModeSubgroupSize: return "SubgroupSize"; case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup"; case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId"; case ExecutionModeLocalSizeId: return "LocalSizeId"; case ExecutionModeLocalSizeHintId: return "LocalSizeHintId"; case ExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT"; case ExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT"; case ExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT"; case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR"; case ExecutionModePostDepthCoverage: return "PostDepthCoverage"; case ExecutionModeDenormPreserve: return "DenormPreserve"; case ExecutionModeDenormFlushToZero: return "DenormFlushToZero"; case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; case ExecutionModeRoundingModeRTE: return "RoundingModeRTE"; case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ"; case ExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD"; case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT"; case ExecutionModeCoalescingAMDX: return "CoalescingAMDX"; case ExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX"; case ExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX"; case ExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX"; case ExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX"; case ExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD"; case ExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD"; case ExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD"; case ExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD"; case ExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD"; case ExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD"; case ExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR"; case ExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR"; case ExecutionModeOutputLinesEXT: return "OutputLinesEXT"; case ExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT"; case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV"; case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV"; case ExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT"; case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT"; case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT"; case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT"; case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; case ExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL"; case ExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL"; case ExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL"; case ExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL"; case ExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL"; case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL"; case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL"; case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL"; case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL"; case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL"; case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR"; case ExecutionModeFPFastMathDefault: return "FPFastMathDefault"; case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL"; case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL"; case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL"; case ExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL"; case ExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL"; case ExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL"; default: return "Unknown"; } } inline const char* StorageClassToString(StorageClass value) { switch (value) { case StorageClassUniformConstant: return "UniformConstant"; case StorageClassInput: return "Input"; case StorageClassUniform: return "Uniform"; case StorageClassOutput: return "Output"; case StorageClassWorkgroup: return "Workgroup"; case StorageClassCrossWorkgroup: return "CrossWorkgroup"; case StorageClassPrivate: return "Private"; case StorageClassFunction: return "Function"; case StorageClassGeneric: return "Generic"; case StorageClassPushConstant: return "PushConstant"; case StorageClassAtomicCounter: return "AtomicCounter"; case StorageClassImage: return "Image"; case StorageClassStorageBuffer: return "StorageBuffer"; case StorageClassTileImageEXT: return "TileImageEXT"; case StorageClassNodePayloadAMDX: return "NodePayloadAMDX"; case StorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX"; case StorageClassCallableDataKHR: return "CallableDataKHR"; case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR"; case StorageClassRayPayloadKHR: return "RayPayloadKHR"; case StorageClassHitAttributeKHR: return "HitAttributeKHR"; case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR"; case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR"; case StorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer"; case StorageClassHitObjectAttributeNV: return "HitObjectAttributeNV"; case StorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; case StorageClassCodeSectionINTEL: return "CodeSectionINTEL"; case StorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL"; case StorageClassHostOnlyINTEL: return "HostOnlyINTEL"; default: return "Unknown"; } } inline const char* DimToString(Dim value) { switch (value) { case Dim1D: return "1D"; case Dim2D: return "2D"; case Dim3D: return "3D"; case DimCube: return "Cube"; case DimRect: return "Rect"; case DimBuffer: return "Buffer"; case DimSubpassData: return "SubpassData"; case DimTileImageDataEXT: return "TileImageDataEXT"; default: return "Unknown"; } } inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) { switch (value) { case SamplerAddressingModeNone: return "None"; case SamplerAddressingModeClampToEdge: return "ClampToEdge"; case SamplerAddressingModeClamp: return "Clamp"; case SamplerAddressingModeRepeat: return "Repeat"; case SamplerAddressingModeRepeatMirrored: return "RepeatMirrored"; default: return "Unknown"; } } inline const char* SamplerFilterModeToString(SamplerFilterMode value) { switch (value) { case SamplerFilterModeNearest: return "Nearest"; case SamplerFilterModeLinear: return "Linear"; default: return "Unknown"; } } inline const char* ImageFormatToString(ImageFormat value) { switch (value) { case ImageFormatUnknown: return "Unknown"; case ImageFormatRgba32f: return "Rgba32f"; case ImageFormatRgba16f: return "Rgba16f"; case ImageFormatR32f: return "R32f"; case ImageFormatRgba8: return "Rgba8"; case ImageFormatRgba8Snorm: return "Rgba8Snorm"; case ImageFormatRg32f: return "Rg32f"; case ImageFormatRg16f: return "Rg16f"; case ImageFormatR11fG11fB10f: return "R11fG11fB10f"; case ImageFormatR16f: return "R16f"; case ImageFormatRgba16: return "Rgba16"; case ImageFormatRgb10A2: return "Rgb10A2"; case ImageFormatRg16: return "Rg16"; case ImageFormatRg8: return "Rg8"; case ImageFormatR16: return "R16"; case ImageFormatR8: return "R8"; case ImageFormatRgba16Snorm: return "Rgba16Snorm"; case ImageFormatRg16Snorm: return "Rg16Snorm"; case ImageFormatRg8Snorm: return "Rg8Snorm"; case ImageFormatR16Snorm: return "R16Snorm"; case ImageFormatR8Snorm: return "R8Snorm"; case ImageFormatRgba32i: return "Rgba32i"; case ImageFormatRgba16i: return "Rgba16i"; case ImageFormatRgba8i: return "Rgba8i"; case ImageFormatR32i: return "R32i"; case ImageFormatRg32i: return "Rg32i"; case ImageFormatRg16i: return "Rg16i"; case ImageFormatRg8i: return "Rg8i"; case ImageFormatR16i: return "R16i"; case ImageFormatR8i: return "R8i"; case ImageFormatRgba32ui: return "Rgba32ui"; case ImageFormatRgba16ui: return "Rgba16ui"; case ImageFormatRgba8ui: return "Rgba8ui"; case ImageFormatR32ui: return "R32ui"; case ImageFormatRgb10a2ui: return "Rgb10a2ui"; case ImageFormatRg32ui: return "Rg32ui"; case ImageFormatRg16ui: return "Rg16ui"; case ImageFormatRg8ui: return "Rg8ui"; case ImageFormatR16ui: return "R16ui"; case ImageFormatR8ui: return "R8ui"; case ImageFormatR64ui: return "R64ui"; case ImageFormatR64i: return "R64i"; default: return "Unknown"; } } inline const char* ImageChannelOrderToString(ImageChannelOrder value) { switch (value) { case ImageChannelOrderR: return "R"; case ImageChannelOrderA: return "A"; case ImageChannelOrderRG: return "RG"; case ImageChannelOrderRA: return "RA"; case ImageChannelOrderRGB: return "RGB"; case ImageChannelOrderRGBA: return "RGBA"; case ImageChannelOrderBGRA: return "BGRA"; case ImageChannelOrderARGB: return "ARGB"; case ImageChannelOrderIntensity: return "Intensity"; case ImageChannelOrderLuminance: return "Luminance"; case ImageChannelOrderRx: return "Rx"; case ImageChannelOrderRGx: return "RGx"; case ImageChannelOrderRGBx: return "RGBx"; case ImageChannelOrderDepth: return "Depth"; case ImageChannelOrderDepthStencil: return "DepthStencil"; case ImageChannelOrdersRGB: return "sRGB"; case ImageChannelOrdersRGBx: return "sRGBx"; case ImageChannelOrdersRGBA: return "sRGBA"; case ImageChannelOrdersBGRA: return "sBGRA"; case ImageChannelOrderABGR: return "ABGR"; default: return "Unknown"; } } inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) { switch (value) { case ImageChannelDataTypeSnormInt8: return "SnormInt8"; case ImageChannelDataTypeSnormInt16: return "SnormInt16"; case ImageChannelDataTypeUnormInt8: return "UnormInt8"; case ImageChannelDataTypeUnormInt16: return "UnormInt16"; case ImageChannelDataTypeUnormShort565: return "UnormShort565"; case ImageChannelDataTypeUnormShort555: return "UnormShort555"; case ImageChannelDataTypeUnormInt101010: return "UnormInt101010"; case ImageChannelDataTypeSignedInt8: return "SignedInt8"; case ImageChannelDataTypeSignedInt16: return "SignedInt16"; case ImageChannelDataTypeSignedInt32: return "SignedInt32"; case ImageChannelDataTypeUnsignedInt8: return "UnsignedInt8"; case ImageChannelDataTypeUnsignedInt16: return "UnsignedInt16"; case ImageChannelDataTypeUnsignedInt32: return "UnsignedInt32"; case ImageChannelDataTypeHalfFloat: return "HalfFloat"; case ImageChannelDataTypeFloat: return "Float"; case ImageChannelDataTypeUnormInt24: return "UnormInt24"; case ImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2"; case ImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT"; case ImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT"; default: return "Unknown"; } } inline const char* FPRoundingModeToString(FPRoundingMode value) { switch (value) { case FPRoundingModeRTE: return "RTE"; case FPRoundingModeRTZ: return "RTZ"; case FPRoundingModeRTP: return "RTP"; case FPRoundingModeRTN: return "RTN"; default: return "Unknown"; } } inline const char* LinkageTypeToString(LinkageType value) { switch (value) { case LinkageTypeExport: return "Export"; case LinkageTypeImport: return "Import"; case LinkageTypeLinkOnceODR: return "LinkOnceODR"; default: return "Unknown"; } } inline const char* AccessQualifierToString(AccessQualifier value) { switch (value) { case AccessQualifierReadOnly: return "ReadOnly"; case AccessQualifierWriteOnly: return "WriteOnly"; case AccessQualifierReadWrite: return "ReadWrite"; default: return "Unknown"; } } inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) { switch (value) { case FunctionParameterAttributeZext: return "Zext"; case FunctionParameterAttributeSext: return "Sext"; case FunctionParameterAttributeByVal: return "ByVal"; case FunctionParameterAttributeSret: return "Sret"; case FunctionParameterAttributeNoAlias: return "NoAlias"; case FunctionParameterAttributeNoCapture: return "NoCapture"; case FunctionParameterAttributeNoWrite: return "NoWrite"; case FunctionParameterAttributeNoReadWrite: return "NoReadWrite"; case FunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL"; default: return "Unknown"; } } inline const char* DecorationToString(Decoration value) { switch (value) { case DecorationRelaxedPrecision: return "RelaxedPrecision"; case DecorationSpecId: return "SpecId"; case DecorationBlock: return "Block"; case DecorationBufferBlock: return "BufferBlock"; case DecorationRowMajor: return "RowMajor"; case DecorationColMajor: return "ColMajor"; case DecorationArrayStride: return "ArrayStride"; case DecorationMatrixStride: return "MatrixStride"; case DecorationGLSLShared: return "GLSLShared"; case DecorationGLSLPacked: return "GLSLPacked"; case DecorationCPacked: return "CPacked"; case DecorationBuiltIn: return "BuiltIn"; case DecorationNoPerspective: return "NoPerspective"; case DecorationFlat: return "Flat"; case DecorationPatch: return "Patch"; case DecorationCentroid: return "Centroid"; case DecorationSample: return "Sample"; case DecorationInvariant: return "Invariant"; case DecorationRestrict: return "Restrict"; case DecorationAliased: return "Aliased"; case DecorationVolatile: return "Volatile"; case DecorationConstant: return "Constant"; case DecorationCoherent: return "Coherent"; case DecorationNonWritable: return "NonWritable"; case DecorationNonReadable: return "NonReadable"; case DecorationUniform: return "Uniform"; case DecorationUniformId: return "UniformId"; case DecorationSaturatedConversion: return "SaturatedConversion"; case DecorationStream: return "Stream"; case DecorationLocation: return "Location"; case DecorationComponent: return "Component"; case DecorationIndex: return "Index"; case DecorationBinding: return "Binding"; case DecorationDescriptorSet: return "DescriptorSet"; case DecorationOffset: return "Offset"; case DecorationXfbBuffer: return "XfbBuffer"; case DecorationXfbStride: return "XfbStride"; case DecorationFuncParamAttr: return "FuncParamAttr"; case DecorationFPRoundingMode: return "FPRoundingMode"; case DecorationFPFastMathMode: return "FPFastMathMode"; case DecorationLinkageAttributes: return "LinkageAttributes"; case DecorationNoContraction: return "NoContraction"; case DecorationInputAttachmentIndex: return "InputAttachmentIndex"; case DecorationAlignment: return "Alignment"; case DecorationMaxByteOffset: return "MaxByteOffset"; case DecorationAlignmentId: return "AlignmentId"; case DecorationMaxByteOffsetId: return "MaxByteOffsetId"; case DecorationNoSignedWrap: return "NoSignedWrap"; case DecorationNoUnsignedWrap: return "NoUnsignedWrap"; case DecorationWeightTextureQCOM: return "WeightTextureQCOM"; case DecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM"; case DecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM"; case DecorationExplicitInterpAMD: return "ExplicitInterpAMD"; case DecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX"; case DecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX"; case DecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX"; case DecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX"; case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; case DecorationPassthroughNV: return "PassthroughNV"; case DecorationViewportRelativeNV: return "ViewportRelativeNV"; case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; case DecorationPerPrimitiveEXT: return "PerPrimitiveEXT"; case DecorationPerViewNV: return "PerViewNV"; case DecorationPerTaskNV: return "PerTaskNV"; case DecorationPerVertexKHR: return "PerVertexKHR"; case DecorationNonUniform: return "NonUniform"; case DecorationRestrictPointer: return "RestrictPointer"; case DecorationAliasedPointer: return "AliasedPointer"; case DecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV"; case DecorationBindlessSamplerNV: return "BindlessSamplerNV"; case DecorationBindlessImageNV: return "BindlessImageNV"; case DecorationBoundSamplerNV: return "BoundSamplerNV"; case DecorationBoundImageNV: return "BoundImageNV"; case DecorationSIMTCallINTEL: return "SIMTCallINTEL"; case DecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL"; case DecorationClobberINTEL: return "ClobberINTEL"; case DecorationSideEffectsINTEL: return "SideEffectsINTEL"; case DecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL"; case DecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL"; case DecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL"; case DecorationStackCallINTEL: return "StackCallINTEL"; case DecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL"; case DecorationCounterBuffer: return "CounterBuffer"; case DecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE"; case DecorationUserTypeGOOGLE: return "UserTypeGOOGLE"; case DecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL"; case DecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL"; case DecorationRegisterINTEL: return "RegisterINTEL"; case DecorationMemoryINTEL: return "MemoryINTEL"; case DecorationNumbanksINTEL: return "NumbanksINTEL"; case DecorationBankwidthINTEL: return "BankwidthINTEL"; case DecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL"; case DecorationSinglepumpINTEL: return "SinglepumpINTEL"; case DecorationDoublepumpINTEL: return "DoublepumpINTEL"; case DecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL"; case DecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL"; case DecorationMergeINTEL: return "MergeINTEL"; case DecorationBankBitsINTEL: return "BankBitsINTEL"; case DecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL"; case DecorationStridesizeINTEL: return "StridesizeINTEL"; case DecorationWordsizeINTEL: return "WordsizeINTEL"; case DecorationTrueDualPortINTEL: return "TrueDualPortINTEL"; case DecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL"; case DecorationCacheSizeINTEL: return "CacheSizeINTEL"; case DecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL"; case DecorationPrefetchINTEL: return "PrefetchINTEL"; case DecorationStallEnableINTEL: return "StallEnableINTEL"; case DecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL"; case DecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL"; case DecorationAliasScopeINTEL: return "AliasScopeINTEL"; case DecorationNoAliasINTEL: return "NoAliasINTEL"; case DecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL"; case DecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL"; case DecorationPipelineEnableINTEL: return "PipelineEnableINTEL"; case DecorationBufferLocationINTEL: return "BufferLocationINTEL"; case DecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL"; case DecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL"; case DecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL"; case DecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL"; case DecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL"; case DecorationStallFreeINTEL: return "StallFreeINTEL"; case DecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL"; case DecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL"; case DecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL"; case DecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL"; case DecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL"; case DecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL"; case DecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL"; case DecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL"; case DecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL"; case DecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL"; case DecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL"; case DecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL"; case DecorationHostAccessINTEL: return "HostAccessINTEL"; case DecorationInitModeINTEL: return "InitModeINTEL"; case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL"; case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL"; default: return "Unknown"; } } inline const char* BuiltInToString(BuiltIn value) { switch (value) { case BuiltInPosition: return "Position"; case BuiltInPointSize: return "PointSize"; case BuiltInClipDistance: return "ClipDistance"; case BuiltInCullDistance: return "CullDistance"; case BuiltInVertexId: return "VertexId"; case BuiltInInstanceId: return "InstanceId"; case BuiltInPrimitiveId: return "PrimitiveId"; case BuiltInInvocationId: return "InvocationId"; case BuiltInLayer: return "Layer"; case BuiltInViewportIndex: return "ViewportIndex"; case BuiltInTessLevelOuter: return "TessLevelOuter"; case BuiltInTessLevelInner: return "TessLevelInner"; case BuiltInTessCoord: return "TessCoord"; case BuiltInPatchVertices: return "PatchVertices"; case BuiltInFragCoord: return "FragCoord"; case BuiltInPointCoord: return "PointCoord"; case BuiltInFrontFacing: return "FrontFacing"; case BuiltInSampleId: return "SampleId"; case BuiltInSamplePosition: return "SamplePosition"; case BuiltInSampleMask: return "SampleMask"; case BuiltInFragDepth: return "FragDepth"; case BuiltInHelperInvocation: return "HelperInvocation"; case BuiltInNumWorkgroups: return "NumWorkgroups"; case BuiltInWorkgroupSize: return "WorkgroupSize"; case BuiltInWorkgroupId: return "WorkgroupId"; case BuiltInLocalInvocationId: return "LocalInvocationId"; case BuiltInGlobalInvocationId: return "GlobalInvocationId"; case BuiltInLocalInvocationIndex: return "LocalInvocationIndex"; case BuiltInWorkDim: return "WorkDim"; case BuiltInGlobalSize: return "GlobalSize"; case BuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize"; case BuiltInGlobalOffset: return "GlobalOffset"; case BuiltInGlobalLinearId: return "GlobalLinearId"; case BuiltInSubgroupSize: return "SubgroupSize"; case BuiltInSubgroupMaxSize: return "SubgroupMaxSize"; case BuiltInNumSubgroups: return "NumSubgroups"; case BuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups"; case BuiltInSubgroupId: return "SubgroupId"; case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId"; case BuiltInVertexIndex: return "VertexIndex"; case BuiltInInstanceIndex: return "InstanceIndex"; case BuiltInCoreIDARM: return "CoreIDARM"; case BuiltInCoreCountARM: return "CoreCountARM"; case BuiltInCoreMaxIDARM: return "CoreMaxIDARM"; case BuiltInWarpIDARM: return "WarpIDARM"; case BuiltInWarpMaxIDARM: return "WarpMaxIDARM"; case BuiltInSubgroupEqMask: return "SubgroupEqMask"; case BuiltInSubgroupGeMask: return "SubgroupGeMask"; case BuiltInSubgroupGtMask: return "SubgroupGtMask"; case BuiltInSubgroupLeMask: return "SubgroupLeMask"; case BuiltInSubgroupLtMask: return "SubgroupLtMask"; case BuiltInBaseVertex: return "BaseVertex"; case BuiltInBaseInstance: return "BaseInstance"; case BuiltInDrawIndex: return "DrawIndex"; case BuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR"; case BuiltInDeviceIndex: return "DeviceIndex"; case BuiltInViewIndex: return "ViewIndex"; case BuiltInShadingRateKHR: return "ShadingRateKHR"; case BuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD"; case BuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD"; case BuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD"; case BuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD"; case BuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD"; case BuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD"; case BuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD"; case BuiltInFragStencilRefEXT: return "FragStencilRefEXT"; case BuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX"; case BuiltInShaderIndexAMDX: return "ShaderIndexAMDX"; case BuiltInViewportMaskNV: return "ViewportMaskNV"; case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; case BuiltInPositionPerViewNV: return "PositionPerViewNV"; case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; case BuiltInFullyCoveredEXT: return "FullyCoveredEXT"; case BuiltInTaskCountNV: return "TaskCountNV"; case BuiltInPrimitiveCountNV: return "PrimitiveCountNV"; case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV"; case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV"; case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV"; case BuiltInLayerPerViewNV: return "LayerPerViewNV"; case BuiltInMeshViewCountNV: return "MeshViewCountNV"; case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV"; case BuiltInBaryCoordKHR: return "BaryCoordKHR"; case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR"; case BuiltInFragSizeEXT: return "FragSizeEXT"; case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT"; case BuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT"; case BuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT"; case BuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT"; case BuiltInCullPrimitiveEXT: return "CullPrimitiveEXT"; case BuiltInLaunchIdKHR: return "LaunchIdKHR"; case BuiltInLaunchSizeKHR: return "LaunchSizeKHR"; case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR"; case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR"; case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR"; case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR"; case BuiltInRayTminKHR: return "RayTminKHR"; case BuiltInRayTmaxKHR: return "RayTmaxKHR"; case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR"; case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR"; case BuiltInWorldToObjectKHR: return "WorldToObjectKHR"; case BuiltInHitTNV: return "HitTNV"; case BuiltInHitKindKHR: return "HitKindKHR"; case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV"; case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR"; case BuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV"; case BuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV"; case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR"; case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR"; case BuiltInWarpsPerSMNV: return "WarpsPerSMNV"; case BuiltInSMCountNV: return "SMCountNV"; case BuiltInWarpIDNV: return "WarpIDNV"; case BuiltInSMIDNV: return "SMIDNV"; case BuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV"; case BuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV"; case BuiltInCullMaskKHR: return "CullMaskKHR"; default: return "Unknown"; } } inline const char* ScopeToString(Scope value) { switch (value) { case ScopeCrossDevice: return "CrossDevice"; case ScopeDevice: return "Device"; case ScopeWorkgroup: return "Workgroup"; case ScopeSubgroup: return "Subgroup"; case ScopeInvocation: return "Invocation"; case ScopeQueueFamily: return "QueueFamily"; case ScopeShaderCallKHR: return "ShaderCallKHR"; default: return "Unknown"; } } inline const char* GroupOperationToString(GroupOperation value) { switch (value) { case GroupOperationReduce: return "Reduce"; case GroupOperationInclusiveScan: return "InclusiveScan"; case GroupOperationExclusiveScan: return "ExclusiveScan"; case GroupOperationClusteredReduce: return "ClusteredReduce"; case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV"; case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV"; case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV"; default: return "Unknown"; } } inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) { switch (value) { case KernelEnqueueFlagsNoWait: return "NoWait"; case KernelEnqueueFlagsWaitKernel: return "WaitKernel"; case KernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup"; default: return "Unknown"; } } inline const char* CapabilityToString(Capability value) { switch (value) { case CapabilityMatrix: return "Matrix"; case CapabilityShader: return "Shader"; case CapabilityGeometry: return "Geometry"; case CapabilityTessellation: return "Tessellation"; case CapabilityAddresses: return "Addresses"; case CapabilityLinkage: return "Linkage"; case CapabilityKernel: return "Kernel"; case CapabilityVector16: return "Vector16"; case CapabilityFloat16Buffer: return "Float16Buffer"; case CapabilityFloat16: return "Float16"; case CapabilityFloat64: return "Float64"; case CapabilityInt64: return "Int64"; case CapabilityInt64Atomics: return "Int64Atomics"; case CapabilityImageBasic: return "ImageBasic"; case CapabilityImageReadWrite: return "ImageReadWrite"; case CapabilityImageMipmap: return "ImageMipmap"; case CapabilityPipes: return "Pipes"; case CapabilityGroups: return "Groups"; case CapabilityDeviceEnqueue: return "DeviceEnqueue"; case CapabilityLiteralSampler: return "LiteralSampler"; case CapabilityAtomicStorage: return "AtomicStorage"; case CapabilityInt16: return "Int16"; case CapabilityTessellationPointSize: return "TessellationPointSize"; case CapabilityGeometryPointSize: return "GeometryPointSize"; case CapabilityImageGatherExtended: return "ImageGatherExtended"; case CapabilityStorageImageMultisample: return "StorageImageMultisample"; case CapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing"; case CapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing"; case CapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing"; case CapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing"; case CapabilityClipDistance: return "ClipDistance"; case CapabilityCullDistance: return "CullDistance"; case CapabilityImageCubeArray: return "ImageCubeArray"; case CapabilitySampleRateShading: return "SampleRateShading"; case CapabilityImageRect: return "ImageRect"; case CapabilitySampledRect: return "SampledRect"; case CapabilityGenericPointer: return "GenericPointer"; case CapabilityInt8: return "Int8"; case CapabilityInputAttachment: return "InputAttachment"; case CapabilitySparseResidency: return "SparseResidency"; case CapabilityMinLod: return "MinLod"; case CapabilitySampled1D: return "Sampled1D"; case CapabilityImage1D: return "Image1D"; case CapabilitySampledCubeArray: return "SampledCubeArray"; case CapabilitySampledBuffer: return "SampledBuffer"; case CapabilityImageBuffer: return "ImageBuffer"; case CapabilityImageMSArray: return "ImageMSArray"; case CapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats"; case CapabilityImageQuery: return "ImageQuery"; case CapabilityDerivativeControl: return "DerivativeControl"; case CapabilityInterpolationFunction: return "InterpolationFunction"; case CapabilityTransformFeedback: return "TransformFeedback"; case CapabilityGeometryStreams: return "GeometryStreams"; case CapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat"; case CapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat"; case CapabilityMultiViewport: return "MultiViewport"; case CapabilitySubgroupDispatch: return "SubgroupDispatch"; case CapabilityNamedBarrier: return "NamedBarrier"; case CapabilityPipeStorage: return "PipeStorage"; case CapabilityGroupNonUniform: return "GroupNonUniform"; case CapabilityGroupNonUniformVote: return "GroupNonUniformVote"; case CapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic"; case CapabilityGroupNonUniformBallot: return "GroupNonUniformBallot"; case CapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle"; case CapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative"; case CapabilityGroupNonUniformClustered: return "GroupNonUniformClustered"; case CapabilityGroupNonUniformQuad: return "GroupNonUniformQuad"; case CapabilityShaderLayer: return "ShaderLayer"; case CapabilityShaderViewportIndex: return "ShaderViewportIndex"; case CapabilityUniformDecoration: return "UniformDecoration"; case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM"; case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT"; case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT"; case CapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT"; case CapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM"; case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR"; case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR"; case CapabilityDrawParameters: return "DrawParameters"; case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR"; case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR"; case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR"; case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR"; case CapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess"; case CapabilityStorageUniform16: return "StorageUniform16"; case CapabilityStoragePushConstant16: return "StoragePushConstant16"; case CapabilityStorageInputOutput16: return "StorageInputOutput16"; case CapabilityDeviceGroup: return "DeviceGroup"; case CapabilityMultiView: return "MultiView"; case CapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer"; case CapabilityVariablePointers: return "VariablePointers"; case CapabilityAtomicStorageOps: return "AtomicStorageOps"; case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage"; case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess"; case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess"; case CapabilityStoragePushConstant8: return "StoragePushConstant8"; case CapabilityDenormPreserve: return "DenormPreserve"; case CapabilityDenormFlushToZero: return "DenormFlushToZero"; case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve"; case CapabilityRoundingModeRTE: return "RoundingModeRTE"; case CapabilityRoundingModeRTZ: return "RoundingModeRTZ"; case CapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR"; case CapabilityRayQueryKHR: return "RayQueryKHR"; case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR"; case CapabilityRayTracingKHR: return "RayTracingKHR"; case CapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM"; case CapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM"; case CapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM"; case CapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM"; case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; case CapabilityFragmentMaskAMD: return "FragmentMaskAMD"; case CapabilityStencilExportEXT: return "StencilExportEXT"; case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD"; case CapabilityInt64ImageEXT: return "Int64ImageEXT"; case CapabilityShaderClockKHR: return "ShaderClockKHR"; case CapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX"; case CapabilityQuadControlKHR: return "QuadControlKHR"; case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV"; case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT"; case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT"; case CapabilityMeshShadingNV: return "MeshShadingNV"; case CapabilityImageFootprintNV: return "ImageFootprintNV"; case CapabilityMeshShadingEXT: return "MeshShadingEXT"; case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR"; case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV"; case CapabilityFragmentDensityEXT: return "FragmentDensityEXT"; case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; case CapabilityShaderNonUniform: return "ShaderNonUniform"; case CapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray"; case CapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing"; case CapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing"; case CapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing"; case CapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing"; case CapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing"; case CapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing"; case CapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing"; case CapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing"; case CapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing"; case CapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing"; case CapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR"; case CapabilityRayTracingNV: return "RayTracingNV"; case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV"; case CapabilityVulkanMemoryModel: return "VulkanMemoryModel"; case CapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope"; case CapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses"; case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV"; case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR"; case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV"; case CapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT"; case CapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT"; case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV"; case CapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT"; case CapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation"; case CapabilityDisplacementMicromapNV: return "DisplacementMicromapNV"; case CapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT"; case CapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; case CapabilityBindlessTextureNV: return "BindlessTextureNV"; case CapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR"; case CapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV"; case CapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV"; case CapabilityRawAccessChainsNV: return "RawAccessChainsNV"; case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL"; case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL"; case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL"; case CapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL"; case CapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL"; case CapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL"; case CapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL"; case CapabilityFunctionPointersINTEL: return "FunctionPointersINTEL"; case CapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL"; case CapabilityAsmINTEL: return "AsmINTEL"; case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT"; case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT"; case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT"; case CapabilityVectorComputeINTEL: return "VectorComputeINTEL"; case CapabilityVectorAnyINTEL: return "VectorAnyINTEL"; case CapabilityExpectAssumeKHR: return "ExpectAssumeKHR"; case CapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL"; case CapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL"; case CapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL"; case CapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL"; case CapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL"; case CapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL"; case CapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL"; case CapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL"; case CapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL"; case CapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL"; case CapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL"; case CapabilityKernelAttributesINTEL: return "KernelAttributesINTEL"; case CapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL"; case CapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL"; case CapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL"; case CapabilityLoopFuseINTEL: return "LoopFuseINTEL"; case CapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL"; case CapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL"; case CapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL"; case CapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL"; case CapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL"; case CapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL"; case CapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL"; case CapabilityIOPipesINTEL: return "IOPipesINTEL"; case CapabilityBlockingPipesINTEL: return "BlockingPipesINTEL"; case CapabilityFPGARegINTEL: return "FPGARegINTEL"; case CapabilityDotProductInputAll: return "DotProductInputAll"; case CapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit"; case CapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked"; case CapabilityDotProduct: return "DotProduct"; case CapabilityRayCullMaskKHR: return "RayCullMaskKHR"; case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR"; case CapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT"; case CapabilityBitInstructions: return "BitInstructions"; case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR"; case CapabilityFloatControls2: return "FloatControls2"; case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; case CapabilityLongCompositesINTEL: return "LongCompositesINTEL"; case CapabilityOptNoneINTEL: return "OptNoneINTEL"; case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT"; case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL"; case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL"; case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL"; case CapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL"; case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL"; case CapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL"; case CapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL"; case CapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL"; case CapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL"; case CapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL"; case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR"; case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL"; case CapabilityCacheControlsINTEL: return "CacheControlsINTEL"; case CapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL"; default: return "Unknown"; } } inline const char* RayQueryIntersectionToString(RayQueryIntersection value) { switch (value) { case RayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR"; case RayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR"; default: return "Unknown"; } } inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) { switch (value) { case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR"; case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR"; case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR"; default: return "Unknown"; } } inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) { switch (value) { case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR"; case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR"; default: return "Unknown"; } } inline const char* FPDenormModeToString(FPDenormMode value) { switch (value) { case FPDenormModePreserve: return "Preserve"; case FPDenormModeFlushToZero: return "FlushToZero"; default: return "Unknown"; } } inline const char* FPOperationModeToString(FPOperationMode value) { switch (value) { case FPOperationModeIEEE: return "IEEE"; case FPOperationModeALT: return "ALT"; default: return "Unknown"; } } inline const char* QuantizationModesToString(QuantizationModes value) { switch (value) { case QuantizationModesTRN: return "TRN"; case QuantizationModesTRN_ZERO: return "TRN_ZERO"; case QuantizationModesRND: return "RND"; case QuantizationModesRND_ZERO: return "RND_ZERO"; case QuantizationModesRND_INF: return "RND_INF"; case QuantizationModesRND_MIN_INF: return "RND_MIN_INF"; case QuantizationModesRND_CONV: return "RND_CONV"; case QuantizationModesRND_CONV_ODD: return "RND_CONV_ODD"; default: return "Unknown"; } } inline const char* OverflowModesToString(OverflowModes value) { switch (value) { case OverflowModesWRAP: return "WRAP"; case OverflowModesSAT: return "SAT"; case OverflowModesSAT_ZERO: return "SAT_ZERO"; case OverflowModesSAT_SYM: return "SAT_SYM"; default: return "Unknown"; } } inline const char* PackedVectorFormatToString(PackedVectorFormat value) { switch (value) { case PackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit"; default: return "Unknown"; } } inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) { switch (value) { case CooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR"; case CooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR"; case CooperativeMatrixLayoutRowBlockedInterleavedARM: return "RowBlockedInterleavedARM"; case CooperativeMatrixLayoutColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM"; default: return "Unknown"; } } inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) { switch (value) { case CooperativeMatrixUseMatrixAKHR: return "MatrixAKHR"; case CooperativeMatrixUseMatrixBKHR: return "MatrixBKHR"; case CooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR"; default: return "Unknown"; } } inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) { switch (value) { case InitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL"; case InitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL"; default: return "Unknown"; } } inline const char* HostAccessQualifierToString(HostAccessQualifier value) { switch (value) { case HostAccessQualifierNoneINTEL: return "NoneINTEL"; case HostAccessQualifierReadINTEL: return "ReadINTEL"; case HostAccessQualifierWriteINTEL: return "WriteINTEL"; case HostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL"; default: return "Unknown"; } } inline const char* LoadCacheControlToString(LoadCacheControl value) { switch (value) { case LoadCacheControlUncachedINTEL: return "UncachedINTEL"; case LoadCacheControlCachedINTEL: return "CachedINTEL"; case LoadCacheControlStreamingINTEL: return "StreamingINTEL"; case LoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL"; case LoadCacheControlConstCachedINTEL: return "ConstCachedINTEL"; default: return "Unknown"; } } inline const char* StoreCacheControlToString(StoreCacheControl value) { switch (value) { case StoreCacheControlUncachedINTEL: return "UncachedINTEL"; case StoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL"; case StoreCacheControlWriteBackINTEL: return "WriteBackINTEL"; case StoreCacheControlStreamingINTEL: return "StreamingINTEL"; default: return "Unknown"; } } inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) { switch (value) { case NamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL"; default: return "Unknown"; } } inline const char* OpToString(Op value) { switch (value) { case OpNop: return "OpNop"; case OpUndef: return "OpUndef"; case OpSourceContinued: return "OpSourceContinued"; case OpSource: return "OpSource"; case OpSourceExtension: return "OpSourceExtension"; case OpName: return "OpName"; case OpMemberName: return "OpMemberName"; case OpString: return "OpString"; case OpLine: return "OpLine"; case OpExtension: return "OpExtension"; case OpExtInstImport: return "OpExtInstImport"; case OpExtInst: return "OpExtInst"; case OpMemoryModel: return "OpMemoryModel"; case OpEntryPoint: return "OpEntryPoint"; case OpExecutionMode: return "OpExecutionMode"; case OpCapability: return "OpCapability"; case OpTypeVoid: return "OpTypeVoid"; case OpTypeBool: return "OpTypeBool"; case OpTypeInt: return "OpTypeInt"; case OpTypeFloat: return "OpTypeFloat"; case OpTypeVector: return "OpTypeVector"; case OpTypeMatrix: return "OpTypeMatrix"; case OpTypeImage: return "OpTypeImage"; case OpTypeSampler: return "OpTypeSampler"; case OpTypeSampledImage: return "OpTypeSampledImage"; case OpTypeArray: return "OpTypeArray"; case OpTypeRuntimeArray: return "OpTypeRuntimeArray"; case OpTypeStruct: return "OpTypeStruct"; case OpTypeOpaque: return "OpTypeOpaque"; case OpTypePointer: return "OpTypePointer"; case OpTypeFunction: return "OpTypeFunction"; case OpTypeEvent: return "OpTypeEvent"; case OpTypeDeviceEvent: return "OpTypeDeviceEvent"; case OpTypeReserveId: return "OpTypeReserveId"; case OpTypeQueue: return "OpTypeQueue"; case OpTypePipe: return "OpTypePipe"; case OpTypeForwardPointer: return "OpTypeForwardPointer"; case OpConstantTrue: return "OpConstantTrue"; case OpConstantFalse: return "OpConstantFalse"; case OpConstant: return "OpConstant"; case OpConstantComposite: return "OpConstantComposite"; case OpConstantSampler: return "OpConstantSampler"; case OpConstantNull: return "OpConstantNull"; case OpSpecConstantTrue: return "OpSpecConstantTrue"; case OpSpecConstantFalse: return "OpSpecConstantFalse"; case OpSpecConstant: return "OpSpecConstant"; case OpSpecConstantComposite: return "OpSpecConstantComposite"; case OpSpecConstantOp: return "OpSpecConstantOp"; case OpFunction: return "OpFunction"; case OpFunctionParameter: return "OpFunctionParameter"; case OpFunctionEnd: return "OpFunctionEnd"; case OpFunctionCall: return "OpFunctionCall"; case OpVariable: return "OpVariable"; case OpImageTexelPointer: return "OpImageTexelPointer"; case OpLoad: return "OpLoad"; case OpStore: return "OpStore"; case OpCopyMemory: return "OpCopyMemory"; case OpCopyMemorySized: return "OpCopyMemorySized"; case OpAccessChain: return "OpAccessChain"; case OpInBoundsAccessChain: return "OpInBoundsAccessChain"; case OpPtrAccessChain: return "OpPtrAccessChain"; case OpArrayLength: return "OpArrayLength"; case OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics"; case OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain"; case OpDecorate: return "OpDecorate"; case OpMemberDecorate: return "OpMemberDecorate"; case OpDecorationGroup: return "OpDecorationGroup"; case OpGroupDecorate: return "OpGroupDecorate"; case OpGroupMemberDecorate: return "OpGroupMemberDecorate"; case OpVectorExtractDynamic: return "OpVectorExtractDynamic"; case OpVectorInsertDynamic: return "OpVectorInsertDynamic"; case OpVectorShuffle: return "OpVectorShuffle"; case OpCompositeConstruct: return "OpCompositeConstruct"; case OpCompositeExtract: return "OpCompositeExtract"; case OpCompositeInsert: return "OpCompositeInsert"; case OpCopyObject: return "OpCopyObject"; case OpTranspose: return "OpTranspose"; case OpSampledImage: return "OpSampledImage"; case OpImageSampleImplicitLod: return "OpImageSampleImplicitLod"; case OpImageSampleExplicitLod: return "OpImageSampleExplicitLod"; case OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod"; case OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod"; case OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod"; case OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod"; case OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod"; case OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod"; case OpImageFetch: return "OpImageFetch"; case OpImageGather: return "OpImageGather"; case OpImageDrefGather: return "OpImageDrefGather"; case OpImageRead: return "OpImageRead"; case OpImageWrite: return "OpImageWrite"; case OpImage: return "OpImage"; case OpImageQueryFormat: return "OpImageQueryFormat"; case OpImageQueryOrder: return "OpImageQueryOrder"; case OpImageQuerySizeLod: return "OpImageQuerySizeLod"; case OpImageQuerySize: return "OpImageQuerySize"; case OpImageQueryLod: return "OpImageQueryLod"; case OpImageQueryLevels: return "OpImageQueryLevels"; case OpImageQuerySamples: return "OpImageQuerySamples"; case OpConvertFToU: return "OpConvertFToU"; case OpConvertFToS: return "OpConvertFToS"; case OpConvertSToF: return "OpConvertSToF"; case OpConvertUToF: return "OpConvertUToF"; case OpUConvert: return "OpUConvert"; case OpSConvert: return "OpSConvert"; case OpFConvert: return "OpFConvert"; case OpQuantizeToF16: return "OpQuantizeToF16"; case OpConvertPtrToU: return "OpConvertPtrToU"; case OpSatConvertSToU: return "OpSatConvertSToU"; case OpSatConvertUToS: return "OpSatConvertUToS"; case OpConvertUToPtr: return "OpConvertUToPtr"; case OpPtrCastToGeneric: return "OpPtrCastToGeneric"; case OpGenericCastToPtr: return "OpGenericCastToPtr"; case OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit"; case OpBitcast: return "OpBitcast"; case OpSNegate: return "OpSNegate"; case OpFNegate: return "OpFNegate"; case OpIAdd: return "OpIAdd"; case OpFAdd: return "OpFAdd"; case OpISub: return "OpISub"; case OpFSub: return "OpFSub"; case OpIMul: return "OpIMul"; case OpFMul: return "OpFMul"; case OpUDiv: return "OpUDiv"; case OpSDiv: return "OpSDiv"; case OpFDiv: return "OpFDiv"; case OpUMod: return "OpUMod"; case OpSRem: return "OpSRem"; case OpSMod: return "OpSMod"; case OpFRem: return "OpFRem"; case OpFMod: return "OpFMod"; case OpVectorTimesScalar: return "OpVectorTimesScalar"; case OpMatrixTimesScalar: return "OpMatrixTimesScalar"; case OpVectorTimesMatrix: return "OpVectorTimesMatrix"; case OpMatrixTimesVector: return "OpMatrixTimesVector"; case OpMatrixTimesMatrix: return "OpMatrixTimesMatrix"; case OpOuterProduct: return "OpOuterProduct"; case OpDot: return "OpDot"; case OpIAddCarry: return "OpIAddCarry"; case OpISubBorrow: return "OpISubBorrow"; case OpUMulExtended: return "OpUMulExtended"; case OpSMulExtended: return "OpSMulExtended"; case OpAny: return "OpAny"; case OpAll: return "OpAll"; case OpIsNan: return "OpIsNan"; case OpIsInf: return "OpIsInf"; case OpIsFinite: return "OpIsFinite"; case OpIsNormal: return "OpIsNormal"; case OpSignBitSet: return "OpSignBitSet"; case OpLessOrGreater: return "OpLessOrGreater"; case OpOrdered: return "OpOrdered"; case OpUnordered: return "OpUnordered"; case OpLogicalEqual: return "OpLogicalEqual"; case OpLogicalNotEqual: return "OpLogicalNotEqual"; case OpLogicalOr: return "OpLogicalOr"; case OpLogicalAnd: return "OpLogicalAnd"; case OpLogicalNot: return "OpLogicalNot"; case OpSelect: return "OpSelect"; case OpIEqual: return "OpIEqual"; case OpINotEqual: return "OpINotEqual"; case OpUGreaterThan: return "OpUGreaterThan"; case OpSGreaterThan: return "OpSGreaterThan"; case OpUGreaterThanEqual: return "OpUGreaterThanEqual"; case OpSGreaterThanEqual: return "OpSGreaterThanEqual"; case OpULessThan: return "OpULessThan"; case OpSLessThan: return "OpSLessThan"; case OpULessThanEqual: return "OpULessThanEqual"; case OpSLessThanEqual: return "OpSLessThanEqual"; case OpFOrdEqual: return "OpFOrdEqual"; case OpFUnordEqual: return "OpFUnordEqual"; case OpFOrdNotEqual: return "OpFOrdNotEqual"; case OpFUnordNotEqual: return "OpFUnordNotEqual"; case OpFOrdLessThan: return "OpFOrdLessThan"; case OpFUnordLessThan: return "OpFUnordLessThan"; case OpFOrdGreaterThan: return "OpFOrdGreaterThan"; case OpFUnordGreaterThan: return "OpFUnordGreaterThan"; case OpFOrdLessThanEqual: return "OpFOrdLessThanEqual"; case OpFUnordLessThanEqual: return "OpFUnordLessThanEqual"; case OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual"; case OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual"; case OpShiftRightLogical: return "OpShiftRightLogical"; case OpShiftRightArithmetic: return "OpShiftRightArithmetic"; case OpShiftLeftLogical: return "OpShiftLeftLogical"; case OpBitwiseOr: return "OpBitwiseOr"; case OpBitwiseXor: return "OpBitwiseXor"; case OpBitwiseAnd: return "OpBitwiseAnd"; case OpNot: return "OpNot"; case OpBitFieldInsert: return "OpBitFieldInsert"; case OpBitFieldSExtract: return "OpBitFieldSExtract"; case OpBitFieldUExtract: return "OpBitFieldUExtract"; case OpBitReverse: return "OpBitReverse"; case OpBitCount: return "OpBitCount"; case OpDPdx: return "OpDPdx"; case OpDPdy: return "OpDPdy"; case OpFwidth: return "OpFwidth"; case OpDPdxFine: return "OpDPdxFine"; case OpDPdyFine: return "OpDPdyFine"; case OpFwidthFine: return "OpFwidthFine"; case OpDPdxCoarse: return "OpDPdxCoarse"; case OpDPdyCoarse: return "OpDPdyCoarse"; case OpFwidthCoarse: return "OpFwidthCoarse"; case OpEmitVertex: return "OpEmitVertex"; case OpEndPrimitive: return "OpEndPrimitive"; case OpEmitStreamVertex: return "OpEmitStreamVertex"; case OpEndStreamPrimitive: return "OpEndStreamPrimitive"; case OpControlBarrier: return "OpControlBarrier"; case OpMemoryBarrier: return "OpMemoryBarrier"; case OpAtomicLoad: return "OpAtomicLoad"; case OpAtomicStore: return "OpAtomicStore"; case OpAtomicExchange: return "OpAtomicExchange"; case OpAtomicCompareExchange: return "OpAtomicCompareExchange"; case OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak"; case OpAtomicIIncrement: return "OpAtomicIIncrement"; case OpAtomicIDecrement: return "OpAtomicIDecrement"; case OpAtomicIAdd: return "OpAtomicIAdd"; case OpAtomicISub: return "OpAtomicISub"; case OpAtomicSMin: return "OpAtomicSMin"; case OpAtomicUMin: return "OpAtomicUMin"; case OpAtomicSMax: return "OpAtomicSMax"; case OpAtomicUMax: return "OpAtomicUMax"; case OpAtomicAnd: return "OpAtomicAnd"; case OpAtomicOr: return "OpAtomicOr"; case OpAtomicXor: return "OpAtomicXor"; case OpPhi: return "OpPhi"; case OpLoopMerge: return "OpLoopMerge"; case OpSelectionMerge: return "OpSelectionMerge"; case OpLabel: return "OpLabel"; case OpBranch: return "OpBranch"; case OpBranchConditional: return "OpBranchConditional"; case OpSwitch: return "OpSwitch"; case OpKill: return "OpKill"; case OpReturn: return "OpReturn"; case OpReturnValue: return "OpReturnValue"; case OpUnreachable: return "OpUnreachable"; case OpLifetimeStart: return "OpLifetimeStart"; case OpLifetimeStop: return "OpLifetimeStop"; case OpGroupAsyncCopy: return "OpGroupAsyncCopy"; case OpGroupWaitEvents: return "OpGroupWaitEvents"; case OpGroupAll: return "OpGroupAll"; case OpGroupAny: return "OpGroupAny"; case OpGroupBroadcast: return "OpGroupBroadcast"; case OpGroupIAdd: return "OpGroupIAdd"; case OpGroupFAdd: return "OpGroupFAdd"; case OpGroupFMin: return "OpGroupFMin"; case OpGroupUMin: return "OpGroupUMin"; case OpGroupSMin: return "OpGroupSMin"; case OpGroupFMax: return "OpGroupFMax"; case OpGroupUMax: return "OpGroupUMax"; case OpGroupSMax: return "OpGroupSMax"; case OpReadPipe: return "OpReadPipe"; case OpWritePipe: return "OpWritePipe"; case OpReservedReadPipe: return "OpReservedReadPipe"; case OpReservedWritePipe: return "OpReservedWritePipe"; case OpReserveReadPipePackets: return "OpReserveReadPipePackets"; case OpReserveWritePipePackets: return "OpReserveWritePipePackets"; case OpCommitReadPipe: return "OpCommitReadPipe"; case OpCommitWritePipe: return "OpCommitWritePipe"; case OpIsValidReserveId: return "OpIsValidReserveId"; case OpGetNumPipePackets: return "OpGetNumPipePackets"; case OpGetMaxPipePackets: return "OpGetMaxPipePackets"; case OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets"; case OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets"; case OpGroupCommitReadPipe: return "OpGroupCommitReadPipe"; case OpGroupCommitWritePipe: return "OpGroupCommitWritePipe"; case OpEnqueueMarker: return "OpEnqueueMarker"; case OpEnqueueKernel: return "OpEnqueueKernel"; case OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount"; case OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize"; case OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize"; case OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple"; case OpRetainEvent: return "OpRetainEvent"; case OpReleaseEvent: return "OpReleaseEvent"; case OpCreateUserEvent: return "OpCreateUserEvent"; case OpIsValidEvent: return "OpIsValidEvent"; case OpSetUserEventStatus: return "OpSetUserEventStatus"; case OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo"; case OpGetDefaultQueue: return "OpGetDefaultQueue"; case OpBuildNDRange: return "OpBuildNDRange"; case OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod"; case OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod"; case OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod"; case OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod"; case OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod"; case OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod"; case OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod"; case OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod"; case OpImageSparseFetch: return "OpImageSparseFetch"; case OpImageSparseGather: return "OpImageSparseGather"; case OpImageSparseDrefGather: return "OpImageSparseDrefGather"; case OpImageSparseTexelsResident: return "OpImageSparseTexelsResident"; case OpNoLine: return "OpNoLine"; case OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet"; case OpAtomicFlagClear: return "OpAtomicFlagClear"; case OpImageSparseRead: return "OpImageSparseRead"; case OpSizeOf: return "OpSizeOf"; case OpTypePipeStorage: return "OpTypePipeStorage"; case OpConstantPipeStorage: return "OpConstantPipeStorage"; case OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage"; case OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount"; case OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups"; case OpTypeNamedBarrier: return "OpTypeNamedBarrier"; case OpNamedBarrierInitialize: return "OpNamedBarrierInitialize"; case OpMemoryNamedBarrier: return "OpMemoryNamedBarrier"; case OpModuleProcessed: return "OpModuleProcessed"; case OpExecutionModeId: return "OpExecutionModeId"; case OpDecorateId: return "OpDecorateId"; case OpGroupNonUniformElect: return "OpGroupNonUniformElect"; case OpGroupNonUniformAll: return "OpGroupNonUniformAll"; case OpGroupNonUniformAny: return "OpGroupNonUniformAny"; case OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual"; case OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast"; case OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst"; case OpGroupNonUniformBallot: return "OpGroupNonUniformBallot"; case OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot"; case OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract"; case OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount"; case OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB"; case OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB"; case OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle"; case OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor"; case OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp"; case OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown"; case OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd"; case OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd"; case OpGroupNonUniformIMul: return "OpGroupNonUniformIMul"; case OpGroupNonUniformFMul: return "OpGroupNonUniformFMul"; case OpGroupNonUniformSMin: return "OpGroupNonUniformSMin"; case OpGroupNonUniformUMin: return "OpGroupNonUniformUMin"; case OpGroupNonUniformFMin: return "OpGroupNonUniformFMin"; case OpGroupNonUniformSMax: return "OpGroupNonUniformSMax"; case OpGroupNonUniformUMax: return "OpGroupNonUniformUMax"; case OpGroupNonUniformFMax: return "OpGroupNonUniformFMax"; case OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd"; case OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr"; case OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor"; case OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd"; case OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr"; case OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor"; case OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast"; case OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap"; case OpCopyLogical: return "OpCopyLogical"; case OpPtrEqual: return "OpPtrEqual"; case OpPtrNotEqual: return "OpPtrNotEqual"; case OpPtrDiff: return "OpPtrDiff"; case OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT"; case OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT"; case OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT"; case OpTerminateInvocation: return "OpTerminateInvocation"; case OpSubgroupBallotKHR: return "OpSubgroupBallotKHR"; case OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR"; case OpSubgroupAllKHR: return "OpSubgroupAllKHR"; case OpSubgroupAnyKHR: return "OpSubgroupAnyKHR"; case OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR"; case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR"; case OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR"; case OpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR"; case OpTraceRayKHR: return "OpTraceRayKHR"; case OpExecuteCallableKHR: return "OpExecuteCallableKHR"; case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR"; case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR"; case OpTerminateRayKHR: return "OpTerminateRayKHR"; case OpSDot: return "OpSDot"; case OpUDot: return "OpUDot"; case OpSUDot: return "OpSUDot"; case OpSDotAccSat: return "OpSDotAccSat"; case OpUDotAccSat: return "OpUDotAccSat"; case OpSUDotAccSat: return "OpSUDotAccSat"; case OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR"; case OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR"; case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR"; case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR"; case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR"; case OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT"; case OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT"; case OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT"; case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR"; case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR"; case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR"; case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR"; case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR"; case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR"; case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR"; case OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM"; case OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM"; case OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM"; case OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM"; case OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM"; case OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM"; case OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM"; case OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM"; case OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD"; case OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD"; case OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD"; case OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD"; case OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD"; case OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD"; case OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD"; case OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD"; case OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD"; case OpFragmentFetchAMD: return "OpFragmentFetchAMD"; case OpReadClockKHR: return "OpReadClockKHR"; case OpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX"; case OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX"; case OpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX"; case OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR"; case OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR"; case OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV"; case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV"; case OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV"; case OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV"; case OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV"; case OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV"; case OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV"; case OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV"; case OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV"; case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV"; case OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV"; case OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV"; case OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV"; case OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV"; case OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV"; case OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV"; case OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV"; case OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV"; case OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV"; case OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV"; case OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV"; case OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV"; case OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV"; case OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV"; case OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV"; case OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV"; case OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV"; case OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV"; case OpHitObjectIsHitNV: return "OpHitObjectIsHitNV"; case OpHitObjectIsMissNV: return "OpHitObjectIsMissNV"; case OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV"; case OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV"; case OpTypeHitObjectNV: return "OpTypeHitObjectNV"; case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV"; case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT"; case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT"; case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV"; case OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV"; case OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV"; case OpReportIntersectionKHR: return "OpReportIntersectionKHR"; case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case OpTerminateRayNV: return "OpTerminateRayNV"; case OpTraceNV: return "OpTraceNV"; case OpTraceMotionNV: return "OpTraceMotionNV"; case OpTraceRayMotionNV: return "OpTraceRayMotionNV"; case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR"; case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR"; case OpExecuteCallableNV: return "OpExecuteCallableNV"; case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV"; case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV"; case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT"; case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT"; case OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation"; case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT"; case OpConvertUToImageNV: return "OpConvertUToImageNV"; case OpConvertUToSamplerNV: return "OpConvertUToSamplerNV"; case OpConvertImageToUNV: return "OpConvertImageToUNV"; case OpConvertSamplerToUNV: return "OpConvertSamplerToUNV"; case OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV"; case OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV"; case OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV"; case OpRawAccessChainNV: return "OpRawAccessChainNV"; case OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL"; case OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL"; case OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL"; case OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL"; case OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL"; case OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL"; case OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL"; case OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL"; case OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL"; case OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL"; case OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL"; case OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL"; case OpAbsISubINTEL: return "OpAbsISubINTEL"; case OpAbsUSubINTEL: return "OpAbsUSubINTEL"; case OpIAddSatINTEL: return "OpIAddSatINTEL"; case OpUAddSatINTEL: return "OpUAddSatINTEL"; case OpIAverageINTEL: return "OpIAverageINTEL"; case OpUAverageINTEL: return "OpUAverageINTEL"; case OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL"; case OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL"; case OpISubSatINTEL: return "OpISubSatINTEL"; case OpUSubSatINTEL: return "OpUSubSatINTEL"; case OpIMul32x16INTEL: return "OpIMul32x16INTEL"; case OpUMul32x16INTEL: return "OpUMul32x16INTEL"; case OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL"; case OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL"; case OpAsmTargetINTEL: return "OpAsmTargetINTEL"; case OpAsmINTEL: return "OpAsmINTEL"; case OpAsmCallINTEL: return "OpAsmCallINTEL"; case OpAtomicFMinEXT: return "OpAtomicFMinEXT"; case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT"; case OpAssumeTrueKHR: return "OpAssumeTrueKHR"; case OpExpectKHR: return "OpExpectKHR"; case OpDecorateString: return "OpDecorateString"; case OpMemberDecorateString: return "OpMemberDecorateString"; case OpVmeImageINTEL: return "OpVmeImageINTEL"; case OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL"; case OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL"; case OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL"; case OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL"; case OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL"; case OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL"; case OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL"; case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL"; case OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL"; case OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL"; case OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL"; case OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL"; case OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL"; case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL"; case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL"; case OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL"; case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL"; case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL"; case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL"; case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL"; case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL"; case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL"; case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL"; case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL"; case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL"; case OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL"; case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL"; case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL"; case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL"; case OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL"; case OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL"; case OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL"; case OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL"; case OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL"; case OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL"; case OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL"; case OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL"; case OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL"; case OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL"; case OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL"; case OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL"; case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL"; case OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL"; case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL"; case OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL"; case OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL"; case OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL"; case OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL"; case OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL"; case OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL"; case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL"; case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL"; case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL"; case OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL"; case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL"; case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL"; case OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL"; case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL"; case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL"; case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL"; case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL"; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL"; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL"; case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL"; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL"; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL"; case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL"; case OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL"; case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL"; case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL"; case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL"; case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL"; case OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL"; case OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL"; case OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL"; case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL"; case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL"; case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL"; case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL"; case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL"; case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL"; case OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL"; case OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL"; case OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL"; case OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL"; case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL"; case OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL"; case OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL"; case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL"; case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL"; case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL"; case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL"; case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL"; case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL"; case OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL"; case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL"; case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL"; case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL"; case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL"; case OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL"; case OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL"; case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL"; case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL"; case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL"; case OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL"; case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL"; case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL"; case OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL"; case OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL"; case OpSaveMemoryINTEL: return "OpSaveMemoryINTEL"; case OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL"; case OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL"; case OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL"; case OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL"; case OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL"; case OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL"; case OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL"; case OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL"; case OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL"; case OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL"; case OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL"; case OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL"; case OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL"; case OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL"; case OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL"; case OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL"; case OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL"; case OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL"; case OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL"; case OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL"; case OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL"; case OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL"; case OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL"; case OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL"; case OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL"; case OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL"; case OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL"; case OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL"; case OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL"; case OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL"; case OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL"; case OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL"; case OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL"; case OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL"; case OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL"; case OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL"; case OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL"; case OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL"; case OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL"; case OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL"; case OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL"; case OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL"; case OpLoopControlINTEL: return "OpLoopControlINTEL"; case OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL"; case OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL"; case OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL"; case OpFixedSqrtINTEL: return "OpFixedSqrtINTEL"; case OpFixedRecipINTEL: return "OpFixedRecipINTEL"; case OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL"; case OpFixedSinINTEL: return "OpFixedSinINTEL"; case OpFixedCosINTEL: return "OpFixedCosINTEL"; case OpFixedSinCosINTEL: return "OpFixedSinCosINTEL"; case OpFixedSinPiINTEL: return "OpFixedSinPiINTEL"; case OpFixedCosPiINTEL: return "OpFixedCosPiINTEL"; case OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL"; case OpFixedLogINTEL: return "OpFixedLogINTEL"; case OpFixedExpINTEL: return "OpFixedExpINTEL"; case OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL"; case OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL"; case OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL"; case OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL"; case OpFPGARegINTEL: return "OpFPGARegINTEL"; case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR"; case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR"; case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR"; case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR"; case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR"; case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR"; case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR"; case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR"; case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR"; case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR"; case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR"; case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR"; case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR"; case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR"; case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR"; case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR"; case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR"; case OpAtomicFAddEXT: return "OpAtomicFAddEXT"; case OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL"; case OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL"; case OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL"; case OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL"; case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL"; case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL"; case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL"; case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL"; case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL"; case OpGroupIMulKHR: return "OpGroupIMulKHR"; case OpGroupFMulKHR: return "OpGroupFMulKHR"; case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR"; case OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR"; case OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR"; case OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR"; case OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR"; case OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR"; case OpMaskedGatherINTEL: return "OpMaskedGatherINTEL"; case OpMaskedScatterINTEL: return "OpMaskedScatterINTEL"; default: return "Unknown"; } } #endif /* SPV_ENABLE_UTILITY_CODE */ // Overload bitwise operators for mask bit combining constexpr ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); } constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); } constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); } constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); } constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); } constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); } constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } constexpr SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); } constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); } constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); } constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); } constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); } constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); } constexpr FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } constexpr FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); } constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); } constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); } constexpr MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } constexpr MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); } constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); } constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); } constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); } constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); } constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); } constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); } constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); } constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); } constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); } constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); } constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); } constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); } constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); } constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); } constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); } constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); } constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); } constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); } constexpr RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); } constexpr RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); } constexpr RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); } constexpr RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); } } // end namespace spv #endif // #ifndef spirv_HPP spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.json000066400000000000000000002743361463234063200236110ustar00rootroot00000000000000{ "spv": { "meta": { "Comment": [ [ "Copyright (c) 2014-2024 The Khronos Group Inc.", "", "Permission is hereby granted, free of charge, to any person obtaining a copy", "of this software and/or associated documentation files (the \"Materials\"),", "to deal in the Materials without restriction, including without limitation", "the rights to use, copy, modify, merge, publish, distribute, sublicense,", "and/or sell copies of the Materials, and to permit persons to whom the", "Materials are furnished to do so, subject to the following conditions:", "", "The above copyright notice and this permission notice shall be included in", "all copies or substantial portions of the Materials.", "", "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", "", "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", "IN THE MATERIALS." ], [ "This header is automatically generated by the same tool that creates", "the Binary Section of the SPIR-V specification." ], [ "Enumeration tokens for SPIR-V, in various styles:", " C, C++, C++11, JSON, Lua, Python, C#, D, Beef", "", "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL", "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL", "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL", "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL", "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']", "- C# will use enum classes in the Specification class located in the \"Spv\" namespace,", " e.g.: Spv.Specification.SourceLanguage.GLSL", "- D will have tokens under the \"spv\" module, e.g: spv.SourceLanguage.GLSL", "- Beef will use enum classes in the Specification class located in the \"Spv\" namespace,", " e.g.: Spv.Specification.SourceLanguage.GLSL", "", "Some tokens act like mask values, which can be OR'd together,", "while others are mutually exclusive. The mask-like ones have", "\"Mask\" in their name, and a parallel enum that has the shift", "amount (1 << x) for each corresponding enumerant." ] ], "MagicNumber": 119734787, "Version": 67072, "Revision": 1, "OpCodeMask": 65535, "WordCountShift": 16 }, "enum": [ { "Name": "SourceLanguage", "Type": "Value", "Values": { "Unknown": 0, "ESSL": 1, "GLSL": 2, "OpenCL_C": 3, "OpenCL_CPP": 4, "HLSL": 5, "CPP_for_OpenCL": 6, "SYCL": 7, "HERO_C": 8, "NZSL": 9, "WGSL": 10, "Slang": 11, "Zig": 12 } }, { "Name": "ExecutionModel", "Type": "Value", "Values": { "Vertex": 0, "TessellationControl": 1, "TessellationEvaluation": 2, "Geometry": 3, "Fragment": 4, "GLCompute": 5, "Kernel": 6, "TaskNV": 5267, "MeshNV": 5268, "RayGenerationKHR": 5313, "RayGenerationNV": 5313, "IntersectionKHR": 5314, "IntersectionNV": 5314, "AnyHitKHR": 5315, "AnyHitNV": 5315, "ClosestHitKHR": 5316, "ClosestHitNV": 5316, "MissKHR": 5317, "MissNV": 5317, "CallableKHR": 5318, "CallableNV": 5318, "TaskEXT": 5364, "MeshEXT": 5365 } }, { "Name": "AddressingModel", "Type": "Value", "Values": { "Logical": 0, "Physical32": 1, "Physical64": 2, "PhysicalStorageBuffer64": 5348, "PhysicalStorageBuffer64EXT": 5348 } }, { "Name": "MemoryModel", "Type": "Value", "Values": { "Simple": 0, "GLSL450": 1, "OpenCL": 2, "Vulkan": 3, "VulkanKHR": 3 } }, { "Name": "ExecutionMode", "Type": "Value", "Values": { "Invocations": 0, "SpacingEqual": 1, "SpacingFractionalEven": 2, "SpacingFractionalOdd": 3, "VertexOrderCw": 4, "VertexOrderCcw": 5, "PixelCenterInteger": 6, "OriginUpperLeft": 7, "OriginLowerLeft": 8, "EarlyFragmentTests": 9, "PointMode": 10, "Xfb": 11, "DepthReplacing": 12, "DepthGreater": 14, "DepthLess": 15, "DepthUnchanged": 16, "LocalSize": 17, "LocalSizeHint": 18, "InputPoints": 19, "InputLines": 20, "InputLinesAdjacency": 21, "Triangles": 22, "InputTrianglesAdjacency": 23, "Quads": 24, "Isolines": 25, "OutputVertices": 26, "OutputPoints": 27, "OutputLineStrip": 28, "OutputTriangleStrip": 29, "VecTypeHint": 30, "ContractionOff": 31, "Initializer": 33, "Finalizer": 34, "SubgroupSize": 35, "SubgroupsPerWorkgroup": 36, "SubgroupsPerWorkgroupId": 37, "LocalSizeId": 38, "LocalSizeHintId": 39, "NonCoherentColorAttachmentReadEXT": 4169, "NonCoherentDepthAttachmentReadEXT": 4170, "NonCoherentStencilAttachmentReadEXT": 4171, "SubgroupUniformControlFlowKHR": 4421, "PostDepthCoverage": 4446, "DenormPreserve": 4459, "DenormFlushToZero": 4460, "SignedZeroInfNanPreserve": 4461, "RoundingModeRTE": 4462, "RoundingModeRTZ": 4463, "EarlyAndLateFragmentTestsAMD": 5017, "StencilRefReplacingEXT": 5027, "CoalescingAMDX": 5069, "MaxNodeRecursionAMDX": 5071, "StaticNumWorkgroupsAMDX": 5072, "ShaderIndexAMDX": 5073, "MaxNumWorkgroupsAMDX": 5077, "StencilRefUnchangedFrontAMD": 5079, "StencilRefGreaterFrontAMD": 5080, "StencilRefLessFrontAMD": 5081, "StencilRefUnchangedBackAMD": 5082, "StencilRefGreaterBackAMD": 5083, "StencilRefLessBackAMD": 5084, "QuadDerivativesKHR": 5088, "RequireFullQuadsKHR": 5089, "OutputLinesEXT": 5269, "OutputLinesNV": 5269, "OutputPrimitivesEXT": 5270, "OutputPrimitivesNV": 5270, "DerivativeGroupQuadsNV": 5289, "DerivativeGroupLinearNV": 5290, "OutputTrianglesEXT": 5298, "OutputTrianglesNV": 5298, "PixelInterlockOrderedEXT": 5366, "PixelInterlockUnorderedEXT": 5367, "SampleInterlockOrderedEXT": 5368, "SampleInterlockUnorderedEXT": 5369, "ShadingRateInterlockOrderedEXT": 5370, "ShadingRateInterlockUnorderedEXT": 5371, "SharedLocalMemorySizeINTEL": 5618, "RoundingModeRTPINTEL": 5620, "RoundingModeRTNINTEL": 5621, "FloatingPointModeALTINTEL": 5622, "FloatingPointModeIEEEINTEL": 5623, "MaxWorkgroupSizeINTEL": 5893, "MaxWorkDimINTEL": 5894, "NoGlobalOffsetINTEL": 5895, "NumSIMDWorkitemsINTEL": 5896, "SchedulerTargetFmaxMhzINTEL": 5903, "MaximallyReconvergesKHR": 6023, "FPFastMathDefault": 6028, "StreamingInterfaceINTEL": 6154, "RegisterMapInterfaceINTEL": 6160, "NamedBarrierCountINTEL": 6417, "MaximumRegistersINTEL": 6461, "MaximumRegistersIdINTEL": 6462, "NamedMaximumRegistersINTEL": 6463 } }, { "Name": "StorageClass", "Type": "Value", "Values": { "UniformConstant": 0, "Input": 1, "Uniform": 2, "Output": 3, "Workgroup": 4, "CrossWorkgroup": 5, "Private": 6, "Function": 7, "Generic": 8, "PushConstant": 9, "AtomicCounter": 10, "Image": 11, "StorageBuffer": 12, "TileImageEXT": 4172, "NodePayloadAMDX": 5068, "NodeOutputPayloadAMDX": 5076, "CallableDataKHR": 5328, "CallableDataNV": 5328, "IncomingCallableDataKHR": 5329, "IncomingCallableDataNV": 5329, "RayPayloadKHR": 5338, "RayPayloadNV": 5338, "HitAttributeKHR": 5339, "HitAttributeNV": 5339, "IncomingRayPayloadKHR": 5342, "IncomingRayPayloadNV": 5342, "ShaderRecordBufferKHR": 5343, "ShaderRecordBufferNV": 5343, "PhysicalStorageBuffer": 5349, "PhysicalStorageBufferEXT": 5349, "HitObjectAttributeNV": 5385, "TaskPayloadWorkgroupEXT": 5402, "CodeSectionINTEL": 5605, "DeviceOnlyINTEL": 5936, "HostOnlyINTEL": 5937 } }, { "Name": "Dim", "Type": "Value", "Values": { "Dim1D": 0, "Dim2D": 1, "Dim3D": 2, "Cube": 3, "Rect": 4, "Buffer": 5, "SubpassData": 6, "TileImageDataEXT": 4173 } }, { "Name": "SamplerAddressingMode", "Type": "Value", "Values": { "None": 0, "ClampToEdge": 1, "Clamp": 2, "Repeat": 3, "RepeatMirrored": 4 } }, { "Name": "SamplerFilterMode", "Type": "Value", "Values": { "Nearest": 0, "Linear": 1 } }, { "Name": "ImageFormat", "Type": "Value", "Values": { "Unknown": 0, "Rgba32f": 1, "Rgba16f": 2, "R32f": 3, "Rgba8": 4, "Rgba8Snorm": 5, "Rg32f": 6, "Rg16f": 7, "R11fG11fB10f": 8, "R16f": 9, "Rgba16": 10, "Rgb10A2": 11, "Rg16": 12, "Rg8": 13, "R16": 14, "R8": 15, "Rgba16Snorm": 16, "Rg16Snorm": 17, "Rg8Snorm": 18, "R16Snorm": 19, "R8Snorm": 20, "Rgba32i": 21, "Rgba16i": 22, "Rgba8i": 23, "R32i": 24, "Rg32i": 25, "Rg16i": 26, "Rg8i": 27, "R16i": 28, "R8i": 29, "Rgba32ui": 30, "Rgba16ui": 31, "Rgba8ui": 32, "R32ui": 33, "Rgb10a2ui": 34, "Rg32ui": 35, "Rg16ui": 36, "Rg8ui": 37, "R16ui": 38, "R8ui": 39, "R64ui": 40, "R64i": 41 } }, { "Name": "ImageChannelOrder", "Type": "Value", "Values": { "R": 0, "A": 1, "RG": 2, "RA": 3, "RGB": 4, "RGBA": 5, "BGRA": 6, "ARGB": 7, "Intensity": 8, "Luminance": 9, "Rx": 10, "RGx": 11, "RGBx": 12, "Depth": 13, "DepthStencil": 14, "sRGB": 15, "sRGBx": 16, "sRGBA": 17, "sBGRA": 18, "ABGR": 19 } }, { "Name": "ImageChannelDataType", "Type": "Value", "Values": { "SnormInt8": 0, "SnormInt16": 1, "UnormInt8": 2, "UnormInt16": 3, "UnormShort565": 4, "UnormShort555": 5, "UnormInt101010": 6, "SignedInt8": 7, "SignedInt16": 8, "SignedInt32": 9, "UnsignedInt8": 10, "UnsignedInt16": 11, "UnsignedInt32": 12, "HalfFloat": 13, "Float": 14, "UnormInt24": 15, "UnormInt101010_2": 16, "UnsignedIntRaw10EXT": 19, "UnsignedIntRaw12EXT": 20 } }, { "Name": "ImageOperands", "Type": "Bit", "Values": { "Bias": 0, "Lod": 1, "Grad": 2, "ConstOffset": 3, "Offset": 4, "ConstOffsets": 5, "Sample": 6, "MinLod": 7, "MakeTexelAvailable": 8, "MakeTexelAvailableKHR": 8, "MakeTexelVisible": 9, "MakeTexelVisibleKHR": 9, "NonPrivateTexel": 10, "NonPrivateTexelKHR": 10, "VolatileTexel": 11, "VolatileTexelKHR": 11, "SignExtend": 12, "ZeroExtend": 13, "Nontemporal": 14, "Offsets": 16 } }, { "Name": "FPFastMathMode", "Type": "Bit", "Values": { "NotNaN": 0, "NotInf": 1, "NSZ": 2, "AllowRecip": 3, "Fast": 4, "AllowContract": 16, "AllowContractFastINTEL": 16, "AllowReassoc": 17, "AllowReassocINTEL": 17, "AllowTransform": 18 } }, { "Name": "FPRoundingMode", "Type": "Value", "Values": { "RTE": 0, "RTZ": 1, "RTP": 2, "RTN": 3 } }, { "Name": "LinkageType", "Type": "Value", "Values": { "Export": 0, "Import": 1, "LinkOnceODR": 2 } }, { "Name": "AccessQualifier", "Type": "Value", "Values": { "ReadOnly": 0, "WriteOnly": 1, "ReadWrite": 2 } }, { "Name": "FunctionParameterAttribute", "Type": "Value", "Values": { "Zext": 0, "Sext": 1, "ByVal": 2, "Sret": 3, "NoAlias": 4, "NoCapture": 5, "NoWrite": 6, "NoReadWrite": 7, "RuntimeAlignedINTEL": 5940 } }, { "Name": "Decoration", "Type": "Value", "Values": { "RelaxedPrecision": 0, "SpecId": 1, "Block": 2, "BufferBlock": 3, "RowMajor": 4, "ColMajor": 5, "ArrayStride": 6, "MatrixStride": 7, "GLSLShared": 8, "GLSLPacked": 9, "CPacked": 10, "BuiltIn": 11, "NoPerspective": 13, "Flat": 14, "Patch": 15, "Centroid": 16, "Sample": 17, "Invariant": 18, "Restrict": 19, "Aliased": 20, "Volatile": 21, "Constant": 22, "Coherent": 23, "NonWritable": 24, "NonReadable": 25, "Uniform": 26, "UniformId": 27, "SaturatedConversion": 28, "Stream": 29, "Location": 30, "Component": 31, "Index": 32, "Binding": 33, "DescriptorSet": 34, "Offset": 35, "XfbBuffer": 36, "XfbStride": 37, "FuncParamAttr": 38, "FPRoundingMode": 39, "FPFastMathMode": 40, "LinkageAttributes": 41, "NoContraction": 42, "InputAttachmentIndex": 43, "Alignment": 44, "MaxByteOffset": 45, "AlignmentId": 46, "MaxByteOffsetId": 47, "NoSignedWrap": 4469, "NoUnsignedWrap": 4470, "WeightTextureQCOM": 4487, "BlockMatchTextureQCOM": 4488, "BlockMatchSamplerQCOM": 4499, "ExplicitInterpAMD": 4999, "NodeSharesPayloadLimitsWithAMDX": 5019, "NodeMaxPayloadsAMDX": 5020, "TrackFinishWritingAMDX": 5078, "PayloadNodeNameAMDX": 5091, "OverrideCoverageNV": 5248, "PassthroughNV": 5250, "ViewportRelativeNV": 5252, "SecondaryViewportRelativeNV": 5256, "PerPrimitiveEXT": 5271, "PerPrimitiveNV": 5271, "PerViewNV": 5272, "PerTaskNV": 5273, "PerVertexKHR": 5285, "PerVertexNV": 5285, "NonUniform": 5300, "NonUniformEXT": 5300, "RestrictPointer": 5355, "RestrictPointerEXT": 5355, "AliasedPointer": 5356, "AliasedPointerEXT": 5356, "HitObjectShaderRecordBufferNV": 5386, "BindlessSamplerNV": 5398, "BindlessImageNV": 5399, "BoundSamplerNV": 5400, "BoundImageNV": 5401, "SIMTCallINTEL": 5599, "ReferencedIndirectlyINTEL": 5602, "ClobberINTEL": 5607, "SideEffectsINTEL": 5608, "VectorComputeVariableINTEL": 5624, "FuncParamIOKindINTEL": 5625, "VectorComputeFunctionINTEL": 5626, "StackCallINTEL": 5627, "GlobalVariableOffsetINTEL": 5628, "CounterBuffer": 5634, "HlslCounterBufferGOOGLE": 5634, "HlslSemanticGOOGLE": 5635, "UserSemantic": 5635, "UserTypeGOOGLE": 5636, "FunctionRoundingModeINTEL": 5822, "FunctionDenormModeINTEL": 5823, "RegisterINTEL": 5825, "MemoryINTEL": 5826, "NumbanksINTEL": 5827, "BankwidthINTEL": 5828, "MaxPrivateCopiesINTEL": 5829, "SinglepumpINTEL": 5830, "DoublepumpINTEL": 5831, "MaxReplicatesINTEL": 5832, "SimpleDualPortINTEL": 5833, "MergeINTEL": 5834, "BankBitsINTEL": 5835, "ForcePow2DepthINTEL": 5836, "StridesizeINTEL": 5883, "WordsizeINTEL": 5884, "TrueDualPortINTEL": 5885, "BurstCoalesceINTEL": 5899, "CacheSizeINTEL": 5900, "DontStaticallyCoalesceINTEL": 5901, "PrefetchINTEL": 5902, "StallEnableINTEL": 5905, "FuseLoopsInFunctionINTEL": 5907, "MathOpDSPModeINTEL": 5909, "AliasScopeINTEL": 5914, "NoAliasINTEL": 5915, "InitiationIntervalINTEL": 5917, "MaxConcurrencyINTEL": 5918, "PipelineEnableINTEL": 5919, "BufferLocationINTEL": 5921, "IOPipeStorageINTEL": 5944, "FunctionFloatingPointModeINTEL": 6080, "SingleElementVectorINTEL": 6085, "VectorComputeCallableFunctionINTEL": 6087, "MediaBlockIOINTEL": 6140, "StallFreeINTEL": 6151, "FPMaxErrorDecorationINTEL": 6170, "LatencyControlLabelINTEL": 6172, "LatencyControlConstraintINTEL": 6173, "ConduitKernelArgumentINTEL": 6175, "RegisterMapKernelArgumentINTEL": 6176, "MMHostInterfaceAddressWidthINTEL": 6177, "MMHostInterfaceDataWidthINTEL": 6178, "MMHostInterfaceLatencyINTEL": 6179, "MMHostInterfaceReadWriteModeINTEL": 6180, "MMHostInterfaceMaxBurstINTEL": 6181, "MMHostInterfaceWaitRequestINTEL": 6182, "StableKernelArgumentINTEL": 6183, "HostAccessINTEL": 6188, "InitModeINTEL": 6190, "ImplementInRegisterMapINTEL": 6191, "CacheControlLoadINTEL": 6442, "CacheControlStoreINTEL": 6443 } }, { "Name": "BuiltIn", "Type": "Value", "Values": { "Position": 0, "PointSize": 1, "ClipDistance": 3, "CullDistance": 4, "VertexId": 5, "InstanceId": 6, "PrimitiveId": 7, "InvocationId": 8, "Layer": 9, "ViewportIndex": 10, "TessLevelOuter": 11, "TessLevelInner": 12, "TessCoord": 13, "PatchVertices": 14, "FragCoord": 15, "PointCoord": 16, "FrontFacing": 17, "SampleId": 18, "SamplePosition": 19, "SampleMask": 20, "FragDepth": 22, "HelperInvocation": 23, "NumWorkgroups": 24, "WorkgroupSize": 25, "WorkgroupId": 26, "LocalInvocationId": 27, "GlobalInvocationId": 28, "LocalInvocationIndex": 29, "WorkDim": 30, "GlobalSize": 31, "EnqueuedWorkgroupSize": 32, "GlobalOffset": 33, "GlobalLinearId": 34, "SubgroupSize": 36, "SubgroupMaxSize": 37, "NumSubgroups": 38, "NumEnqueuedSubgroups": 39, "SubgroupId": 40, "SubgroupLocalInvocationId": 41, "VertexIndex": 42, "InstanceIndex": 43, "CoreIDARM": 4160, "CoreCountARM": 4161, "CoreMaxIDARM": 4162, "WarpIDARM": 4163, "WarpMaxIDARM": 4164, "SubgroupEqMask": 4416, "SubgroupEqMaskKHR": 4416, "SubgroupGeMask": 4417, "SubgroupGeMaskKHR": 4417, "SubgroupGtMask": 4418, "SubgroupGtMaskKHR": 4418, "SubgroupLeMask": 4419, "SubgroupLeMaskKHR": 4419, "SubgroupLtMask": 4420, "SubgroupLtMaskKHR": 4420, "BaseVertex": 4424, "BaseInstance": 4425, "DrawIndex": 4426, "PrimitiveShadingRateKHR": 4432, "DeviceIndex": 4438, "ViewIndex": 4440, "ShadingRateKHR": 4444, "BaryCoordNoPerspAMD": 4992, "BaryCoordNoPerspCentroidAMD": 4993, "BaryCoordNoPerspSampleAMD": 4994, "BaryCoordSmoothAMD": 4995, "BaryCoordSmoothCentroidAMD": 4996, "BaryCoordSmoothSampleAMD": 4997, "BaryCoordPullModelAMD": 4998, "FragStencilRefEXT": 5014, "CoalescedInputCountAMDX": 5021, "ShaderIndexAMDX": 5073, "ViewportMaskNV": 5253, "SecondaryPositionNV": 5257, "SecondaryViewportMaskNV": 5258, "PositionPerViewNV": 5261, "ViewportMaskPerViewNV": 5262, "FullyCoveredEXT": 5264, "TaskCountNV": 5274, "PrimitiveCountNV": 5275, "PrimitiveIndicesNV": 5276, "ClipDistancePerViewNV": 5277, "CullDistancePerViewNV": 5278, "LayerPerViewNV": 5279, "MeshViewCountNV": 5280, "MeshViewIndicesNV": 5281, "BaryCoordKHR": 5286, "BaryCoordNV": 5286, "BaryCoordNoPerspKHR": 5287, "BaryCoordNoPerspNV": 5287, "FragSizeEXT": 5292, "FragmentSizeNV": 5292, "FragInvocationCountEXT": 5293, "InvocationsPerPixelNV": 5293, "PrimitivePointIndicesEXT": 5294, "PrimitiveLineIndicesEXT": 5295, "PrimitiveTriangleIndicesEXT": 5296, "CullPrimitiveEXT": 5299, "LaunchIdKHR": 5319, "LaunchIdNV": 5319, "LaunchSizeKHR": 5320, "LaunchSizeNV": 5320, "WorldRayOriginKHR": 5321, "WorldRayOriginNV": 5321, "WorldRayDirectionKHR": 5322, "WorldRayDirectionNV": 5322, "ObjectRayOriginKHR": 5323, "ObjectRayOriginNV": 5323, "ObjectRayDirectionKHR": 5324, "ObjectRayDirectionNV": 5324, "RayTminKHR": 5325, "RayTminNV": 5325, "RayTmaxKHR": 5326, "RayTmaxNV": 5326, "InstanceCustomIndexKHR": 5327, "InstanceCustomIndexNV": 5327, "ObjectToWorldKHR": 5330, "ObjectToWorldNV": 5330, "WorldToObjectKHR": 5331, "WorldToObjectNV": 5331, "HitTNV": 5332, "HitKindKHR": 5333, "HitKindNV": 5333, "CurrentRayTimeNV": 5334, "HitTriangleVertexPositionsKHR": 5335, "HitMicroTriangleVertexPositionsNV": 5337, "HitMicroTriangleVertexBarycentricsNV": 5344, "IncomingRayFlagsKHR": 5351, "IncomingRayFlagsNV": 5351, "RayGeometryIndexKHR": 5352, "WarpsPerSMNV": 5374, "SMCountNV": 5375, "WarpIDNV": 5376, "SMIDNV": 5377, "HitKindFrontFacingMicroTriangleNV": 5405, "HitKindBackFacingMicroTriangleNV": 5406, "CullMaskKHR": 6021 } }, { "Name": "SelectionControl", "Type": "Bit", "Values": { "Flatten": 0, "DontFlatten": 1 } }, { "Name": "LoopControl", "Type": "Bit", "Values": { "Unroll": 0, "DontUnroll": 1, "DependencyInfinite": 2, "DependencyLength": 3, "MinIterations": 4, "MaxIterations": 5, "IterationMultiple": 6, "PeelCount": 7, "PartialCount": 8, "InitiationIntervalINTEL": 16, "MaxConcurrencyINTEL": 17, "DependencyArrayINTEL": 18, "PipelineEnableINTEL": 19, "LoopCoalesceINTEL": 20, "MaxInterleavingINTEL": 21, "SpeculatedIterationsINTEL": 22, "NoFusionINTEL": 23, "LoopCountINTEL": 24, "MaxReinvocationDelayINTEL": 25 } }, { "Name": "FunctionControl", "Type": "Bit", "Values": { "Inline": 0, "DontInline": 1, "Pure": 2, "Const": 3, "OptNoneINTEL": 16 } }, { "Name": "MemorySemantics", "Type": "Bit", "Values": { "Acquire": 1, "Release": 2, "AcquireRelease": 3, "SequentiallyConsistent": 4, "UniformMemory": 6, "SubgroupMemory": 7, "WorkgroupMemory": 8, "CrossWorkgroupMemory": 9, "AtomicCounterMemory": 10, "ImageMemory": 11, "OutputMemory": 12, "OutputMemoryKHR": 12, "MakeAvailable": 13, "MakeAvailableKHR": 13, "MakeVisible": 14, "MakeVisibleKHR": 14, "Volatile": 15 } }, { "Name": "MemoryAccess", "Type": "Bit", "Values": { "Volatile": 0, "Aligned": 1, "Nontemporal": 2, "MakePointerAvailable": 3, "MakePointerAvailableKHR": 3, "MakePointerVisible": 4, "MakePointerVisibleKHR": 4, "NonPrivatePointer": 5, "NonPrivatePointerKHR": 5, "AliasScopeINTELMask": 16, "NoAliasINTELMask": 17 } }, { "Name": "Scope", "Type": "Value", "Values": { "CrossDevice": 0, "Device": 1, "Workgroup": 2, "Subgroup": 3, "Invocation": 4, "QueueFamily": 5, "QueueFamilyKHR": 5, "ShaderCallKHR": 6 } }, { "Name": "GroupOperation", "Type": "Value", "Values": { "Reduce": 0, "InclusiveScan": 1, "ExclusiveScan": 2, "ClusteredReduce": 3, "PartitionedReduceNV": 6, "PartitionedInclusiveScanNV": 7, "PartitionedExclusiveScanNV": 8 } }, { "Name": "KernelEnqueueFlags", "Type": "Value", "Values": { "NoWait": 0, "WaitKernel": 1, "WaitWorkGroup": 2 } }, { "Name": "KernelProfilingInfo", "Type": "Bit", "Values": { "CmdExecTime": 0 } }, { "Name": "Capability", "Type": "Value", "Values": { "Matrix": 0, "Shader": 1, "Geometry": 2, "Tessellation": 3, "Addresses": 4, "Linkage": 5, "Kernel": 6, "Vector16": 7, "Float16Buffer": 8, "Float16": 9, "Float64": 10, "Int64": 11, "Int64Atomics": 12, "ImageBasic": 13, "ImageReadWrite": 14, "ImageMipmap": 15, "Pipes": 17, "Groups": 18, "DeviceEnqueue": 19, "LiteralSampler": 20, "AtomicStorage": 21, "Int16": 22, "TessellationPointSize": 23, "GeometryPointSize": 24, "ImageGatherExtended": 25, "StorageImageMultisample": 27, "UniformBufferArrayDynamicIndexing": 28, "SampledImageArrayDynamicIndexing": 29, "StorageBufferArrayDynamicIndexing": 30, "StorageImageArrayDynamicIndexing": 31, "ClipDistance": 32, "CullDistance": 33, "ImageCubeArray": 34, "SampleRateShading": 35, "ImageRect": 36, "SampledRect": 37, "GenericPointer": 38, "Int8": 39, "InputAttachment": 40, "SparseResidency": 41, "MinLod": 42, "Sampled1D": 43, "Image1D": 44, "SampledCubeArray": 45, "SampledBuffer": 46, "ImageBuffer": 47, "ImageMSArray": 48, "StorageImageExtendedFormats": 49, "ImageQuery": 50, "DerivativeControl": 51, "InterpolationFunction": 52, "TransformFeedback": 53, "GeometryStreams": 54, "StorageImageReadWithoutFormat": 55, "StorageImageWriteWithoutFormat": 56, "MultiViewport": 57, "SubgroupDispatch": 58, "NamedBarrier": 59, "PipeStorage": 60, "GroupNonUniform": 61, "GroupNonUniformVote": 62, "GroupNonUniformArithmetic": 63, "GroupNonUniformBallot": 64, "GroupNonUniformShuffle": 65, "GroupNonUniformShuffleRelative": 66, "GroupNonUniformClustered": 67, "GroupNonUniformQuad": 68, "ShaderLayer": 69, "ShaderViewportIndex": 70, "UniformDecoration": 71, "CoreBuiltinsARM": 4165, "TileImageColorReadAccessEXT": 4166, "TileImageDepthReadAccessEXT": 4167, "TileImageStencilReadAccessEXT": 4168, "CooperativeMatrixLayoutsARM": 4201, "FragmentShadingRateKHR": 4422, "SubgroupBallotKHR": 4423, "DrawParameters": 4427, "WorkgroupMemoryExplicitLayoutKHR": 4428, "WorkgroupMemoryExplicitLayout8BitAccessKHR": 4429, "WorkgroupMemoryExplicitLayout16BitAccessKHR": 4430, "SubgroupVoteKHR": 4431, "StorageBuffer16BitAccess": 4433, "StorageUniformBufferBlock16": 4433, "StorageUniform16": 4434, "UniformAndStorageBuffer16BitAccess": 4434, "StoragePushConstant16": 4435, "StorageInputOutput16": 4436, "DeviceGroup": 4437, "MultiView": 4439, "VariablePointersStorageBuffer": 4441, "VariablePointers": 4442, "AtomicStorageOps": 4445, "SampleMaskPostDepthCoverage": 4447, "StorageBuffer8BitAccess": 4448, "UniformAndStorageBuffer8BitAccess": 4449, "StoragePushConstant8": 4450, "DenormPreserve": 4464, "DenormFlushToZero": 4465, "SignedZeroInfNanPreserve": 4466, "RoundingModeRTE": 4467, "RoundingModeRTZ": 4468, "RayQueryProvisionalKHR": 4471, "RayQueryKHR": 4472, "RayTraversalPrimitiveCullingKHR": 4478, "RayTracingKHR": 4479, "TextureSampleWeightedQCOM": 4484, "TextureBoxFilterQCOM": 4485, "TextureBlockMatchQCOM": 4486, "TextureBlockMatch2QCOM": 4498, "Float16ImageAMD": 5008, "ImageGatherBiasLodAMD": 5009, "FragmentMaskAMD": 5010, "StencilExportEXT": 5013, "ImageReadWriteLodAMD": 5015, "Int64ImageEXT": 5016, "ShaderClockKHR": 5055, "ShaderEnqueueAMDX": 5067, "QuadControlKHR": 5087, "SampleMaskOverrideCoverageNV": 5249, "GeometryShaderPassthroughNV": 5251, "ShaderViewportIndexLayerEXT": 5254, "ShaderViewportIndexLayerNV": 5254, "ShaderViewportMaskNV": 5255, "ShaderStereoViewNV": 5259, "PerViewAttributesNV": 5260, "FragmentFullyCoveredEXT": 5265, "MeshShadingNV": 5266, "ImageFootprintNV": 5282, "MeshShadingEXT": 5283, "FragmentBarycentricKHR": 5284, "FragmentBarycentricNV": 5284, "ComputeDerivativeGroupQuadsNV": 5288, "FragmentDensityEXT": 5291, "ShadingRateNV": 5291, "GroupNonUniformPartitionedNV": 5297, "ShaderNonUniform": 5301, "ShaderNonUniformEXT": 5301, "RuntimeDescriptorArray": 5302, "RuntimeDescriptorArrayEXT": 5302, "InputAttachmentArrayDynamicIndexing": 5303, "InputAttachmentArrayDynamicIndexingEXT": 5303, "UniformTexelBufferArrayDynamicIndexing": 5304, "UniformTexelBufferArrayDynamicIndexingEXT": 5304, "StorageTexelBufferArrayDynamicIndexing": 5305, "StorageTexelBufferArrayDynamicIndexingEXT": 5305, "UniformBufferArrayNonUniformIndexing": 5306, "UniformBufferArrayNonUniformIndexingEXT": 5306, "SampledImageArrayNonUniformIndexing": 5307, "SampledImageArrayNonUniformIndexingEXT": 5307, "StorageBufferArrayNonUniformIndexing": 5308, "StorageBufferArrayNonUniformIndexingEXT": 5308, "StorageImageArrayNonUniformIndexing": 5309, "StorageImageArrayNonUniformIndexingEXT": 5309, "InputAttachmentArrayNonUniformIndexing": 5310, "InputAttachmentArrayNonUniformIndexingEXT": 5310, "UniformTexelBufferArrayNonUniformIndexing": 5311, "UniformTexelBufferArrayNonUniformIndexingEXT": 5311, "StorageTexelBufferArrayNonUniformIndexing": 5312, "StorageTexelBufferArrayNonUniformIndexingEXT": 5312, "RayTracingPositionFetchKHR": 5336, "RayTracingNV": 5340, "RayTracingMotionBlurNV": 5341, "VulkanMemoryModel": 5345, "VulkanMemoryModelKHR": 5345, "VulkanMemoryModelDeviceScope": 5346, "VulkanMemoryModelDeviceScopeKHR": 5346, "PhysicalStorageBufferAddresses": 5347, "PhysicalStorageBufferAddressesEXT": 5347, "ComputeDerivativeGroupLinearNV": 5350, "RayTracingProvisionalKHR": 5353, "CooperativeMatrixNV": 5357, "FragmentShaderSampleInterlockEXT": 5363, "FragmentShaderShadingRateInterlockEXT": 5372, "ShaderSMBuiltinsNV": 5373, "FragmentShaderPixelInterlockEXT": 5378, "DemoteToHelperInvocation": 5379, "DemoteToHelperInvocationEXT": 5379, "DisplacementMicromapNV": 5380, "RayTracingOpacityMicromapEXT": 5381, "ShaderInvocationReorderNV": 5383, "BindlessTextureNV": 5390, "RayQueryPositionFetchKHR": 5391, "AtomicFloat16VectorNV": 5404, "RayTracingDisplacementMicromapNV": 5409, "RawAccessChainsNV": 5414, "SubgroupShuffleINTEL": 5568, "SubgroupBufferBlockIOINTEL": 5569, "SubgroupImageBlockIOINTEL": 5570, "SubgroupImageMediaBlockIOINTEL": 5579, "RoundToInfinityINTEL": 5582, "FloatingPointModeINTEL": 5583, "IntegerFunctions2INTEL": 5584, "FunctionPointersINTEL": 5603, "IndirectReferencesINTEL": 5604, "AsmINTEL": 5606, "AtomicFloat32MinMaxEXT": 5612, "AtomicFloat64MinMaxEXT": 5613, "AtomicFloat16MinMaxEXT": 5616, "VectorComputeINTEL": 5617, "VectorAnyINTEL": 5619, "ExpectAssumeKHR": 5629, "SubgroupAvcMotionEstimationINTEL": 5696, "SubgroupAvcMotionEstimationIntraINTEL": 5697, "SubgroupAvcMotionEstimationChromaINTEL": 5698, "VariableLengthArrayINTEL": 5817, "FunctionFloatControlINTEL": 5821, "FPGAMemoryAttributesINTEL": 5824, "FPFastMathModeINTEL": 5837, "ArbitraryPrecisionIntegersINTEL": 5844, "ArbitraryPrecisionFloatingPointINTEL": 5845, "UnstructuredLoopControlsINTEL": 5886, "FPGALoopControlsINTEL": 5888, "KernelAttributesINTEL": 5892, "FPGAKernelAttributesINTEL": 5897, "FPGAMemoryAccessesINTEL": 5898, "FPGAClusterAttributesINTEL": 5904, "LoopFuseINTEL": 5906, "FPGADSPControlINTEL": 5908, "MemoryAccessAliasingINTEL": 5910, "FPGAInvocationPipeliningAttributesINTEL": 5916, "FPGABufferLocationINTEL": 5920, "ArbitraryPrecisionFixedPointINTEL": 5922, "USMStorageClassesINTEL": 5935, "RuntimeAlignedAttributeINTEL": 5939, "IOPipesINTEL": 5943, "BlockingPipesINTEL": 5945, "FPGARegINTEL": 5948, "DotProductInputAll": 6016, "DotProductInputAllKHR": 6016, "DotProductInput4x8Bit": 6017, "DotProductInput4x8BitKHR": 6017, "DotProductInput4x8BitPacked": 6018, "DotProductInput4x8BitPackedKHR": 6018, "DotProduct": 6019, "DotProductKHR": 6019, "RayCullMaskKHR": 6020, "CooperativeMatrixKHR": 6022, "ReplicatedCompositesEXT": 6024, "BitInstructions": 6025, "GroupNonUniformRotateKHR": 6026, "FloatControls2": 6029, "AtomicFloat32AddEXT": 6033, "AtomicFloat64AddEXT": 6034, "LongCompositesINTEL": 6089, "OptNoneINTEL": 6094, "AtomicFloat16AddEXT": 6095, "DebugInfoModuleINTEL": 6114, "BFloat16ConversionINTEL": 6115, "SplitBarrierINTEL": 6141, "FPGAClusterAttributesV2INTEL": 6150, "FPGAKernelAttributesv2INTEL": 6161, "FPMaxErrorINTEL": 6169, "FPGALatencyControlINTEL": 6171, "FPGAArgumentInterfacesINTEL": 6174, "GlobalVariableHostAccessINTEL": 6187, "GlobalVariableFPGADecorationsINTEL": 6189, "GroupUniformArithmeticKHR": 6400, "MaskedGatherScatterINTEL": 6427, "CacheControlsINTEL": 6441, "RegisterLimitsINTEL": 6460 } }, { "Name": "RayFlags", "Type": "Bit", "Values": { "OpaqueKHR": 0, "NoOpaqueKHR": 1, "TerminateOnFirstHitKHR": 2, "SkipClosestHitShaderKHR": 3, "CullBackFacingTrianglesKHR": 4, "CullFrontFacingTrianglesKHR": 5, "CullOpaqueKHR": 6, "CullNoOpaqueKHR": 7, "SkipTrianglesKHR": 8, "SkipAABBsKHR": 9, "ForceOpacityMicromap2StateEXT": 10 } }, { "Name": "RayQueryIntersection", "Type": "Value", "Values": { "RayQueryCandidateIntersectionKHR": 0, "RayQueryCommittedIntersectionKHR": 1 } }, { "Name": "RayQueryCommittedIntersectionType", "Type": "Value", "Values": { "RayQueryCommittedIntersectionNoneKHR": 0, "RayQueryCommittedIntersectionTriangleKHR": 1, "RayQueryCommittedIntersectionGeneratedKHR": 2 } }, { "Name": "RayQueryCandidateIntersectionType", "Type": "Value", "Values": { "RayQueryCandidateIntersectionTriangleKHR": 0, "RayQueryCandidateIntersectionAABBKHR": 1 } }, { "Name": "FragmentShadingRate", "Type": "Bit", "Values": { "Vertical2Pixels": 0, "Vertical4Pixels": 1, "Horizontal2Pixels": 2, "Horizontal4Pixels": 3 } }, { "Name": "FPDenormMode", "Type": "Value", "Values": { "Preserve": 0, "FlushToZero": 1 } }, { "Name": "FPOperationMode", "Type": "Value", "Values": { "IEEE": 0, "ALT": 1 } }, { "Name": "QuantizationModes", "Type": "Value", "Values": { "TRN": 0, "TRN_ZERO": 1, "RND": 2, "RND_ZERO": 3, "RND_INF": 4, "RND_MIN_INF": 5, "RND_CONV": 6, "RND_CONV_ODD": 7 } }, { "Name": "OverflowModes", "Type": "Value", "Values": { "WRAP": 0, "SAT": 1, "SAT_ZERO": 2, "SAT_SYM": 3 } }, { "Name": "PackedVectorFormat", "Type": "Value", "Values": { "PackedVectorFormat4x8Bit": 0, "PackedVectorFormat4x8BitKHR": 0 } }, { "Name": "CooperativeMatrixOperands", "Type": "Bit", "Values": { "MatrixASignedComponentsKHR": 0, "MatrixBSignedComponentsKHR": 1, "MatrixCSignedComponentsKHR": 2, "MatrixResultSignedComponentsKHR": 3, "SaturatingAccumulationKHR": 4 } }, { "Name": "CooperativeMatrixLayout", "Type": "Value", "Values": { "RowMajorKHR": 0, "ColumnMajorKHR": 1, "RowBlockedInterleavedARM": 4202, "ColumnBlockedInterleavedARM": 4203 } }, { "Name": "CooperativeMatrixUse", "Type": "Value", "Values": { "MatrixAKHR": 0, "MatrixBKHR": 1, "MatrixAccumulatorKHR": 2 } }, { "Name": "InitializationModeQualifier", "Type": "Value", "Values": { "InitOnDeviceReprogramINTEL": 0, "InitOnDeviceResetINTEL": 1 } }, { "Name": "HostAccessQualifier", "Type": "Value", "Values": { "NoneINTEL": 0, "ReadINTEL": 1, "WriteINTEL": 2, "ReadWriteINTEL": 3 } }, { "Name": "LoadCacheControl", "Type": "Value", "Values": { "UncachedINTEL": 0, "CachedINTEL": 1, "StreamingINTEL": 2, "InvalidateAfterReadINTEL": 3, "ConstCachedINTEL": 4 } }, { "Name": "StoreCacheControl", "Type": "Value", "Values": { "UncachedINTEL": 0, "WriteThroughINTEL": 1, "WriteBackINTEL": 2, "StreamingINTEL": 3 } }, { "Name": "NamedMaximumNumberOfRegisters", "Type": "Value", "Values": { "AutoINTEL": 0 } }, { "Name": "RawAccessChainOperands", "Type": "Bit", "Values": { "RobustnessPerComponentNV": 0, "RobustnessPerElementNV": 1 } }, { "Name": "Op", "Type": "Value", "Values": { "OpNop": 0, "OpUndef": 1, "OpSourceContinued": 2, "OpSource": 3, "OpSourceExtension": 4, "OpName": 5, "OpMemberName": 6, "OpString": 7, "OpLine": 8, "OpExtension": 10, "OpExtInstImport": 11, "OpExtInst": 12, "OpMemoryModel": 14, "OpEntryPoint": 15, "OpExecutionMode": 16, "OpCapability": 17, "OpTypeVoid": 19, "OpTypeBool": 20, "OpTypeInt": 21, "OpTypeFloat": 22, "OpTypeVector": 23, "OpTypeMatrix": 24, "OpTypeImage": 25, "OpTypeSampler": 26, "OpTypeSampledImage": 27, "OpTypeArray": 28, "OpTypeRuntimeArray": 29, "OpTypeStruct": 30, "OpTypeOpaque": 31, "OpTypePointer": 32, "OpTypeFunction": 33, "OpTypeEvent": 34, "OpTypeDeviceEvent": 35, "OpTypeReserveId": 36, "OpTypeQueue": 37, "OpTypePipe": 38, "OpTypeForwardPointer": 39, "OpConstantTrue": 41, "OpConstantFalse": 42, "OpConstant": 43, "OpConstantComposite": 44, "OpConstantSampler": 45, "OpConstantNull": 46, "OpSpecConstantTrue": 48, "OpSpecConstantFalse": 49, "OpSpecConstant": 50, "OpSpecConstantComposite": 51, "OpSpecConstantOp": 52, "OpFunction": 54, "OpFunctionParameter": 55, "OpFunctionEnd": 56, "OpFunctionCall": 57, "OpVariable": 59, "OpImageTexelPointer": 60, "OpLoad": 61, "OpStore": 62, "OpCopyMemory": 63, "OpCopyMemorySized": 64, "OpAccessChain": 65, "OpInBoundsAccessChain": 66, "OpPtrAccessChain": 67, "OpArrayLength": 68, "OpGenericPtrMemSemantics": 69, "OpInBoundsPtrAccessChain": 70, "OpDecorate": 71, "OpMemberDecorate": 72, "OpDecorationGroup": 73, "OpGroupDecorate": 74, "OpGroupMemberDecorate": 75, "OpVectorExtractDynamic": 77, "OpVectorInsertDynamic": 78, "OpVectorShuffle": 79, "OpCompositeConstruct": 80, "OpCompositeExtract": 81, "OpCompositeInsert": 82, "OpCopyObject": 83, "OpTranspose": 84, "OpSampledImage": 86, "OpImageSampleImplicitLod": 87, "OpImageSampleExplicitLod": 88, "OpImageSampleDrefImplicitLod": 89, "OpImageSampleDrefExplicitLod": 90, "OpImageSampleProjImplicitLod": 91, "OpImageSampleProjExplicitLod": 92, "OpImageSampleProjDrefImplicitLod": 93, "OpImageSampleProjDrefExplicitLod": 94, "OpImageFetch": 95, "OpImageGather": 96, "OpImageDrefGather": 97, "OpImageRead": 98, "OpImageWrite": 99, "OpImage": 100, "OpImageQueryFormat": 101, "OpImageQueryOrder": 102, "OpImageQuerySizeLod": 103, "OpImageQuerySize": 104, "OpImageQueryLod": 105, "OpImageQueryLevels": 106, "OpImageQuerySamples": 107, "OpConvertFToU": 109, "OpConvertFToS": 110, "OpConvertSToF": 111, "OpConvertUToF": 112, "OpUConvert": 113, "OpSConvert": 114, "OpFConvert": 115, "OpQuantizeToF16": 116, "OpConvertPtrToU": 117, "OpSatConvertSToU": 118, "OpSatConvertUToS": 119, "OpConvertUToPtr": 120, "OpPtrCastToGeneric": 121, "OpGenericCastToPtr": 122, "OpGenericCastToPtrExplicit": 123, "OpBitcast": 124, "OpSNegate": 126, "OpFNegate": 127, "OpIAdd": 128, "OpFAdd": 129, "OpISub": 130, "OpFSub": 131, "OpIMul": 132, "OpFMul": 133, "OpUDiv": 134, "OpSDiv": 135, "OpFDiv": 136, "OpUMod": 137, "OpSRem": 138, "OpSMod": 139, "OpFRem": 140, "OpFMod": 141, "OpVectorTimesScalar": 142, "OpMatrixTimesScalar": 143, "OpVectorTimesMatrix": 144, "OpMatrixTimesVector": 145, "OpMatrixTimesMatrix": 146, "OpOuterProduct": 147, "OpDot": 148, "OpIAddCarry": 149, "OpISubBorrow": 150, "OpUMulExtended": 151, "OpSMulExtended": 152, "OpAny": 154, "OpAll": 155, "OpIsNan": 156, "OpIsInf": 157, "OpIsFinite": 158, "OpIsNormal": 159, "OpSignBitSet": 160, "OpLessOrGreater": 161, "OpOrdered": 162, "OpUnordered": 163, "OpLogicalEqual": 164, "OpLogicalNotEqual": 165, "OpLogicalOr": 166, "OpLogicalAnd": 167, "OpLogicalNot": 168, "OpSelect": 169, "OpIEqual": 170, "OpINotEqual": 171, "OpUGreaterThan": 172, "OpSGreaterThan": 173, "OpUGreaterThanEqual": 174, "OpSGreaterThanEqual": 175, "OpULessThan": 176, "OpSLessThan": 177, "OpULessThanEqual": 178, "OpSLessThanEqual": 179, "OpFOrdEqual": 180, "OpFUnordEqual": 181, "OpFOrdNotEqual": 182, "OpFUnordNotEqual": 183, "OpFOrdLessThan": 184, "OpFUnordLessThan": 185, "OpFOrdGreaterThan": 186, "OpFUnordGreaterThan": 187, "OpFOrdLessThanEqual": 188, "OpFUnordLessThanEqual": 189, "OpFOrdGreaterThanEqual": 190, "OpFUnordGreaterThanEqual": 191, "OpShiftRightLogical": 194, "OpShiftRightArithmetic": 195, "OpShiftLeftLogical": 196, "OpBitwiseOr": 197, "OpBitwiseXor": 198, "OpBitwiseAnd": 199, "OpNot": 200, "OpBitFieldInsert": 201, "OpBitFieldSExtract": 202, "OpBitFieldUExtract": 203, "OpBitReverse": 204, "OpBitCount": 205, "OpDPdx": 207, "OpDPdy": 208, "OpFwidth": 209, "OpDPdxFine": 210, "OpDPdyFine": 211, "OpFwidthFine": 212, "OpDPdxCoarse": 213, "OpDPdyCoarse": 214, "OpFwidthCoarse": 215, "OpEmitVertex": 218, "OpEndPrimitive": 219, "OpEmitStreamVertex": 220, "OpEndStreamPrimitive": 221, "OpControlBarrier": 224, "OpMemoryBarrier": 225, "OpAtomicLoad": 227, "OpAtomicStore": 228, "OpAtomicExchange": 229, "OpAtomicCompareExchange": 230, "OpAtomicCompareExchangeWeak": 231, "OpAtomicIIncrement": 232, "OpAtomicIDecrement": 233, "OpAtomicIAdd": 234, "OpAtomicISub": 235, "OpAtomicSMin": 236, "OpAtomicUMin": 237, "OpAtomicSMax": 238, "OpAtomicUMax": 239, "OpAtomicAnd": 240, "OpAtomicOr": 241, "OpAtomicXor": 242, "OpPhi": 245, "OpLoopMerge": 246, "OpSelectionMerge": 247, "OpLabel": 248, "OpBranch": 249, "OpBranchConditional": 250, "OpSwitch": 251, "OpKill": 252, "OpReturn": 253, "OpReturnValue": 254, "OpUnreachable": 255, "OpLifetimeStart": 256, "OpLifetimeStop": 257, "OpGroupAsyncCopy": 259, "OpGroupWaitEvents": 260, "OpGroupAll": 261, "OpGroupAny": 262, "OpGroupBroadcast": 263, "OpGroupIAdd": 264, "OpGroupFAdd": 265, "OpGroupFMin": 266, "OpGroupUMin": 267, "OpGroupSMin": 268, "OpGroupFMax": 269, "OpGroupUMax": 270, "OpGroupSMax": 271, "OpReadPipe": 274, "OpWritePipe": 275, "OpReservedReadPipe": 276, "OpReservedWritePipe": 277, "OpReserveReadPipePackets": 278, "OpReserveWritePipePackets": 279, "OpCommitReadPipe": 280, "OpCommitWritePipe": 281, "OpIsValidReserveId": 282, "OpGetNumPipePackets": 283, "OpGetMaxPipePackets": 284, "OpGroupReserveReadPipePackets": 285, "OpGroupReserveWritePipePackets": 286, "OpGroupCommitReadPipe": 287, "OpGroupCommitWritePipe": 288, "OpEnqueueMarker": 291, "OpEnqueueKernel": 292, "OpGetKernelNDrangeSubGroupCount": 293, "OpGetKernelNDrangeMaxSubGroupSize": 294, "OpGetKernelWorkGroupSize": 295, "OpGetKernelPreferredWorkGroupSizeMultiple": 296, "OpRetainEvent": 297, "OpReleaseEvent": 298, "OpCreateUserEvent": 299, "OpIsValidEvent": 300, "OpSetUserEventStatus": 301, "OpCaptureEventProfilingInfo": 302, "OpGetDefaultQueue": 303, "OpBuildNDRange": 304, "OpImageSparseSampleImplicitLod": 305, "OpImageSparseSampleExplicitLod": 306, "OpImageSparseSampleDrefImplicitLod": 307, "OpImageSparseSampleDrefExplicitLod": 308, "OpImageSparseSampleProjImplicitLod": 309, "OpImageSparseSampleProjExplicitLod": 310, "OpImageSparseSampleProjDrefImplicitLod": 311, "OpImageSparseSampleProjDrefExplicitLod": 312, "OpImageSparseFetch": 313, "OpImageSparseGather": 314, "OpImageSparseDrefGather": 315, "OpImageSparseTexelsResident": 316, "OpNoLine": 317, "OpAtomicFlagTestAndSet": 318, "OpAtomicFlagClear": 319, "OpImageSparseRead": 320, "OpSizeOf": 321, "OpTypePipeStorage": 322, "OpConstantPipeStorage": 323, "OpCreatePipeFromPipeStorage": 324, "OpGetKernelLocalSizeForSubgroupCount": 325, "OpGetKernelMaxNumSubgroups": 326, "OpTypeNamedBarrier": 327, "OpNamedBarrierInitialize": 328, "OpMemoryNamedBarrier": 329, "OpModuleProcessed": 330, "OpExecutionModeId": 331, "OpDecorateId": 332, "OpGroupNonUniformElect": 333, "OpGroupNonUniformAll": 334, "OpGroupNonUniformAny": 335, "OpGroupNonUniformAllEqual": 336, "OpGroupNonUniformBroadcast": 337, "OpGroupNonUniformBroadcastFirst": 338, "OpGroupNonUniformBallot": 339, "OpGroupNonUniformInverseBallot": 340, "OpGroupNonUniformBallotBitExtract": 341, "OpGroupNonUniformBallotBitCount": 342, "OpGroupNonUniformBallotFindLSB": 343, "OpGroupNonUniformBallotFindMSB": 344, "OpGroupNonUniformShuffle": 345, "OpGroupNonUniformShuffleXor": 346, "OpGroupNonUniformShuffleUp": 347, "OpGroupNonUniformShuffleDown": 348, "OpGroupNonUniformIAdd": 349, "OpGroupNonUniformFAdd": 350, "OpGroupNonUniformIMul": 351, "OpGroupNonUniformFMul": 352, "OpGroupNonUniformSMin": 353, "OpGroupNonUniformUMin": 354, "OpGroupNonUniformFMin": 355, "OpGroupNonUniformSMax": 356, "OpGroupNonUniformUMax": 357, "OpGroupNonUniformFMax": 358, "OpGroupNonUniformBitwiseAnd": 359, "OpGroupNonUniformBitwiseOr": 360, "OpGroupNonUniformBitwiseXor": 361, "OpGroupNonUniformLogicalAnd": 362, "OpGroupNonUniformLogicalOr": 363, "OpGroupNonUniformLogicalXor": 364, "OpGroupNonUniformQuadBroadcast": 365, "OpGroupNonUniformQuadSwap": 366, "OpCopyLogical": 400, "OpPtrEqual": 401, "OpPtrNotEqual": 402, "OpPtrDiff": 403, "OpColorAttachmentReadEXT": 4160, "OpDepthAttachmentReadEXT": 4161, "OpStencilAttachmentReadEXT": 4162, "OpTerminateInvocation": 4416, "OpSubgroupBallotKHR": 4421, "OpSubgroupFirstInvocationKHR": 4422, "OpSubgroupAllKHR": 4428, "OpSubgroupAnyKHR": 4429, "OpSubgroupAllEqualKHR": 4430, "OpGroupNonUniformRotateKHR": 4431, "OpSubgroupReadInvocationKHR": 4432, "OpExtInstWithForwardRefsKHR": 4433, "OpTraceRayKHR": 4445, "OpExecuteCallableKHR": 4446, "OpConvertUToAccelerationStructureKHR": 4447, "OpIgnoreIntersectionKHR": 4448, "OpTerminateRayKHR": 4449, "OpSDot": 4450, "OpSDotKHR": 4450, "OpUDot": 4451, "OpUDotKHR": 4451, "OpSUDot": 4452, "OpSUDotKHR": 4452, "OpSDotAccSat": 4453, "OpSDotAccSatKHR": 4453, "OpUDotAccSat": 4454, "OpUDotAccSatKHR": 4454, "OpSUDotAccSat": 4455, "OpSUDotAccSatKHR": 4455, "OpTypeCooperativeMatrixKHR": 4456, "OpCooperativeMatrixLoadKHR": 4457, "OpCooperativeMatrixStoreKHR": 4458, "OpCooperativeMatrixMulAddKHR": 4459, "OpCooperativeMatrixLengthKHR": 4460, "OpConstantCompositeReplicateEXT": 4461, "OpSpecConstantCompositeReplicateEXT": 4462, "OpCompositeConstructReplicateEXT": 4463, "OpTypeRayQueryKHR": 4472, "OpRayQueryInitializeKHR": 4473, "OpRayQueryTerminateKHR": 4474, "OpRayQueryGenerateIntersectionKHR": 4475, "OpRayQueryConfirmIntersectionKHR": 4476, "OpRayQueryProceedKHR": 4477, "OpRayQueryGetIntersectionTypeKHR": 4479, "OpImageSampleWeightedQCOM": 4480, "OpImageBoxFilterQCOM": 4481, "OpImageBlockMatchSSDQCOM": 4482, "OpImageBlockMatchSADQCOM": 4483, "OpImageBlockMatchWindowSSDQCOM": 4500, "OpImageBlockMatchWindowSADQCOM": 4501, "OpImageBlockMatchGatherSSDQCOM": 4502, "OpImageBlockMatchGatherSADQCOM": 4503, "OpGroupIAddNonUniformAMD": 5000, "OpGroupFAddNonUniformAMD": 5001, "OpGroupFMinNonUniformAMD": 5002, "OpGroupUMinNonUniformAMD": 5003, "OpGroupSMinNonUniformAMD": 5004, "OpGroupFMaxNonUniformAMD": 5005, "OpGroupUMaxNonUniformAMD": 5006, "OpGroupSMaxNonUniformAMD": 5007, "OpFragmentMaskFetchAMD": 5011, "OpFragmentFetchAMD": 5012, "OpReadClockKHR": 5056, "OpFinalizeNodePayloadsAMDX": 5075, "OpFinishWritingNodePayloadAMDX": 5078, "OpInitializeNodePayloadsAMDX": 5090, "OpGroupNonUniformQuadAllKHR": 5110, "OpGroupNonUniformQuadAnyKHR": 5111, "OpHitObjectRecordHitMotionNV": 5249, "OpHitObjectRecordHitWithIndexMotionNV": 5250, "OpHitObjectRecordMissMotionNV": 5251, "OpHitObjectGetWorldToObjectNV": 5252, "OpHitObjectGetObjectToWorldNV": 5253, "OpHitObjectGetObjectRayDirectionNV": 5254, "OpHitObjectGetObjectRayOriginNV": 5255, "OpHitObjectTraceRayMotionNV": 5256, "OpHitObjectGetShaderRecordBufferHandleNV": 5257, "OpHitObjectGetShaderBindingTableRecordIndexNV": 5258, "OpHitObjectRecordEmptyNV": 5259, "OpHitObjectTraceRayNV": 5260, "OpHitObjectRecordHitNV": 5261, "OpHitObjectRecordHitWithIndexNV": 5262, "OpHitObjectRecordMissNV": 5263, "OpHitObjectExecuteShaderNV": 5264, "OpHitObjectGetCurrentTimeNV": 5265, "OpHitObjectGetAttributesNV": 5266, "OpHitObjectGetHitKindNV": 5267, "OpHitObjectGetPrimitiveIndexNV": 5268, "OpHitObjectGetGeometryIndexNV": 5269, "OpHitObjectGetInstanceIdNV": 5270, "OpHitObjectGetInstanceCustomIndexNV": 5271, "OpHitObjectGetWorldRayDirectionNV": 5272, "OpHitObjectGetWorldRayOriginNV": 5273, "OpHitObjectGetRayTMaxNV": 5274, "OpHitObjectGetRayTMinNV": 5275, "OpHitObjectIsEmptyNV": 5276, "OpHitObjectIsHitNV": 5277, "OpHitObjectIsMissNV": 5278, "OpReorderThreadWithHitObjectNV": 5279, "OpReorderThreadWithHintNV": 5280, "OpTypeHitObjectNV": 5281, "OpImageSampleFootprintNV": 5283, "OpEmitMeshTasksEXT": 5294, "OpSetMeshOutputsEXT": 5295, "OpGroupNonUniformPartitionNV": 5296, "OpWritePackedPrimitiveIndices4x8NV": 5299, "OpFetchMicroTriangleVertexPositionNV": 5300, "OpFetchMicroTriangleVertexBarycentricNV": 5301, "OpReportIntersectionKHR": 5334, "OpReportIntersectionNV": 5334, "OpIgnoreIntersectionNV": 5335, "OpTerminateRayNV": 5336, "OpTraceNV": 5337, "OpTraceMotionNV": 5338, "OpTraceRayMotionNV": 5339, "OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340, "OpTypeAccelerationStructureKHR": 5341, "OpTypeAccelerationStructureNV": 5341, "OpExecuteCallableNV": 5344, "OpTypeCooperativeMatrixNV": 5358, "OpCooperativeMatrixLoadNV": 5359, "OpCooperativeMatrixStoreNV": 5360, "OpCooperativeMatrixMulAddNV": 5361, "OpCooperativeMatrixLengthNV": 5362, "OpBeginInvocationInterlockEXT": 5364, "OpEndInvocationInterlockEXT": 5365, "OpDemoteToHelperInvocation": 5380, "OpDemoteToHelperInvocationEXT": 5380, "OpIsHelperInvocationEXT": 5381, "OpConvertUToImageNV": 5391, "OpConvertUToSamplerNV": 5392, "OpConvertImageToUNV": 5393, "OpConvertSamplerToUNV": 5394, "OpConvertUToSampledImageNV": 5395, "OpConvertSampledImageToUNV": 5396, "OpSamplerImageAddressingModeNV": 5397, "OpRawAccessChainNV": 5398, "OpSubgroupShuffleINTEL": 5571, "OpSubgroupShuffleDownINTEL": 5572, "OpSubgroupShuffleUpINTEL": 5573, "OpSubgroupShuffleXorINTEL": 5574, "OpSubgroupBlockReadINTEL": 5575, "OpSubgroupBlockWriteINTEL": 5576, "OpSubgroupImageBlockReadINTEL": 5577, "OpSubgroupImageBlockWriteINTEL": 5578, "OpSubgroupImageMediaBlockReadINTEL": 5580, "OpSubgroupImageMediaBlockWriteINTEL": 5581, "OpUCountLeadingZerosINTEL": 5585, "OpUCountTrailingZerosINTEL": 5586, "OpAbsISubINTEL": 5587, "OpAbsUSubINTEL": 5588, "OpIAddSatINTEL": 5589, "OpUAddSatINTEL": 5590, "OpIAverageINTEL": 5591, "OpUAverageINTEL": 5592, "OpIAverageRoundedINTEL": 5593, "OpUAverageRoundedINTEL": 5594, "OpISubSatINTEL": 5595, "OpUSubSatINTEL": 5596, "OpIMul32x16INTEL": 5597, "OpUMul32x16INTEL": 5598, "OpConstantFunctionPointerINTEL": 5600, "OpFunctionPointerCallINTEL": 5601, "OpAsmTargetINTEL": 5609, "OpAsmINTEL": 5610, "OpAsmCallINTEL": 5611, "OpAtomicFMinEXT": 5614, "OpAtomicFMaxEXT": 5615, "OpAssumeTrueKHR": 5630, "OpExpectKHR": 5631, "OpDecorateString": 5632, "OpDecorateStringGOOGLE": 5632, "OpMemberDecorateString": 5633, "OpMemberDecorateStringGOOGLE": 5633, "OpVmeImageINTEL": 5699, "OpTypeVmeImageINTEL": 5700, "OpTypeAvcImePayloadINTEL": 5701, "OpTypeAvcRefPayloadINTEL": 5702, "OpTypeAvcSicPayloadINTEL": 5703, "OpTypeAvcMcePayloadINTEL": 5704, "OpTypeAvcMceResultINTEL": 5705, "OpTypeAvcImeResultINTEL": 5706, "OpTypeAvcImeResultSingleReferenceStreamoutINTEL": 5707, "OpTypeAvcImeResultDualReferenceStreamoutINTEL": 5708, "OpTypeAvcImeSingleReferenceStreaminINTEL": 5709, "OpTypeAvcImeDualReferenceStreaminINTEL": 5710, "OpTypeAvcRefResultINTEL": 5711, "OpTypeAvcSicResultINTEL": 5712, "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL": 5713, "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL": 5714, "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL": 5715, "OpSubgroupAvcMceSetInterShapePenaltyINTEL": 5716, "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL": 5717, "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL": 5718, "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL": 5719, "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL": 5720, "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL": 5721, "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL": 5722, "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL": 5723, "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL": 5724, "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL": 5725, "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL": 5726, "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL": 5727, "OpSubgroupAvcMceSetAcOnlyHaarINTEL": 5728, "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL": 5729, "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL": 5730, "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL": 5731, "OpSubgroupAvcMceConvertToImePayloadINTEL": 5732, "OpSubgroupAvcMceConvertToImeResultINTEL": 5733, "OpSubgroupAvcMceConvertToRefPayloadINTEL": 5734, "OpSubgroupAvcMceConvertToRefResultINTEL": 5735, "OpSubgroupAvcMceConvertToSicPayloadINTEL": 5736, "OpSubgroupAvcMceConvertToSicResultINTEL": 5737, "OpSubgroupAvcMceGetMotionVectorsINTEL": 5738, "OpSubgroupAvcMceGetInterDistortionsINTEL": 5739, "OpSubgroupAvcMceGetBestInterDistortionsINTEL": 5740, "OpSubgroupAvcMceGetInterMajorShapeINTEL": 5741, "OpSubgroupAvcMceGetInterMinorShapeINTEL": 5742, "OpSubgroupAvcMceGetInterDirectionsINTEL": 5743, "OpSubgroupAvcMceGetInterMotionVectorCountINTEL": 5744, "OpSubgroupAvcMceGetInterReferenceIdsINTEL": 5745, "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL": 5746, "OpSubgroupAvcImeInitializeINTEL": 5747, "OpSubgroupAvcImeSetSingleReferenceINTEL": 5748, "OpSubgroupAvcImeSetDualReferenceINTEL": 5749, "OpSubgroupAvcImeRefWindowSizeINTEL": 5750, "OpSubgroupAvcImeAdjustRefOffsetINTEL": 5751, "OpSubgroupAvcImeConvertToMcePayloadINTEL": 5752, "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL": 5753, "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL": 5754, "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL": 5755, "OpSubgroupAvcImeSetWeightedSadINTEL": 5756, "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL": 5757, "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL": 5758, "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL": 5759, "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL": 5760, "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL": 5761, "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL": 5762, "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL": 5763, "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL": 5764, "OpSubgroupAvcImeConvertToMceResultINTEL": 5765, "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL": 5766, "OpSubgroupAvcImeGetDualReferenceStreaminINTEL": 5767, "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL": 5768, "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL": 5769, "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL": 5770, "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL": 5771, "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL": 5772, "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL": 5773, "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL": 5774, "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL": 5775, "OpSubgroupAvcImeGetBorderReachedINTEL": 5776, "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL": 5777, "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL": 5778, "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL": 5779, "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL": 5780, "OpSubgroupAvcFmeInitializeINTEL": 5781, "OpSubgroupAvcBmeInitializeINTEL": 5782, "OpSubgroupAvcRefConvertToMcePayloadINTEL": 5783, "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL": 5784, "OpSubgroupAvcRefSetBilinearFilterEnableINTEL": 5785, "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL": 5786, "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL": 5787, "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL": 5788, "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL": 5789, "OpSubgroupAvcRefConvertToMceResultINTEL": 5790, "OpSubgroupAvcSicInitializeINTEL": 5791, "OpSubgroupAvcSicConfigureSkcINTEL": 5792, "OpSubgroupAvcSicConfigureIpeLumaINTEL": 5793, "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL": 5794, "OpSubgroupAvcSicGetMotionVectorMaskINTEL": 5795, "OpSubgroupAvcSicConvertToMcePayloadINTEL": 5796, "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL": 5797, "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL": 5798, "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL": 5799, "OpSubgroupAvcSicSetBilinearFilterEnableINTEL": 5800, "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL": 5801, "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL": 5802, "OpSubgroupAvcSicEvaluateIpeINTEL": 5803, "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL": 5804, "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL": 5805, "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL": 5806, "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL": 5807, "OpSubgroupAvcSicConvertToMceResultINTEL": 5808, "OpSubgroupAvcSicGetIpeLumaShapeINTEL": 5809, "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL": 5810, "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL": 5811, "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL": 5812, "OpSubgroupAvcSicGetIpeChromaModeINTEL": 5813, "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL": 5814, "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL": 5815, "OpSubgroupAvcSicGetInterRawSadsINTEL": 5816, "OpVariableLengthArrayINTEL": 5818, "OpSaveMemoryINTEL": 5819, "OpRestoreMemoryINTEL": 5820, "OpArbitraryFloatSinCosPiINTEL": 5840, "OpArbitraryFloatCastINTEL": 5841, "OpArbitraryFloatCastFromIntINTEL": 5842, "OpArbitraryFloatCastToIntINTEL": 5843, "OpArbitraryFloatAddINTEL": 5846, "OpArbitraryFloatSubINTEL": 5847, "OpArbitraryFloatMulINTEL": 5848, "OpArbitraryFloatDivINTEL": 5849, "OpArbitraryFloatGTINTEL": 5850, "OpArbitraryFloatGEINTEL": 5851, "OpArbitraryFloatLTINTEL": 5852, "OpArbitraryFloatLEINTEL": 5853, "OpArbitraryFloatEQINTEL": 5854, "OpArbitraryFloatRecipINTEL": 5855, "OpArbitraryFloatRSqrtINTEL": 5856, "OpArbitraryFloatCbrtINTEL": 5857, "OpArbitraryFloatHypotINTEL": 5858, "OpArbitraryFloatSqrtINTEL": 5859, "OpArbitraryFloatLogINTEL": 5860, "OpArbitraryFloatLog2INTEL": 5861, "OpArbitraryFloatLog10INTEL": 5862, "OpArbitraryFloatLog1pINTEL": 5863, "OpArbitraryFloatExpINTEL": 5864, "OpArbitraryFloatExp2INTEL": 5865, "OpArbitraryFloatExp10INTEL": 5866, "OpArbitraryFloatExpm1INTEL": 5867, "OpArbitraryFloatSinINTEL": 5868, "OpArbitraryFloatCosINTEL": 5869, "OpArbitraryFloatSinCosINTEL": 5870, "OpArbitraryFloatSinPiINTEL": 5871, "OpArbitraryFloatCosPiINTEL": 5872, "OpArbitraryFloatASinINTEL": 5873, "OpArbitraryFloatASinPiINTEL": 5874, "OpArbitraryFloatACosINTEL": 5875, "OpArbitraryFloatACosPiINTEL": 5876, "OpArbitraryFloatATanINTEL": 5877, "OpArbitraryFloatATanPiINTEL": 5878, "OpArbitraryFloatATan2INTEL": 5879, "OpArbitraryFloatPowINTEL": 5880, "OpArbitraryFloatPowRINTEL": 5881, "OpArbitraryFloatPowNINTEL": 5882, "OpLoopControlINTEL": 5887, "OpAliasDomainDeclINTEL": 5911, "OpAliasScopeDeclINTEL": 5912, "OpAliasScopeListDeclINTEL": 5913, "OpFixedSqrtINTEL": 5923, "OpFixedRecipINTEL": 5924, "OpFixedRsqrtINTEL": 5925, "OpFixedSinINTEL": 5926, "OpFixedCosINTEL": 5927, "OpFixedSinCosINTEL": 5928, "OpFixedSinPiINTEL": 5929, "OpFixedCosPiINTEL": 5930, "OpFixedSinCosPiINTEL": 5931, "OpFixedLogINTEL": 5932, "OpFixedExpINTEL": 5933, "OpPtrCastToCrossWorkgroupINTEL": 5934, "OpCrossWorkgroupCastToPtrINTEL": 5938, "OpReadPipeBlockingINTEL": 5946, "OpWritePipeBlockingINTEL": 5947, "OpFPGARegINTEL": 5949, "OpRayQueryGetRayTMinKHR": 6016, "OpRayQueryGetRayFlagsKHR": 6017, "OpRayQueryGetIntersectionTKHR": 6018, "OpRayQueryGetIntersectionInstanceCustomIndexKHR": 6019, "OpRayQueryGetIntersectionInstanceIdKHR": 6020, "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR": 6021, "OpRayQueryGetIntersectionGeometryIndexKHR": 6022, "OpRayQueryGetIntersectionPrimitiveIndexKHR": 6023, "OpRayQueryGetIntersectionBarycentricsKHR": 6024, "OpRayQueryGetIntersectionFrontFaceKHR": 6025, "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR": 6026, "OpRayQueryGetIntersectionObjectRayDirectionKHR": 6027, "OpRayQueryGetIntersectionObjectRayOriginKHR": 6028, "OpRayQueryGetWorldRayDirectionKHR": 6029, "OpRayQueryGetWorldRayOriginKHR": 6030, "OpRayQueryGetIntersectionObjectToWorldKHR": 6031, "OpRayQueryGetIntersectionWorldToObjectKHR": 6032, "OpAtomicFAddEXT": 6035, "OpTypeBufferSurfaceINTEL": 6086, "OpTypeStructContinuedINTEL": 6090, "OpConstantCompositeContinuedINTEL": 6091, "OpSpecConstantCompositeContinuedINTEL": 6092, "OpCompositeConstructContinuedINTEL": 6096, "OpConvertFToBF16INTEL": 6116, "OpConvertBF16ToFINTEL": 6117, "OpControlBarrierArriveINTEL": 6142, "OpControlBarrierWaitINTEL": 6143, "OpGroupIMulKHR": 6401, "OpGroupFMulKHR": 6402, "OpGroupBitwiseAndKHR": 6403, "OpGroupBitwiseOrKHR": 6404, "OpGroupBitwiseXorKHR": 6405, "OpGroupLogicalAndKHR": 6406, "OpGroupLogicalOrKHR": 6407, "OpGroupLogicalXorKHR": 6408, "OpMaskedGatherINTEL": 6428, "OpMaskedScatterINTEL": 6429 } } ] } } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.lua000066400000000000000000002121401463234063200234020ustar00rootroot00000000000000-- Copyright (c) 2014-2024 The Khronos Group Inc. -- -- Permission is hereby granted, free of charge, to any person obtaining a copy -- of this software and/or associated documentation files (the "Materials"), -- to deal in the Materials without restriction, including without limitation -- the rights to use, copy, modify, merge, publish, distribute, sublicense, -- and/or sell copies of the Materials, and to permit persons to whom the -- Materials are furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Materials. -- -- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -- -- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -- IN THE MATERIALS. -- This header is automatically generated by the same tool that creates -- the Binary Section of the SPIR-V specification. -- Enumeration tokens for SPIR-V, in various styles: -- C, C++, C++11, JSON, Lua, Python, C#, D, Beef -- -- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -- - C# will use enum classes in the Specification class located in the "Spv" namespace, -- e.g.: Spv.Specification.SourceLanguage.GLSL -- - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL -- - Beef will use enum classes in the Specification class located in the "Spv" namespace, -- e.g.: Spv.Specification.SourceLanguage.GLSL -- -- Some tokens act like mask values, which can be OR'd together, -- while others are mutually exclusive. The mask-like ones have -- "Mask" in their name, and a parallel enum that has the shift -- amount (1 << x) for each corresponding enumerant. spv = { MagicNumber = 0x07230203, Version = 0x00010600, Revision = 1, OpCodeMask = 0xffff, WordCountShift = 16, SourceLanguage = { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, HERO_C = 8, NZSL = 9, WGSL = 10, Slang = 11, Zig = 12, }, ExecutionModel = { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, TaskNV = 5267, MeshNV = 5268, RayGenerationKHR = 5313, RayGenerationNV = 5313, IntersectionKHR = 5314, IntersectionNV = 5314, AnyHitKHR = 5315, AnyHitNV = 5315, ClosestHitKHR = 5316, ClosestHitNV = 5316, MissKHR = 5317, MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, TaskEXT = 5364, MeshEXT = 5365, }, AddressingModel = { Logical = 0, Physical32 = 1, Physical64 = 2, PhysicalStorageBuffer64 = 5348, PhysicalStorageBuffer64EXT = 5348, }, MemoryModel = { Simple = 0, GLSL450 = 1, OpenCL = 2, Vulkan = 3, VulkanKHR = 3, }, ExecutionMode = { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, NonCoherentColorAttachmentReadEXT = 4169, NonCoherentDepthAttachmentReadEXT = 4170, NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, DenormFlushToZero = 4460, SignedZeroInfNanPreserve = 4461, RoundingModeRTE = 4462, RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, CoalescingAMDX = 5069, MaxNodeRecursionAMDX = 5071, StaticNumWorkgroupsAMDX = 5072, ShaderIndexAMDX = 5073, MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, QuadDerivativesKHR = 5088, RequireFullQuadsKHR = 5089, OutputLinesEXT = 5269, OutputLinesNV = 5269, OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, SampleInterlockOrderedEXT = 5368, SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, FloatingPointModeALTINTEL = 5622, FloatingPointModeIEEEINTEL = 5623, MaxWorkgroupSizeINTEL = 5893, MaxWorkDimINTEL = 5894, NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, MaximallyReconvergesKHR = 6023, FPFastMathDefault = 6028, StreamingInterfaceINTEL = 6154, RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, MaximumRegistersINTEL = 6461, MaximumRegistersIdINTEL = 6462, NamedMaximumRegistersINTEL = 6463, }, StorageClass = { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, TileImageEXT = 4172, NodePayloadAMDX = 5068, NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, IncomingCallableDataNV = 5329, RayPayloadKHR = 5338, RayPayloadNV = 5338, HitAttributeKHR = 5339, HitAttributeNV = 5339, IncomingRayPayloadKHR = 5342, IncomingRayPayloadNV = 5342, ShaderRecordBufferKHR = 5343, ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, }, Dim = { Dim1D = 0, Dim2D = 1, Dim3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, TileImageDataEXT = 4173, }, SamplerAddressingMode = { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, }, SamplerFilterMode = { Nearest = 0, Linear = 1, }, ImageFormat = { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, R64ui = 40, R64i = 41, }, ImageChannelOrder = { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, }, ImageChannelDataType = { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, UnsignedIntRaw10EXT = 19, UnsignedIntRaw12EXT = 20, }, ImageOperandsShift = { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, MakeTexelAvailable = 8, MakeTexelAvailableKHR = 8, MakeTexelVisible = 9, MakeTexelVisibleKHR = 9, NonPrivateTexel = 10, NonPrivateTexelKHR = 10, VolatileTexel = 11, VolatileTexelKHR = 11, SignExtend = 12, ZeroExtend = 13, Nontemporal = 14, Offsets = 16, }, ImageOperandsMask = { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, MakeTexelAvailable = 0x00000100, MakeTexelAvailableKHR = 0x00000100, MakeTexelVisible = 0x00000200, MakeTexelVisibleKHR = 0x00000200, NonPrivateTexel = 0x00000400, NonPrivateTexelKHR = 0x00000400, VolatileTexel = 0x00000800, VolatileTexelKHR = 0x00000800, SignExtend = 0x00001000, ZeroExtend = 0x00002000, Nontemporal = 0x00004000, Offsets = 0x00010000, }, FPFastMathModeShift = { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, AllowContract = 16, AllowContractFastINTEL = 16, AllowReassoc = 17, AllowReassocINTEL = 17, AllowTransform = 18, }, FPFastMathModeMask = { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, AllowContract = 0x00010000, AllowContractFastINTEL = 0x00010000, AllowReassoc = 0x00020000, AllowReassocINTEL = 0x00020000, AllowTransform = 0x00040000, }, FPRoundingMode = { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, }, LinkageType = { Export = 0, Import = 1, LinkOnceODR = 2, }, AccessQualifier = { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, }, FunctionParameterAttribute = { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, RuntimeAlignedINTEL = 5940, }, Decoration = { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, UniformId = 27, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, WeightTextureQCOM = 4487, BlockMatchTextureQCOM = 4488, BlockMatchSamplerQCOM = 4499, ExplicitInterpAMD = 4999, NodeSharesPayloadLimitsWithAMDX = 5019, NodeMaxPayloadsAMDX = 5020, TrackFinishWritingAMDX = 5078, PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, PerVertexKHR = 5285, PerVertexNV = 5285, NonUniform = 5300, NonUniformEXT = 5300, RestrictPointer = 5355, RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, BoundImageNV = 5401, SIMTCallINTEL = 5599, ReferencedIndirectlyINTEL = 5602, ClobberINTEL = 5607, SideEffectsINTEL = 5608, VectorComputeVariableINTEL = 5624, FuncParamIOKindINTEL = 5625, VectorComputeFunctionINTEL = 5626, StackCallINTEL = 5627, GlobalVariableOffsetINTEL = 5628, CounterBuffer = 5634, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, UserSemantic = 5635, UserTypeGOOGLE = 5636, FunctionRoundingModeINTEL = 5822, FunctionDenormModeINTEL = 5823, RegisterINTEL = 5825, MemoryINTEL = 5826, NumbanksINTEL = 5827, BankwidthINTEL = 5828, MaxPrivateCopiesINTEL = 5829, SinglepumpINTEL = 5830, DoublepumpINTEL = 5831, MaxReplicatesINTEL = 5832, SimpleDualPortINTEL = 5833, MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, StridesizeINTEL = 5883, WordsizeINTEL = 5884, TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, InitiationIntervalINTEL = 5917, MaxConcurrencyINTEL = 5918, PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, StallFreeINTEL = 6151, FPMaxErrorDecorationINTEL = 6170, LatencyControlLabelINTEL = 6172, LatencyControlConstraintINTEL = 6173, ConduitKernelArgumentINTEL = 6175, RegisterMapKernelArgumentINTEL = 6176, MMHostInterfaceAddressWidthINTEL = 6177, MMHostInterfaceDataWidthINTEL = 6178, MMHostInterfaceLatencyINTEL = 6179, MMHostInterfaceReadWriteModeINTEL = 6180, MMHostInterfaceMaxBurstINTEL = 6181, MMHostInterfaceWaitRequestINTEL = 6182, StableKernelArgumentINTEL = 6183, HostAccessINTEL = 6188, InitModeINTEL = 6190, ImplementInRegisterMapINTEL = 6191, CacheControlLoadINTEL = 6442, CacheControlStoreINTEL = 6443, }, BuiltIn = { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, CoreIDARM = 4160, CoreCountARM = 4161, CoreMaxIDARM = 4162, WarpIDARM = 4163, WarpMaxIDARM = 4164, SubgroupEqMask = 4416, SubgroupEqMaskKHR = 4416, SubgroupGeMask = 4417, SubgroupGeMaskKHR = 4417, SubgroupGtMask = 4418, SubgroupGtMaskKHR = 4418, SubgroupLeMask = 4419, SubgroupLeMaskKHR = 4419, SubgroupLtMask = 4420, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, PrimitiveShadingRateKHR = 4432, DeviceIndex = 4438, ViewIndex = 4440, ShadingRateKHR = 4444, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, CoalescedInputCountAMDX = 5021, ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, FullyCoveredEXT = 5264, TaskCountNV = 5274, PrimitiveCountNV = 5275, PrimitiveIndicesNV = 5276, ClipDistancePerViewNV = 5277, CullDistancePerViewNV = 5278, LayerPerViewNV = 5279, MeshViewCountNV = 5280, MeshViewIndicesNV = 5281, BaryCoordKHR = 5286, BaryCoordNV = 5286, BaryCoordNoPerspKHR = 5287, BaryCoordNoPerspNV = 5287, FragSizeEXT = 5292, FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, PrimitivePointIndicesEXT = 5294, PrimitiveLineIndicesEXT = 5295, PrimitiveTriangleIndicesEXT = 5296, CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, LaunchSizeNV = 5320, WorldRayOriginKHR = 5321, WorldRayOriginNV = 5321, WorldRayDirectionKHR = 5322, WorldRayDirectionNV = 5322, ObjectRayOriginKHR = 5323, ObjectRayOriginNV = 5323, ObjectRayDirectionKHR = 5324, ObjectRayDirectionNV = 5324, RayTminKHR = 5325, RayTminNV = 5325, RayTmaxKHR = 5326, RayTmaxNV = 5326, InstanceCustomIndexKHR = 5327, InstanceCustomIndexNV = 5327, ObjectToWorldKHR = 5330, ObjectToWorldNV = 5330, WorldToObjectKHR = 5331, WorldToObjectNV = 5331, HitTNV = 5332, HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, HitTriangleVertexPositionsKHR = 5335, HitMicroTriangleVertexPositionsNV = 5337, HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, WarpsPerSMNV = 5374, SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, HitKindFrontFacingMicroTriangleNV = 5405, HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, }, SelectionControlShift = { Flatten = 0, DontFlatten = 1, }, SelectionControlMask = { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, }, LoopControlShift = { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, MinIterations = 4, MaxIterations = 5, IterationMultiple = 6, PeelCount = 7, PartialCount = 8, InitiationIntervalINTEL = 16, MaxConcurrencyINTEL = 17, DependencyArrayINTEL = 18, PipelineEnableINTEL = 19, LoopCoalesceINTEL = 20, MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, LoopCountINTEL = 24, MaxReinvocationDelayINTEL = 25, }, LoopControlMask = { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, MinIterations = 0x00000010, MaxIterations = 0x00000020, IterationMultiple = 0x00000040, PeelCount = 0x00000080, PartialCount = 0x00000100, InitiationIntervalINTEL = 0x00010000, MaxConcurrencyINTEL = 0x00020000, DependencyArrayINTEL = 0x00040000, PipelineEnableINTEL = 0x00080000, LoopCoalesceINTEL = 0x00100000, MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, LoopCountINTEL = 0x01000000, MaxReinvocationDelayINTEL = 0x02000000, }, FunctionControlShift = { Inline = 0, DontInline = 1, Pure = 2, Const = 3, OptNoneINTEL = 16, }, FunctionControlMask = { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, OptNoneINTEL = 0x00010000, }, MemorySemanticsShift = { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, OutputMemory = 12, OutputMemoryKHR = 12, MakeAvailable = 13, MakeAvailableKHR = 13, MakeVisible = 14, MakeVisibleKHR = 14, Volatile = 15, }, MemorySemanticsMask = { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, OutputMemory = 0x00001000, OutputMemoryKHR = 0x00001000, MakeAvailable = 0x00002000, MakeAvailableKHR = 0x00002000, MakeVisible = 0x00004000, MakeVisibleKHR = 0x00004000, Volatile = 0x00008000, }, MemoryAccessShift = { Volatile = 0, Aligned = 1, Nontemporal = 2, MakePointerAvailable = 3, MakePointerAvailableKHR = 3, MakePointerVisible = 4, MakePointerVisibleKHR = 4, NonPrivatePointer = 5, NonPrivatePointerKHR = 5, AliasScopeINTELMask = 16, NoAliasINTELMask = 17, }, MemoryAccessMask = { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, MakePointerAvailable = 0x00000008, MakePointerAvailableKHR = 0x00000008, MakePointerVisible = 0x00000010, MakePointerVisibleKHR = 0x00000010, NonPrivatePointer = 0x00000020, NonPrivatePointerKHR = 0x00000020, AliasScopeINTELMask = 0x00010000, NoAliasINTELMask = 0x00020000, }, Scope = { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, QueueFamily = 5, QueueFamilyKHR = 5, ShaderCallKHR = 6, }, GroupOperation = { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, ClusteredReduce = 3, PartitionedReduceNV = 6, PartitionedInclusiveScanNV = 7, PartitionedExclusiveScanNV = 8, }, KernelEnqueueFlags = { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, }, KernelProfilingInfoShift = { CmdExecTime = 0, }, KernelProfilingInfoMask = { MaskNone = 0, CmdExecTime = 0x00000001, }, Capability = { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, GroupNonUniform = 61, GroupNonUniformVote = 62, GroupNonUniformArithmetic = 63, GroupNonUniformBallot = 64, GroupNonUniformShuffle = 65, GroupNonUniformShuffleRelative = 66, GroupNonUniformClustered = 67, GroupNonUniformQuad = 68, ShaderLayer = 69, ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, TileImageColorReadAccessEXT = 4166, TileImageDepthReadAccessEXT = 4167, TileImageStencilReadAccessEXT = 4168, CooperativeMatrixLayoutsARM = 4201, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, WorkgroupMemoryExplicitLayoutKHR = 4428, WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, StorageBuffer8BitAccess = 4448, UniformAndStorageBuffer8BitAccess = 4449, StoragePushConstant8 = 4450, DenormPreserve = 4464, DenormFlushToZero = 4465, SignedZeroInfNanPreserve = 4466, RoundingModeRTE = 4467, RoundingModeRTZ = 4468, RayQueryProvisionalKHR = 4471, RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, TextureSampleWeightedQCOM = 4484, TextureBoxFilterQCOM = 4485, TextureBlockMatchQCOM = 4486, TextureBlockMatch2QCOM = 4498, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, ShaderEnqueueAMDX = 5067, QuadControlKHR = 5087, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, FragmentDensityEXT = 5291, ShadingRateNV = 5291, GroupNonUniformPartitionedNV = 5297, ShaderNonUniform = 5301, ShaderNonUniformEXT = 5301, RuntimeDescriptorArray = 5302, RuntimeDescriptorArrayEXT = 5302, InputAttachmentArrayDynamicIndexing = 5303, InputAttachmentArrayDynamicIndexingEXT = 5303, UniformTexelBufferArrayDynamicIndexing = 5304, UniformTexelBufferArrayDynamicIndexingEXT = 5304, StorageTexelBufferArrayDynamicIndexing = 5305, StorageTexelBufferArrayDynamicIndexingEXT = 5305, UniformBufferArrayNonUniformIndexing = 5306, UniformBufferArrayNonUniformIndexingEXT = 5306, SampledImageArrayNonUniformIndexing = 5307, SampledImageArrayNonUniformIndexingEXT = 5307, StorageBufferArrayNonUniformIndexing = 5308, StorageBufferArrayNonUniformIndexingEXT = 5308, StorageImageArrayNonUniformIndexing = 5309, StorageImageArrayNonUniformIndexingEXT = 5309, InputAttachmentArrayNonUniformIndexing = 5310, InputAttachmentArrayNonUniformIndexingEXT = 5310, UniformTexelBufferArrayNonUniformIndexing = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, VulkanMemoryModelKHR = 5345, VulkanMemoryModelDeviceScope = 5346, VulkanMemoryModelDeviceScopeKHR = 5346, PhysicalStorageBufferAddresses = 5347, PhysicalStorageBufferAddressesEXT = 5347, ComputeDerivativeGroupLinearNV = 5350, RayTracingProvisionalKHR = 5353, CooperativeMatrixNV = 5357, FragmentShaderSampleInterlockEXT = 5363, FragmentShaderShadingRateInterlockEXT = 5372, ShaderSMBuiltinsNV = 5373, FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, AtomicFloat16VectorNV = 5404, RayTracingDisplacementMicromapNV = 5409, RawAccessChainsNV = 5414, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, SubgroupImageMediaBlockIOINTEL = 5579, RoundToInfinityINTEL = 5582, FloatingPointModeINTEL = 5583, IntegerFunctions2INTEL = 5584, FunctionPointersINTEL = 5603, IndirectReferencesINTEL = 5604, AsmINTEL = 5606, AtomicFloat32MinMaxEXT = 5612, AtomicFloat64MinMaxEXT = 5613, AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, VariableLengthArrayINTEL = 5817, FunctionFloatControlINTEL = 5821, FPGAMemoryAttributesINTEL = 5824, FPFastMathModeINTEL = 5837, ArbitraryPrecisionIntegersINTEL = 5844, ArbitraryPrecisionFloatingPointINTEL = 5845, UnstructuredLoopControlsINTEL = 5886, FPGALoopControlsINTEL = 5888, KernelAttributesINTEL = 5892, FPGAKernelAttributesINTEL = 5897, FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, DotProductInputAll = 6016, DotProductInputAllKHR = 6016, DotProductInput4x8Bit = 6017, DotProductInput4x8BitKHR = 6017, DotProductInput4x8BitPacked = 6018, DotProductInput4x8BitPackedKHR = 6018, DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, CooperativeMatrixKHR = 6022, ReplicatedCompositesEXT = 6024, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, FloatControls2 = 6029, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, FPGAClusterAttributesV2INTEL = 6150, FPGAKernelAttributesv2INTEL = 6161, FPMaxErrorINTEL = 6169, FPGALatencyControlINTEL = 6171, FPGAArgumentInterfacesINTEL = 6174, GlobalVariableHostAccessINTEL = 6187, GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, MaskedGatherScatterINTEL = 6427, CacheControlsINTEL = 6441, RegisterLimitsINTEL = 6460, }, RayFlagsShift = { OpaqueKHR = 0, NoOpaqueKHR = 1, TerminateOnFirstHitKHR = 2, SkipClosestHitShaderKHR = 3, CullBackFacingTrianglesKHR = 4, CullFrontFacingTrianglesKHR = 5, CullOpaqueKHR = 6, CullNoOpaqueKHR = 7, SkipTrianglesKHR = 8, SkipAABBsKHR = 9, ForceOpacityMicromap2StateEXT = 10, }, RayFlagsMask = { MaskNone = 0, OpaqueKHR = 0x00000001, NoOpaqueKHR = 0x00000002, TerminateOnFirstHitKHR = 0x00000004, SkipClosestHitShaderKHR = 0x00000008, CullBackFacingTrianglesKHR = 0x00000010, CullFrontFacingTrianglesKHR = 0x00000020, CullOpaqueKHR = 0x00000040, CullNoOpaqueKHR = 0x00000080, SkipTrianglesKHR = 0x00000100, SkipAABBsKHR = 0x00000200, ForceOpacityMicromap2StateEXT = 0x00000400, }, RayQueryIntersection = { RayQueryCandidateIntersectionKHR = 0, RayQueryCommittedIntersectionKHR = 1, }, RayQueryCommittedIntersectionType = { RayQueryCommittedIntersectionNoneKHR = 0, RayQueryCommittedIntersectionTriangleKHR = 1, RayQueryCommittedIntersectionGeneratedKHR = 2, }, RayQueryCandidateIntersectionType = { RayQueryCandidateIntersectionTriangleKHR = 0, RayQueryCandidateIntersectionAABBKHR = 1, }, FragmentShadingRateShift = { Vertical2Pixels = 0, Vertical4Pixels = 1, Horizontal2Pixels = 2, Horizontal4Pixels = 3, }, FragmentShadingRateMask = { MaskNone = 0, Vertical2Pixels = 0x00000001, Vertical4Pixels = 0x00000002, Horizontal2Pixels = 0x00000004, Horizontal4Pixels = 0x00000008, }, FPDenormMode = { Preserve = 0, FlushToZero = 1, }, FPOperationMode = { IEEE = 0, ALT = 1, }, QuantizationModes = { TRN = 0, TRN_ZERO = 1, RND = 2, RND_ZERO = 3, RND_INF = 4, RND_MIN_INF = 5, RND_CONV = 6, RND_CONV_ODD = 7, }, OverflowModes = { WRAP = 0, SAT = 1, SAT_ZERO = 2, SAT_SYM = 3, }, PackedVectorFormat = { PackedVectorFormat4x8Bit = 0, PackedVectorFormat4x8BitKHR = 0, }, CooperativeMatrixOperandsShift = { MatrixASignedComponentsKHR = 0, MatrixBSignedComponentsKHR = 1, MatrixCSignedComponentsKHR = 2, MatrixResultSignedComponentsKHR = 3, SaturatingAccumulationKHR = 4, }, CooperativeMatrixOperandsMask = { MaskNone = 0, MatrixASignedComponentsKHR = 0x00000001, MatrixBSignedComponentsKHR = 0x00000002, MatrixCSignedComponentsKHR = 0x00000004, MatrixResultSignedComponentsKHR = 0x00000008, SaturatingAccumulationKHR = 0x00000010, }, CooperativeMatrixLayout = { RowMajorKHR = 0, ColumnMajorKHR = 1, RowBlockedInterleavedARM = 4202, ColumnBlockedInterleavedARM = 4203, }, CooperativeMatrixUse = { MatrixAKHR = 0, MatrixBKHR = 1, MatrixAccumulatorKHR = 2, }, InitializationModeQualifier = { InitOnDeviceReprogramINTEL = 0, InitOnDeviceResetINTEL = 1, }, HostAccessQualifier = { NoneINTEL = 0, ReadINTEL = 1, WriteINTEL = 2, ReadWriteINTEL = 3, }, LoadCacheControl = { UncachedINTEL = 0, CachedINTEL = 1, StreamingINTEL = 2, InvalidateAfterReadINTEL = 3, ConstCachedINTEL = 4, }, StoreCacheControl = { UncachedINTEL = 0, WriteThroughINTEL = 1, WriteBackINTEL = 2, StreamingINTEL = 3, }, NamedMaximumNumberOfRegisters = { AutoINTEL = 0, }, RawAccessChainOperandsShift = { RobustnessPerComponentNV = 0, RobustnessPerElementNV = 1, }, RawAccessChainOperandsMask = { MaskNone = 0, RobustnessPerComponentNV = 0x00000001, RobustnessPerElementNV = 0x00000002, }, Op = { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpGroupNonUniformElect = 333, OpGroupNonUniformAll = 334, OpGroupNonUniformAny = 335, OpGroupNonUniformAllEqual = 336, OpGroupNonUniformBroadcast = 337, OpGroupNonUniformBroadcastFirst = 338, OpGroupNonUniformBallot = 339, OpGroupNonUniformInverseBallot = 340, OpGroupNonUniformBallotBitExtract = 341, OpGroupNonUniformBallotBitCount = 342, OpGroupNonUniformBallotFindLSB = 343, OpGroupNonUniformBallotFindMSB = 344, OpGroupNonUniformShuffle = 345, OpGroupNonUniformShuffleXor = 346, OpGroupNonUniformShuffleUp = 347, OpGroupNonUniformShuffleDown = 348, OpGroupNonUniformIAdd = 349, OpGroupNonUniformFAdd = 350, OpGroupNonUniformIMul = 351, OpGroupNonUniformFMul = 352, OpGroupNonUniformSMin = 353, OpGroupNonUniformUMin = 354, OpGroupNonUniformFMin = 355, OpGroupNonUniformSMax = 356, OpGroupNonUniformUMax = 357, OpGroupNonUniformFMax = 358, OpGroupNonUniformBitwiseAnd = 359, OpGroupNonUniformBitwiseOr = 360, OpGroupNonUniformBitwiseXor = 361, OpGroupNonUniformLogicalAnd = 362, OpGroupNonUniformLogicalOr = 363, OpGroupNonUniformLogicalXor = 364, OpGroupNonUniformQuadBroadcast = 365, OpGroupNonUniformQuadSwap = 366, OpCopyLogical = 400, OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, OpSDot = 4450, OpSDotKHR = 4450, OpUDot = 4451, OpUDotKHR = 4451, OpSUDot = 4452, OpSUDotKHR = 4452, OpSDotAccSat = 4453, OpSDotAccSatKHR = 4453, OpUDotAccSat = 4454, OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, OpTypeCooperativeMatrixKHR = 4456, OpCooperativeMatrixLoadKHR = 4457, OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, OpConstantCompositeReplicateEXT = 4461, OpSpecConstantCompositeReplicateEXT = 4462, OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, OpRayQueryGenerateIntersectionKHR = 4475, OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, OpImageSampleWeightedQCOM = 4480, OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpFinalizeNodePayloadsAMDX = 5075, OpFinishWritingNodePayloadAMDX = 5078, OpInitializeNodePayloadsAMDX = 5090, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, OpHitObjectRecordHitWithIndexMotionNV = 5250, OpHitObjectRecordMissMotionNV = 5251, OpHitObjectGetWorldToObjectNV = 5252, OpHitObjectGetObjectToWorldNV = 5253, OpHitObjectGetObjectRayDirectionNV = 5254, OpHitObjectGetObjectRayOriginNV = 5255, OpHitObjectTraceRayMotionNV = 5256, OpHitObjectGetShaderRecordBufferHandleNV = 5257, OpHitObjectGetShaderBindingTableRecordIndexNV = 5258, OpHitObjectRecordEmptyNV = 5259, OpHitObjectTraceRayNV = 5260, OpHitObjectRecordHitNV = 5261, OpHitObjectRecordHitWithIndexNV = 5262, OpHitObjectRecordMissNV = 5263, OpHitObjectExecuteShaderNV = 5264, OpHitObjectGetCurrentTimeNV = 5265, OpHitObjectGetAttributesNV = 5266, OpHitObjectGetHitKindNV = 5267, OpHitObjectGetPrimitiveIndexNV = 5268, OpHitObjectGetGeometryIndexNV = 5269, OpHitObjectGetInstanceIdNV = 5270, OpHitObjectGetInstanceCustomIndexNV = 5271, OpHitObjectGetWorldRayDirectionNV = 5272, OpHitObjectGetWorldRayOriginNV = 5273, OpHitObjectGetRayTMaxNV = 5274, OpHitObjectGetRayTMinNV = 5275, OpHitObjectIsEmptyNV = 5276, OpHitObjectIsHitNV = 5277, OpHitObjectIsMissNV = 5278, OpReorderThreadWithHitObjectNV = 5279, OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, OpConvertSamplerToUNV = 5394, OpConvertUToSampledImageNV = 5395, OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpSubgroupImageMediaBlockReadINTEL = 5580, OpSubgroupImageMediaBlockWriteINTEL = 5581, OpUCountLeadingZerosINTEL = 5585, OpUCountTrailingZerosINTEL = 5586, OpAbsISubINTEL = 5587, OpAbsUSubINTEL = 5588, OpIAddSatINTEL = 5589, OpUAddSatINTEL = 5590, OpIAverageINTEL = 5591, OpUAverageINTEL = 5592, OpIAverageRoundedINTEL = 5593, OpUAverageRoundedINTEL = 5594, OpISubSatINTEL = 5595, OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, OpAsmTargetINTEL = 5609, OpAsmINTEL = 5610, OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, OpAssumeTrueKHR = 5630, OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, OpMemberDecorateStringGOOGLE = 5633, OpVmeImageINTEL = 5699, OpTypeVmeImageINTEL = 5700, OpTypeAvcImePayloadINTEL = 5701, OpTypeAvcRefPayloadINTEL = 5702, OpTypeAvcSicPayloadINTEL = 5703, OpTypeAvcMcePayloadINTEL = 5704, OpTypeAvcMceResultINTEL = 5705, OpTypeAvcImeResultINTEL = 5706, OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, OpTypeAvcImeDualReferenceStreaminINTEL = 5710, OpTypeAvcRefResultINTEL = 5711, OpTypeAvcSicResultINTEL = 5712, OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, OpSubgroupAvcMceConvertToImeResultINTEL = 5733, OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, OpSubgroupAvcMceConvertToRefResultINTEL = 5735, OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, OpSubgroupAvcMceConvertToSicResultINTEL = 5737, OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, OpSubgroupAvcImeInitializeINTEL = 5747, OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, OpSubgroupAvcImeSetDualReferenceINTEL = 5749, OpSubgroupAvcImeRefWindowSizeINTEL = 5750, OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, OpSubgroupAvcImeSetWeightedSadINTEL = 5756, OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, OpSubgroupAvcImeConvertToMceResultINTEL = 5765, OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, OpSubgroupAvcImeGetBorderReachedINTEL = 5776, OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, OpSubgroupAvcFmeInitializeINTEL = 5781, OpSubgroupAvcBmeInitializeINTEL = 5782, OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, OpSubgroupAvcRefConvertToMceResultINTEL = 5790, OpSubgroupAvcSicInitializeINTEL = 5791, OpSubgroupAvcSicConfigureSkcINTEL = 5792, OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, OpSubgroupAvcSicEvaluateIpeINTEL = 5803, OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, OpSubgroupAvcSicConvertToMceResultINTEL = 5808, OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, OpArbitraryFloatSinCosPiINTEL = 5840, OpArbitraryFloatCastINTEL = 5841, OpArbitraryFloatCastFromIntINTEL = 5842, OpArbitraryFloatCastToIntINTEL = 5843, OpArbitraryFloatAddINTEL = 5846, OpArbitraryFloatSubINTEL = 5847, OpArbitraryFloatMulINTEL = 5848, OpArbitraryFloatDivINTEL = 5849, OpArbitraryFloatGTINTEL = 5850, OpArbitraryFloatGEINTEL = 5851, OpArbitraryFloatLTINTEL = 5852, OpArbitraryFloatLEINTEL = 5853, OpArbitraryFloatEQINTEL = 5854, OpArbitraryFloatRecipINTEL = 5855, OpArbitraryFloatRSqrtINTEL = 5856, OpArbitraryFloatCbrtINTEL = 5857, OpArbitraryFloatHypotINTEL = 5858, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, OpArbitraryFloatLog10INTEL = 5862, OpArbitraryFloatLog1pINTEL = 5863, OpArbitraryFloatExpINTEL = 5864, OpArbitraryFloatExp2INTEL = 5865, OpArbitraryFloatExp10INTEL = 5866, OpArbitraryFloatExpm1INTEL = 5867, OpArbitraryFloatSinINTEL = 5868, OpArbitraryFloatCosINTEL = 5869, OpArbitraryFloatSinCosINTEL = 5870, OpArbitraryFloatSinPiINTEL = 5871, OpArbitraryFloatCosPiINTEL = 5872, OpArbitraryFloatASinINTEL = 5873, OpArbitraryFloatASinPiINTEL = 5874, OpArbitraryFloatACosINTEL = 5875, OpArbitraryFloatACosPiINTEL = 5876, OpArbitraryFloatATanINTEL = 5877, OpArbitraryFloatATanPiINTEL = 5878, OpArbitraryFloatATan2INTEL = 5879, OpArbitraryFloatPowINTEL = 5880, OpArbitraryFloatPowRINTEL = 5881, OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, OpFixedSqrtINTEL = 5923, OpFixedRecipINTEL = 5924, OpFixedRsqrtINTEL = 5925, OpFixedSinINTEL = 5926, OpFixedCosINTEL = 5927, OpFixedSinCosINTEL = 5928, OpFixedSinPiINTEL = 5929, OpFixedCosPiINTEL = 5930, OpFixedSinCosPiINTEL = 5931, OpFixedLogINTEL = 5932, OpFixedExpINTEL = 5933, OpPtrCastToCrossWorkgroupINTEL = 5934, OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, OpRayQueryGetIntersectionTKHR = 6018, OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, OpRayQueryGetIntersectionInstanceIdKHR = 6020, OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, OpRayQueryGetIntersectionGeometryIndexKHR = 6022, OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, OpRayQueryGetIntersectionBarycentricsKHR = 6024, OpRayQueryGetIntersectionFrontFaceKHR = 6025, OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, OpRayQueryGetWorldRayDirectionKHR = 6029, OpRayQueryGetWorldRayOriginKHR = 6030, OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, OpTypeBufferSurfaceINTEL = 6086, OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, OpCompositeConstructContinuedINTEL = 6096, OpConvertFToBF16INTEL = 6116, OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, OpGroupBitwiseOrKHR = 6404, OpGroupBitwiseXorKHR = 6405, OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spirv.py000066400000000000000000002215131463234063200232550ustar00rootroot00000000000000# Copyright (c) 2014-2024 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and/or associated documentation files (the "Materials"), # to deal in the Materials without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Materials, and to permit persons to whom the # Materials are furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS # STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND # HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS # IN THE MATERIALS. # This header is automatically generated by the same tool that creates # the Binary Section of the SPIR-V specification. # Enumeration tokens for SPIR-V, in various styles: # C, C++, C++11, JSON, Lua, Python, C#, D, Beef # # - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL # - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL # - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL # - Lua will use tables, e.g.: spv.SourceLanguage.GLSL # - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] # - C# will use enum classes in the Specification class located in the "Spv" namespace, # e.g.: Spv.Specification.SourceLanguage.GLSL # - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL # - Beef will use enum classes in the Specification class located in the "Spv" namespace, # e.g.: Spv.Specification.SourceLanguage.GLSL # # Some tokens act like mask values, which can be OR'd together, # while others are mutually exclusive. The mask-like ones have # "Mask" in their name, and a parallel enum that has the shift # amount (1 << x) for each corresponding enumerant. spv = { 'MagicNumber' : 0x07230203, 'Version' : 0x00010600, 'Revision' : 1, 'OpCodeMask' : 0xffff, 'WordCountShift' : 16, 'SourceLanguage' : { 'Unknown' : 0, 'ESSL' : 1, 'GLSL' : 2, 'OpenCL_C' : 3, 'OpenCL_CPP' : 4, 'HLSL' : 5, 'CPP_for_OpenCL' : 6, 'SYCL' : 7, 'HERO_C' : 8, 'NZSL' : 9, 'WGSL' : 10, 'Slang' : 11, 'Zig' : 12, }, 'ExecutionModel' : { 'Vertex' : 0, 'TessellationControl' : 1, 'TessellationEvaluation' : 2, 'Geometry' : 3, 'Fragment' : 4, 'GLCompute' : 5, 'Kernel' : 6, 'TaskNV' : 5267, 'MeshNV' : 5268, 'RayGenerationKHR' : 5313, 'RayGenerationNV' : 5313, 'IntersectionKHR' : 5314, 'IntersectionNV' : 5314, 'AnyHitKHR' : 5315, 'AnyHitNV' : 5315, 'ClosestHitKHR' : 5316, 'ClosestHitNV' : 5316, 'MissKHR' : 5317, 'MissNV' : 5317, 'CallableKHR' : 5318, 'CallableNV' : 5318, 'TaskEXT' : 5364, 'MeshEXT' : 5365, }, 'AddressingModel' : { 'Logical' : 0, 'Physical32' : 1, 'Physical64' : 2, 'PhysicalStorageBuffer64' : 5348, 'PhysicalStorageBuffer64EXT' : 5348, }, 'MemoryModel' : { 'Simple' : 0, 'GLSL450' : 1, 'OpenCL' : 2, 'Vulkan' : 3, 'VulkanKHR' : 3, }, 'ExecutionMode' : { 'Invocations' : 0, 'SpacingEqual' : 1, 'SpacingFractionalEven' : 2, 'SpacingFractionalOdd' : 3, 'VertexOrderCw' : 4, 'VertexOrderCcw' : 5, 'PixelCenterInteger' : 6, 'OriginUpperLeft' : 7, 'OriginLowerLeft' : 8, 'EarlyFragmentTests' : 9, 'PointMode' : 10, 'Xfb' : 11, 'DepthReplacing' : 12, 'DepthGreater' : 14, 'DepthLess' : 15, 'DepthUnchanged' : 16, 'LocalSize' : 17, 'LocalSizeHint' : 18, 'InputPoints' : 19, 'InputLines' : 20, 'InputLinesAdjacency' : 21, 'Triangles' : 22, 'InputTrianglesAdjacency' : 23, 'Quads' : 24, 'Isolines' : 25, 'OutputVertices' : 26, 'OutputPoints' : 27, 'OutputLineStrip' : 28, 'OutputTriangleStrip' : 29, 'VecTypeHint' : 30, 'ContractionOff' : 31, 'Initializer' : 33, 'Finalizer' : 34, 'SubgroupSize' : 35, 'SubgroupsPerWorkgroup' : 36, 'SubgroupsPerWorkgroupId' : 37, 'LocalSizeId' : 38, 'LocalSizeHintId' : 39, 'NonCoherentColorAttachmentReadEXT' : 4169, 'NonCoherentDepthAttachmentReadEXT' : 4170, 'NonCoherentStencilAttachmentReadEXT' : 4171, 'SubgroupUniformControlFlowKHR' : 4421, 'PostDepthCoverage' : 4446, 'DenormPreserve' : 4459, 'DenormFlushToZero' : 4460, 'SignedZeroInfNanPreserve' : 4461, 'RoundingModeRTE' : 4462, 'RoundingModeRTZ' : 4463, 'EarlyAndLateFragmentTestsAMD' : 5017, 'StencilRefReplacingEXT' : 5027, 'CoalescingAMDX' : 5069, 'MaxNodeRecursionAMDX' : 5071, 'StaticNumWorkgroupsAMDX' : 5072, 'ShaderIndexAMDX' : 5073, 'MaxNumWorkgroupsAMDX' : 5077, 'StencilRefUnchangedFrontAMD' : 5079, 'StencilRefGreaterFrontAMD' : 5080, 'StencilRefLessFrontAMD' : 5081, 'StencilRefUnchangedBackAMD' : 5082, 'StencilRefGreaterBackAMD' : 5083, 'StencilRefLessBackAMD' : 5084, 'QuadDerivativesKHR' : 5088, 'RequireFullQuadsKHR' : 5089, 'OutputLinesEXT' : 5269, 'OutputLinesNV' : 5269, 'OutputPrimitivesEXT' : 5270, 'OutputPrimitivesNV' : 5270, 'DerivativeGroupQuadsNV' : 5289, 'DerivativeGroupLinearNV' : 5290, 'OutputTrianglesEXT' : 5298, 'OutputTrianglesNV' : 5298, 'PixelInterlockOrderedEXT' : 5366, 'PixelInterlockUnorderedEXT' : 5367, 'SampleInterlockOrderedEXT' : 5368, 'SampleInterlockUnorderedEXT' : 5369, 'ShadingRateInterlockOrderedEXT' : 5370, 'ShadingRateInterlockUnorderedEXT' : 5371, 'SharedLocalMemorySizeINTEL' : 5618, 'RoundingModeRTPINTEL' : 5620, 'RoundingModeRTNINTEL' : 5621, 'FloatingPointModeALTINTEL' : 5622, 'FloatingPointModeIEEEINTEL' : 5623, 'MaxWorkgroupSizeINTEL' : 5893, 'MaxWorkDimINTEL' : 5894, 'NoGlobalOffsetINTEL' : 5895, 'NumSIMDWorkitemsINTEL' : 5896, 'SchedulerTargetFmaxMhzINTEL' : 5903, 'MaximallyReconvergesKHR' : 6023, 'FPFastMathDefault' : 6028, 'StreamingInterfaceINTEL' : 6154, 'RegisterMapInterfaceINTEL' : 6160, 'NamedBarrierCountINTEL' : 6417, 'MaximumRegistersINTEL' : 6461, 'MaximumRegistersIdINTEL' : 6462, 'NamedMaximumRegistersINTEL' : 6463, }, 'StorageClass' : { 'UniformConstant' : 0, 'Input' : 1, 'Uniform' : 2, 'Output' : 3, 'Workgroup' : 4, 'CrossWorkgroup' : 5, 'Private' : 6, 'Function' : 7, 'Generic' : 8, 'PushConstant' : 9, 'AtomicCounter' : 10, 'Image' : 11, 'StorageBuffer' : 12, 'TileImageEXT' : 4172, 'NodePayloadAMDX' : 5068, 'NodeOutputPayloadAMDX' : 5076, 'CallableDataKHR' : 5328, 'CallableDataNV' : 5328, 'IncomingCallableDataKHR' : 5329, 'IncomingCallableDataNV' : 5329, 'RayPayloadKHR' : 5338, 'RayPayloadNV' : 5338, 'HitAttributeKHR' : 5339, 'HitAttributeNV' : 5339, 'IncomingRayPayloadKHR' : 5342, 'IncomingRayPayloadNV' : 5342, 'ShaderRecordBufferKHR' : 5343, 'ShaderRecordBufferNV' : 5343, 'PhysicalStorageBuffer' : 5349, 'PhysicalStorageBufferEXT' : 5349, 'HitObjectAttributeNV' : 5385, 'TaskPayloadWorkgroupEXT' : 5402, 'CodeSectionINTEL' : 5605, 'DeviceOnlyINTEL' : 5936, 'HostOnlyINTEL' : 5937, }, 'Dim' : { 'Dim1D' : 0, 'Dim2D' : 1, 'Dim3D' : 2, 'Cube' : 3, 'Rect' : 4, 'Buffer' : 5, 'SubpassData' : 6, 'TileImageDataEXT' : 4173, }, 'SamplerAddressingMode' : { 'None' : 0, 'ClampToEdge' : 1, 'Clamp' : 2, 'Repeat' : 3, 'RepeatMirrored' : 4, }, 'SamplerFilterMode' : { 'Nearest' : 0, 'Linear' : 1, }, 'ImageFormat' : { 'Unknown' : 0, 'Rgba32f' : 1, 'Rgba16f' : 2, 'R32f' : 3, 'Rgba8' : 4, 'Rgba8Snorm' : 5, 'Rg32f' : 6, 'Rg16f' : 7, 'R11fG11fB10f' : 8, 'R16f' : 9, 'Rgba16' : 10, 'Rgb10A2' : 11, 'Rg16' : 12, 'Rg8' : 13, 'R16' : 14, 'R8' : 15, 'Rgba16Snorm' : 16, 'Rg16Snorm' : 17, 'Rg8Snorm' : 18, 'R16Snorm' : 19, 'R8Snorm' : 20, 'Rgba32i' : 21, 'Rgba16i' : 22, 'Rgba8i' : 23, 'R32i' : 24, 'Rg32i' : 25, 'Rg16i' : 26, 'Rg8i' : 27, 'R16i' : 28, 'R8i' : 29, 'Rgba32ui' : 30, 'Rgba16ui' : 31, 'Rgba8ui' : 32, 'R32ui' : 33, 'Rgb10a2ui' : 34, 'Rg32ui' : 35, 'Rg16ui' : 36, 'Rg8ui' : 37, 'R16ui' : 38, 'R8ui' : 39, 'R64ui' : 40, 'R64i' : 41, }, 'ImageChannelOrder' : { 'R' : 0, 'A' : 1, 'RG' : 2, 'RA' : 3, 'RGB' : 4, 'RGBA' : 5, 'BGRA' : 6, 'ARGB' : 7, 'Intensity' : 8, 'Luminance' : 9, 'Rx' : 10, 'RGx' : 11, 'RGBx' : 12, 'Depth' : 13, 'DepthStencil' : 14, 'sRGB' : 15, 'sRGBx' : 16, 'sRGBA' : 17, 'sBGRA' : 18, 'ABGR' : 19, }, 'ImageChannelDataType' : { 'SnormInt8' : 0, 'SnormInt16' : 1, 'UnormInt8' : 2, 'UnormInt16' : 3, 'UnormShort565' : 4, 'UnormShort555' : 5, 'UnormInt101010' : 6, 'SignedInt8' : 7, 'SignedInt16' : 8, 'SignedInt32' : 9, 'UnsignedInt8' : 10, 'UnsignedInt16' : 11, 'UnsignedInt32' : 12, 'HalfFloat' : 13, 'Float' : 14, 'UnormInt24' : 15, 'UnormInt101010_2' : 16, 'UnsignedIntRaw10EXT' : 19, 'UnsignedIntRaw12EXT' : 20, }, 'ImageOperandsShift' : { 'Bias' : 0, 'Lod' : 1, 'Grad' : 2, 'ConstOffset' : 3, 'Offset' : 4, 'ConstOffsets' : 5, 'Sample' : 6, 'MinLod' : 7, 'MakeTexelAvailable' : 8, 'MakeTexelAvailableKHR' : 8, 'MakeTexelVisible' : 9, 'MakeTexelVisibleKHR' : 9, 'NonPrivateTexel' : 10, 'NonPrivateTexelKHR' : 10, 'VolatileTexel' : 11, 'VolatileTexelKHR' : 11, 'SignExtend' : 12, 'ZeroExtend' : 13, 'Nontemporal' : 14, 'Offsets' : 16, }, 'ImageOperandsMask' : { 'MaskNone' : 0, 'Bias' : 0x00000001, 'Lod' : 0x00000002, 'Grad' : 0x00000004, 'ConstOffset' : 0x00000008, 'Offset' : 0x00000010, 'ConstOffsets' : 0x00000020, 'Sample' : 0x00000040, 'MinLod' : 0x00000080, 'MakeTexelAvailable' : 0x00000100, 'MakeTexelAvailableKHR' : 0x00000100, 'MakeTexelVisible' : 0x00000200, 'MakeTexelVisibleKHR' : 0x00000200, 'NonPrivateTexel' : 0x00000400, 'NonPrivateTexelKHR' : 0x00000400, 'VolatileTexel' : 0x00000800, 'VolatileTexelKHR' : 0x00000800, 'SignExtend' : 0x00001000, 'ZeroExtend' : 0x00002000, 'Nontemporal' : 0x00004000, 'Offsets' : 0x00010000, }, 'FPFastMathModeShift' : { 'NotNaN' : 0, 'NotInf' : 1, 'NSZ' : 2, 'AllowRecip' : 3, 'Fast' : 4, 'AllowContract' : 16, 'AllowContractFastINTEL' : 16, 'AllowReassoc' : 17, 'AllowReassocINTEL' : 17, 'AllowTransform' : 18, }, 'FPFastMathModeMask' : { 'MaskNone' : 0, 'NotNaN' : 0x00000001, 'NotInf' : 0x00000002, 'NSZ' : 0x00000004, 'AllowRecip' : 0x00000008, 'Fast' : 0x00000010, 'AllowContract' : 0x00010000, 'AllowContractFastINTEL' : 0x00010000, 'AllowReassoc' : 0x00020000, 'AllowReassocINTEL' : 0x00020000, 'AllowTransform' : 0x00040000, }, 'FPRoundingMode' : { 'RTE' : 0, 'RTZ' : 1, 'RTP' : 2, 'RTN' : 3, }, 'LinkageType' : { 'Export' : 0, 'Import' : 1, 'LinkOnceODR' : 2, }, 'AccessQualifier' : { 'ReadOnly' : 0, 'WriteOnly' : 1, 'ReadWrite' : 2, }, 'FunctionParameterAttribute' : { 'Zext' : 0, 'Sext' : 1, 'ByVal' : 2, 'Sret' : 3, 'NoAlias' : 4, 'NoCapture' : 5, 'NoWrite' : 6, 'NoReadWrite' : 7, 'RuntimeAlignedINTEL' : 5940, }, 'Decoration' : { 'RelaxedPrecision' : 0, 'SpecId' : 1, 'Block' : 2, 'BufferBlock' : 3, 'RowMajor' : 4, 'ColMajor' : 5, 'ArrayStride' : 6, 'MatrixStride' : 7, 'GLSLShared' : 8, 'GLSLPacked' : 9, 'CPacked' : 10, 'BuiltIn' : 11, 'NoPerspective' : 13, 'Flat' : 14, 'Patch' : 15, 'Centroid' : 16, 'Sample' : 17, 'Invariant' : 18, 'Restrict' : 19, 'Aliased' : 20, 'Volatile' : 21, 'Constant' : 22, 'Coherent' : 23, 'NonWritable' : 24, 'NonReadable' : 25, 'Uniform' : 26, 'UniformId' : 27, 'SaturatedConversion' : 28, 'Stream' : 29, 'Location' : 30, 'Component' : 31, 'Index' : 32, 'Binding' : 33, 'DescriptorSet' : 34, 'Offset' : 35, 'XfbBuffer' : 36, 'XfbStride' : 37, 'FuncParamAttr' : 38, 'FPRoundingMode' : 39, 'FPFastMathMode' : 40, 'LinkageAttributes' : 41, 'NoContraction' : 42, 'InputAttachmentIndex' : 43, 'Alignment' : 44, 'MaxByteOffset' : 45, 'AlignmentId' : 46, 'MaxByteOffsetId' : 47, 'NoSignedWrap' : 4469, 'NoUnsignedWrap' : 4470, 'WeightTextureQCOM' : 4487, 'BlockMatchTextureQCOM' : 4488, 'BlockMatchSamplerQCOM' : 4499, 'ExplicitInterpAMD' : 4999, 'NodeSharesPayloadLimitsWithAMDX' : 5019, 'NodeMaxPayloadsAMDX' : 5020, 'TrackFinishWritingAMDX' : 5078, 'PayloadNodeNameAMDX' : 5091, 'OverrideCoverageNV' : 5248, 'PassthroughNV' : 5250, 'ViewportRelativeNV' : 5252, 'SecondaryViewportRelativeNV' : 5256, 'PerPrimitiveEXT' : 5271, 'PerPrimitiveNV' : 5271, 'PerViewNV' : 5272, 'PerTaskNV' : 5273, 'PerVertexKHR' : 5285, 'PerVertexNV' : 5285, 'NonUniform' : 5300, 'NonUniformEXT' : 5300, 'RestrictPointer' : 5355, 'RestrictPointerEXT' : 5355, 'AliasedPointer' : 5356, 'AliasedPointerEXT' : 5356, 'HitObjectShaderRecordBufferNV' : 5386, 'BindlessSamplerNV' : 5398, 'BindlessImageNV' : 5399, 'BoundSamplerNV' : 5400, 'BoundImageNV' : 5401, 'SIMTCallINTEL' : 5599, 'ReferencedIndirectlyINTEL' : 5602, 'ClobberINTEL' : 5607, 'SideEffectsINTEL' : 5608, 'VectorComputeVariableINTEL' : 5624, 'FuncParamIOKindINTEL' : 5625, 'VectorComputeFunctionINTEL' : 5626, 'StackCallINTEL' : 5627, 'GlobalVariableOffsetINTEL' : 5628, 'CounterBuffer' : 5634, 'HlslCounterBufferGOOGLE' : 5634, 'HlslSemanticGOOGLE' : 5635, 'UserSemantic' : 5635, 'UserTypeGOOGLE' : 5636, 'FunctionRoundingModeINTEL' : 5822, 'FunctionDenormModeINTEL' : 5823, 'RegisterINTEL' : 5825, 'MemoryINTEL' : 5826, 'NumbanksINTEL' : 5827, 'BankwidthINTEL' : 5828, 'MaxPrivateCopiesINTEL' : 5829, 'SinglepumpINTEL' : 5830, 'DoublepumpINTEL' : 5831, 'MaxReplicatesINTEL' : 5832, 'SimpleDualPortINTEL' : 5833, 'MergeINTEL' : 5834, 'BankBitsINTEL' : 5835, 'ForcePow2DepthINTEL' : 5836, 'StridesizeINTEL' : 5883, 'WordsizeINTEL' : 5884, 'TrueDualPortINTEL' : 5885, 'BurstCoalesceINTEL' : 5899, 'CacheSizeINTEL' : 5900, 'DontStaticallyCoalesceINTEL' : 5901, 'PrefetchINTEL' : 5902, 'StallEnableINTEL' : 5905, 'FuseLoopsInFunctionINTEL' : 5907, 'MathOpDSPModeINTEL' : 5909, 'AliasScopeINTEL' : 5914, 'NoAliasINTEL' : 5915, 'InitiationIntervalINTEL' : 5917, 'MaxConcurrencyINTEL' : 5918, 'PipelineEnableINTEL' : 5919, 'BufferLocationINTEL' : 5921, 'IOPipeStorageINTEL' : 5944, 'FunctionFloatingPointModeINTEL' : 6080, 'SingleElementVectorINTEL' : 6085, 'VectorComputeCallableFunctionINTEL' : 6087, 'MediaBlockIOINTEL' : 6140, 'StallFreeINTEL' : 6151, 'FPMaxErrorDecorationINTEL' : 6170, 'LatencyControlLabelINTEL' : 6172, 'LatencyControlConstraintINTEL' : 6173, 'ConduitKernelArgumentINTEL' : 6175, 'RegisterMapKernelArgumentINTEL' : 6176, 'MMHostInterfaceAddressWidthINTEL' : 6177, 'MMHostInterfaceDataWidthINTEL' : 6178, 'MMHostInterfaceLatencyINTEL' : 6179, 'MMHostInterfaceReadWriteModeINTEL' : 6180, 'MMHostInterfaceMaxBurstINTEL' : 6181, 'MMHostInterfaceWaitRequestINTEL' : 6182, 'StableKernelArgumentINTEL' : 6183, 'HostAccessINTEL' : 6188, 'InitModeINTEL' : 6190, 'ImplementInRegisterMapINTEL' : 6191, 'CacheControlLoadINTEL' : 6442, 'CacheControlStoreINTEL' : 6443, }, 'BuiltIn' : { 'Position' : 0, 'PointSize' : 1, 'ClipDistance' : 3, 'CullDistance' : 4, 'VertexId' : 5, 'InstanceId' : 6, 'PrimitiveId' : 7, 'InvocationId' : 8, 'Layer' : 9, 'ViewportIndex' : 10, 'TessLevelOuter' : 11, 'TessLevelInner' : 12, 'TessCoord' : 13, 'PatchVertices' : 14, 'FragCoord' : 15, 'PointCoord' : 16, 'FrontFacing' : 17, 'SampleId' : 18, 'SamplePosition' : 19, 'SampleMask' : 20, 'FragDepth' : 22, 'HelperInvocation' : 23, 'NumWorkgroups' : 24, 'WorkgroupSize' : 25, 'WorkgroupId' : 26, 'LocalInvocationId' : 27, 'GlobalInvocationId' : 28, 'LocalInvocationIndex' : 29, 'WorkDim' : 30, 'GlobalSize' : 31, 'EnqueuedWorkgroupSize' : 32, 'GlobalOffset' : 33, 'GlobalLinearId' : 34, 'SubgroupSize' : 36, 'SubgroupMaxSize' : 37, 'NumSubgroups' : 38, 'NumEnqueuedSubgroups' : 39, 'SubgroupId' : 40, 'SubgroupLocalInvocationId' : 41, 'VertexIndex' : 42, 'InstanceIndex' : 43, 'CoreIDARM' : 4160, 'CoreCountARM' : 4161, 'CoreMaxIDARM' : 4162, 'WarpIDARM' : 4163, 'WarpMaxIDARM' : 4164, 'SubgroupEqMask' : 4416, 'SubgroupEqMaskKHR' : 4416, 'SubgroupGeMask' : 4417, 'SubgroupGeMaskKHR' : 4417, 'SubgroupGtMask' : 4418, 'SubgroupGtMaskKHR' : 4418, 'SubgroupLeMask' : 4419, 'SubgroupLeMaskKHR' : 4419, 'SubgroupLtMask' : 4420, 'SubgroupLtMaskKHR' : 4420, 'BaseVertex' : 4424, 'BaseInstance' : 4425, 'DrawIndex' : 4426, 'PrimitiveShadingRateKHR' : 4432, 'DeviceIndex' : 4438, 'ViewIndex' : 4440, 'ShadingRateKHR' : 4444, 'BaryCoordNoPerspAMD' : 4992, 'BaryCoordNoPerspCentroidAMD' : 4993, 'BaryCoordNoPerspSampleAMD' : 4994, 'BaryCoordSmoothAMD' : 4995, 'BaryCoordSmoothCentroidAMD' : 4996, 'BaryCoordSmoothSampleAMD' : 4997, 'BaryCoordPullModelAMD' : 4998, 'FragStencilRefEXT' : 5014, 'CoalescedInputCountAMDX' : 5021, 'ShaderIndexAMDX' : 5073, 'ViewportMaskNV' : 5253, 'SecondaryPositionNV' : 5257, 'SecondaryViewportMaskNV' : 5258, 'PositionPerViewNV' : 5261, 'ViewportMaskPerViewNV' : 5262, 'FullyCoveredEXT' : 5264, 'TaskCountNV' : 5274, 'PrimitiveCountNV' : 5275, 'PrimitiveIndicesNV' : 5276, 'ClipDistancePerViewNV' : 5277, 'CullDistancePerViewNV' : 5278, 'LayerPerViewNV' : 5279, 'MeshViewCountNV' : 5280, 'MeshViewIndicesNV' : 5281, 'BaryCoordKHR' : 5286, 'BaryCoordNV' : 5286, 'BaryCoordNoPerspKHR' : 5287, 'BaryCoordNoPerspNV' : 5287, 'FragSizeEXT' : 5292, 'FragmentSizeNV' : 5292, 'FragInvocationCountEXT' : 5293, 'InvocationsPerPixelNV' : 5293, 'PrimitivePointIndicesEXT' : 5294, 'PrimitiveLineIndicesEXT' : 5295, 'PrimitiveTriangleIndicesEXT' : 5296, 'CullPrimitiveEXT' : 5299, 'LaunchIdKHR' : 5319, 'LaunchIdNV' : 5319, 'LaunchSizeKHR' : 5320, 'LaunchSizeNV' : 5320, 'WorldRayOriginKHR' : 5321, 'WorldRayOriginNV' : 5321, 'WorldRayDirectionKHR' : 5322, 'WorldRayDirectionNV' : 5322, 'ObjectRayOriginKHR' : 5323, 'ObjectRayOriginNV' : 5323, 'ObjectRayDirectionKHR' : 5324, 'ObjectRayDirectionNV' : 5324, 'RayTminKHR' : 5325, 'RayTminNV' : 5325, 'RayTmaxKHR' : 5326, 'RayTmaxNV' : 5326, 'InstanceCustomIndexKHR' : 5327, 'InstanceCustomIndexNV' : 5327, 'ObjectToWorldKHR' : 5330, 'ObjectToWorldNV' : 5330, 'WorldToObjectKHR' : 5331, 'WorldToObjectNV' : 5331, 'HitTNV' : 5332, 'HitKindKHR' : 5333, 'HitKindNV' : 5333, 'CurrentRayTimeNV' : 5334, 'HitTriangleVertexPositionsKHR' : 5335, 'HitMicroTriangleVertexPositionsNV' : 5337, 'HitMicroTriangleVertexBarycentricsNV' : 5344, 'IncomingRayFlagsKHR' : 5351, 'IncomingRayFlagsNV' : 5351, 'RayGeometryIndexKHR' : 5352, 'WarpsPerSMNV' : 5374, 'SMCountNV' : 5375, 'WarpIDNV' : 5376, 'SMIDNV' : 5377, 'HitKindFrontFacingMicroTriangleNV' : 5405, 'HitKindBackFacingMicroTriangleNV' : 5406, 'CullMaskKHR' : 6021, }, 'SelectionControlShift' : { 'Flatten' : 0, 'DontFlatten' : 1, }, 'SelectionControlMask' : { 'MaskNone' : 0, 'Flatten' : 0x00000001, 'DontFlatten' : 0x00000002, }, 'LoopControlShift' : { 'Unroll' : 0, 'DontUnroll' : 1, 'DependencyInfinite' : 2, 'DependencyLength' : 3, 'MinIterations' : 4, 'MaxIterations' : 5, 'IterationMultiple' : 6, 'PeelCount' : 7, 'PartialCount' : 8, 'InitiationIntervalINTEL' : 16, 'MaxConcurrencyINTEL' : 17, 'DependencyArrayINTEL' : 18, 'PipelineEnableINTEL' : 19, 'LoopCoalesceINTEL' : 20, 'MaxInterleavingINTEL' : 21, 'SpeculatedIterationsINTEL' : 22, 'NoFusionINTEL' : 23, 'LoopCountINTEL' : 24, 'MaxReinvocationDelayINTEL' : 25, }, 'LoopControlMask' : { 'MaskNone' : 0, 'Unroll' : 0x00000001, 'DontUnroll' : 0x00000002, 'DependencyInfinite' : 0x00000004, 'DependencyLength' : 0x00000008, 'MinIterations' : 0x00000010, 'MaxIterations' : 0x00000020, 'IterationMultiple' : 0x00000040, 'PeelCount' : 0x00000080, 'PartialCount' : 0x00000100, 'InitiationIntervalINTEL' : 0x00010000, 'MaxConcurrencyINTEL' : 0x00020000, 'DependencyArrayINTEL' : 0x00040000, 'PipelineEnableINTEL' : 0x00080000, 'LoopCoalesceINTEL' : 0x00100000, 'MaxInterleavingINTEL' : 0x00200000, 'SpeculatedIterationsINTEL' : 0x00400000, 'NoFusionINTEL' : 0x00800000, 'LoopCountINTEL' : 0x01000000, 'MaxReinvocationDelayINTEL' : 0x02000000, }, 'FunctionControlShift' : { 'Inline' : 0, 'DontInline' : 1, 'Pure' : 2, 'Const' : 3, 'OptNoneINTEL' : 16, }, 'FunctionControlMask' : { 'MaskNone' : 0, 'Inline' : 0x00000001, 'DontInline' : 0x00000002, 'Pure' : 0x00000004, 'Const' : 0x00000008, 'OptNoneINTEL' : 0x00010000, }, 'MemorySemanticsShift' : { 'Acquire' : 1, 'Release' : 2, 'AcquireRelease' : 3, 'SequentiallyConsistent' : 4, 'UniformMemory' : 6, 'SubgroupMemory' : 7, 'WorkgroupMemory' : 8, 'CrossWorkgroupMemory' : 9, 'AtomicCounterMemory' : 10, 'ImageMemory' : 11, 'OutputMemory' : 12, 'OutputMemoryKHR' : 12, 'MakeAvailable' : 13, 'MakeAvailableKHR' : 13, 'MakeVisible' : 14, 'MakeVisibleKHR' : 14, 'Volatile' : 15, }, 'MemorySemanticsMask' : { 'MaskNone' : 0, 'Acquire' : 0x00000002, 'Release' : 0x00000004, 'AcquireRelease' : 0x00000008, 'SequentiallyConsistent' : 0x00000010, 'UniformMemory' : 0x00000040, 'SubgroupMemory' : 0x00000080, 'WorkgroupMemory' : 0x00000100, 'CrossWorkgroupMemory' : 0x00000200, 'AtomicCounterMemory' : 0x00000400, 'ImageMemory' : 0x00000800, 'OutputMemory' : 0x00001000, 'OutputMemoryKHR' : 0x00001000, 'MakeAvailable' : 0x00002000, 'MakeAvailableKHR' : 0x00002000, 'MakeVisible' : 0x00004000, 'MakeVisibleKHR' : 0x00004000, 'Volatile' : 0x00008000, }, 'MemoryAccessShift' : { 'Volatile' : 0, 'Aligned' : 1, 'Nontemporal' : 2, 'MakePointerAvailable' : 3, 'MakePointerAvailableKHR' : 3, 'MakePointerVisible' : 4, 'MakePointerVisibleKHR' : 4, 'NonPrivatePointer' : 5, 'NonPrivatePointerKHR' : 5, 'AliasScopeINTELMask' : 16, 'NoAliasINTELMask' : 17, }, 'MemoryAccessMask' : { 'MaskNone' : 0, 'Volatile' : 0x00000001, 'Aligned' : 0x00000002, 'Nontemporal' : 0x00000004, 'MakePointerAvailable' : 0x00000008, 'MakePointerAvailableKHR' : 0x00000008, 'MakePointerVisible' : 0x00000010, 'MakePointerVisibleKHR' : 0x00000010, 'NonPrivatePointer' : 0x00000020, 'NonPrivatePointerKHR' : 0x00000020, 'AliasScopeINTELMask' : 0x00010000, 'NoAliasINTELMask' : 0x00020000, }, 'Scope' : { 'CrossDevice' : 0, 'Device' : 1, 'Workgroup' : 2, 'Subgroup' : 3, 'Invocation' : 4, 'QueueFamily' : 5, 'QueueFamilyKHR' : 5, 'ShaderCallKHR' : 6, }, 'GroupOperation' : { 'Reduce' : 0, 'InclusiveScan' : 1, 'ExclusiveScan' : 2, 'ClusteredReduce' : 3, 'PartitionedReduceNV' : 6, 'PartitionedInclusiveScanNV' : 7, 'PartitionedExclusiveScanNV' : 8, }, 'KernelEnqueueFlags' : { 'NoWait' : 0, 'WaitKernel' : 1, 'WaitWorkGroup' : 2, }, 'KernelProfilingInfoShift' : { 'CmdExecTime' : 0, }, 'KernelProfilingInfoMask' : { 'MaskNone' : 0, 'CmdExecTime' : 0x00000001, }, 'Capability' : { 'Matrix' : 0, 'Shader' : 1, 'Geometry' : 2, 'Tessellation' : 3, 'Addresses' : 4, 'Linkage' : 5, 'Kernel' : 6, 'Vector16' : 7, 'Float16Buffer' : 8, 'Float16' : 9, 'Float64' : 10, 'Int64' : 11, 'Int64Atomics' : 12, 'ImageBasic' : 13, 'ImageReadWrite' : 14, 'ImageMipmap' : 15, 'Pipes' : 17, 'Groups' : 18, 'DeviceEnqueue' : 19, 'LiteralSampler' : 20, 'AtomicStorage' : 21, 'Int16' : 22, 'TessellationPointSize' : 23, 'GeometryPointSize' : 24, 'ImageGatherExtended' : 25, 'StorageImageMultisample' : 27, 'UniformBufferArrayDynamicIndexing' : 28, 'SampledImageArrayDynamicIndexing' : 29, 'StorageBufferArrayDynamicIndexing' : 30, 'StorageImageArrayDynamicIndexing' : 31, 'ClipDistance' : 32, 'CullDistance' : 33, 'ImageCubeArray' : 34, 'SampleRateShading' : 35, 'ImageRect' : 36, 'SampledRect' : 37, 'GenericPointer' : 38, 'Int8' : 39, 'InputAttachment' : 40, 'SparseResidency' : 41, 'MinLod' : 42, 'Sampled1D' : 43, 'Image1D' : 44, 'SampledCubeArray' : 45, 'SampledBuffer' : 46, 'ImageBuffer' : 47, 'ImageMSArray' : 48, 'StorageImageExtendedFormats' : 49, 'ImageQuery' : 50, 'DerivativeControl' : 51, 'InterpolationFunction' : 52, 'TransformFeedback' : 53, 'GeometryStreams' : 54, 'StorageImageReadWithoutFormat' : 55, 'StorageImageWriteWithoutFormat' : 56, 'MultiViewport' : 57, 'SubgroupDispatch' : 58, 'NamedBarrier' : 59, 'PipeStorage' : 60, 'GroupNonUniform' : 61, 'GroupNonUniformVote' : 62, 'GroupNonUniformArithmetic' : 63, 'GroupNonUniformBallot' : 64, 'GroupNonUniformShuffle' : 65, 'GroupNonUniformShuffleRelative' : 66, 'GroupNonUniformClustered' : 67, 'GroupNonUniformQuad' : 68, 'ShaderLayer' : 69, 'ShaderViewportIndex' : 70, 'UniformDecoration' : 71, 'CoreBuiltinsARM' : 4165, 'TileImageColorReadAccessEXT' : 4166, 'TileImageDepthReadAccessEXT' : 4167, 'TileImageStencilReadAccessEXT' : 4168, 'CooperativeMatrixLayoutsARM' : 4201, 'FragmentShadingRateKHR' : 4422, 'SubgroupBallotKHR' : 4423, 'DrawParameters' : 4427, 'WorkgroupMemoryExplicitLayoutKHR' : 4428, 'WorkgroupMemoryExplicitLayout8BitAccessKHR' : 4429, 'WorkgroupMemoryExplicitLayout16BitAccessKHR' : 4430, 'SubgroupVoteKHR' : 4431, 'StorageBuffer16BitAccess' : 4433, 'StorageUniformBufferBlock16' : 4433, 'StorageUniform16' : 4434, 'UniformAndStorageBuffer16BitAccess' : 4434, 'StoragePushConstant16' : 4435, 'StorageInputOutput16' : 4436, 'DeviceGroup' : 4437, 'MultiView' : 4439, 'VariablePointersStorageBuffer' : 4441, 'VariablePointers' : 4442, 'AtomicStorageOps' : 4445, 'SampleMaskPostDepthCoverage' : 4447, 'StorageBuffer8BitAccess' : 4448, 'UniformAndStorageBuffer8BitAccess' : 4449, 'StoragePushConstant8' : 4450, 'DenormPreserve' : 4464, 'DenormFlushToZero' : 4465, 'SignedZeroInfNanPreserve' : 4466, 'RoundingModeRTE' : 4467, 'RoundingModeRTZ' : 4468, 'RayQueryProvisionalKHR' : 4471, 'RayQueryKHR' : 4472, 'RayTraversalPrimitiveCullingKHR' : 4478, 'RayTracingKHR' : 4479, 'TextureSampleWeightedQCOM' : 4484, 'TextureBoxFilterQCOM' : 4485, 'TextureBlockMatchQCOM' : 4486, 'TextureBlockMatch2QCOM' : 4498, 'Float16ImageAMD' : 5008, 'ImageGatherBiasLodAMD' : 5009, 'FragmentMaskAMD' : 5010, 'StencilExportEXT' : 5013, 'ImageReadWriteLodAMD' : 5015, 'Int64ImageEXT' : 5016, 'ShaderClockKHR' : 5055, 'ShaderEnqueueAMDX' : 5067, 'QuadControlKHR' : 5087, 'SampleMaskOverrideCoverageNV' : 5249, 'GeometryShaderPassthroughNV' : 5251, 'ShaderViewportIndexLayerEXT' : 5254, 'ShaderViewportIndexLayerNV' : 5254, 'ShaderViewportMaskNV' : 5255, 'ShaderStereoViewNV' : 5259, 'PerViewAttributesNV' : 5260, 'FragmentFullyCoveredEXT' : 5265, 'MeshShadingNV' : 5266, 'ImageFootprintNV' : 5282, 'MeshShadingEXT' : 5283, 'FragmentBarycentricKHR' : 5284, 'FragmentBarycentricNV' : 5284, 'ComputeDerivativeGroupQuadsNV' : 5288, 'FragmentDensityEXT' : 5291, 'ShadingRateNV' : 5291, 'GroupNonUniformPartitionedNV' : 5297, 'ShaderNonUniform' : 5301, 'ShaderNonUniformEXT' : 5301, 'RuntimeDescriptorArray' : 5302, 'RuntimeDescriptorArrayEXT' : 5302, 'InputAttachmentArrayDynamicIndexing' : 5303, 'InputAttachmentArrayDynamicIndexingEXT' : 5303, 'UniformTexelBufferArrayDynamicIndexing' : 5304, 'UniformTexelBufferArrayDynamicIndexingEXT' : 5304, 'StorageTexelBufferArrayDynamicIndexing' : 5305, 'StorageTexelBufferArrayDynamicIndexingEXT' : 5305, 'UniformBufferArrayNonUniformIndexing' : 5306, 'UniformBufferArrayNonUniformIndexingEXT' : 5306, 'SampledImageArrayNonUniformIndexing' : 5307, 'SampledImageArrayNonUniformIndexingEXT' : 5307, 'StorageBufferArrayNonUniformIndexing' : 5308, 'StorageBufferArrayNonUniformIndexingEXT' : 5308, 'StorageImageArrayNonUniformIndexing' : 5309, 'StorageImageArrayNonUniformIndexingEXT' : 5309, 'InputAttachmentArrayNonUniformIndexing' : 5310, 'InputAttachmentArrayNonUniformIndexingEXT' : 5310, 'UniformTexelBufferArrayNonUniformIndexing' : 5311, 'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311, 'StorageTexelBufferArrayNonUniformIndexing' : 5312, 'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312, 'RayTracingPositionFetchKHR' : 5336, 'RayTracingNV' : 5340, 'RayTracingMotionBlurNV' : 5341, 'VulkanMemoryModel' : 5345, 'VulkanMemoryModelKHR' : 5345, 'VulkanMemoryModelDeviceScope' : 5346, 'VulkanMemoryModelDeviceScopeKHR' : 5346, 'PhysicalStorageBufferAddresses' : 5347, 'PhysicalStorageBufferAddressesEXT' : 5347, 'ComputeDerivativeGroupLinearNV' : 5350, 'RayTracingProvisionalKHR' : 5353, 'CooperativeMatrixNV' : 5357, 'FragmentShaderSampleInterlockEXT' : 5363, 'FragmentShaderShadingRateInterlockEXT' : 5372, 'ShaderSMBuiltinsNV' : 5373, 'FragmentShaderPixelInterlockEXT' : 5378, 'DemoteToHelperInvocation' : 5379, 'DemoteToHelperInvocationEXT' : 5379, 'DisplacementMicromapNV' : 5380, 'RayTracingOpacityMicromapEXT' : 5381, 'ShaderInvocationReorderNV' : 5383, 'BindlessTextureNV' : 5390, 'RayQueryPositionFetchKHR' : 5391, 'AtomicFloat16VectorNV' : 5404, 'RayTracingDisplacementMicromapNV' : 5409, 'RawAccessChainsNV' : 5414, 'SubgroupShuffleINTEL' : 5568, 'SubgroupBufferBlockIOINTEL' : 5569, 'SubgroupImageBlockIOINTEL' : 5570, 'SubgroupImageMediaBlockIOINTEL' : 5579, 'RoundToInfinityINTEL' : 5582, 'FloatingPointModeINTEL' : 5583, 'IntegerFunctions2INTEL' : 5584, 'FunctionPointersINTEL' : 5603, 'IndirectReferencesINTEL' : 5604, 'AsmINTEL' : 5606, 'AtomicFloat32MinMaxEXT' : 5612, 'AtomicFloat64MinMaxEXT' : 5613, 'AtomicFloat16MinMaxEXT' : 5616, 'VectorComputeINTEL' : 5617, 'VectorAnyINTEL' : 5619, 'ExpectAssumeKHR' : 5629, 'SubgroupAvcMotionEstimationINTEL' : 5696, 'SubgroupAvcMotionEstimationIntraINTEL' : 5697, 'SubgroupAvcMotionEstimationChromaINTEL' : 5698, 'VariableLengthArrayINTEL' : 5817, 'FunctionFloatControlINTEL' : 5821, 'FPGAMemoryAttributesINTEL' : 5824, 'FPFastMathModeINTEL' : 5837, 'ArbitraryPrecisionIntegersINTEL' : 5844, 'ArbitraryPrecisionFloatingPointINTEL' : 5845, 'UnstructuredLoopControlsINTEL' : 5886, 'FPGALoopControlsINTEL' : 5888, 'KernelAttributesINTEL' : 5892, 'FPGAKernelAttributesINTEL' : 5897, 'FPGAMemoryAccessesINTEL' : 5898, 'FPGAClusterAttributesINTEL' : 5904, 'LoopFuseINTEL' : 5906, 'FPGADSPControlINTEL' : 5908, 'MemoryAccessAliasingINTEL' : 5910, 'FPGAInvocationPipeliningAttributesINTEL' : 5916, 'FPGABufferLocationINTEL' : 5920, 'ArbitraryPrecisionFixedPointINTEL' : 5922, 'USMStorageClassesINTEL' : 5935, 'RuntimeAlignedAttributeINTEL' : 5939, 'IOPipesINTEL' : 5943, 'BlockingPipesINTEL' : 5945, 'FPGARegINTEL' : 5948, 'DotProductInputAll' : 6016, 'DotProductInputAllKHR' : 6016, 'DotProductInput4x8Bit' : 6017, 'DotProductInput4x8BitKHR' : 6017, 'DotProductInput4x8BitPacked' : 6018, 'DotProductInput4x8BitPackedKHR' : 6018, 'DotProduct' : 6019, 'DotProductKHR' : 6019, 'RayCullMaskKHR' : 6020, 'CooperativeMatrixKHR' : 6022, 'ReplicatedCompositesEXT' : 6024, 'BitInstructions' : 6025, 'GroupNonUniformRotateKHR' : 6026, 'FloatControls2' : 6029, 'AtomicFloat32AddEXT' : 6033, 'AtomicFloat64AddEXT' : 6034, 'LongCompositesINTEL' : 6089, 'OptNoneINTEL' : 6094, 'AtomicFloat16AddEXT' : 6095, 'DebugInfoModuleINTEL' : 6114, 'BFloat16ConversionINTEL' : 6115, 'SplitBarrierINTEL' : 6141, 'FPGAClusterAttributesV2INTEL' : 6150, 'FPGAKernelAttributesv2INTEL' : 6161, 'FPMaxErrorINTEL' : 6169, 'FPGALatencyControlINTEL' : 6171, 'FPGAArgumentInterfacesINTEL' : 6174, 'GlobalVariableHostAccessINTEL' : 6187, 'GlobalVariableFPGADecorationsINTEL' : 6189, 'GroupUniformArithmeticKHR' : 6400, 'MaskedGatherScatterINTEL' : 6427, 'CacheControlsINTEL' : 6441, 'RegisterLimitsINTEL' : 6460, }, 'RayFlagsShift' : { 'OpaqueKHR' : 0, 'NoOpaqueKHR' : 1, 'TerminateOnFirstHitKHR' : 2, 'SkipClosestHitShaderKHR' : 3, 'CullBackFacingTrianglesKHR' : 4, 'CullFrontFacingTrianglesKHR' : 5, 'CullOpaqueKHR' : 6, 'CullNoOpaqueKHR' : 7, 'SkipTrianglesKHR' : 8, 'SkipAABBsKHR' : 9, 'ForceOpacityMicromap2StateEXT' : 10, }, 'RayFlagsMask' : { 'MaskNone' : 0, 'OpaqueKHR' : 0x00000001, 'NoOpaqueKHR' : 0x00000002, 'TerminateOnFirstHitKHR' : 0x00000004, 'SkipClosestHitShaderKHR' : 0x00000008, 'CullBackFacingTrianglesKHR' : 0x00000010, 'CullFrontFacingTrianglesKHR' : 0x00000020, 'CullOpaqueKHR' : 0x00000040, 'CullNoOpaqueKHR' : 0x00000080, 'SkipTrianglesKHR' : 0x00000100, 'SkipAABBsKHR' : 0x00000200, 'ForceOpacityMicromap2StateEXT' : 0x00000400, }, 'RayQueryIntersection' : { 'RayQueryCandidateIntersectionKHR' : 0, 'RayQueryCommittedIntersectionKHR' : 1, }, 'RayQueryCommittedIntersectionType' : { 'RayQueryCommittedIntersectionNoneKHR' : 0, 'RayQueryCommittedIntersectionTriangleKHR' : 1, 'RayQueryCommittedIntersectionGeneratedKHR' : 2, }, 'RayQueryCandidateIntersectionType' : { 'RayQueryCandidateIntersectionTriangleKHR' : 0, 'RayQueryCandidateIntersectionAABBKHR' : 1, }, 'FragmentShadingRateShift' : { 'Vertical2Pixels' : 0, 'Vertical4Pixels' : 1, 'Horizontal2Pixels' : 2, 'Horizontal4Pixels' : 3, }, 'FragmentShadingRateMask' : { 'MaskNone' : 0, 'Vertical2Pixels' : 0x00000001, 'Vertical4Pixels' : 0x00000002, 'Horizontal2Pixels' : 0x00000004, 'Horizontal4Pixels' : 0x00000008, }, 'FPDenormMode' : { 'Preserve' : 0, 'FlushToZero' : 1, }, 'FPOperationMode' : { 'IEEE' : 0, 'ALT' : 1, }, 'QuantizationModes' : { 'TRN' : 0, 'TRN_ZERO' : 1, 'RND' : 2, 'RND_ZERO' : 3, 'RND_INF' : 4, 'RND_MIN_INF' : 5, 'RND_CONV' : 6, 'RND_CONV_ODD' : 7, }, 'OverflowModes' : { 'WRAP' : 0, 'SAT' : 1, 'SAT_ZERO' : 2, 'SAT_SYM' : 3, }, 'PackedVectorFormat' : { 'PackedVectorFormat4x8Bit' : 0, 'PackedVectorFormat4x8BitKHR' : 0, }, 'CooperativeMatrixOperandsShift' : { 'MatrixASignedComponentsKHR' : 0, 'MatrixBSignedComponentsKHR' : 1, 'MatrixCSignedComponentsKHR' : 2, 'MatrixResultSignedComponentsKHR' : 3, 'SaturatingAccumulationKHR' : 4, }, 'CooperativeMatrixOperandsMask' : { 'MaskNone' : 0, 'MatrixASignedComponentsKHR' : 0x00000001, 'MatrixBSignedComponentsKHR' : 0x00000002, 'MatrixCSignedComponentsKHR' : 0x00000004, 'MatrixResultSignedComponentsKHR' : 0x00000008, 'SaturatingAccumulationKHR' : 0x00000010, }, 'CooperativeMatrixLayout' : { 'RowMajorKHR' : 0, 'ColumnMajorKHR' : 1, 'RowBlockedInterleavedARM' : 4202, 'ColumnBlockedInterleavedARM' : 4203, }, 'CooperativeMatrixUse' : { 'MatrixAKHR' : 0, 'MatrixBKHR' : 1, 'MatrixAccumulatorKHR' : 2, }, 'InitializationModeQualifier' : { 'InitOnDeviceReprogramINTEL' : 0, 'InitOnDeviceResetINTEL' : 1, }, 'HostAccessQualifier' : { 'NoneINTEL' : 0, 'ReadINTEL' : 1, 'WriteINTEL' : 2, 'ReadWriteINTEL' : 3, }, 'LoadCacheControl' : { 'UncachedINTEL' : 0, 'CachedINTEL' : 1, 'StreamingINTEL' : 2, 'InvalidateAfterReadINTEL' : 3, 'ConstCachedINTEL' : 4, }, 'StoreCacheControl' : { 'UncachedINTEL' : 0, 'WriteThroughINTEL' : 1, 'WriteBackINTEL' : 2, 'StreamingINTEL' : 3, }, 'NamedMaximumNumberOfRegisters' : { 'AutoINTEL' : 0, }, 'RawAccessChainOperandsShift' : { 'RobustnessPerComponentNV' : 0, 'RobustnessPerElementNV' : 1, }, 'RawAccessChainOperandsMask' : { 'MaskNone' : 0, 'RobustnessPerComponentNV' : 0x00000001, 'RobustnessPerElementNV' : 0x00000002, }, 'Op' : { 'OpNop' : 0, 'OpUndef' : 1, 'OpSourceContinued' : 2, 'OpSource' : 3, 'OpSourceExtension' : 4, 'OpName' : 5, 'OpMemberName' : 6, 'OpString' : 7, 'OpLine' : 8, 'OpExtension' : 10, 'OpExtInstImport' : 11, 'OpExtInst' : 12, 'OpMemoryModel' : 14, 'OpEntryPoint' : 15, 'OpExecutionMode' : 16, 'OpCapability' : 17, 'OpTypeVoid' : 19, 'OpTypeBool' : 20, 'OpTypeInt' : 21, 'OpTypeFloat' : 22, 'OpTypeVector' : 23, 'OpTypeMatrix' : 24, 'OpTypeImage' : 25, 'OpTypeSampler' : 26, 'OpTypeSampledImage' : 27, 'OpTypeArray' : 28, 'OpTypeRuntimeArray' : 29, 'OpTypeStruct' : 30, 'OpTypeOpaque' : 31, 'OpTypePointer' : 32, 'OpTypeFunction' : 33, 'OpTypeEvent' : 34, 'OpTypeDeviceEvent' : 35, 'OpTypeReserveId' : 36, 'OpTypeQueue' : 37, 'OpTypePipe' : 38, 'OpTypeForwardPointer' : 39, 'OpConstantTrue' : 41, 'OpConstantFalse' : 42, 'OpConstant' : 43, 'OpConstantComposite' : 44, 'OpConstantSampler' : 45, 'OpConstantNull' : 46, 'OpSpecConstantTrue' : 48, 'OpSpecConstantFalse' : 49, 'OpSpecConstant' : 50, 'OpSpecConstantComposite' : 51, 'OpSpecConstantOp' : 52, 'OpFunction' : 54, 'OpFunctionParameter' : 55, 'OpFunctionEnd' : 56, 'OpFunctionCall' : 57, 'OpVariable' : 59, 'OpImageTexelPointer' : 60, 'OpLoad' : 61, 'OpStore' : 62, 'OpCopyMemory' : 63, 'OpCopyMemorySized' : 64, 'OpAccessChain' : 65, 'OpInBoundsAccessChain' : 66, 'OpPtrAccessChain' : 67, 'OpArrayLength' : 68, 'OpGenericPtrMemSemantics' : 69, 'OpInBoundsPtrAccessChain' : 70, 'OpDecorate' : 71, 'OpMemberDecorate' : 72, 'OpDecorationGroup' : 73, 'OpGroupDecorate' : 74, 'OpGroupMemberDecorate' : 75, 'OpVectorExtractDynamic' : 77, 'OpVectorInsertDynamic' : 78, 'OpVectorShuffle' : 79, 'OpCompositeConstruct' : 80, 'OpCompositeExtract' : 81, 'OpCompositeInsert' : 82, 'OpCopyObject' : 83, 'OpTranspose' : 84, 'OpSampledImage' : 86, 'OpImageSampleImplicitLod' : 87, 'OpImageSampleExplicitLod' : 88, 'OpImageSampleDrefImplicitLod' : 89, 'OpImageSampleDrefExplicitLod' : 90, 'OpImageSampleProjImplicitLod' : 91, 'OpImageSampleProjExplicitLod' : 92, 'OpImageSampleProjDrefImplicitLod' : 93, 'OpImageSampleProjDrefExplicitLod' : 94, 'OpImageFetch' : 95, 'OpImageGather' : 96, 'OpImageDrefGather' : 97, 'OpImageRead' : 98, 'OpImageWrite' : 99, 'OpImage' : 100, 'OpImageQueryFormat' : 101, 'OpImageQueryOrder' : 102, 'OpImageQuerySizeLod' : 103, 'OpImageQuerySize' : 104, 'OpImageQueryLod' : 105, 'OpImageQueryLevels' : 106, 'OpImageQuerySamples' : 107, 'OpConvertFToU' : 109, 'OpConvertFToS' : 110, 'OpConvertSToF' : 111, 'OpConvertUToF' : 112, 'OpUConvert' : 113, 'OpSConvert' : 114, 'OpFConvert' : 115, 'OpQuantizeToF16' : 116, 'OpConvertPtrToU' : 117, 'OpSatConvertSToU' : 118, 'OpSatConvertUToS' : 119, 'OpConvertUToPtr' : 120, 'OpPtrCastToGeneric' : 121, 'OpGenericCastToPtr' : 122, 'OpGenericCastToPtrExplicit' : 123, 'OpBitcast' : 124, 'OpSNegate' : 126, 'OpFNegate' : 127, 'OpIAdd' : 128, 'OpFAdd' : 129, 'OpISub' : 130, 'OpFSub' : 131, 'OpIMul' : 132, 'OpFMul' : 133, 'OpUDiv' : 134, 'OpSDiv' : 135, 'OpFDiv' : 136, 'OpUMod' : 137, 'OpSRem' : 138, 'OpSMod' : 139, 'OpFRem' : 140, 'OpFMod' : 141, 'OpVectorTimesScalar' : 142, 'OpMatrixTimesScalar' : 143, 'OpVectorTimesMatrix' : 144, 'OpMatrixTimesVector' : 145, 'OpMatrixTimesMatrix' : 146, 'OpOuterProduct' : 147, 'OpDot' : 148, 'OpIAddCarry' : 149, 'OpISubBorrow' : 150, 'OpUMulExtended' : 151, 'OpSMulExtended' : 152, 'OpAny' : 154, 'OpAll' : 155, 'OpIsNan' : 156, 'OpIsInf' : 157, 'OpIsFinite' : 158, 'OpIsNormal' : 159, 'OpSignBitSet' : 160, 'OpLessOrGreater' : 161, 'OpOrdered' : 162, 'OpUnordered' : 163, 'OpLogicalEqual' : 164, 'OpLogicalNotEqual' : 165, 'OpLogicalOr' : 166, 'OpLogicalAnd' : 167, 'OpLogicalNot' : 168, 'OpSelect' : 169, 'OpIEqual' : 170, 'OpINotEqual' : 171, 'OpUGreaterThan' : 172, 'OpSGreaterThan' : 173, 'OpUGreaterThanEqual' : 174, 'OpSGreaterThanEqual' : 175, 'OpULessThan' : 176, 'OpSLessThan' : 177, 'OpULessThanEqual' : 178, 'OpSLessThanEqual' : 179, 'OpFOrdEqual' : 180, 'OpFUnordEqual' : 181, 'OpFOrdNotEqual' : 182, 'OpFUnordNotEqual' : 183, 'OpFOrdLessThan' : 184, 'OpFUnordLessThan' : 185, 'OpFOrdGreaterThan' : 186, 'OpFUnordGreaterThan' : 187, 'OpFOrdLessThanEqual' : 188, 'OpFUnordLessThanEqual' : 189, 'OpFOrdGreaterThanEqual' : 190, 'OpFUnordGreaterThanEqual' : 191, 'OpShiftRightLogical' : 194, 'OpShiftRightArithmetic' : 195, 'OpShiftLeftLogical' : 196, 'OpBitwiseOr' : 197, 'OpBitwiseXor' : 198, 'OpBitwiseAnd' : 199, 'OpNot' : 200, 'OpBitFieldInsert' : 201, 'OpBitFieldSExtract' : 202, 'OpBitFieldUExtract' : 203, 'OpBitReverse' : 204, 'OpBitCount' : 205, 'OpDPdx' : 207, 'OpDPdy' : 208, 'OpFwidth' : 209, 'OpDPdxFine' : 210, 'OpDPdyFine' : 211, 'OpFwidthFine' : 212, 'OpDPdxCoarse' : 213, 'OpDPdyCoarse' : 214, 'OpFwidthCoarse' : 215, 'OpEmitVertex' : 218, 'OpEndPrimitive' : 219, 'OpEmitStreamVertex' : 220, 'OpEndStreamPrimitive' : 221, 'OpControlBarrier' : 224, 'OpMemoryBarrier' : 225, 'OpAtomicLoad' : 227, 'OpAtomicStore' : 228, 'OpAtomicExchange' : 229, 'OpAtomicCompareExchange' : 230, 'OpAtomicCompareExchangeWeak' : 231, 'OpAtomicIIncrement' : 232, 'OpAtomicIDecrement' : 233, 'OpAtomicIAdd' : 234, 'OpAtomicISub' : 235, 'OpAtomicSMin' : 236, 'OpAtomicUMin' : 237, 'OpAtomicSMax' : 238, 'OpAtomicUMax' : 239, 'OpAtomicAnd' : 240, 'OpAtomicOr' : 241, 'OpAtomicXor' : 242, 'OpPhi' : 245, 'OpLoopMerge' : 246, 'OpSelectionMerge' : 247, 'OpLabel' : 248, 'OpBranch' : 249, 'OpBranchConditional' : 250, 'OpSwitch' : 251, 'OpKill' : 252, 'OpReturn' : 253, 'OpReturnValue' : 254, 'OpUnreachable' : 255, 'OpLifetimeStart' : 256, 'OpLifetimeStop' : 257, 'OpGroupAsyncCopy' : 259, 'OpGroupWaitEvents' : 260, 'OpGroupAll' : 261, 'OpGroupAny' : 262, 'OpGroupBroadcast' : 263, 'OpGroupIAdd' : 264, 'OpGroupFAdd' : 265, 'OpGroupFMin' : 266, 'OpGroupUMin' : 267, 'OpGroupSMin' : 268, 'OpGroupFMax' : 269, 'OpGroupUMax' : 270, 'OpGroupSMax' : 271, 'OpReadPipe' : 274, 'OpWritePipe' : 275, 'OpReservedReadPipe' : 276, 'OpReservedWritePipe' : 277, 'OpReserveReadPipePackets' : 278, 'OpReserveWritePipePackets' : 279, 'OpCommitReadPipe' : 280, 'OpCommitWritePipe' : 281, 'OpIsValidReserveId' : 282, 'OpGetNumPipePackets' : 283, 'OpGetMaxPipePackets' : 284, 'OpGroupReserveReadPipePackets' : 285, 'OpGroupReserveWritePipePackets' : 286, 'OpGroupCommitReadPipe' : 287, 'OpGroupCommitWritePipe' : 288, 'OpEnqueueMarker' : 291, 'OpEnqueueKernel' : 292, 'OpGetKernelNDrangeSubGroupCount' : 293, 'OpGetKernelNDrangeMaxSubGroupSize' : 294, 'OpGetKernelWorkGroupSize' : 295, 'OpGetKernelPreferredWorkGroupSizeMultiple' : 296, 'OpRetainEvent' : 297, 'OpReleaseEvent' : 298, 'OpCreateUserEvent' : 299, 'OpIsValidEvent' : 300, 'OpSetUserEventStatus' : 301, 'OpCaptureEventProfilingInfo' : 302, 'OpGetDefaultQueue' : 303, 'OpBuildNDRange' : 304, 'OpImageSparseSampleImplicitLod' : 305, 'OpImageSparseSampleExplicitLod' : 306, 'OpImageSparseSampleDrefImplicitLod' : 307, 'OpImageSparseSampleDrefExplicitLod' : 308, 'OpImageSparseSampleProjImplicitLod' : 309, 'OpImageSparseSampleProjExplicitLod' : 310, 'OpImageSparseSampleProjDrefImplicitLod' : 311, 'OpImageSparseSampleProjDrefExplicitLod' : 312, 'OpImageSparseFetch' : 313, 'OpImageSparseGather' : 314, 'OpImageSparseDrefGather' : 315, 'OpImageSparseTexelsResident' : 316, 'OpNoLine' : 317, 'OpAtomicFlagTestAndSet' : 318, 'OpAtomicFlagClear' : 319, 'OpImageSparseRead' : 320, 'OpSizeOf' : 321, 'OpTypePipeStorage' : 322, 'OpConstantPipeStorage' : 323, 'OpCreatePipeFromPipeStorage' : 324, 'OpGetKernelLocalSizeForSubgroupCount' : 325, 'OpGetKernelMaxNumSubgroups' : 326, 'OpTypeNamedBarrier' : 327, 'OpNamedBarrierInitialize' : 328, 'OpMemoryNamedBarrier' : 329, 'OpModuleProcessed' : 330, 'OpExecutionModeId' : 331, 'OpDecorateId' : 332, 'OpGroupNonUniformElect' : 333, 'OpGroupNonUniformAll' : 334, 'OpGroupNonUniformAny' : 335, 'OpGroupNonUniformAllEqual' : 336, 'OpGroupNonUniformBroadcast' : 337, 'OpGroupNonUniformBroadcastFirst' : 338, 'OpGroupNonUniformBallot' : 339, 'OpGroupNonUniformInverseBallot' : 340, 'OpGroupNonUniformBallotBitExtract' : 341, 'OpGroupNonUniformBallotBitCount' : 342, 'OpGroupNonUniformBallotFindLSB' : 343, 'OpGroupNonUniformBallotFindMSB' : 344, 'OpGroupNonUniformShuffle' : 345, 'OpGroupNonUniformShuffleXor' : 346, 'OpGroupNonUniformShuffleUp' : 347, 'OpGroupNonUniformShuffleDown' : 348, 'OpGroupNonUniformIAdd' : 349, 'OpGroupNonUniformFAdd' : 350, 'OpGroupNonUniformIMul' : 351, 'OpGroupNonUniformFMul' : 352, 'OpGroupNonUniformSMin' : 353, 'OpGroupNonUniformUMin' : 354, 'OpGroupNonUniformFMin' : 355, 'OpGroupNonUniformSMax' : 356, 'OpGroupNonUniformUMax' : 357, 'OpGroupNonUniformFMax' : 358, 'OpGroupNonUniformBitwiseAnd' : 359, 'OpGroupNonUniformBitwiseOr' : 360, 'OpGroupNonUniformBitwiseXor' : 361, 'OpGroupNonUniformLogicalAnd' : 362, 'OpGroupNonUniformLogicalOr' : 363, 'OpGroupNonUniformLogicalXor' : 364, 'OpGroupNonUniformQuadBroadcast' : 365, 'OpGroupNonUniformQuadSwap' : 366, 'OpCopyLogical' : 400, 'OpPtrEqual' : 401, 'OpPtrNotEqual' : 402, 'OpPtrDiff' : 403, 'OpColorAttachmentReadEXT' : 4160, 'OpDepthAttachmentReadEXT' : 4161, 'OpStencilAttachmentReadEXT' : 4162, 'OpTerminateInvocation' : 4416, 'OpSubgroupBallotKHR' : 4421, 'OpSubgroupFirstInvocationKHR' : 4422, 'OpSubgroupAllKHR' : 4428, 'OpSubgroupAnyKHR' : 4429, 'OpSubgroupAllEqualKHR' : 4430, 'OpGroupNonUniformRotateKHR' : 4431, 'OpSubgroupReadInvocationKHR' : 4432, 'OpExtInstWithForwardRefsKHR' : 4433, 'OpTraceRayKHR' : 4445, 'OpExecuteCallableKHR' : 4446, 'OpConvertUToAccelerationStructureKHR' : 4447, 'OpIgnoreIntersectionKHR' : 4448, 'OpTerminateRayKHR' : 4449, 'OpSDot' : 4450, 'OpSDotKHR' : 4450, 'OpUDot' : 4451, 'OpUDotKHR' : 4451, 'OpSUDot' : 4452, 'OpSUDotKHR' : 4452, 'OpSDotAccSat' : 4453, 'OpSDotAccSatKHR' : 4453, 'OpUDotAccSat' : 4454, 'OpUDotAccSatKHR' : 4454, 'OpSUDotAccSat' : 4455, 'OpSUDotAccSatKHR' : 4455, 'OpTypeCooperativeMatrixKHR' : 4456, 'OpCooperativeMatrixLoadKHR' : 4457, 'OpCooperativeMatrixStoreKHR' : 4458, 'OpCooperativeMatrixMulAddKHR' : 4459, 'OpCooperativeMatrixLengthKHR' : 4460, 'OpConstantCompositeReplicateEXT' : 4461, 'OpSpecConstantCompositeReplicateEXT' : 4462, 'OpCompositeConstructReplicateEXT' : 4463, 'OpTypeRayQueryKHR' : 4472, 'OpRayQueryInitializeKHR' : 4473, 'OpRayQueryTerminateKHR' : 4474, 'OpRayQueryGenerateIntersectionKHR' : 4475, 'OpRayQueryConfirmIntersectionKHR' : 4476, 'OpRayQueryProceedKHR' : 4477, 'OpRayQueryGetIntersectionTypeKHR' : 4479, 'OpImageSampleWeightedQCOM' : 4480, 'OpImageBoxFilterQCOM' : 4481, 'OpImageBlockMatchSSDQCOM' : 4482, 'OpImageBlockMatchSADQCOM' : 4483, 'OpImageBlockMatchWindowSSDQCOM' : 4500, 'OpImageBlockMatchWindowSADQCOM' : 4501, 'OpImageBlockMatchGatherSSDQCOM' : 4502, 'OpImageBlockMatchGatherSADQCOM' : 4503, 'OpGroupIAddNonUniformAMD' : 5000, 'OpGroupFAddNonUniformAMD' : 5001, 'OpGroupFMinNonUniformAMD' : 5002, 'OpGroupUMinNonUniformAMD' : 5003, 'OpGroupSMinNonUniformAMD' : 5004, 'OpGroupFMaxNonUniformAMD' : 5005, 'OpGroupUMaxNonUniformAMD' : 5006, 'OpGroupSMaxNonUniformAMD' : 5007, 'OpFragmentMaskFetchAMD' : 5011, 'OpFragmentFetchAMD' : 5012, 'OpReadClockKHR' : 5056, 'OpFinalizeNodePayloadsAMDX' : 5075, 'OpFinishWritingNodePayloadAMDX' : 5078, 'OpInitializeNodePayloadsAMDX' : 5090, 'OpGroupNonUniformQuadAllKHR' : 5110, 'OpGroupNonUniformQuadAnyKHR' : 5111, 'OpHitObjectRecordHitMotionNV' : 5249, 'OpHitObjectRecordHitWithIndexMotionNV' : 5250, 'OpHitObjectRecordMissMotionNV' : 5251, 'OpHitObjectGetWorldToObjectNV' : 5252, 'OpHitObjectGetObjectToWorldNV' : 5253, 'OpHitObjectGetObjectRayDirectionNV' : 5254, 'OpHitObjectGetObjectRayOriginNV' : 5255, 'OpHitObjectTraceRayMotionNV' : 5256, 'OpHitObjectGetShaderRecordBufferHandleNV' : 5257, 'OpHitObjectGetShaderBindingTableRecordIndexNV' : 5258, 'OpHitObjectRecordEmptyNV' : 5259, 'OpHitObjectTraceRayNV' : 5260, 'OpHitObjectRecordHitNV' : 5261, 'OpHitObjectRecordHitWithIndexNV' : 5262, 'OpHitObjectRecordMissNV' : 5263, 'OpHitObjectExecuteShaderNV' : 5264, 'OpHitObjectGetCurrentTimeNV' : 5265, 'OpHitObjectGetAttributesNV' : 5266, 'OpHitObjectGetHitKindNV' : 5267, 'OpHitObjectGetPrimitiveIndexNV' : 5268, 'OpHitObjectGetGeometryIndexNV' : 5269, 'OpHitObjectGetInstanceIdNV' : 5270, 'OpHitObjectGetInstanceCustomIndexNV' : 5271, 'OpHitObjectGetWorldRayDirectionNV' : 5272, 'OpHitObjectGetWorldRayOriginNV' : 5273, 'OpHitObjectGetRayTMaxNV' : 5274, 'OpHitObjectGetRayTMinNV' : 5275, 'OpHitObjectIsEmptyNV' : 5276, 'OpHitObjectIsHitNV' : 5277, 'OpHitObjectIsMissNV' : 5278, 'OpReorderThreadWithHitObjectNV' : 5279, 'OpReorderThreadWithHintNV' : 5280, 'OpTypeHitObjectNV' : 5281, 'OpImageSampleFootprintNV' : 5283, 'OpEmitMeshTasksEXT' : 5294, 'OpSetMeshOutputsEXT' : 5295, 'OpGroupNonUniformPartitionNV' : 5296, 'OpWritePackedPrimitiveIndices4x8NV' : 5299, 'OpFetchMicroTriangleVertexPositionNV' : 5300, 'OpFetchMicroTriangleVertexBarycentricNV' : 5301, 'OpReportIntersectionKHR' : 5334, 'OpReportIntersectionNV' : 5334, 'OpIgnoreIntersectionNV' : 5335, 'OpTerminateRayNV' : 5336, 'OpTraceNV' : 5337, 'OpTraceMotionNV' : 5338, 'OpTraceRayMotionNV' : 5339, 'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340, 'OpTypeAccelerationStructureKHR' : 5341, 'OpTypeAccelerationStructureNV' : 5341, 'OpExecuteCallableNV' : 5344, 'OpTypeCooperativeMatrixNV' : 5358, 'OpCooperativeMatrixLoadNV' : 5359, 'OpCooperativeMatrixStoreNV' : 5360, 'OpCooperativeMatrixMulAddNV' : 5361, 'OpCooperativeMatrixLengthNV' : 5362, 'OpBeginInvocationInterlockEXT' : 5364, 'OpEndInvocationInterlockEXT' : 5365, 'OpDemoteToHelperInvocation' : 5380, 'OpDemoteToHelperInvocationEXT' : 5380, 'OpIsHelperInvocationEXT' : 5381, 'OpConvertUToImageNV' : 5391, 'OpConvertUToSamplerNV' : 5392, 'OpConvertImageToUNV' : 5393, 'OpConvertSamplerToUNV' : 5394, 'OpConvertUToSampledImageNV' : 5395, 'OpConvertSampledImageToUNV' : 5396, 'OpSamplerImageAddressingModeNV' : 5397, 'OpRawAccessChainNV' : 5398, 'OpSubgroupShuffleINTEL' : 5571, 'OpSubgroupShuffleDownINTEL' : 5572, 'OpSubgroupShuffleUpINTEL' : 5573, 'OpSubgroupShuffleXorINTEL' : 5574, 'OpSubgroupBlockReadINTEL' : 5575, 'OpSubgroupBlockWriteINTEL' : 5576, 'OpSubgroupImageBlockReadINTEL' : 5577, 'OpSubgroupImageBlockWriteINTEL' : 5578, 'OpSubgroupImageMediaBlockReadINTEL' : 5580, 'OpSubgroupImageMediaBlockWriteINTEL' : 5581, 'OpUCountLeadingZerosINTEL' : 5585, 'OpUCountTrailingZerosINTEL' : 5586, 'OpAbsISubINTEL' : 5587, 'OpAbsUSubINTEL' : 5588, 'OpIAddSatINTEL' : 5589, 'OpUAddSatINTEL' : 5590, 'OpIAverageINTEL' : 5591, 'OpUAverageINTEL' : 5592, 'OpIAverageRoundedINTEL' : 5593, 'OpUAverageRoundedINTEL' : 5594, 'OpISubSatINTEL' : 5595, 'OpUSubSatINTEL' : 5596, 'OpIMul32x16INTEL' : 5597, 'OpUMul32x16INTEL' : 5598, 'OpConstantFunctionPointerINTEL' : 5600, 'OpFunctionPointerCallINTEL' : 5601, 'OpAsmTargetINTEL' : 5609, 'OpAsmINTEL' : 5610, 'OpAsmCallINTEL' : 5611, 'OpAtomicFMinEXT' : 5614, 'OpAtomicFMaxEXT' : 5615, 'OpAssumeTrueKHR' : 5630, 'OpExpectKHR' : 5631, 'OpDecorateString' : 5632, 'OpDecorateStringGOOGLE' : 5632, 'OpMemberDecorateString' : 5633, 'OpMemberDecorateStringGOOGLE' : 5633, 'OpVmeImageINTEL' : 5699, 'OpTypeVmeImageINTEL' : 5700, 'OpTypeAvcImePayloadINTEL' : 5701, 'OpTypeAvcRefPayloadINTEL' : 5702, 'OpTypeAvcSicPayloadINTEL' : 5703, 'OpTypeAvcMcePayloadINTEL' : 5704, 'OpTypeAvcMceResultINTEL' : 5705, 'OpTypeAvcImeResultINTEL' : 5706, 'OpTypeAvcImeResultSingleReferenceStreamoutINTEL' : 5707, 'OpTypeAvcImeResultDualReferenceStreamoutINTEL' : 5708, 'OpTypeAvcImeSingleReferenceStreaminINTEL' : 5709, 'OpTypeAvcImeDualReferenceStreaminINTEL' : 5710, 'OpTypeAvcRefResultINTEL' : 5711, 'OpTypeAvcSicResultINTEL' : 5712, 'OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL' : 5713, 'OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL' : 5714, 'OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL' : 5715, 'OpSubgroupAvcMceSetInterShapePenaltyINTEL' : 5716, 'OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL' : 5717, 'OpSubgroupAvcMceSetInterDirectionPenaltyINTEL' : 5718, 'OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL' : 5719, 'OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL' : 5720, 'OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL' : 5721, 'OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL' : 5722, 'OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL' : 5723, 'OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL' : 5724, 'OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL' : 5725, 'OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL' : 5726, 'OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL' : 5727, 'OpSubgroupAvcMceSetAcOnlyHaarINTEL' : 5728, 'OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL' : 5729, 'OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL' : 5730, 'OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL' : 5731, 'OpSubgroupAvcMceConvertToImePayloadINTEL' : 5732, 'OpSubgroupAvcMceConvertToImeResultINTEL' : 5733, 'OpSubgroupAvcMceConvertToRefPayloadINTEL' : 5734, 'OpSubgroupAvcMceConvertToRefResultINTEL' : 5735, 'OpSubgroupAvcMceConvertToSicPayloadINTEL' : 5736, 'OpSubgroupAvcMceConvertToSicResultINTEL' : 5737, 'OpSubgroupAvcMceGetMotionVectorsINTEL' : 5738, 'OpSubgroupAvcMceGetInterDistortionsINTEL' : 5739, 'OpSubgroupAvcMceGetBestInterDistortionsINTEL' : 5740, 'OpSubgroupAvcMceGetInterMajorShapeINTEL' : 5741, 'OpSubgroupAvcMceGetInterMinorShapeINTEL' : 5742, 'OpSubgroupAvcMceGetInterDirectionsINTEL' : 5743, 'OpSubgroupAvcMceGetInterMotionVectorCountINTEL' : 5744, 'OpSubgroupAvcMceGetInterReferenceIdsINTEL' : 5745, 'OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL' : 5746, 'OpSubgroupAvcImeInitializeINTEL' : 5747, 'OpSubgroupAvcImeSetSingleReferenceINTEL' : 5748, 'OpSubgroupAvcImeSetDualReferenceINTEL' : 5749, 'OpSubgroupAvcImeRefWindowSizeINTEL' : 5750, 'OpSubgroupAvcImeAdjustRefOffsetINTEL' : 5751, 'OpSubgroupAvcImeConvertToMcePayloadINTEL' : 5752, 'OpSubgroupAvcImeSetMaxMotionVectorCountINTEL' : 5753, 'OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL' : 5754, 'OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL' : 5755, 'OpSubgroupAvcImeSetWeightedSadINTEL' : 5756, 'OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL' : 5757, 'OpSubgroupAvcImeEvaluateWithDualReferenceINTEL' : 5758, 'OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL' : 5759, 'OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL' : 5760, 'OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL' : 5761, 'OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL' : 5762, 'OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL' : 5763, 'OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL' : 5764, 'OpSubgroupAvcImeConvertToMceResultINTEL' : 5765, 'OpSubgroupAvcImeGetSingleReferenceStreaminINTEL' : 5766, 'OpSubgroupAvcImeGetDualReferenceStreaminINTEL' : 5767, 'OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL' : 5768, 'OpSubgroupAvcImeStripDualReferenceStreamoutINTEL' : 5769, 'OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL' : 5770, 'OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL' : 5771, 'OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL' : 5772, 'OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL' : 5773, 'OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL' : 5774, 'OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL' : 5775, 'OpSubgroupAvcImeGetBorderReachedINTEL' : 5776, 'OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL' : 5777, 'OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL' : 5778, 'OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL' : 5779, 'OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL' : 5780, 'OpSubgroupAvcFmeInitializeINTEL' : 5781, 'OpSubgroupAvcBmeInitializeINTEL' : 5782, 'OpSubgroupAvcRefConvertToMcePayloadINTEL' : 5783, 'OpSubgroupAvcRefSetBidirectionalMixDisableINTEL' : 5784, 'OpSubgroupAvcRefSetBilinearFilterEnableINTEL' : 5785, 'OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL' : 5786, 'OpSubgroupAvcRefEvaluateWithDualReferenceINTEL' : 5787, 'OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL' : 5788, 'OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL' : 5789, 'OpSubgroupAvcRefConvertToMceResultINTEL' : 5790, 'OpSubgroupAvcSicInitializeINTEL' : 5791, 'OpSubgroupAvcSicConfigureSkcINTEL' : 5792, 'OpSubgroupAvcSicConfigureIpeLumaINTEL' : 5793, 'OpSubgroupAvcSicConfigureIpeLumaChromaINTEL' : 5794, 'OpSubgroupAvcSicGetMotionVectorMaskINTEL' : 5795, 'OpSubgroupAvcSicConvertToMcePayloadINTEL' : 5796, 'OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL' : 5797, 'OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL' : 5798, 'OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL' : 5799, 'OpSubgroupAvcSicSetBilinearFilterEnableINTEL' : 5800, 'OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL' : 5801, 'OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL' : 5802, 'OpSubgroupAvcSicEvaluateIpeINTEL' : 5803, 'OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL' : 5804, 'OpSubgroupAvcSicEvaluateWithDualReferenceINTEL' : 5805, 'OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL' : 5806, 'OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL' : 5807, 'OpSubgroupAvcSicConvertToMceResultINTEL' : 5808, 'OpSubgroupAvcSicGetIpeLumaShapeINTEL' : 5809, 'OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL' : 5810, 'OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL' : 5811, 'OpSubgroupAvcSicGetPackedIpeLumaModesINTEL' : 5812, 'OpSubgroupAvcSicGetIpeChromaModeINTEL' : 5813, 'OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL' : 5814, 'OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL' : 5815, 'OpSubgroupAvcSicGetInterRawSadsINTEL' : 5816, 'OpVariableLengthArrayINTEL' : 5818, 'OpSaveMemoryINTEL' : 5819, 'OpRestoreMemoryINTEL' : 5820, 'OpArbitraryFloatSinCosPiINTEL' : 5840, 'OpArbitraryFloatCastINTEL' : 5841, 'OpArbitraryFloatCastFromIntINTEL' : 5842, 'OpArbitraryFloatCastToIntINTEL' : 5843, 'OpArbitraryFloatAddINTEL' : 5846, 'OpArbitraryFloatSubINTEL' : 5847, 'OpArbitraryFloatMulINTEL' : 5848, 'OpArbitraryFloatDivINTEL' : 5849, 'OpArbitraryFloatGTINTEL' : 5850, 'OpArbitraryFloatGEINTEL' : 5851, 'OpArbitraryFloatLTINTEL' : 5852, 'OpArbitraryFloatLEINTEL' : 5853, 'OpArbitraryFloatEQINTEL' : 5854, 'OpArbitraryFloatRecipINTEL' : 5855, 'OpArbitraryFloatRSqrtINTEL' : 5856, 'OpArbitraryFloatCbrtINTEL' : 5857, 'OpArbitraryFloatHypotINTEL' : 5858, 'OpArbitraryFloatSqrtINTEL' : 5859, 'OpArbitraryFloatLogINTEL' : 5860, 'OpArbitraryFloatLog2INTEL' : 5861, 'OpArbitraryFloatLog10INTEL' : 5862, 'OpArbitraryFloatLog1pINTEL' : 5863, 'OpArbitraryFloatExpINTEL' : 5864, 'OpArbitraryFloatExp2INTEL' : 5865, 'OpArbitraryFloatExp10INTEL' : 5866, 'OpArbitraryFloatExpm1INTEL' : 5867, 'OpArbitraryFloatSinINTEL' : 5868, 'OpArbitraryFloatCosINTEL' : 5869, 'OpArbitraryFloatSinCosINTEL' : 5870, 'OpArbitraryFloatSinPiINTEL' : 5871, 'OpArbitraryFloatCosPiINTEL' : 5872, 'OpArbitraryFloatASinINTEL' : 5873, 'OpArbitraryFloatASinPiINTEL' : 5874, 'OpArbitraryFloatACosINTEL' : 5875, 'OpArbitraryFloatACosPiINTEL' : 5876, 'OpArbitraryFloatATanINTEL' : 5877, 'OpArbitraryFloatATanPiINTEL' : 5878, 'OpArbitraryFloatATan2INTEL' : 5879, 'OpArbitraryFloatPowINTEL' : 5880, 'OpArbitraryFloatPowRINTEL' : 5881, 'OpArbitraryFloatPowNINTEL' : 5882, 'OpLoopControlINTEL' : 5887, 'OpAliasDomainDeclINTEL' : 5911, 'OpAliasScopeDeclINTEL' : 5912, 'OpAliasScopeListDeclINTEL' : 5913, 'OpFixedSqrtINTEL' : 5923, 'OpFixedRecipINTEL' : 5924, 'OpFixedRsqrtINTEL' : 5925, 'OpFixedSinINTEL' : 5926, 'OpFixedCosINTEL' : 5927, 'OpFixedSinCosINTEL' : 5928, 'OpFixedSinPiINTEL' : 5929, 'OpFixedCosPiINTEL' : 5930, 'OpFixedSinCosPiINTEL' : 5931, 'OpFixedLogINTEL' : 5932, 'OpFixedExpINTEL' : 5933, 'OpPtrCastToCrossWorkgroupINTEL' : 5934, 'OpCrossWorkgroupCastToPtrINTEL' : 5938, 'OpReadPipeBlockingINTEL' : 5946, 'OpWritePipeBlockingINTEL' : 5947, 'OpFPGARegINTEL' : 5949, 'OpRayQueryGetRayTMinKHR' : 6016, 'OpRayQueryGetRayFlagsKHR' : 6017, 'OpRayQueryGetIntersectionTKHR' : 6018, 'OpRayQueryGetIntersectionInstanceCustomIndexKHR' : 6019, 'OpRayQueryGetIntersectionInstanceIdKHR' : 6020, 'OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR' : 6021, 'OpRayQueryGetIntersectionGeometryIndexKHR' : 6022, 'OpRayQueryGetIntersectionPrimitiveIndexKHR' : 6023, 'OpRayQueryGetIntersectionBarycentricsKHR' : 6024, 'OpRayQueryGetIntersectionFrontFaceKHR' : 6025, 'OpRayQueryGetIntersectionCandidateAABBOpaqueKHR' : 6026, 'OpRayQueryGetIntersectionObjectRayDirectionKHR' : 6027, 'OpRayQueryGetIntersectionObjectRayOriginKHR' : 6028, 'OpRayQueryGetWorldRayDirectionKHR' : 6029, 'OpRayQueryGetWorldRayOriginKHR' : 6030, 'OpRayQueryGetIntersectionObjectToWorldKHR' : 6031, 'OpRayQueryGetIntersectionWorldToObjectKHR' : 6032, 'OpAtomicFAddEXT' : 6035, 'OpTypeBufferSurfaceINTEL' : 6086, 'OpTypeStructContinuedINTEL' : 6090, 'OpConstantCompositeContinuedINTEL' : 6091, 'OpSpecConstantCompositeContinuedINTEL' : 6092, 'OpCompositeConstructContinuedINTEL' : 6096, 'OpConvertFToBF16INTEL' : 6116, 'OpConvertBF16ToFINTEL' : 6117, 'OpControlBarrierArriveINTEL' : 6142, 'OpControlBarrierWaitINTEL' : 6143, 'OpGroupIMulKHR' : 6401, 'OpGroupFMulKHR' : 6402, 'OpGroupBitwiseAndKHR' : 6403, 'OpGroupBitwiseOrKHR' : 6404, 'OpGroupBitwiseXorKHR' : 6405, 'OpGroupLogicalAndKHR' : 6406, 'OpGroupLogicalOrKHR' : 6407, 'OpGroupLogicalXorKHR' : 6408, 'OpMaskedGatherINTEL' : 6428, 'OpMaskedScatterINTEL' : 6429, }, } spirv-headers-1.6.1+1.3.290.0/include/spirv/unified1/spv.d000066400000000000000000001736561463234063200225330ustar00rootroot00000000000000/+ + Copyright (c) 2014-2024 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and/or associated documentation files (the "Materials"), + to deal in the Materials without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Materials, and to permit persons to whom the + Materials are furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Materials. + + MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS + STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND + HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS + IN THE MATERIALS. +/ /+ + This header is automatically generated by the same tool that creates + the Binary Section of the SPIR-V specification. +/ /+ + Enumeration tokens for SPIR-V, in various styles: + C, C++, C++11, JSON, Lua, Python, C#, D, Beef + + - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL + - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL + - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL + - Lua will use tables, e.g.: spv.SourceLanguage.GLSL + - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] + - C# will use enum classes in the Specification class located in the "Spv" namespace, + e.g.: Spv.Specification.SourceLanguage.GLSL + - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL + - Beef will use enum classes in the Specification class located in the "Spv" namespace, + e.g.: Spv.Specification.SourceLanguage.GLSL + + Some tokens act like mask values, which can be OR'd together, + while others are mutually exclusive. The mask-like ones have + "Mask" in their name, and a parallel enum that has the shift + amount (1 << x) for each corresponding enumerant. +/ module spv; enum uint MagicNumber = 0x07230203; enum uint Version = 0x00010600; enum uint Revision = 1; enum uint OpCodeMask = 0xffff; enum uint WordCountShift = 16; enum SourceLanguage : uint { Unknown = 0, ESSL = 1, GLSL = 2, OpenCL_C = 3, OpenCL_CPP = 4, HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, HERO_C = 8, NZSL = 9, WGSL = 10, Slang = 11, Zig = 12, } enum ExecutionModel : uint { Vertex = 0, TessellationControl = 1, TessellationEvaluation = 2, Geometry = 3, Fragment = 4, GLCompute = 5, Kernel = 6, TaskNV = 5267, MeshNV = 5268, RayGenerationKHR = 5313, RayGenerationNV = 5313, IntersectionKHR = 5314, IntersectionNV = 5314, AnyHitKHR = 5315, AnyHitNV = 5315, ClosestHitKHR = 5316, ClosestHitNV = 5316, MissKHR = 5317, MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, TaskEXT = 5364, MeshEXT = 5365, } enum AddressingModel : uint { Logical = 0, Physical32 = 1, Physical64 = 2, PhysicalStorageBuffer64 = 5348, PhysicalStorageBuffer64EXT = 5348, } enum MemoryModel : uint { Simple = 0, GLSL450 = 1, OpenCL = 2, Vulkan = 3, VulkanKHR = 3, } enum ExecutionMode : uint { Invocations = 0, SpacingEqual = 1, SpacingFractionalEven = 2, SpacingFractionalOdd = 3, VertexOrderCw = 4, VertexOrderCcw = 5, PixelCenterInteger = 6, OriginUpperLeft = 7, OriginLowerLeft = 8, EarlyFragmentTests = 9, PointMode = 10, Xfb = 11, DepthReplacing = 12, DepthGreater = 14, DepthLess = 15, DepthUnchanged = 16, LocalSize = 17, LocalSizeHint = 18, InputPoints = 19, InputLines = 20, InputLinesAdjacency = 21, Triangles = 22, InputTrianglesAdjacency = 23, Quads = 24, Isolines = 25, OutputVertices = 26, OutputPoints = 27, OutputLineStrip = 28, OutputTriangleStrip = 29, VecTypeHint = 30, ContractionOff = 31, Initializer = 33, Finalizer = 34, SubgroupSize = 35, SubgroupsPerWorkgroup = 36, SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, NonCoherentColorAttachmentReadEXT = 4169, NonCoherentDepthAttachmentReadEXT = 4170, NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, DenormFlushToZero = 4460, SignedZeroInfNanPreserve = 4461, RoundingModeRTE = 4462, RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, CoalescingAMDX = 5069, MaxNodeRecursionAMDX = 5071, StaticNumWorkgroupsAMDX = 5072, ShaderIndexAMDX = 5073, MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, QuadDerivativesKHR = 5088, RequireFullQuadsKHR = 5089, OutputLinesEXT = 5269, OutputLinesNV = 5269, OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, SampleInterlockOrderedEXT = 5368, SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, FloatingPointModeALTINTEL = 5622, FloatingPointModeIEEEINTEL = 5623, MaxWorkgroupSizeINTEL = 5893, MaxWorkDimINTEL = 5894, NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, MaximallyReconvergesKHR = 6023, FPFastMathDefault = 6028, StreamingInterfaceINTEL = 6154, RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, MaximumRegistersINTEL = 6461, MaximumRegistersIdINTEL = 6462, NamedMaximumRegistersINTEL = 6463, } enum StorageClass : uint { UniformConstant = 0, Input = 1, Uniform = 2, Output = 3, Workgroup = 4, CrossWorkgroup = 5, Private = 6, Function = 7, Generic = 8, PushConstant = 9, AtomicCounter = 10, Image = 11, StorageBuffer = 12, TileImageEXT = 4172, NodePayloadAMDX = 5068, NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, IncomingCallableDataNV = 5329, RayPayloadKHR = 5338, RayPayloadNV = 5338, HitAttributeKHR = 5339, HitAttributeNV = 5339, IncomingRayPayloadKHR = 5342, IncomingRayPayloadNV = 5342, ShaderRecordBufferKHR = 5343, ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, } enum Dim : uint { _1D = 0, _2D = 1, _3D = 2, Cube = 3, Rect = 4, Buffer = 5, SubpassData = 6, TileImageDataEXT = 4173, } enum SamplerAddressingMode : uint { None = 0, ClampToEdge = 1, Clamp = 2, Repeat = 3, RepeatMirrored = 4, } enum SamplerFilterMode : uint { Nearest = 0, Linear = 1, } enum ImageFormat : uint { Unknown = 0, Rgba32f = 1, Rgba16f = 2, R32f = 3, Rgba8 = 4, Rgba8Snorm = 5, Rg32f = 6, Rg16f = 7, R11fG11fB10f = 8, R16f = 9, Rgba16 = 10, Rgb10A2 = 11, Rg16 = 12, Rg8 = 13, R16 = 14, R8 = 15, Rgba16Snorm = 16, Rg16Snorm = 17, Rg8Snorm = 18, R16Snorm = 19, R8Snorm = 20, Rgba32i = 21, Rgba16i = 22, Rgba8i = 23, R32i = 24, Rg32i = 25, Rg16i = 26, Rg8i = 27, R16i = 28, R8i = 29, Rgba32ui = 30, Rgba16ui = 31, Rgba8ui = 32, R32ui = 33, Rgb10a2ui = 34, Rg32ui = 35, Rg16ui = 36, Rg8ui = 37, R16ui = 38, R8ui = 39, R64ui = 40, R64i = 41, } enum ImageChannelOrder : uint { R = 0, A = 1, RG = 2, RA = 3, RGB = 4, RGBA = 5, BGRA = 6, ARGB = 7, Intensity = 8, Luminance = 9, Rx = 10, RGx = 11, RGBx = 12, Depth = 13, DepthStencil = 14, sRGB = 15, sRGBx = 16, sRGBA = 17, sBGRA = 18, ABGR = 19, } enum ImageChannelDataType : uint { SnormInt8 = 0, SnormInt16 = 1, UnormInt8 = 2, UnormInt16 = 3, UnormShort565 = 4, UnormShort555 = 5, UnormInt101010 = 6, SignedInt8 = 7, SignedInt16 = 8, SignedInt32 = 9, UnsignedInt8 = 10, UnsignedInt16 = 11, UnsignedInt32 = 12, HalfFloat = 13, Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, UnsignedIntRaw10EXT = 19, UnsignedIntRaw12EXT = 20, } enum ImageOperandsShift : uint { Bias = 0, Lod = 1, Grad = 2, ConstOffset = 3, Offset = 4, ConstOffsets = 5, Sample = 6, MinLod = 7, MakeTexelAvailable = 8, MakeTexelAvailableKHR = 8, MakeTexelVisible = 9, MakeTexelVisibleKHR = 9, NonPrivateTexel = 10, NonPrivateTexelKHR = 10, VolatileTexel = 11, VolatileTexelKHR = 11, SignExtend = 12, ZeroExtend = 13, Nontemporal = 14, Offsets = 16, } enum ImageOperandsMask : uint { MaskNone = 0, Bias = 0x00000001, Lod = 0x00000002, Grad = 0x00000004, ConstOffset = 0x00000008, Offset = 0x00000010, ConstOffsets = 0x00000020, Sample = 0x00000040, MinLod = 0x00000080, MakeTexelAvailable = 0x00000100, MakeTexelAvailableKHR = 0x00000100, MakeTexelVisible = 0x00000200, MakeTexelVisibleKHR = 0x00000200, NonPrivateTexel = 0x00000400, NonPrivateTexelKHR = 0x00000400, VolatileTexel = 0x00000800, VolatileTexelKHR = 0x00000800, SignExtend = 0x00001000, ZeroExtend = 0x00002000, Nontemporal = 0x00004000, Offsets = 0x00010000, } enum FPFastMathModeShift : uint { NotNaN = 0, NotInf = 1, NSZ = 2, AllowRecip = 3, Fast = 4, AllowContract = 16, AllowContractFastINTEL = 16, AllowReassoc = 17, AllowReassocINTEL = 17, AllowTransform = 18, } enum FPFastMathModeMask : uint { MaskNone = 0, NotNaN = 0x00000001, NotInf = 0x00000002, NSZ = 0x00000004, AllowRecip = 0x00000008, Fast = 0x00000010, AllowContract = 0x00010000, AllowContractFastINTEL = 0x00010000, AllowReassoc = 0x00020000, AllowReassocINTEL = 0x00020000, AllowTransform = 0x00040000, } enum FPRoundingMode : uint { RTE = 0, RTZ = 1, RTP = 2, RTN = 3, } enum LinkageType : uint { Export = 0, Import = 1, LinkOnceODR = 2, } enum AccessQualifier : uint { ReadOnly = 0, WriteOnly = 1, ReadWrite = 2, } enum FunctionParameterAttribute : uint { Zext = 0, Sext = 1, ByVal = 2, Sret = 3, NoAlias = 4, NoCapture = 5, NoWrite = 6, NoReadWrite = 7, RuntimeAlignedINTEL = 5940, } enum Decoration : uint { RelaxedPrecision = 0, SpecId = 1, Block = 2, BufferBlock = 3, RowMajor = 4, ColMajor = 5, ArrayStride = 6, MatrixStride = 7, GLSLShared = 8, GLSLPacked = 9, CPacked = 10, BuiltIn = 11, NoPerspective = 13, Flat = 14, Patch = 15, Centroid = 16, Sample = 17, Invariant = 18, Restrict = 19, Aliased = 20, Volatile = 21, Constant = 22, Coherent = 23, NonWritable = 24, NonReadable = 25, Uniform = 26, UniformId = 27, SaturatedConversion = 28, Stream = 29, Location = 30, Component = 31, Index = 32, Binding = 33, DescriptorSet = 34, Offset = 35, XfbBuffer = 36, XfbStride = 37, FuncParamAttr = 38, FPRoundingMode = 39, FPFastMathMode = 40, LinkageAttributes = 41, NoContraction = 42, InputAttachmentIndex = 43, Alignment = 44, MaxByteOffset = 45, AlignmentId = 46, MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, WeightTextureQCOM = 4487, BlockMatchTextureQCOM = 4488, BlockMatchSamplerQCOM = 4499, ExplicitInterpAMD = 4999, NodeSharesPayloadLimitsWithAMDX = 5019, NodeMaxPayloadsAMDX = 5020, TrackFinishWritingAMDX = 5078, PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, PerVertexKHR = 5285, PerVertexNV = 5285, NonUniform = 5300, NonUniformEXT = 5300, RestrictPointer = 5355, RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, BoundImageNV = 5401, SIMTCallINTEL = 5599, ReferencedIndirectlyINTEL = 5602, ClobberINTEL = 5607, SideEffectsINTEL = 5608, VectorComputeVariableINTEL = 5624, FuncParamIOKindINTEL = 5625, VectorComputeFunctionINTEL = 5626, StackCallINTEL = 5627, GlobalVariableOffsetINTEL = 5628, CounterBuffer = 5634, HlslCounterBufferGOOGLE = 5634, HlslSemanticGOOGLE = 5635, UserSemantic = 5635, UserTypeGOOGLE = 5636, FunctionRoundingModeINTEL = 5822, FunctionDenormModeINTEL = 5823, RegisterINTEL = 5825, MemoryINTEL = 5826, NumbanksINTEL = 5827, BankwidthINTEL = 5828, MaxPrivateCopiesINTEL = 5829, SinglepumpINTEL = 5830, DoublepumpINTEL = 5831, MaxReplicatesINTEL = 5832, SimpleDualPortINTEL = 5833, MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, StridesizeINTEL = 5883, WordsizeINTEL = 5884, TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, InitiationIntervalINTEL = 5917, MaxConcurrencyINTEL = 5918, PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, StallFreeINTEL = 6151, FPMaxErrorDecorationINTEL = 6170, LatencyControlLabelINTEL = 6172, LatencyControlConstraintINTEL = 6173, ConduitKernelArgumentINTEL = 6175, RegisterMapKernelArgumentINTEL = 6176, MMHostInterfaceAddressWidthINTEL = 6177, MMHostInterfaceDataWidthINTEL = 6178, MMHostInterfaceLatencyINTEL = 6179, MMHostInterfaceReadWriteModeINTEL = 6180, MMHostInterfaceMaxBurstINTEL = 6181, MMHostInterfaceWaitRequestINTEL = 6182, StableKernelArgumentINTEL = 6183, HostAccessINTEL = 6188, InitModeINTEL = 6190, ImplementInRegisterMapINTEL = 6191, CacheControlLoadINTEL = 6442, CacheControlStoreINTEL = 6443, } enum BuiltIn : uint { Position = 0, PointSize = 1, ClipDistance = 3, CullDistance = 4, VertexId = 5, InstanceId = 6, PrimitiveId = 7, InvocationId = 8, Layer = 9, ViewportIndex = 10, TessLevelOuter = 11, TessLevelInner = 12, TessCoord = 13, PatchVertices = 14, FragCoord = 15, PointCoord = 16, FrontFacing = 17, SampleId = 18, SamplePosition = 19, SampleMask = 20, FragDepth = 22, HelperInvocation = 23, NumWorkgroups = 24, WorkgroupSize = 25, WorkgroupId = 26, LocalInvocationId = 27, GlobalInvocationId = 28, LocalInvocationIndex = 29, WorkDim = 30, GlobalSize = 31, EnqueuedWorkgroupSize = 32, GlobalOffset = 33, GlobalLinearId = 34, SubgroupSize = 36, SubgroupMaxSize = 37, NumSubgroups = 38, NumEnqueuedSubgroups = 39, SubgroupId = 40, SubgroupLocalInvocationId = 41, VertexIndex = 42, InstanceIndex = 43, CoreIDARM = 4160, CoreCountARM = 4161, CoreMaxIDARM = 4162, WarpIDARM = 4163, WarpMaxIDARM = 4164, SubgroupEqMask = 4416, SubgroupEqMaskKHR = 4416, SubgroupGeMask = 4417, SubgroupGeMaskKHR = 4417, SubgroupGtMask = 4418, SubgroupGtMaskKHR = 4418, SubgroupLeMask = 4419, SubgroupLeMaskKHR = 4419, SubgroupLtMask = 4420, SubgroupLtMaskKHR = 4420, BaseVertex = 4424, BaseInstance = 4425, DrawIndex = 4426, PrimitiveShadingRateKHR = 4432, DeviceIndex = 4438, ViewIndex = 4440, ShadingRateKHR = 4444, BaryCoordNoPerspAMD = 4992, BaryCoordNoPerspCentroidAMD = 4993, BaryCoordNoPerspSampleAMD = 4994, BaryCoordSmoothAMD = 4995, BaryCoordSmoothCentroidAMD = 4996, BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, CoalescedInputCountAMDX = 5021, ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, PositionPerViewNV = 5261, ViewportMaskPerViewNV = 5262, FullyCoveredEXT = 5264, TaskCountNV = 5274, PrimitiveCountNV = 5275, PrimitiveIndicesNV = 5276, ClipDistancePerViewNV = 5277, CullDistancePerViewNV = 5278, LayerPerViewNV = 5279, MeshViewCountNV = 5280, MeshViewIndicesNV = 5281, BaryCoordKHR = 5286, BaryCoordNV = 5286, BaryCoordNoPerspKHR = 5287, BaryCoordNoPerspNV = 5287, FragSizeEXT = 5292, FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, PrimitivePointIndicesEXT = 5294, PrimitiveLineIndicesEXT = 5295, PrimitiveTriangleIndicesEXT = 5296, CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, LaunchSizeNV = 5320, WorldRayOriginKHR = 5321, WorldRayOriginNV = 5321, WorldRayDirectionKHR = 5322, WorldRayDirectionNV = 5322, ObjectRayOriginKHR = 5323, ObjectRayOriginNV = 5323, ObjectRayDirectionKHR = 5324, ObjectRayDirectionNV = 5324, RayTminKHR = 5325, RayTminNV = 5325, RayTmaxKHR = 5326, RayTmaxNV = 5326, InstanceCustomIndexKHR = 5327, InstanceCustomIndexNV = 5327, ObjectToWorldKHR = 5330, ObjectToWorldNV = 5330, WorldToObjectKHR = 5331, WorldToObjectNV = 5331, HitTNV = 5332, HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, HitTriangleVertexPositionsKHR = 5335, HitMicroTriangleVertexPositionsNV = 5337, HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, WarpsPerSMNV = 5374, SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, HitKindFrontFacingMicroTriangleNV = 5405, HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, } enum SelectionControlShift : uint { Flatten = 0, DontFlatten = 1, } enum SelectionControlMask : uint { MaskNone = 0, Flatten = 0x00000001, DontFlatten = 0x00000002, } enum LoopControlShift : uint { Unroll = 0, DontUnroll = 1, DependencyInfinite = 2, DependencyLength = 3, MinIterations = 4, MaxIterations = 5, IterationMultiple = 6, PeelCount = 7, PartialCount = 8, InitiationIntervalINTEL = 16, MaxConcurrencyINTEL = 17, DependencyArrayINTEL = 18, PipelineEnableINTEL = 19, LoopCoalesceINTEL = 20, MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, LoopCountINTEL = 24, MaxReinvocationDelayINTEL = 25, } enum LoopControlMask : uint { MaskNone = 0, Unroll = 0x00000001, DontUnroll = 0x00000002, DependencyInfinite = 0x00000004, DependencyLength = 0x00000008, MinIterations = 0x00000010, MaxIterations = 0x00000020, IterationMultiple = 0x00000040, PeelCount = 0x00000080, PartialCount = 0x00000100, InitiationIntervalINTEL = 0x00010000, MaxConcurrencyINTEL = 0x00020000, DependencyArrayINTEL = 0x00040000, PipelineEnableINTEL = 0x00080000, LoopCoalesceINTEL = 0x00100000, MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, LoopCountINTEL = 0x01000000, MaxReinvocationDelayINTEL = 0x02000000, } enum FunctionControlShift : uint { Inline = 0, DontInline = 1, Pure = 2, Const = 3, OptNoneINTEL = 16, } enum FunctionControlMask : uint { MaskNone = 0, Inline = 0x00000001, DontInline = 0x00000002, Pure = 0x00000004, Const = 0x00000008, OptNoneINTEL = 0x00010000, } enum MemorySemanticsShift : uint { Acquire = 1, Release = 2, AcquireRelease = 3, SequentiallyConsistent = 4, UniformMemory = 6, SubgroupMemory = 7, WorkgroupMemory = 8, CrossWorkgroupMemory = 9, AtomicCounterMemory = 10, ImageMemory = 11, OutputMemory = 12, OutputMemoryKHR = 12, MakeAvailable = 13, MakeAvailableKHR = 13, MakeVisible = 14, MakeVisibleKHR = 14, Volatile = 15, } enum MemorySemanticsMask : uint { MaskNone = 0, Acquire = 0x00000002, Release = 0x00000004, AcquireRelease = 0x00000008, SequentiallyConsistent = 0x00000010, UniformMemory = 0x00000040, SubgroupMemory = 0x00000080, WorkgroupMemory = 0x00000100, CrossWorkgroupMemory = 0x00000200, AtomicCounterMemory = 0x00000400, ImageMemory = 0x00000800, OutputMemory = 0x00001000, OutputMemoryKHR = 0x00001000, MakeAvailable = 0x00002000, MakeAvailableKHR = 0x00002000, MakeVisible = 0x00004000, MakeVisibleKHR = 0x00004000, Volatile = 0x00008000, } enum MemoryAccessShift : uint { Volatile = 0, Aligned = 1, Nontemporal = 2, MakePointerAvailable = 3, MakePointerAvailableKHR = 3, MakePointerVisible = 4, MakePointerVisibleKHR = 4, NonPrivatePointer = 5, NonPrivatePointerKHR = 5, AliasScopeINTELMask = 16, NoAliasINTELMask = 17, } enum MemoryAccessMask : uint { MaskNone = 0, Volatile = 0x00000001, Aligned = 0x00000002, Nontemporal = 0x00000004, MakePointerAvailable = 0x00000008, MakePointerAvailableKHR = 0x00000008, MakePointerVisible = 0x00000010, MakePointerVisibleKHR = 0x00000010, NonPrivatePointer = 0x00000020, NonPrivatePointerKHR = 0x00000020, AliasScopeINTELMask = 0x00010000, NoAliasINTELMask = 0x00020000, } enum Scope : uint { CrossDevice = 0, Device = 1, Workgroup = 2, Subgroup = 3, Invocation = 4, QueueFamily = 5, QueueFamilyKHR = 5, ShaderCallKHR = 6, } enum GroupOperation : uint { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, ClusteredReduce = 3, PartitionedReduceNV = 6, PartitionedInclusiveScanNV = 7, PartitionedExclusiveScanNV = 8, } enum KernelEnqueueFlags : uint { NoWait = 0, WaitKernel = 1, WaitWorkGroup = 2, } enum KernelProfilingInfoShift : uint { CmdExecTime = 0, } enum KernelProfilingInfoMask : uint { MaskNone = 0, CmdExecTime = 0x00000001, } enum Capability : uint { Matrix = 0, Shader = 1, Geometry = 2, Tessellation = 3, Addresses = 4, Linkage = 5, Kernel = 6, Vector16 = 7, Float16Buffer = 8, Float16 = 9, Float64 = 10, Int64 = 11, Int64Atomics = 12, ImageBasic = 13, ImageReadWrite = 14, ImageMipmap = 15, Pipes = 17, Groups = 18, DeviceEnqueue = 19, LiteralSampler = 20, AtomicStorage = 21, Int16 = 22, TessellationPointSize = 23, GeometryPointSize = 24, ImageGatherExtended = 25, StorageImageMultisample = 27, UniformBufferArrayDynamicIndexing = 28, SampledImageArrayDynamicIndexing = 29, StorageBufferArrayDynamicIndexing = 30, StorageImageArrayDynamicIndexing = 31, ClipDistance = 32, CullDistance = 33, ImageCubeArray = 34, SampleRateShading = 35, ImageRect = 36, SampledRect = 37, GenericPointer = 38, Int8 = 39, InputAttachment = 40, SparseResidency = 41, MinLod = 42, Sampled1D = 43, Image1D = 44, SampledCubeArray = 45, SampledBuffer = 46, ImageBuffer = 47, ImageMSArray = 48, StorageImageExtendedFormats = 49, ImageQuery = 50, DerivativeControl = 51, InterpolationFunction = 52, TransformFeedback = 53, GeometryStreams = 54, StorageImageReadWithoutFormat = 55, StorageImageWriteWithoutFormat = 56, MultiViewport = 57, SubgroupDispatch = 58, NamedBarrier = 59, PipeStorage = 60, GroupNonUniform = 61, GroupNonUniformVote = 62, GroupNonUniformArithmetic = 63, GroupNonUniformBallot = 64, GroupNonUniformShuffle = 65, GroupNonUniformShuffleRelative = 66, GroupNonUniformClustered = 67, GroupNonUniformQuad = 68, ShaderLayer = 69, ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, TileImageColorReadAccessEXT = 4166, TileImageDepthReadAccessEXT = 4167, TileImageStencilReadAccessEXT = 4168, CooperativeMatrixLayoutsARM = 4201, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, WorkgroupMemoryExplicitLayoutKHR = 4428, WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SubgroupVoteKHR = 4431, StorageBuffer16BitAccess = 4433, StorageUniformBufferBlock16 = 4433, StorageUniform16 = 4434, UniformAndStorageBuffer16BitAccess = 4434, StoragePushConstant16 = 4435, StorageInputOutput16 = 4436, DeviceGroup = 4437, MultiView = 4439, VariablePointersStorageBuffer = 4441, VariablePointers = 4442, AtomicStorageOps = 4445, SampleMaskPostDepthCoverage = 4447, StorageBuffer8BitAccess = 4448, UniformAndStorageBuffer8BitAccess = 4449, StoragePushConstant8 = 4450, DenormPreserve = 4464, DenormFlushToZero = 4465, SignedZeroInfNanPreserve = 4466, RoundingModeRTE = 4467, RoundingModeRTZ = 4468, RayQueryProvisionalKHR = 4471, RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, TextureSampleWeightedQCOM = 4484, TextureBoxFilterQCOM = 4485, TextureBlockMatchQCOM = 4486, TextureBlockMatch2QCOM = 4498, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, StencilExportEXT = 5013, ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, ShaderEnqueueAMDX = 5067, QuadControlKHR = 5087, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerNV = 5254, ShaderViewportMaskNV = 5255, ShaderStereoViewNV = 5259, PerViewAttributesNV = 5260, FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, FragmentDensityEXT = 5291, ShadingRateNV = 5291, GroupNonUniformPartitionedNV = 5297, ShaderNonUniform = 5301, ShaderNonUniformEXT = 5301, RuntimeDescriptorArray = 5302, RuntimeDescriptorArrayEXT = 5302, InputAttachmentArrayDynamicIndexing = 5303, InputAttachmentArrayDynamicIndexingEXT = 5303, UniformTexelBufferArrayDynamicIndexing = 5304, UniformTexelBufferArrayDynamicIndexingEXT = 5304, StorageTexelBufferArrayDynamicIndexing = 5305, StorageTexelBufferArrayDynamicIndexingEXT = 5305, UniformBufferArrayNonUniformIndexing = 5306, UniformBufferArrayNonUniformIndexingEXT = 5306, SampledImageArrayNonUniformIndexing = 5307, SampledImageArrayNonUniformIndexingEXT = 5307, StorageBufferArrayNonUniformIndexing = 5308, StorageBufferArrayNonUniformIndexingEXT = 5308, StorageImageArrayNonUniformIndexing = 5309, StorageImageArrayNonUniformIndexingEXT = 5309, InputAttachmentArrayNonUniformIndexing = 5310, InputAttachmentArrayNonUniformIndexingEXT = 5310, UniformTexelBufferArrayNonUniformIndexing = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, VulkanMemoryModelKHR = 5345, VulkanMemoryModelDeviceScope = 5346, VulkanMemoryModelDeviceScopeKHR = 5346, PhysicalStorageBufferAddresses = 5347, PhysicalStorageBufferAddressesEXT = 5347, ComputeDerivativeGroupLinearNV = 5350, RayTracingProvisionalKHR = 5353, CooperativeMatrixNV = 5357, FragmentShaderSampleInterlockEXT = 5363, FragmentShaderShadingRateInterlockEXT = 5372, ShaderSMBuiltinsNV = 5373, FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, AtomicFloat16VectorNV = 5404, RayTracingDisplacementMicromapNV = 5409, RawAccessChainsNV = 5414, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, SubgroupImageMediaBlockIOINTEL = 5579, RoundToInfinityINTEL = 5582, FloatingPointModeINTEL = 5583, IntegerFunctions2INTEL = 5584, FunctionPointersINTEL = 5603, IndirectReferencesINTEL = 5604, AsmINTEL = 5606, AtomicFloat32MinMaxEXT = 5612, AtomicFloat64MinMaxEXT = 5613, AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, VariableLengthArrayINTEL = 5817, FunctionFloatControlINTEL = 5821, FPGAMemoryAttributesINTEL = 5824, FPFastMathModeINTEL = 5837, ArbitraryPrecisionIntegersINTEL = 5844, ArbitraryPrecisionFloatingPointINTEL = 5845, UnstructuredLoopControlsINTEL = 5886, FPGALoopControlsINTEL = 5888, KernelAttributesINTEL = 5892, FPGAKernelAttributesINTEL = 5897, FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, DotProductInputAll = 6016, DotProductInputAllKHR = 6016, DotProductInput4x8Bit = 6017, DotProductInput4x8BitKHR = 6017, DotProductInput4x8BitPacked = 6018, DotProductInput4x8BitPackedKHR = 6018, DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, CooperativeMatrixKHR = 6022, ReplicatedCompositesEXT = 6024, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, FloatControls2 = 6029, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, FPGAClusterAttributesV2INTEL = 6150, FPGAKernelAttributesv2INTEL = 6161, FPMaxErrorINTEL = 6169, FPGALatencyControlINTEL = 6171, FPGAArgumentInterfacesINTEL = 6174, GlobalVariableHostAccessINTEL = 6187, GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, MaskedGatherScatterINTEL = 6427, CacheControlsINTEL = 6441, RegisterLimitsINTEL = 6460, } enum RayFlagsShift : uint { OpaqueKHR = 0, NoOpaqueKHR = 1, TerminateOnFirstHitKHR = 2, SkipClosestHitShaderKHR = 3, CullBackFacingTrianglesKHR = 4, CullFrontFacingTrianglesKHR = 5, CullOpaqueKHR = 6, CullNoOpaqueKHR = 7, SkipTrianglesKHR = 8, SkipAABBsKHR = 9, ForceOpacityMicromap2StateEXT = 10, } enum RayFlagsMask : uint { MaskNone = 0, OpaqueKHR = 0x00000001, NoOpaqueKHR = 0x00000002, TerminateOnFirstHitKHR = 0x00000004, SkipClosestHitShaderKHR = 0x00000008, CullBackFacingTrianglesKHR = 0x00000010, CullFrontFacingTrianglesKHR = 0x00000020, CullOpaqueKHR = 0x00000040, CullNoOpaqueKHR = 0x00000080, SkipTrianglesKHR = 0x00000100, SkipAABBsKHR = 0x00000200, ForceOpacityMicromap2StateEXT = 0x00000400, } enum RayQueryIntersection : uint { RayQueryCandidateIntersectionKHR = 0, RayQueryCommittedIntersectionKHR = 1, } enum RayQueryCommittedIntersectionType : uint { RayQueryCommittedIntersectionNoneKHR = 0, RayQueryCommittedIntersectionTriangleKHR = 1, RayQueryCommittedIntersectionGeneratedKHR = 2, } enum RayQueryCandidateIntersectionType : uint { RayQueryCandidateIntersectionTriangleKHR = 0, RayQueryCandidateIntersectionAABBKHR = 1, } enum FragmentShadingRateShift : uint { Vertical2Pixels = 0, Vertical4Pixels = 1, Horizontal2Pixels = 2, Horizontal4Pixels = 3, } enum FragmentShadingRateMask : uint { MaskNone = 0, Vertical2Pixels = 0x00000001, Vertical4Pixels = 0x00000002, Horizontal2Pixels = 0x00000004, Horizontal4Pixels = 0x00000008, } enum FPDenormMode : uint { Preserve = 0, FlushToZero = 1, } enum FPOperationMode : uint { IEEE = 0, ALT = 1, } enum QuantizationModes : uint { TRN = 0, TRN_ZERO = 1, RND = 2, RND_ZERO = 3, RND_INF = 4, RND_MIN_INF = 5, RND_CONV = 6, RND_CONV_ODD = 7, } enum OverflowModes : uint { WRAP = 0, SAT = 1, SAT_ZERO = 2, SAT_SYM = 3, } enum PackedVectorFormat : uint { PackedVectorFormat4x8Bit = 0, PackedVectorFormat4x8BitKHR = 0, } enum CooperativeMatrixOperandsShift : uint { MatrixASignedComponentsKHR = 0, MatrixBSignedComponentsKHR = 1, MatrixCSignedComponentsKHR = 2, MatrixResultSignedComponentsKHR = 3, SaturatingAccumulationKHR = 4, } enum CooperativeMatrixOperandsMask : uint { MaskNone = 0, MatrixASignedComponentsKHR = 0x00000001, MatrixBSignedComponentsKHR = 0x00000002, MatrixCSignedComponentsKHR = 0x00000004, MatrixResultSignedComponentsKHR = 0x00000008, SaturatingAccumulationKHR = 0x00000010, } enum CooperativeMatrixLayout : uint { RowMajorKHR = 0, ColumnMajorKHR = 1, RowBlockedInterleavedARM = 4202, ColumnBlockedInterleavedARM = 4203, } enum CooperativeMatrixUse : uint { MatrixAKHR = 0, MatrixBKHR = 1, MatrixAccumulatorKHR = 2, } enum InitializationModeQualifier : uint { InitOnDeviceReprogramINTEL = 0, InitOnDeviceResetINTEL = 1, } enum HostAccessQualifier : uint { NoneINTEL = 0, ReadINTEL = 1, WriteINTEL = 2, ReadWriteINTEL = 3, } enum LoadCacheControl : uint { UncachedINTEL = 0, CachedINTEL = 1, StreamingINTEL = 2, InvalidateAfterReadINTEL = 3, ConstCachedINTEL = 4, } enum StoreCacheControl : uint { UncachedINTEL = 0, WriteThroughINTEL = 1, WriteBackINTEL = 2, StreamingINTEL = 3, } enum NamedMaximumNumberOfRegisters : uint { AutoINTEL = 0, } enum RawAccessChainOperandsShift : uint { RobustnessPerComponentNV = 0, RobustnessPerElementNV = 1, } enum RawAccessChainOperandsMask : uint { MaskNone = 0, RobustnessPerComponentNV = 0x00000001, RobustnessPerElementNV = 0x00000002, } enum Op : uint { OpNop = 0, OpUndef = 1, OpSourceContinued = 2, OpSource = 3, OpSourceExtension = 4, OpName = 5, OpMemberName = 6, OpString = 7, OpLine = 8, OpExtension = 10, OpExtInstImport = 11, OpExtInst = 12, OpMemoryModel = 14, OpEntryPoint = 15, OpExecutionMode = 16, OpCapability = 17, OpTypeVoid = 19, OpTypeBool = 20, OpTypeInt = 21, OpTypeFloat = 22, OpTypeVector = 23, OpTypeMatrix = 24, OpTypeImage = 25, OpTypeSampler = 26, OpTypeSampledImage = 27, OpTypeArray = 28, OpTypeRuntimeArray = 29, OpTypeStruct = 30, OpTypeOpaque = 31, OpTypePointer = 32, OpTypeFunction = 33, OpTypeEvent = 34, OpTypeDeviceEvent = 35, OpTypeReserveId = 36, OpTypeQueue = 37, OpTypePipe = 38, OpTypeForwardPointer = 39, OpConstantTrue = 41, OpConstantFalse = 42, OpConstant = 43, OpConstantComposite = 44, OpConstantSampler = 45, OpConstantNull = 46, OpSpecConstantTrue = 48, OpSpecConstantFalse = 49, OpSpecConstant = 50, OpSpecConstantComposite = 51, OpSpecConstantOp = 52, OpFunction = 54, OpFunctionParameter = 55, OpFunctionEnd = 56, OpFunctionCall = 57, OpVariable = 59, OpImageTexelPointer = 60, OpLoad = 61, OpStore = 62, OpCopyMemory = 63, OpCopyMemorySized = 64, OpAccessChain = 65, OpInBoundsAccessChain = 66, OpPtrAccessChain = 67, OpArrayLength = 68, OpGenericPtrMemSemantics = 69, OpInBoundsPtrAccessChain = 70, OpDecorate = 71, OpMemberDecorate = 72, OpDecorationGroup = 73, OpGroupDecorate = 74, OpGroupMemberDecorate = 75, OpVectorExtractDynamic = 77, OpVectorInsertDynamic = 78, OpVectorShuffle = 79, OpCompositeConstruct = 80, OpCompositeExtract = 81, OpCompositeInsert = 82, OpCopyObject = 83, OpTranspose = 84, OpSampledImage = 86, OpImageSampleImplicitLod = 87, OpImageSampleExplicitLod = 88, OpImageSampleDrefImplicitLod = 89, OpImageSampleDrefExplicitLod = 90, OpImageSampleProjImplicitLod = 91, OpImageSampleProjExplicitLod = 92, OpImageSampleProjDrefImplicitLod = 93, OpImageSampleProjDrefExplicitLod = 94, OpImageFetch = 95, OpImageGather = 96, OpImageDrefGather = 97, OpImageRead = 98, OpImageWrite = 99, OpImage = 100, OpImageQueryFormat = 101, OpImageQueryOrder = 102, OpImageQuerySizeLod = 103, OpImageQuerySize = 104, OpImageQueryLod = 105, OpImageQueryLevels = 106, OpImageQuerySamples = 107, OpConvertFToU = 109, OpConvertFToS = 110, OpConvertSToF = 111, OpConvertUToF = 112, OpUConvert = 113, OpSConvert = 114, OpFConvert = 115, OpQuantizeToF16 = 116, OpConvertPtrToU = 117, OpSatConvertSToU = 118, OpSatConvertUToS = 119, OpConvertUToPtr = 120, OpPtrCastToGeneric = 121, OpGenericCastToPtr = 122, OpGenericCastToPtrExplicit = 123, OpBitcast = 124, OpSNegate = 126, OpFNegate = 127, OpIAdd = 128, OpFAdd = 129, OpISub = 130, OpFSub = 131, OpIMul = 132, OpFMul = 133, OpUDiv = 134, OpSDiv = 135, OpFDiv = 136, OpUMod = 137, OpSRem = 138, OpSMod = 139, OpFRem = 140, OpFMod = 141, OpVectorTimesScalar = 142, OpMatrixTimesScalar = 143, OpVectorTimesMatrix = 144, OpMatrixTimesVector = 145, OpMatrixTimesMatrix = 146, OpOuterProduct = 147, OpDot = 148, OpIAddCarry = 149, OpISubBorrow = 150, OpUMulExtended = 151, OpSMulExtended = 152, OpAny = 154, OpAll = 155, OpIsNan = 156, OpIsInf = 157, OpIsFinite = 158, OpIsNormal = 159, OpSignBitSet = 160, OpLessOrGreater = 161, OpOrdered = 162, OpUnordered = 163, OpLogicalEqual = 164, OpLogicalNotEqual = 165, OpLogicalOr = 166, OpLogicalAnd = 167, OpLogicalNot = 168, OpSelect = 169, OpIEqual = 170, OpINotEqual = 171, OpUGreaterThan = 172, OpSGreaterThan = 173, OpUGreaterThanEqual = 174, OpSGreaterThanEqual = 175, OpULessThan = 176, OpSLessThan = 177, OpULessThanEqual = 178, OpSLessThanEqual = 179, OpFOrdEqual = 180, OpFUnordEqual = 181, OpFOrdNotEqual = 182, OpFUnordNotEqual = 183, OpFOrdLessThan = 184, OpFUnordLessThan = 185, OpFOrdGreaterThan = 186, OpFUnordGreaterThan = 187, OpFOrdLessThanEqual = 188, OpFUnordLessThanEqual = 189, OpFOrdGreaterThanEqual = 190, OpFUnordGreaterThanEqual = 191, OpShiftRightLogical = 194, OpShiftRightArithmetic = 195, OpShiftLeftLogical = 196, OpBitwiseOr = 197, OpBitwiseXor = 198, OpBitwiseAnd = 199, OpNot = 200, OpBitFieldInsert = 201, OpBitFieldSExtract = 202, OpBitFieldUExtract = 203, OpBitReverse = 204, OpBitCount = 205, OpDPdx = 207, OpDPdy = 208, OpFwidth = 209, OpDPdxFine = 210, OpDPdyFine = 211, OpFwidthFine = 212, OpDPdxCoarse = 213, OpDPdyCoarse = 214, OpFwidthCoarse = 215, OpEmitVertex = 218, OpEndPrimitive = 219, OpEmitStreamVertex = 220, OpEndStreamPrimitive = 221, OpControlBarrier = 224, OpMemoryBarrier = 225, OpAtomicLoad = 227, OpAtomicStore = 228, OpAtomicExchange = 229, OpAtomicCompareExchange = 230, OpAtomicCompareExchangeWeak = 231, OpAtomicIIncrement = 232, OpAtomicIDecrement = 233, OpAtomicIAdd = 234, OpAtomicISub = 235, OpAtomicSMin = 236, OpAtomicUMin = 237, OpAtomicSMax = 238, OpAtomicUMax = 239, OpAtomicAnd = 240, OpAtomicOr = 241, OpAtomicXor = 242, OpPhi = 245, OpLoopMerge = 246, OpSelectionMerge = 247, OpLabel = 248, OpBranch = 249, OpBranchConditional = 250, OpSwitch = 251, OpKill = 252, OpReturn = 253, OpReturnValue = 254, OpUnreachable = 255, OpLifetimeStart = 256, OpLifetimeStop = 257, OpGroupAsyncCopy = 259, OpGroupWaitEvents = 260, OpGroupAll = 261, OpGroupAny = 262, OpGroupBroadcast = 263, OpGroupIAdd = 264, OpGroupFAdd = 265, OpGroupFMin = 266, OpGroupUMin = 267, OpGroupSMin = 268, OpGroupFMax = 269, OpGroupUMax = 270, OpGroupSMax = 271, OpReadPipe = 274, OpWritePipe = 275, OpReservedReadPipe = 276, OpReservedWritePipe = 277, OpReserveReadPipePackets = 278, OpReserveWritePipePackets = 279, OpCommitReadPipe = 280, OpCommitWritePipe = 281, OpIsValidReserveId = 282, OpGetNumPipePackets = 283, OpGetMaxPipePackets = 284, OpGroupReserveReadPipePackets = 285, OpGroupReserveWritePipePackets = 286, OpGroupCommitReadPipe = 287, OpGroupCommitWritePipe = 288, OpEnqueueMarker = 291, OpEnqueueKernel = 292, OpGetKernelNDrangeSubGroupCount = 293, OpGetKernelNDrangeMaxSubGroupSize = 294, OpGetKernelWorkGroupSize = 295, OpGetKernelPreferredWorkGroupSizeMultiple = 296, OpRetainEvent = 297, OpReleaseEvent = 298, OpCreateUserEvent = 299, OpIsValidEvent = 300, OpSetUserEventStatus = 301, OpCaptureEventProfilingInfo = 302, OpGetDefaultQueue = 303, OpBuildNDRange = 304, OpImageSparseSampleImplicitLod = 305, OpImageSparseSampleExplicitLod = 306, OpImageSparseSampleDrefImplicitLod = 307, OpImageSparseSampleDrefExplicitLod = 308, OpImageSparseSampleProjImplicitLod = 309, OpImageSparseSampleProjExplicitLod = 310, OpImageSparseSampleProjDrefImplicitLod = 311, OpImageSparseSampleProjDrefExplicitLod = 312, OpImageSparseFetch = 313, OpImageSparseGather = 314, OpImageSparseDrefGather = 315, OpImageSparseTexelsResident = 316, OpNoLine = 317, OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, OpSizeOf = 321, OpTypePipeStorage = 322, OpConstantPipeStorage = 323, OpCreatePipeFromPipeStorage = 324, OpGetKernelLocalSizeForSubgroupCount = 325, OpGetKernelMaxNumSubgroups = 326, OpTypeNamedBarrier = 327, OpNamedBarrierInitialize = 328, OpMemoryNamedBarrier = 329, OpModuleProcessed = 330, OpExecutionModeId = 331, OpDecorateId = 332, OpGroupNonUniformElect = 333, OpGroupNonUniformAll = 334, OpGroupNonUniformAny = 335, OpGroupNonUniformAllEqual = 336, OpGroupNonUniformBroadcast = 337, OpGroupNonUniformBroadcastFirst = 338, OpGroupNonUniformBallot = 339, OpGroupNonUniformInverseBallot = 340, OpGroupNonUniformBallotBitExtract = 341, OpGroupNonUniformBallotBitCount = 342, OpGroupNonUniformBallotFindLSB = 343, OpGroupNonUniformBallotFindMSB = 344, OpGroupNonUniformShuffle = 345, OpGroupNonUniformShuffleXor = 346, OpGroupNonUniformShuffleUp = 347, OpGroupNonUniformShuffleDown = 348, OpGroupNonUniformIAdd = 349, OpGroupNonUniformFAdd = 350, OpGroupNonUniformIMul = 351, OpGroupNonUniformFMul = 352, OpGroupNonUniformSMin = 353, OpGroupNonUniformUMin = 354, OpGroupNonUniformFMin = 355, OpGroupNonUniformSMax = 356, OpGroupNonUniformUMax = 357, OpGroupNonUniformFMax = 358, OpGroupNonUniformBitwiseAnd = 359, OpGroupNonUniformBitwiseOr = 360, OpGroupNonUniformBitwiseXor = 361, OpGroupNonUniformLogicalAnd = 362, OpGroupNonUniformLogicalOr = 363, OpGroupNonUniformLogicalXor = 364, OpGroupNonUniformQuadBroadcast = 365, OpGroupNonUniformQuadSwap = 366, OpCopyLogical = 400, OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, OpSDot = 4450, OpSDotKHR = 4450, OpUDot = 4451, OpUDotKHR = 4451, OpSUDot = 4452, OpSUDotKHR = 4452, OpSDotAccSat = 4453, OpSDotAccSatKHR = 4453, OpUDotAccSat = 4454, OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, OpTypeCooperativeMatrixKHR = 4456, OpCooperativeMatrixLoadKHR = 4457, OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, OpConstantCompositeReplicateEXT = 4461, OpSpecConstantCompositeReplicateEXT = 4462, OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, OpRayQueryGenerateIntersectionKHR = 4475, OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, OpImageSampleWeightedQCOM = 4480, OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpFinalizeNodePayloadsAMDX = 5075, OpFinishWritingNodePayloadAMDX = 5078, OpInitializeNodePayloadsAMDX = 5090, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, OpHitObjectRecordHitWithIndexMotionNV = 5250, OpHitObjectRecordMissMotionNV = 5251, OpHitObjectGetWorldToObjectNV = 5252, OpHitObjectGetObjectToWorldNV = 5253, OpHitObjectGetObjectRayDirectionNV = 5254, OpHitObjectGetObjectRayOriginNV = 5255, OpHitObjectTraceRayMotionNV = 5256, OpHitObjectGetShaderRecordBufferHandleNV = 5257, OpHitObjectGetShaderBindingTableRecordIndexNV = 5258, OpHitObjectRecordEmptyNV = 5259, OpHitObjectTraceRayNV = 5260, OpHitObjectRecordHitNV = 5261, OpHitObjectRecordHitWithIndexNV = 5262, OpHitObjectRecordMissNV = 5263, OpHitObjectExecuteShaderNV = 5264, OpHitObjectGetCurrentTimeNV = 5265, OpHitObjectGetAttributesNV = 5266, OpHitObjectGetHitKindNV = 5267, OpHitObjectGetPrimitiveIndexNV = 5268, OpHitObjectGetGeometryIndexNV = 5269, OpHitObjectGetInstanceIdNV = 5270, OpHitObjectGetInstanceCustomIndexNV = 5271, OpHitObjectGetWorldRayDirectionNV = 5272, OpHitObjectGetWorldRayOriginNV = 5273, OpHitObjectGetRayTMaxNV = 5274, OpHitObjectGetRayTMinNV = 5275, OpHitObjectIsEmptyNV = 5276, OpHitObjectIsHitNV = 5277, OpHitObjectIsMissNV = 5278, OpReorderThreadWithHitObjectNV = 5279, OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, OpConvertSamplerToUNV = 5394, OpConvertUToSampledImageNV = 5395, OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleXorINTEL = 5574, OpSubgroupBlockReadINTEL = 5575, OpSubgroupBlockWriteINTEL = 5576, OpSubgroupImageBlockReadINTEL = 5577, OpSubgroupImageBlockWriteINTEL = 5578, OpSubgroupImageMediaBlockReadINTEL = 5580, OpSubgroupImageMediaBlockWriteINTEL = 5581, OpUCountLeadingZerosINTEL = 5585, OpUCountTrailingZerosINTEL = 5586, OpAbsISubINTEL = 5587, OpAbsUSubINTEL = 5588, OpIAddSatINTEL = 5589, OpUAddSatINTEL = 5590, OpIAverageINTEL = 5591, OpUAverageINTEL = 5592, OpIAverageRoundedINTEL = 5593, OpUAverageRoundedINTEL = 5594, OpISubSatINTEL = 5595, OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, OpAsmTargetINTEL = 5609, OpAsmINTEL = 5610, OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, OpAssumeTrueKHR = 5630, OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, OpMemberDecorateStringGOOGLE = 5633, OpVmeImageINTEL = 5699, OpTypeVmeImageINTEL = 5700, OpTypeAvcImePayloadINTEL = 5701, OpTypeAvcRefPayloadINTEL = 5702, OpTypeAvcSicPayloadINTEL = 5703, OpTypeAvcMcePayloadINTEL = 5704, OpTypeAvcMceResultINTEL = 5705, OpTypeAvcImeResultINTEL = 5706, OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, OpTypeAvcImeDualReferenceStreaminINTEL = 5710, OpTypeAvcRefResultINTEL = 5711, OpTypeAvcSicResultINTEL = 5712, OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, OpSubgroupAvcMceConvertToImeResultINTEL = 5733, OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, OpSubgroupAvcMceConvertToRefResultINTEL = 5735, OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, OpSubgroupAvcMceConvertToSicResultINTEL = 5737, OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, OpSubgroupAvcImeInitializeINTEL = 5747, OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, OpSubgroupAvcImeSetDualReferenceINTEL = 5749, OpSubgroupAvcImeRefWindowSizeINTEL = 5750, OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, OpSubgroupAvcImeSetWeightedSadINTEL = 5756, OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, OpSubgroupAvcImeConvertToMceResultINTEL = 5765, OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, OpSubgroupAvcImeGetBorderReachedINTEL = 5776, OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, OpSubgroupAvcFmeInitializeINTEL = 5781, OpSubgroupAvcBmeInitializeINTEL = 5782, OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, OpSubgroupAvcRefConvertToMceResultINTEL = 5790, OpSubgroupAvcSicInitializeINTEL = 5791, OpSubgroupAvcSicConfigureSkcINTEL = 5792, OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, OpSubgroupAvcSicEvaluateIpeINTEL = 5803, OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, OpSubgroupAvcSicConvertToMceResultINTEL = 5808, OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, OpArbitraryFloatSinCosPiINTEL = 5840, OpArbitraryFloatCastINTEL = 5841, OpArbitraryFloatCastFromIntINTEL = 5842, OpArbitraryFloatCastToIntINTEL = 5843, OpArbitraryFloatAddINTEL = 5846, OpArbitraryFloatSubINTEL = 5847, OpArbitraryFloatMulINTEL = 5848, OpArbitraryFloatDivINTEL = 5849, OpArbitraryFloatGTINTEL = 5850, OpArbitraryFloatGEINTEL = 5851, OpArbitraryFloatLTINTEL = 5852, OpArbitraryFloatLEINTEL = 5853, OpArbitraryFloatEQINTEL = 5854, OpArbitraryFloatRecipINTEL = 5855, OpArbitraryFloatRSqrtINTEL = 5856, OpArbitraryFloatCbrtINTEL = 5857, OpArbitraryFloatHypotINTEL = 5858, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, OpArbitraryFloatLog10INTEL = 5862, OpArbitraryFloatLog1pINTEL = 5863, OpArbitraryFloatExpINTEL = 5864, OpArbitraryFloatExp2INTEL = 5865, OpArbitraryFloatExp10INTEL = 5866, OpArbitraryFloatExpm1INTEL = 5867, OpArbitraryFloatSinINTEL = 5868, OpArbitraryFloatCosINTEL = 5869, OpArbitraryFloatSinCosINTEL = 5870, OpArbitraryFloatSinPiINTEL = 5871, OpArbitraryFloatCosPiINTEL = 5872, OpArbitraryFloatASinINTEL = 5873, OpArbitraryFloatASinPiINTEL = 5874, OpArbitraryFloatACosINTEL = 5875, OpArbitraryFloatACosPiINTEL = 5876, OpArbitraryFloatATanINTEL = 5877, OpArbitraryFloatATanPiINTEL = 5878, OpArbitraryFloatATan2INTEL = 5879, OpArbitraryFloatPowINTEL = 5880, OpArbitraryFloatPowRINTEL = 5881, OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, OpFixedSqrtINTEL = 5923, OpFixedRecipINTEL = 5924, OpFixedRsqrtINTEL = 5925, OpFixedSinINTEL = 5926, OpFixedCosINTEL = 5927, OpFixedSinCosINTEL = 5928, OpFixedSinPiINTEL = 5929, OpFixedCosPiINTEL = 5930, OpFixedSinCosPiINTEL = 5931, OpFixedLogINTEL = 5932, OpFixedExpINTEL = 5933, OpPtrCastToCrossWorkgroupINTEL = 5934, OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, OpRayQueryGetIntersectionTKHR = 6018, OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, OpRayQueryGetIntersectionInstanceIdKHR = 6020, OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, OpRayQueryGetIntersectionGeometryIndexKHR = 6022, OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, OpRayQueryGetIntersectionBarycentricsKHR = 6024, OpRayQueryGetIntersectionFrontFaceKHR = 6025, OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, OpRayQueryGetWorldRayDirectionKHR = 6029, OpRayQueryGetWorldRayOriginKHR = 6030, OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, OpTypeBufferSurfaceINTEL = 6086, OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, OpCompositeConstructContinuedINTEL = 6096, OpConvertFToBF16INTEL = 6116, OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, OpGroupBitwiseOrKHR = 6404, OpGroupBitwiseXorKHR = 6405, OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, } spirv-headers-1.6.1+1.3.290.0/tests/000077500000000000000000000000001463234063200164045ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tests/CMakeLists.txt000066400000000000000000000036571463234063200211570ustar00rootroot00000000000000# Copyright (c) 2015-2024 The Khronos Group Inc. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and/or associated documentation files (the # "Materials"), to deal in the Materials without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Materials, and to # permit persons to whom the Materials are furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS # KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS # SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT # https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. add_library(spirv_headers_simple_test STATIC) target_sources(spirv_headers_simple_test PRIVATE example.cpp ) target_link_libraries(spirv_headers_simple_test PRIVATE SPIRV-Headers::SPIRV-Headers ) if (NOT TARGET SPIRV-Headers) message(FATAL_ERROR "SPIRV-Headers target not defined!") endif() if (NOT PROJECT_NAME STREQUAL "SPIRV-Headers") message(FATAL_ERROR "PROJECT_NAME changed!") # Needed for backcompat with SPIRV-Tools. endif() if (NOT DEFINED SPIRV-Headers_SOURCE_DIR) message(FATAL_ERROR "SPIRV-Headers_SOURCE_DIR not defined!") # Needed for backcompat with SPIRV-Tools. endif() spirv-headers-1.6.1+1.3.290.0/tests/example.cpp000066400000000000000000000032201463234063200205400ustar00rootroot00000000000000// Copyright (c) 2016-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and/or associated documentation files (the // "Materials"), to deal in the Materials without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Materials, and to // permit persons to whom the Materials are furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. #include #include #include namespace { const GLSLstd450 kSin = GLSLstd450Sin; const OpenCLLIB::Entrypoints kNative_cos = OpenCLLIB::Native_cos; const spv::Op kNop = spv::OpNop; } // anonymous namespace spirv-headers-1.6.1+1.3.290.0/tests/find_package/000077500000000000000000000000001463234063200207775ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tests/find_package/CMakeLists.txt000066400000000000000000000011401463234063200235330ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.0) project(TEST_FIND_PACKAGE LANGUAGES CXX) add_library(find_package_example STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../example.cpp ) find_package(SPIRV-Headers REQUIRED CONFIG) if (NOT TARGET SPIRV-Headers::SPIRV-Headers) message(FATAL_ERROR "SPIRV-Headers::SPIRV-Headers target not defined") endif() target_link_libraries(find_package_example PRIVATE SPIRV-Headers::SPIRV-Headers ) if (NOT DEFINED SPIRV-Headers_VERSION) message(FATAL_ERROR "SPIRV-Headers_VERSION not provided!") endif() message(STATUS "SPIRV-Headers_VERSION = ${SPIRV-Headers_VERSION}") spirv-headers-1.6.1+1.3.290.0/tests/pkg_config/000077500000000000000000000000001463234063200205125ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tests/pkg_config/CMakeLists.txt000066400000000000000000000011061463234063200232500ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.14) project(TEST_PKGCONFIG LANGUAGES CXX) add_library(pkgconfig_example STATIC) target_sources(pkgconfig_example PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../example.cpp ) find_package(PkgConfig REQUIRED) pkg_check_modules(SPIRV_HEADERS REQUIRED IMPORTED_TARGET SPIRV-Headers) target_link_libraries(pkgconfig_example PRIVATE PkgConfig::SPIRV_HEADERS ) if (NOT DEFINED SPIRV_HEADERS_VERSION) message(FATAL_ERROR "SPIRV_HEADERS_VERSION not defined!") endif() message(STATUS "PkgConfig::SPIRV_HEADERS version = ${SPIRV_HEADERS_VERSION}") spirv-headers-1.6.1+1.3.290.0/tools/000077500000000000000000000000001463234063200164025ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/000077500000000000000000000000001463234063200207755ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/CMakeLists.txt000066400000000000000000000010511463234063200235320ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.0) set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix" FORCE) project(buildSpvHeaders) set(SOURCES main.cpp jsonToSpirv.cpp header.cpp jsoncpp/dist/jsoncpp.cpp) set(HEADERS jsonToSpirv.h header.h jsoncpp/dist/json/json.h) if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=c++11) elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_definitions(-std=c++11) endif() add_executable(buildSpvHeaders ${SOURCES} ${HEADERS}) install(TARGETS buildSpvHeaders RUNTIME DESTINATION bin) spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/bin/000077500000000000000000000000001463234063200215455ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/bin/generate_language_headers.py000077500000000000000000000211361463234063200272550ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright (c) 2017-2024 Google LLC # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and/or associated documentation files (the # "Materials"), to deal in the Materials without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Materials, and to # permit persons to whom the Materials are furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Materials. # # MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS # KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS # SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT # https://www.khronos.org/registry/ # # THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. """Generates a C language headers from a SPIR-V JSON grammar file""" import errno import json import os.path import re DEFAULT_COPYRIGHT="""Copyright (c) 2020-2024 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. """.split('\n') def make_path_to_file(f): """Makes all ancestor directories to the given file, if they don't yet exist. Arguments: f: The file whose ancestor directories are to be created. """ dir = os.path.dirname(os.path.abspath(f)) try: os.makedirs(dir) except OSError as e: if e.errno == errno.EEXIST and os.path.isdir(dir): pass else: raise class ExtInstGrammar: """The grammar for an extended instruction set""" def __init__(self, name, copyright, instructions, operand_kinds, version = None, revision = None): self.name = name self.copyright = copyright self.instructions = instructions self.operand_kinds = operand_kinds self.version = version self.revision = revision class LangGenerator: """A language-specific generator""" def __init__(self): self.upper_case_initial = re.compile('^[A-Z]') pass def comment_prefix(self): return "" def namespace_prefix(self): return "" def uses_guards(self): return False def cpp_guard_preamble(self): return "" def cpp_guard_postamble(self): return "" def enum_value(self, prefix, name, value): if self.upper_case_initial.match(name): use_name = name else: use_name = '_' + name return " {}{} = {},".format(prefix, use_name, value) def generate(self, grammar): """Returns a string that is the language-specific header for the given grammar""" parts = [] if grammar.copyright: parts.extend(["{}{}".format(self.comment_prefix(), f) for f in grammar.copyright]) parts.append('') guard = 'SPIRV_UNIFIED1_{}_H_'.format(grammar.name) if self.uses_guards: parts.append('#ifndef {}'.format(guard)) parts.append('#define {}'.format(guard)) parts.append('') parts.append(self.cpp_guard_preamble()) if grammar.version: parts.append(self.const_definition(grammar.name, 'Version', grammar.version)) if grammar.revision is not None: parts.append(self.const_definition(grammar.name, 'Revision', grammar.revision)) parts.append('') if grammar.instructions: parts.append(self.enum_prefix(grammar.name, 'Instructions')) for inst in grammar.instructions: parts.append(self.enum_value(grammar.name, inst['opname'], inst['opcode'])) parts.append(self.enum_end(grammar.name, 'Instructions')) parts.append('') if grammar.operand_kinds: for kind in grammar.operand_kinds: parts.append(self.enum_prefix(grammar.name, kind['kind'])) for e in kind['enumerants']: parts.append(self.enum_value(grammar.name, e['enumerant'], e['value'])) parts.append(self.enum_end(grammar.name, kind['kind'])) parts.append('') parts.append(self.cpp_guard_postamble()) if self.uses_guards: parts.append('#endif // {}'.format(guard)) # Ensre the file ends in an end of line parts.append('') return '\n'.join(parts) class CLikeGenerator(LangGenerator): def uses_guards(self): return True def comment_prefix(self): return "// " def const_definition(self, prefix, var, value): # Use an anonymous enum. Don't use a static const int variable because # that can bloat binary size. return 'enum {0}{1}{2}{3} = {4},{1}{2}{3}_BitWidthPadding = 0x7fffffff{5};'.format( '{', '\n ', prefix, var, value, '\n}') def enum_prefix(self, prefix, name): return 'enum {}{} {}'.format(prefix, name, '{') def enum_end(self, prefix, enum): return ' {}{}Max = 0x7fffffff\n{};\n'.format(prefix, enum, '}') def cpp_guard_preamble(self): return '#ifdef __cplusplus\nextern "C" {\n#endif\n' def cpp_guard_postamble(self): return '#ifdef __cplusplus\n}\n#endif\n' class CGenerator(CLikeGenerator): pass def main(): import argparse parser = argparse.ArgumentParser(description='Generate language headers from a JSON grammar') parser.add_argument('--extinst-name', type=str, required=True, help='The name to use in tokens') parser.add_argument('--extinst-grammar', metavar='', type=str, required=True, help='input JSON grammar file for extended instruction set') parser.add_argument('--extinst-output-base', metavar='', type=str, required=True, help='Basename of the language-specific output file.') args = parser.parse_args() with open(args.extinst_grammar) as json_file: grammar_json = json.loads(json_file.read()) if 'copyright' in grammar_json: copyright = grammar_json['copyright'] else: copyright = DEFAULT_COPYRIGHT if 'version' in grammar_json: version = grammar_json['version'] else: version = 0 if 'operand_kinds' in grammar_json: operand_kinds = grammar_json['operand_kinds'] else: operand_kinds = [] grammar = ExtInstGrammar(name = args.extinst_name, copyright = copyright, instructions = grammar_json['instructions'], operand_kinds = operand_kinds, version = version, revision = grammar_json['revision']) make_path_to_file(args.extinst_output_base) with open(args.extinst_output_base + '.h', 'w') as f: f.write(CGenerator().generate(grammar)) if __name__ == '__main__': main() spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/bin/makeExtinstHeaders.py000077500000000000000000000027551463234063200257230ustar00rootroot00000000000000#!/usr/bin/env python3 """Generate C headers for certain extended instruction sets""" import subprocess import os # Assume we are running from the tools/buildHeaders directory os.chdir('../../include/spirv/unified1') def mk_extinst(name, grammar_file): """Generate one C header from a grammar""" script = '../../../tools/buildHeaders/bin/generate_language_headers.py' subprocess.check_call(['python3', script, '--extinst-name=' + name, '--extinst-grammar=' + grammar_file, '--extinst-output-base=' + name]) subprocess.check_call(['dos2unix', name + '.h']) mk_extinst('DebugInfo', 'extinst.debuginfo.grammar.json') mk_extinst('OpenCLDebugInfo100', 'extinst.opencl.debuginfo.100.grammar.json') mk_extinst('AMD_gcn_shader', 'extinst.spv-amd-gcn-shader.grammar.json') mk_extinst('AMD_shader_ballot', 'extinst.spv-amd-shader-ballot.grammar.json') mk_extinst('AMD_shader_explicit_vertex_parameter', 'extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json') mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.grammar.json') mk_extinst('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json') mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json') mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json') mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.grammar.json') spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/bin/makeHeaders000077500000000000000000000003211463234063200237000ustar00rootroot00000000000000#!/usr/bin/env bash set -ex python3 bin/makeExtinstHeaders.py cd ../../include/spirv/unified1 ../../../tools/buildHeaders/build/install/bin/buildSpvHeaders -H spirv.core.grammar.json dos2unix spirv.* spv.* spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/header.cpp000066400000000000000000001132511463234063200227340ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // // Print headers for SPIR-V in several languages. // // To change the header information, change the C++-built database in doc.*. // // Then, use "spriv -h " - e.g, spriv.{h,hpp,lua,py,etc}: // replace the auto-generated header, or "spirv -H" to generate all // supported language headers to predefined names in the current directory. // #include #include #include #include #include #include #include #include #include #include #include #include "jsoncpp/dist/json/json.h" #include "header.h" #include "jsonToSpirv.h" // snprintf and _snprintf are not quite the same, but close enough // for our use. #ifdef _MSC_VER #pragma warning(disable:4996) #define snprintf _snprintf #endif // This file converts SPIR-V definitions to an internal JSON // representation, and then generates language specific // data from that single internal form. // Initially, the internal form is created from C++ data, // though this can be changed to a JSON master in time. namespace { class TPrinter { protected: TPrinter(); static const int DocMagicNumber = 0x07230203; static const int DocVersion = 0x00010600; static const int DocRevision = 1; #define DocRevisionString "1" static const std::string DocCopyright; static const std::string DocComment1; static const std::string DocComment2; enum enumStyle_t { enumNoMask, enumCount, enumShift, enumMask, enumHex, }; static std::string styleStr(enumStyle_t s) { return s == enumShift ? "Shift" : s == enumMask ? "Mask" : ""; } friend std::ostream& operator<<(std::ostream&, const TPrinter&); virtual void printAll(std::ostream&) const; virtual void printComments(std::ostream&) const; virtual void printPrologue(std::ostream&) const { } virtual void printDefs(std::ostream&) const; virtual void printEpilogue(std::ostream&) const { } virtual void printMeta(std::ostream&) const; virtual void printTypes(std::ostream&) const { } virtual void printUtility(std::ostream&) const { }; virtual std::string escapeComment(const std::string& s) const; // Default printComments() uses these comment strings virtual std::string commentBeg() const { return ""; } virtual std::string commentEnd(bool isLast) const { return ""; } virtual std::string commentBOL() const { return ""; } virtual std::string commentEOL(bool isLast) const { return ""; } typedef std::pair valpair_t; // for printing enum values virtual std::string enumBeg(const std::string&, enumStyle_t) const { return ""; } virtual std::string enumEnd(const std::string&, enumStyle_t, bool isLast = false) const { return ""; } virtual std::string enumFmt(const std::string&, const valpair_t&, enumStyle_t, bool isLast = false) const { return ""; } virtual std::string maxEnumFmt(const std::string&, const valpair_t&, enumStyle_t) const { return ""; } virtual std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast = false) const { return ""; } std::vector getSortedVals(const Json::Value&) const; virtual std::string indent(int count = 1) const { return std::string(count * 4, ' '); // default indent level = 4 } static std::string fmtNum(const char* fmt, unsigned val) { char buff[16]; // ample for 8 hex digits + 0x snprintf(buff, sizeof(buff), fmt, val); buff[sizeof(buff)-1] = '\0'; // MSVC doesn't promise null termination return buff; } static std::string fmtStyleVal(unsigned v, enumStyle_t style); // If the enum value name would start with a sigit, prepend the enum name. // E.g, "3D" -> "Dim3D". static std::string prependIfDigit(const std::string& ename, const std::string& vname) { return (std::isdigit(vname[0]) ? ename : std::string("")) + vname; } void addComment(Json::Value& node, const std::string& str); Json::Value spvRoot; // JSON SPIR-V data }; // Format value as mask or value std::string TPrinter::fmtStyleVal(unsigned v, enumStyle_t style) { switch (style) { case enumMask: return fmtNum("0x%08x", 1< TPrinter::getSortedVals(const Json::Value& p) const { std::vector values; for (auto e = p.begin(); e != p.end(); ++e) values.push_back(valpair_t(e->asUInt(), e.name())); // Use a stable sort because we might have aliases, e.g. // SubgropuBallot (might be in future core) vs. SubgroupBallotKHR. std::stable_sort(values.begin(), values.end()); return values; } // Escape comment characters if needed std::string TPrinter::escapeComment(const std::string& s) const { return s; } // Format comments in language specific way void TPrinter::printComments(std::ostream& out) const { const int commentCount = spvRoot["spv"]["meta"]["Comment"].size(); int commentNum = 0; for (const auto& comment : spvRoot["spv"]["meta"]["Comment"]) { out << commentBeg(); for (int line = 0; line < int(comment.size()); ++line) out << commentBOL() << escapeComment(comment[line].asString()) << commentEOL((line+1) == comment.size()) << std::endl; out << commentEnd(++commentNum == commentCount) << std::endl; } } // Format header metadata void TPrinter::printMeta(std::ostream& out) const { const Json::Value& meta = spvRoot["spv"]["meta"]; const auto print = [&](const char* name, const char* fmt, bool isLast) { out << fmtConstInt(meta[name].asUInt(), name, fmt, isLast); }; print("MagicNumber", "0x%08lx", false); print("Version", "0x%08lx", false); print("Revision", "%d", false); print("OpCodeMask", "0x%04x", false); print("WordCountShift", "%d", true); } // Format value definitions in language specific way void TPrinter::printDefs(std::ostream& out) const { const Json::Value& enums = spvRoot["spv"]["enum"]; for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) { const bool isMask = (*opClass)["Type"].asString() == "Bit"; const auto opName = (*opClass)["Name"].asString(); const auto opPrefix = opName == "Op" ? "" : opName; for (enumStyle_t style = (isMask ? enumShift : enumCount); style <= (isMask ? enumMask : enumCount); style = enumStyle_t(int(style)+1)) { out << enumBeg(opName, style); if (style == enumMask) out << enumFmt(opPrefix, valpair_t(0, "MaskNone"), enumNoMask); const auto sorted = getSortedVals((*opClass)["Values"]); std::string maxEnum = maxEnumFmt(opName, valpair_t(0x7FFFFFFF, "Max"), enumHex); bool printMax = (style != enumMask && maxEnum.size() > 0); for (const auto& v : sorted) out << enumFmt(opPrefix, v, style, !printMax && v.second == sorted.back().second); if (printMax) out << maxEnum; auto nextOpClass = opClass; out << enumEnd(opName, style, ++nextOpClass == enums.end()); } } } void TPrinter::printAll(std::ostream& out) const { printComments(out); printPrologue(out); printTypes(out); printMeta(out); printDefs(out); printUtility(out); printEpilogue(out); } // Stream entire header to output std::ostream& operator<<(std::ostream& out, const TPrinter &p) { p.printAll(out); return out; } // JSON printer. Rather than use the default printer, we supply our own so // we can control the printing order within various containers. class TPrinterJSON final : public TPrinter { private: void printPrologue(std::ostream& out) const override { out << "{\n" + indent() + "\"spv\":\n" + indent() + "{\n"; } void printEpilogue(std::ostream& out) const override { out << indent() + "}\n}\n"; } std::string escapeComment(const std::string& s) const override { std::string newStr; for (auto c : s) { if (c == '"') { newStr += '\\'; newStr += c; } else { newStr += c; } } return newStr; } std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return indent(3) + '"' + name + "\": " + fmtNum("%d", val) + (isLast ? "\n" : ",\n"); } void printMeta(std::ostream& out) const override { out << indent(2) + "\"meta\":\n" + indent(2) + "{\n"; printComments(out); TPrinter::printMeta(out); out << indent(2) + "},\n"; } std::string commentBeg() const override { return indent(4) + "[\n"; } std::string commentEnd(bool isLast) const override { return indent(4) + (isLast ? "]" : "],"); } std::string commentBOL() const override { return indent(5) + '"'; } std::string commentEOL(bool isLast) const override { return (isLast ? "\"" : "\","); } void printComments(std::ostream& out) const override { out << indent(3) + "\"Comment\":\n" + indent(3) + "[\n"; TPrinter::printComments(out); out << indent(3) + "],\n"; } void printDefs(std::ostream& out) const override { out << indent(2) + "\"enum\":\n" + indent(2) + "[\n"; TPrinter::printDefs(out); out << indent(2) + "]\n"; } void printAll(std::ostream& out) const override { printPrologue(out); printMeta(out); printDefs(out); printEpilogue(out); } std::string enumBeg(const std::string& s, enumStyle_t style) const override { if (style == enumMask) return ""; return indent(3) + "{\n" + indent(4) + "\"Name\": \"" + s + "\",\n" + indent(4) + "\"Type\": " + (style == enumShift ? "\"Bit\"" : "\"Value\"") + ",\n" + indent(4) + "\"Values\":\n" + indent(4) + "{\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { if (style == enumMask) return ""; return indent(4) + "}\n" + indent(3) + "}" + (isLast ? "" : ",") + "\n"; } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { if (style == enumMask || style == enumNoMask) return ""; return indent(5) + '"' + prependIfDigit(s, v.second) + "\": " + fmtNum("%d", v.first) + (isLast ? "\n" : ",\n"); } }; // base for C and C++ class TPrinterCBase : public TPrinter { protected: virtual void printPrologue(std::ostream& out) const override { out << "#ifndef spirv_" << headerGuardSuffix() << std::endl << "#define spirv_" << headerGuardSuffix() << std::endl << std::endl; } void printMeta(std::ostream& out) const override { out << "#define SPV_VERSION 0x" << std::hex << DocVersion << std::dec << "\n"; out << "#define SPV_REVISION " << DocRevision << "\n"; out << "\n"; return TPrinter::printMeta(out); } virtual void printEpilogue(std::ostream& out) const override { out << "#endif" << std::endl; } virtual void printTypes(std::ostream& out) const override { out << "typedef unsigned int " << pre() << "Id;\n\n"; } virtual std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return std::string("static const unsigned int ") + pre() + name + " = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n"); } virtual std::string pre() const { return ""; } // C name prefix virtual std::string headerGuardSuffix() const = 0; virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const { return pre() + name; } virtual void printUtility(std::ostream& out) const override { out << "#ifdef SPV_ENABLE_UTILITY_CODE" << std::endl; out << "#ifndef __cplusplus" << std::endl; out << "#include " << std::endl; out << "#endif" << std::endl; printHasResultType(out); printStringFunctions(out); out << "#endif /* SPV_ENABLE_UTILITY_CODE */" << std::endl << std::endl; } void printHasResultType(std::ostream& out) const { const Json::Value& enums = spvRoot["spv"]["enum"]; std::set seenValues; for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) { const auto opName = (*opClass)["Name"].asString(); if (opName != "Op") { continue; } out << "inline void " << pre() << "HasResultAndType(" << pre() << opName << " opcode, bool *hasResult, bool *hasResultType) {" << std::endl; out << " *hasResult = *hasResultType = false;" << std::endl; out << " switch (opcode) {" << std::endl; out << " default: /* unknown opcode */ break;" << std::endl; for (auto& inst : spv::InstructionDesc) { // Filter out duplicate enum values, which would break the switch statement. // These are probably just extension enums promoted to core. if (seenValues.find(inst.value) != seenValues.end()) { continue; } seenValues.insert(inst.value); std::string name = inst.name; out << " case " << fmtEnumUse("Op", name) << ": *hasResult = " << (inst.hasResult() ? "true" : "false") << "; *hasResultType = " << (inst.hasType() ? "true" : "false") << "; break;" << std::endl; } out << " }" << std::endl; out << "}" << std::endl; } } void printStringFunctions(std::ostream& out) const { const Json::Value& enums = spvRoot["spv"]["enum"]; for (auto it = enums.begin(); it != enums.end(); ++it) { const auto type = (*it)["Type"].asString(); // Skip bitmasks if (type == "Bit") { continue; } const auto name = (*it)["Name"].asString(); const auto sorted = getSortedVals((*it)["Values"]); std::set seenValues; std::string fullName = pre() + name; out << "inline const char* " << fullName << "ToString(" << fullName << " value) {" << std::endl; out << " switch (value) {" << std::endl; for (const auto& v : sorted) { // Filter out duplicate enum values, which would break the switch statement. // These are probably just extension enums promoted to core. if (seenValues.count(v.first)) { continue; } seenValues.insert(v.first); std::string label{name + v.second}; if (name == "Op") { label = v.second; } out << " " << "case " << pre() << label << ": return " << "\"" << v.second << "\";" << std::endl; } out << " default: return \"Unknown\";" << std::endl; out << " }" << std::endl; out << "}" << std::endl << std::endl; } } }; // C printer class TPrinterC final : public TPrinterCBase { private: std::string commentBeg() const override { return "/*\n"; } std::string commentEnd(bool isLast) const override { return "*/\n"; } std::string commentBOL() const override { return "** "; } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return std::string("typedef enum ") + pre() + s + styleStr(style) + "_ {\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return "} " + pre() + s + styleStr(style) + ";\n\n"; } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent() + pre() + s + v.second + styleStr(style) + " = " + fmtStyleVal(v.first, style) + ",\n"; } std::string maxEnumFmt(const std::string& s, const valpair_t& v, enumStyle_t style) const override { return enumFmt(s, v, style, true); } std::string pre() const override { return "Spv"; } // C name prefix std::string headerGuardSuffix() const override { return "H"; } }; // C++ printer class TPrinterCPP : public TPrinterCBase { protected: void printMaskOperators(std::ostream& out, const std::string& specifiers) const { const Json::Value& enums = spvRoot["spv"]["enum"]; out << "// Overload bitwise operators for mask bit combining\n\n"; for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) { const bool isMask = (*opClass)["Type"].asString() == "Bit"; const auto opName = (*opClass)["Name"].asString(); if (isMask) { const auto typeName = opName + styleStr(enumMask); // Overload operator| out << specifiers << " " << typeName << " operator|(" << typeName << " a, " << typeName << " b) { return " << typeName << "(unsigned(a) | unsigned(b)); }\n"; // Overload operator& out << specifiers << " " << typeName << " operator&(" << typeName << " a, " << typeName << " b) { return " << typeName << "(unsigned(a) & unsigned(b)); }\n"; // Overload operator^ out << specifiers << " " << typeName << " operator^(" << typeName << " a, " << typeName << " b) { return " << typeName << "(unsigned(a) ^ unsigned(b)); }\n"; // Overload operator~ out << specifiers << " " << typeName << " operator~(" << typeName << " a) { return " << typeName << "(~unsigned(a)); }\n"; } } } private: void printPrologue(std::ostream& out) const override { TPrinterCBase::printPrologue(out); out << "namespace spv {\n\n"; } void printEpilogue(std::ostream& out) const override { printMaskOperators(out, "inline"); out << "\n} // end namespace spv\n\n"; out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl; } std::string commentBOL() const override { return "// "; } virtual std::string enumBeg(const std::string& s, enumStyle_t style) const override { return std::string("enum ") + s + styleStr(style) + " {\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return "};\n\n"; } virtual std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent() + s + v.second + styleStr(style) + " = " + fmtStyleVal(v.first, style) + ",\n"; } virtual std::string maxEnumFmt(const std::string& s, const valpair_t& v, enumStyle_t style) const override { return enumFmt(s, v, style, true); } // The C++ and C++11 headers define types with the same name. So they // should use the same header guard. std::string headerGuardSuffix() const override { return "HPP"; } std::string operators; }; // C++11 printer (uses enum classes) class TPrinterCPP11 final : public TPrinterCPP { private: void printEpilogue(std::ostream& out) const override { printMaskOperators(out, "constexpr"); out << "\n} // end namespace spv\n\n"; out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl; } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n"; } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent() + prependIfDigit(s, v.second) + " = " + fmtStyleVal(v.first, style) + ",\n"; } std::string maxEnumFmt(const std::string& s, const valpair_t& v, enumStyle_t style) const override { return enumFmt(s, v, style, true); } // Add type prefix for scoped enum virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const override { return opPrefix + "::" + name; } std::string headerGuardSuffix() const override { return "HPP"; } }; // LUA printer class TPrinterLua final : public TPrinter { private: void printPrologue(std::ostream& out) const override { out << "spv = {\n"; } void printEpilogue(std::ostream& out) const override { out << "}\n"; } std::string commentBOL() const override { return "-- "; } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return indent() + s + styleStr(style) + " = {\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return indent() + "},\n\n"; } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent(2) + prependIfDigit(s, v.second) + " = " + fmtStyleVal(v.first, style) + ",\n"; } virtual std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return indent() + name + " = " + fmtNum(fmt, val) + (isLast ? ",\n\n" : ",\n"); } }; // Python printer class TPrinterPython final : public TPrinter { private: void printPrologue(std::ostream& out) const override { out << "spv = {\n"; } void printEpilogue(std::ostream& out) const override { out << "}\n"; } std::string commentBOL() const override { return "# "; } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return indent() + "'" + s + styleStr(style) + "'" + " : {\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return indent() + "},\n\n"; } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent(2) + "'" + prependIfDigit(s, v.second) + "'" + " : " + fmtStyleVal(v.first, style) + ",\n"; } std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return indent() + "'" + name + "'" + " : " + fmtNum(fmt, val) + (isLast ? ",\n\n" : ",\n"); } }; // C# printer class TPrinterCSharp final : public TPrinter { private: std::string commentBOL() const override { return "// "; } void printPrologue(std::ostream& out) const override { out << "namespace Spv\n{\n\n"; out << indent() << "public static class Specification\n"; out << indent() << "{\n"; } void printEpilogue(std::ostream& out) const override { out << indent() << "}\n"; out << "}\n"; } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return indent(2) + "public enum " + s + styleStr(style) + "\n" + indent(2) + "{\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return indent(2) + "}" + + (isLast ? "\n" : "\n\n"); } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent(3) + prependIfDigit(s, v.second) + " = " + fmtStyleVal(v.first, style) + ",\n"; } std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return indent(2) + std::string("public const uint ") + name + " = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n"); } }; // D printer class TPrinterD final : public TPrinter { private: std::string commentBeg() const override { return "/+\n"; } std::string commentBOL() const override { return " + "; } std::string commentEnd(bool isLast) const override { return " +/\n"; } void printPrologue(std::ostream& out) const override { out << "module spv;\n\n"; } void printEpilogue(std::ostream& out) const override { } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return "enum " + s + styleStr(style) + " : uint\n{\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return std::string("}\n\n"); } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent() + prependIfDigit("_", v.second) + " = " + fmtStyleVal(v.first, style) + ",\n"; } std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return std::string("enum uint ") + name + " = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n"); } }; // Beef printer class TPrinterBeef final : public TPrinter { private: std::string commentBOL() const override { return "// "; } void printPrologue(std::ostream& out) const override { out << "namespace Spv\n{\n"; out << indent() << "using System;\n\n"; out << indent() << "public static class Specification\n"; out << indent() << "{\n"; } void printEpilogue(std::ostream& out) const override { out << indent() << "}\n"; out << "}\n"; } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return indent(2) + "[AllowDuplicates, CRepr] public enum " + s + styleStr(style) + "\n" + indent(2) + "{\n"; } std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override { return indent(2) + "}" + +(isLast ? "\n" : "\n\n"); } std::string enumFmt(const std::string& s, const valpair_t& v, enumStyle_t style, bool isLast) const override { return indent(3) + prependIfDigit(s, v.second) + " = " + fmtStyleVal(v.first, style) + ",\n"; } std::string fmtConstInt(unsigned val, const std::string& name, const char* fmt, bool isLast) const override { return indent(2) + std::string("public const uint32 ") + name + " = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n"); } }; } // namespace namespace spv { void PrintAllHeaders() { // TODO: Once MSVC 2012 is no longer a factor, use brace initializers here std::vector> langInfo; langInfo.push_back(std::make_pair(ELangC, "spirv.h")); langInfo.push_back(std::make_pair(ELangCPP, "spirv.hpp")); langInfo.push_back(std::make_pair(ELangCPP11, "spirv.hpp11")); langInfo.push_back(std::make_pair(ELangJSON, "spirv.json")); langInfo.push_back(std::make_pair(ELangLua, "spirv.lua")); langInfo.push_back(std::make_pair(ELangPython, "spirv.py")); langInfo.push_back(std::make_pair(ELangCSharp, "spirv.cs")); langInfo.push_back(std::make_pair(ELangD, "spv.d")); langInfo.push_back(std::make_pair(ELangBeef, "spirv.bf")); for (const auto& lang : langInfo) { std::ofstream out(lang.second, std::ios::out); if ((out.rdstate() & std::ifstream::failbit)) { std::cerr << "Unable to open file: " << lang.second << std::endl; } else { PrintHeader(lang.first, out); } } } // Print header for given language to given output stream void PrintHeader(TLanguage lang, std::ostream& out) { typedef std::unique_ptr TPrinterPtr; TPrinterPtr p; switch (lang) { case ELangC: p = TPrinterPtr(new TPrinterC); break; case ELangCPP: p = TPrinterPtr(new TPrinterCPP); break; case ELangCPP11: p = TPrinterPtr(new TPrinterCPP11); break; case ELangJSON: p = TPrinterPtr(new TPrinterJSON); break; case ELangLua: p = TPrinterPtr(new TPrinterLua); break; case ELangPython: p = TPrinterPtr(new TPrinterPython); break; case ELangCSharp: p = TPrinterPtr(new TPrinterCSharp); break; case ELangD: p = TPrinterPtr(new TPrinterD); break; case ELangBeef: p = TPrinterPtr(new TPrinterBeef); break; case ELangAll: PrintAllHeaders(); break; default: std::cerr << "Unknown language." << std::endl; return; } // Print the data in the requested format if (p) out << *p << std::endl; // object is auto-deleted } } // namespace spv spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/header.h000066400000000000000000000037711463234063200224060ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. // // Print headers for SPIR-V in several languages. // #pragma once #ifndef header #define header #include namespace spv { // Languages supported enum TLanguage { ELangC, // C ELangCPP, // C++03 ELangCPP11, // C++11 ELangJSON, // JSON ELangLua, // Lua ELangPython, // Python ELangCSharp, // CSharp ELangD, // D ELangBeef, // Beef ELangAll, // print headers in all languages to files }; // Generate header for requested language void PrintHeader(TLanguage, std::ostream&); } // namespace spv #endif // header spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsonToSpirv.cpp000066400000000000000000001143001463234063200240000ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. #include #include #include #include #include #include #include #include #include #include "jsoncpp/dist/json/json.h" #include "jsonToSpirv.h" namespace { // Returns true if the given string is a valid SPIR-V version. bool validSpirvVersionString(const std::string s) { return s == "1.0" || s == "1.1" || s == "1.2" || s == "1.3" || s == "1.4" || s == "1.5" || s == "1.6"; } // Returns true if the given string is a valid version // specifier in the grammar file. bool validSpirvVersionStringSpecifier(const std::string s) { return s == "None" || validSpirvVersionString(s); } } // anonymous namespace namespace spv { bool IsLegacyDoublyEnabledInstruction(const std::string& instruction) { static std::unordered_set allowed = { "OpSubgroupBallotKHR", "OpSubgroupFirstInvocationKHR", "OpSubgroupAllKHR", "OpSubgroupAnyKHR", "OpSubgroupAllEqualKHR", "OpSubgroupReadInvocationKHR", "OpTraceRayKHR", "OpExecuteCallableKHR", "OpConvertUToAccelerationStructureKHR", "OpIgnoreIntersectionKHR", "OpTerminateRayKHR", "OpTypeRayQueryKHR", "OpRayQueryInitializeKHR", "OpRayQueryTerminateKHR", "OpRayQueryGenerateIntersectionKHR", "OpRayQueryConfirmIntersectionKHR", "OpRayQueryProceedKHR", "OpRayQueryGetIntersectionTypeKHR", "OpGroupIAddNonUniformAMD", "OpGroupFAddNonUniformAMD", "OpGroupFMinNonUniformAMD", "OpGroupUMinNonUniformAMD", "OpGroupSMinNonUniformAMD", "OpGroupFMaxNonUniformAMD", "OpGroupUMaxNonUniformAMD", "OpGroupSMaxNonUniformAMD", "OpFragmentMaskFetchAMD", "OpFragmentFetchAMD", "OpImageSampleFootprintNV", "OpGroupNonUniformPartitionNV", "OpWritePackedPrimitiveIndices4x8NV", "OpReportIntersectionNV", "OpReportIntersectionKHR", "OpIgnoreIntersectionNV", "OpTerminateRayNV", "OpTraceNV", "OpTraceMotionNV", "OpTraceRayMotionNV", "OpTypeAccelerationStructureNV", "OpTypeAccelerationStructureKHR", "OpExecuteCallableNV", "OpTypeCooperativeMatrixNV", "OpCooperativeMatrixLoadNV", "OpCooperativeMatrixStoreNV", "OpCooperativeMatrixMulAddNV", "OpCooperativeMatrixLengthNV", "OpBeginInvocationInterlockEXT", "OpEndInvocationInterlockEXT", "OpIsHelperInvocationEXT", "OpConstantFunctionPointerINTEL", "OpFunctionPointerCallINTEL", "OpAssumeTrueKHR", "OpExpectKHR", "OpLoopControlINTEL", "OpAliasDomainDeclINTEL", "OpAliasScopeDeclINTEL", "OpAliasScopeListDeclINTEL", "OpReadPipeBlockingINTEL", "OpWritePipeBlockingINTEL", "OpFPGARegINTEL", "OpRayQueryGetRayTMinKHR", "OpRayQueryGetRayFlagsKHR", "OpRayQueryGetIntersectionTKHR", "OpRayQueryGetIntersectionInstanceCustomIndexKHR", "OpRayQueryGetIntersectionInstanceIdKHR", "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR", "OpRayQueryGetIntersectionGeometryIndexKHR", "OpRayQueryGetIntersectionPrimitiveIndexKHR", "OpRayQueryGetIntersectionBarycentricsKHR", "OpRayQueryGetIntersectionFrontFaceKHR", "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR", "OpRayQueryGetIntersectionObjectRayDirectionKHR", "OpRayQueryGetIntersectionObjectRayOriginKHR", "OpRayQueryGetWorldRayDirectionKHR", "OpRayQueryGetWorldRayOriginKHR", "OpRayQueryGetIntersectionObjectToWorldKHR", "OpRayQueryGetIntersectionWorldToObjectKHR", "OpAtomicFAddEXT", }; return allowed.count(instruction) != 0; } bool EnumValue::IsValid(OperandClass oc, const std::string& context) const { bool result = true; if (firstVersion.empty()) { std::cerr << "Error: " << context << " " << name << " \"version\" must be set, probably to \"None\"" << std::endl; result = false; } else if (!validSpirvVersionStringSpecifier(firstVersion)) { std::cerr << "Error: " << context << " " << name << " \"version\" is invalid: " << firstVersion << std::endl; result = false; } if (!lastVersion.empty() && !validSpirvVersionString(lastVersion)) { std::cerr << "Error: " << context << " " << name << " \"lastVersion\" is invalid: " << lastVersion << std::endl; result = false; } // When a feature is introduced by an extension, the firstVersion is set to // "None". There are three cases: // - A new capability should be guarded/enabled by the extension // - A new instruction should be: // - Guarded/enabled by a new capability. // - Not enabled by *both* a capability and an extension. // There are many existing instructions that are already like this, // and we grandparent them as allowed. // - Other enums fall into two cases: // 1. The enum is part of a new operand kind introduced by the extension. // In this case we rely on transitivity: The use of the operand occurs // in a new instruction that itself is guarded; or as the operand of // another operand that itself is (recursively) guarded. // 2. The enum is a new case in an existing operand kind. This case // should be guarded by a capability. However, we do not check this // here. Checking it requires more context than we have here. if (oc == OperandOpcode) { const bool instruction_unusable = (firstVersion == "None") && extensions.empty() && capabilities.empty(); if (instruction_unusable) { std::cerr << "Error: " << context << " " << name << " is not usable: " << "its version is set to \"None\", and it is not enabled by a " << "capability or extension. Guard it with a capability." << std::endl; result = false; } // Complain if an instruction is not in any core version and also enabled by // both an extension and a capability. // It's important to check the "not in any core version" case, because, // for example, OpTerminateInvocation is in SPIR-V 1.6 *and* enabled by an // extension, and guarded by the Shader capability. const bool instruction_doubly_enabled = (firstVersion == "None") && !extensions.empty() && !capabilities.empty(); if (instruction_doubly_enabled && !IsLegacyDoublyEnabledInstruction(name)) { std::cerr << "Error: " << context << " " << name << " is doubly-enabled: " << "it is enabled by both a capability and an extension. " << "Guard it with a capability only." << std::endl; result = false; } } if (oc == OperandCapability) { // If capability X lists capabilities Y and Z, then Y and Z are *enabled* // when X is enabled. They are not *guards* on X's use. // Only versions and extensions can guard a capability. const bool capability_unusable = (firstVersion == "None") && extensions.empty(); if (capability_unusable) { std::cerr << "Error: " << context << " " << name << " is not usable: " << "its version is set to \"None\", and it is not enabled by " << "an extension. Guard it with an extension." << std::endl; result = false; } } return result; } // The set of objects that hold all the instruction/operand // parameterization information. InstructionValues InstructionDesc; // The ordered list (in printing order) of printing classes // (specification subsections). PrintingClasses InstructionPrintingClasses; // Note: There is no entry for OperandOpcode. Use InstructionDesc instead. EnumDefinition OperandClassParams[OperandOpcode]; EnumValues SourceLanguageParams; EnumValues ExecutionModelParams; EnumValues AddressingParams; EnumValues MemoryParams; EnumValues ExecutionModeParams; EnumValues StorageParams; EnumValues SamplerAddressingModeParams; EnumValues SamplerFilterModeParams; EnumValues ImageFormatParams; EnumValues ImageChannelOrderParams; EnumValues ImageChannelDataTypeParams; EnumValues ImageOperandsParams; EnumValues FPFastMathParams; EnumValues FPRoundingModeParams; EnumValues FPDenormModeParams; EnumValues FPOperationModeParams; EnumValues QuantizationModesParams; EnumValues OverflowModesParams; EnumValues LinkageTypeParams; EnumValues DecorationParams; EnumValues BuiltInParams; EnumValues DimensionalityParams; EnumValues FuncParamAttrParams; EnumValues AccessQualifierParams; EnumValues GroupOperationParams; EnumValues LoopControlParams; EnumValues SelectionControlParams; EnumValues FunctionControlParams; EnumValues MemorySemanticsParams; EnumValues MemoryAccessParams; EnumValues ScopeParams; EnumValues KernelEnqueueFlagsParams; EnumValues KernelProfilingInfoParams; EnumValues CapabilityParams; EnumValues RayFlagsParams; EnumValues RayQueryIntersectionParams; EnumValues RayQueryCommittedIntersectionTypeParams; EnumValues RayQueryCandidateIntersectionTypeParams; EnumValues FragmentShadingRateParams; EnumValues PackedVectorFormatParams; EnumValues CooperativeMatrixOperandsParams; EnumValues CooperativeMatrixLayoutParams; EnumValues CooperativeMatrixUseParams; EnumValues InitializationModeQualifierParams; EnumValues HostAccessQualifierParams; EnumValues LoadCacheControlParams; EnumValues StoreCacheControlParams; EnumValues NamedMaximumNumberOfRegistersParams; EnumValues RawAccessChainOperandsParams; std::pair ReadFile(const std::string& path) { std::ifstream fstream(path, std::ios::in); if (fstream) { std::string contents; fstream.seekg(0, std::ios::end); contents.reserve((unsigned int)fstream.tellg()); fstream.seekg(0, std::ios::beg); contents.assign((std::istreambuf_iterator(fstream)), std::istreambuf_iterator()); return std::make_pair(true, contents); } return std::make_pair(false, ""); } struct ClassOptionality { OperandClass type; bool optional; }; // Converts the |operandKind| and |quantifier| pair used to describe operands // in the JSON grammar to OperandClass and optionality used in this repo. ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, const std::string& quantifier) { assert(quantifier.empty() || quantifier == "?" || quantifier == "*"); if (operandKind == "IdRef") { if (quantifier.empty()) return {OperandId, false}; else if (quantifier == "?") return {OperandId, true}; else return {OperandVariableIds, false}; } else if (operandKind == "LiteralInteger") { if (quantifier.empty()) return {OperandLiteralNumber, false}; if (quantifier == "?") return {OperandOptionalLiteral, true}; else return {OperandVariableLiterals, false}; } else if (operandKind == "LiteralString") { if (quantifier.empty()) return {OperandLiteralString, false}; else if (quantifier == "?") return {OperandLiteralString, true}; else { return {OperandOptionalLiteralStrings, false}; } } else if (operandKind == "PairLiteralIntegerIdRef") { // Used by OpSwitch in the grammar return {OperandVariableLiteralId, false}; } else if (operandKind == "PairIdRefLiteralInteger") { // Used by OpGroupMemberDecorate in the grammar return {OperandVariableIdLiteral, false}; } else if (operandKind == "PairIdRefIdRef") { // Used by OpPhi in the grammar return {OperandVariableIds, false}; } else { OperandClass type = OperandNone; if (operandKind == "IdMemorySemantics" || operandKind == "MemorySemantics") { type = OperandMemorySemantics; } else if (operandKind == "IdScope" || operandKind == "Scope") { type = OperandScope; } else if (operandKind == "LiteralExtInstInteger") { type = OperandLiteralNumber; } else if (operandKind == "LiteralSpecConstantOpInteger") { type = OperandLiteralNumber; } else if (operandKind == "LiteralContextDependentNumber") { type = OperandAnySizeLiteralNumber; } else if (operandKind == "LiteralFloat") { type = OperandLiteralNumber; } else if (operandKind == "SourceLanguage") { type = OperandSource; } else if (operandKind == "ExecutionModel") { type = OperandExecutionModel; } else if (operandKind == "AddressingModel") { type = OperandAddressing; } else if (operandKind == "MemoryModel") { type = OperandMemory; } else if (operandKind == "ExecutionMode") { type = OperandExecutionMode; } else if (operandKind == "StorageClass") { type = OperandStorage; } else if (operandKind == "Dim") { type = OperandDimensionality; } else if (operandKind == "SamplerAddressingMode") { type = OperandSamplerAddressingMode; } else if (operandKind == "SamplerFilterMode") { type = OperandSamplerFilterMode; } else if (operandKind == "ImageFormat") { type = OperandSamplerImageFormat; } else if (operandKind == "ImageChannelOrder") { type = OperandImageChannelOrder; } else if (operandKind == "ImageChannelDataType") { type = OperandImageChannelDataType; } else if (operandKind == "FPRoundingMode") { type = OperandFPRoundingMode; } else if (operandKind == "FPDenormMode") { type = OperandFPDenormMode; } else if (operandKind == "FPOperationMode") { type = OperandFPOperationMode; } else if (operandKind == "QuantizationModes") { type = OperandQuantizationModes; } else if (operandKind == "OverflowModes") { type = OperandOverflowModes; } else if (operandKind == "LinkageType") { type = OperandLinkageType; } else if (operandKind == "AccessQualifier") { type = OperandAccessQualifier; } else if (operandKind == "FunctionParameterAttribute") { type = OperandFuncParamAttr; } else if (operandKind == "Decoration") { type = OperandDecoration; } else if (operandKind == "BuiltIn") { type = OperandBuiltIn; } else if (operandKind == "GroupOperation") { type = OperandGroupOperation; } else if (operandKind == "KernelEnqueueFlags") { type = OperandKernelEnqueueFlags; } else if (operandKind == "KernelProfilingInfo") { type = OperandKernelProfilingInfo; } else if (operandKind == "Capability") { type = OperandCapability; } else if (operandKind == "ImageOperands") { type = OperandImageOperands; } else if (operandKind == "FPFastMathMode") { type = OperandFPFastMath; } else if (operandKind == "SelectionControl") { type = OperandSelect; } else if (operandKind == "LoopControl") { type = OperandLoop; } else if (operandKind == "FunctionControl") { type = OperandFunction; } else if (operandKind == "MemoryAccess") { type = OperandMemoryOperands; } else if (operandKind == "RayFlags") { type = OperandRayFlags; } else if (operandKind == "RayQueryIntersection") { type = OperandRayQueryIntersection; } else if (operandKind == "RayQueryCommittedIntersectionType") { type = OperandRayQueryCommittedIntersectionType; } else if (operandKind == "RayQueryCandidateIntersectionType") { type = OperandRayQueryCandidateIntersectionType; } else if (operandKind == "FragmentShadingRate") { type = OperandFragmentShadingRate; } else if (operandKind == "PackedVectorFormat") { type = OperandPackedVectorFormat; } else if (operandKind == "CooperativeMatrixOperands") { type = OperandCooperativeMatrixOperands; } else if (operandKind == "CooperativeMatrixLayout") { type = OperandCooperativeMatrixLayout; } else if (operandKind == "CooperativeMatrixUse") { type = OperandCooperativeMatrixUse; } else if (operandKind == "InitializationModeQualifier") { type = OperandInitializationModeQualifier; } else if (operandKind == "HostAccessQualifier") { type = OperandHostAccessQualifier; } else if (operandKind == "LoadCacheControl") { type = OperandLoadCacheControl; } else if (operandKind == "StoreCacheControl") { type = OperandStoreCacheControl; } else if (operandKind == "NamedMaximumNumberOfRegisters") { type = OperandNamedMaximumNumberOfRegisters; } else if (operandKind == "RawAccessChainOperands") { type = OperandRawAccessChainOperands; } if (type == OperandNone) { std::cerr << "Unhandled operand kind found: " << operandKind << std::endl; exit(1); } return {type, !quantifier.empty()}; } } bool IsTypeOrResultId(const std::string& str, bool* isType, bool* isResult) { if (str == "IdResultType") return *isType = true; if (str == "IdResult") return *isResult = true; return false; } // Given a number string, returns the position of the only bits set in the number. // So it requires the number is a power of two. unsigned int NumberStringToBit(const std::string& str) { char* parseEnd; unsigned int value = (unsigned int)std::strtol(str.c_str(), &parseEnd, 16); assert(!(value & (value - 1)) && "input number is not a power of 2"); unsigned int bit = 0; for (; value; value >>= 1) ++bit; return bit; } // Given two pairs (name and in core) compares if the order is correct for naming // conventions. The conventions are: // * Core // * KHR // * EXT // * Vendor (no preference between vendors) // // Returns true if the order is valid. bool SuffixComparison(const std::string& prev, bool prevCore, const std::string& cur, bool curCore) { // Duplicate entry if (prev == cur) return false; if (prevCore) return true; if (curCore) return false; // Both are suffixed names. const bool prevKHR = prev.substr(prev.size() - 3) == "KHR"; const bool prevEXT = prev.substr(prev.size() - 3) == "EXT"; const bool curKHR = cur.substr(cur.size() - 3) == "KHR"; const bool curEXT = cur.substr(cur.size() - 3) == "EXT"; if (prevKHR) return true; if (curKHR) return false; if (prevEXT) return true; if (curEXT) return false; return true; } void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders) { // only do this once. static bool initialized = false; if (initialized) return; initialized = true; size_t errorCount = 0; // Read the JSON grammar file. bool fileReadOk = false; std::string content; std::tie(fileReadOk, content) = ReadFile(jsonPath); if (!fileReadOk) { std::cerr << "Failed to read JSON grammar file: " << jsonPath << std::endl; exit(1); } // Decode the JSON grammar file. Json::Reader reader; Json::Value root; if (!reader.parse(content, root)) { std::cerr << "Failed to parse JSON grammar:\n" << reader.getFormattedErrorMessages(); exit(1); } // Layouts for all instructions. // A lambda for returning capabilities from a JSON object as strings. const auto getCaps = [](const Json::Value& object) { EnumCaps result; const auto& caps = object["capabilities"]; if (!caps.empty()) { assert(caps.isArray()); for (const auto& cap : caps) { result.emplace_back(cap.asString()); } } return result; }; // A lambda for returning extensions from a JSON object as strings. const auto getExts = [](const Json::Value& object) { Extensions result; const auto& exts = object["extensions"]; if (!exts.empty()) { assert(exts.isArray()); for (const auto& ext : exts) { result.emplace_back(ext.asString()); } } return result; }; // set up the printing classes std::unordered_set tags; // short-lived local for error checking below const Json::Value printingClasses = root["instruction_printing_class"]; for (const auto& printingClass : printingClasses) { if (printingClass["tag"].asString().size() > 0) tags.insert(printingClass["tag"].asString()); // just for error checking else { std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl; std::exit(1); } if (buildingHeaders || printingClass["tag"].asString() != "@exclude") { InstructionPrintingClasses.push_back({printingClass["tag"].asString(), printingClass["heading"].asString()}); } } // process the instructions const Json::Value insts = root["instructions"]; unsigned maxOpcode = 0; std::string maxName = ""; bool maxCore = false; bool firstOpcode = true; for (const auto& inst : insts) { const auto printingClass = inst["class"].asString(); if (printingClass.size() == 0) { std::cerr << "Error: " << inst["opname"].asString() << " requires a non-empty printing \"class\" tag" << std::endl; std::exit(1); } if (!buildingHeaders && printingClass == "@exclude") continue; if (tags.find(printingClass) == tags.end()) { std::cerr << "Error: " << inst["opname"].asString() << " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\"" << std::endl; std::exit(1); } const auto opcode = inst["opcode"].asUInt(); const std::string name = inst["opname"].asString(); std::string version = inst["version"].asString(); if (firstOpcode) { maxOpcode = opcode; maxName = name; maxCore = version != "None"; firstOpcode = false; } else { if (maxOpcode > opcode) { std::cerr << "Error: " << name << " is out of order. It follows the instruction with opcode " << maxOpcode << std::endl; std::exit(1); } else if (maxOpcode == opcode && !SuffixComparison(maxName, maxCore, name, version != "None")) { std::cerr << "Error: " << name << " is out of order. It follows alias " << maxName << std::endl; std::exit(1); } else { maxOpcode = opcode; maxName = name; maxCore = version != "None"; } } EnumCaps caps = getCaps(inst); std::string lastVersion = inst["lastVersion"].asString(); Extensions exts = getExts(inst); OperandParameters operands; bool defResultId = false; bool defTypeId = false; for (const auto& operand : inst["operands"]) { const std::string kind = operand["kind"].asString(); const std::string quantifier = operand.get("quantifier", "").asString(); const std::string doc = operand.get("name", "").asString(); if (!IsTypeOrResultId(kind, &defTypeId, &defResultId)) { const auto p = ToOperandClassAndOptionality(kind, quantifier); operands.push(p.type, doc, p.optional); } } InstructionDesc.emplace_back( std::move(EnumValue(opcode, name, std::move(caps), std::move(version), std::move(lastVersion), std::move(exts), std::move(operands))), printingClass, defTypeId, defResultId); if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) { errorCount++; } } // Specific additional context-dependent operands // Populate dest with EnumValue objects constructed from source. const auto populateEnumValues = [&getCaps,&getExts,&errorCount](EnumValues* dest, const Json::Value& source, bool bitEnum) { // A lambda for determining the numeric value to be used for a given // enumerant in JSON form, and whether that value is a 0 in a bitfield. auto getValue = [&bitEnum](const Json::Value& enumerant) { std::pair result{0u,false}; if (!bitEnum) { result.first = enumerant["value"].asUInt(); } else { const unsigned int bit = NumberStringToBit(enumerant["value"].asString()); if (bit == 0) result.second = true; else result.first = bit - 1; // This is the *shift* amount. } return result; }; unsigned maxValue = 0; std::string maxName = ""; bool maxCore = false; bool firstValue = true; for (const auto& enumerant : source["enumerants"]) { unsigned value; bool skip_zero_in_bitfield; std::tie(value, skip_zero_in_bitfield) = getValue(enumerant); std::string name = enumerant["enumerant"].asString(); std::string version = enumerant["version"].asString(); if (skip_zero_in_bitfield) continue; if (firstValue) { maxValue = value; maxName = name; maxCore = version != "None"; firstValue = false; } else { if (maxValue > value) { std::cerr << "Error: " << source["kind"] << " enumerant " << name << " is out of order. It has value " << value << " but follows the enumerant with value " << maxValue << std::endl; std::exit(1); } else if (maxValue == value && !SuffixComparison(maxName, maxCore, name, version != "None")) { std::cerr << "Error: " << source["kind"] << " enumerant " << name << " is out of order. It follows alias " << maxName << std::endl; std::exit(1); } else { maxValue = value; maxName = name; maxCore = version != "None"; } } EnumCaps caps(getCaps(enumerant)); std::string lastVersion = enumerant["lastVersion"].asString(); Extensions exts(getExts(enumerant)); OperandParameters params; const Json::Value& paramsJson = enumerant["parameters"]; if (!paramsJson.empty()) { // This enumerant has parameters. assert(paramsJson.isArray()); for (const auto& param : paramsJson) { const std::string kind = param["kind"].asString(); const std::string doc = param.get("name", "").asString(); const auto p = ToOperandClassAndOptionality(kind, ""); // All parameters are required! params.push(p.type, doc); } } dest->emplace_back( value, enumerant["enumerant"].asString(), std::move(caps), std::move(version), std::move(lastVersion), std::move(exts), std::move(params)); } }; const auto establishOperandClass = [&populateEnumValues,&errorCount]( const std::string& enumName, spv::OperandClass operandClass, spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) { assert(category == "BitEnum" || category == "ValueEnum"); bool bitEnum = (category == "BitEnum"); if (!operandEnum["version"].empty()) { std::cerr << "Error: container for " << enumName << " operand_kind must not have a version field" << std::endl; errorCount++; } populateEnumValues(enumValues, operandEnum, bitEnum); const std::string errContext = "enum " + enumName; for (const auto& e: *enumValues) { if (!e.IsValid(operandClass, errContext)) { errorCount++; } } OperandClassParams[operandClass].set(enumName, enumValues, bitEnum); }; const Json::Value operandEnums = root["operand_kinds"]; for (const auto& operandEnum : operandEnums) { const std::string enumName = operandEnum["kind"].asString(); const std::string category = operandEnum["category"].asString(); if (enumName == "SourceLanguage") { establishOperandClass(enumName, OperandSource, &SourceLanguageParams, operandEnum, category); } else if (enumName == "Decoration") { establishOperandClass(enumName, OperandDecoration, &DecorationParams, operandEnum, category); } else if (enumName == "ExecutionMode") { establishOperandClass(enumName, OperandExecutionMode, &ExecutionModeParams, operandEnum, category); } else if (enumName == "Capability") { establishOperandClass(enumName, OperandCapability, &CapabilityParams, operandEnum, category); } else if (enumName == "AddressingModel") { establishOperandClass(enumName, OperandAddressing, &AddressingParams, operandEnum, category); } else if (enumName == "MemoryModel") { establishOperandClass(enumName, OperandMemory, &MemoryParams, operandEnum, category); } else if (enumName == "MemorySemantics") { establishOperandClass(enumName, OperandMemorySemantics, &MemorySemanticsParams, operandEnum, category); } else if (enumName == "ExecutionModel") { establishOperandClass(enumName, OperandExecutionModel, &ExecutionModelParams, operandEnum, category); } else if (enumName == "StorageClass") { establishOperandClass(enumName, OperandStorage, &StorageParams, operandEnum, category); } else if (enumName == "SamplerAddressingMode") { establishOperandClass(enumName, OperandSamplerAddressingMode, &SamplerAddressingModeParams, operandEnum, category); } else if (enumName == "SamplerFilterMode") { establishOperandClass(enumName, OperandSamplerFilterMode, &SamplerFilterModeParams, operandEnum, category); } else if (enumName == "ImageFormat") { establishOperandClass(enumName, OperandSamplerImageFormat, &ImageFormatParams, operandEnum, category); } else if (enumName == "ImageChannelOrder") { establishOperandClass(enumName, OperandImageChannelOrder, &ImageChannelOrderParams, operandEnum, category); } else if (enumName == "ImageChannelDataType") { establishOperandClass(enumName, OperandImageChannelDataType, &ImageChannelDataTypeParams, operandEnum, category); } else if (enumName == "ImageOperands") { establishOperandClass(enumName, OperandImageOperands, &ImageOperandsParams, operandEnum, category); } else if (enumName == "FPFastMathMode") { establishOperandClass(enumName, OperandFPFastMath, &FPFastMathParams, operandEnum, category); } else if (enumName == "FPRoundingMode") { establishOperandClass(enumName, OperandFPRoundingMode, &FPRoundingModeParams, operandEnum, category); } else if (enumName == "FPDenormMode") { establishOperandClass(enumName, OperandFPDenormMode, &FPDenormModeParams, operandEnum, category); } else if (enumName == "FPOperationMode") { establishOperandClass(enumName, OperandFPOperationMode, &FPOperationModeParams, operandEnum, category); } else if (enumName == "QuantizationModes") { establishOperandClass(enumName, OperandQuantizationModes, &QuantizationModesParams, operandEnum, category); } else if (enumName == "OverflowModes") { establishOperandClass(enumName, OperandOverflowModes, &OverflowModesParams, operandEnum, category); } else if (enumName == "LinkageType") { establishOperandClass(enumName, OperandLinkageType, &LinkageTypeParams, operandEnum, category); } else if (enumName == "FunctionParameterAttribute") { establishOperandClass(enumName, OperandFuncParamAttr, &FuncParamAttrParams, operandEnum, category); } else if (enumName == "AccessQualifier") { establishOperandClass(enumName, OperandAccessQualifier, &AccessQualifierParams, operandEnum, category); } else if (enumName == "BuiltIn") { establishOperandClass(enumName, OperandBuiltIn, &BuiltInParams, operandEnum, category); } else if (enumName == "SelectionControl") { establishOperandClass(enumName, OperandSelect, &SelectionControlParams, operandEnum, category); } else if (enumName == "LoopControl") { establishOperandClass(enumName, OperandLoop, &LoopControlParams, operandEnum, category); } else if (enumName == "FunctionControl") { establishOperandClass(enumName, OperandFunction, &FunctionControlParams, operandEnum, category); } else if (enumName == "Dim") { establishOperandClass(enumName, OperandDimensionality, &DimensionalityParams, operandEnum, category); } else if (enumName == "MemoryAccess") { establishOperandClass(enumName, OperandMemoryOperands, &MemoryAccessParams, operandEnum, category); } else if (enumName == "Scope") { establishOperandClass(enumName, OperandScope, &ScopeParams, operandEnum, category); } else if (enumName == "GroupOperation") { establishOperandClass(enumName, OperandGroupOperation, &GroupOperationParams, operandEnum, category); } else if (enumName == "KernelEnqueueFlags") { establishOperandClass(enumName, OperandKernelEnqueueFlags, &KernelEnqueueFlagsParams, operandEnum, category); } else if (enumName == "KernelProfilingInfo") { establishOperandClass(enumName, OperandKernelProfilingInfo, &KernelProfilingInfoParams, operandEnum, category); } else if (enumName == "RayFlags") { establishOperandClass(enumName, OperandRayFlags, &RayFlagsParams, operandEnum, category); } else if (enumName == "RayQueryIntersection") { establishOperandClass(enumName, OperandRayQueryIntersection, &RayQueryIntersectionParams, operandEnum, category); } else if (enumName == "RayQueryCommittedIntersectionType") { establishOperandClass(enumName, OperandRayQueryCommittedIntersectionType, &RayQueryCommittedIntersectionTypeParams, operandEnum, category); } else if (enumName == "RayQueryCandidateIntersectionType") { establishOperandClass(enumName, OperandRayQueryCandidateIntersectionType, &RayQueryCandidateIntersectionTypeParams, operandEnum, category); } else if (enumName == "FragmentShadingRate") { establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category); } else if (enumName == "PackedVectorFormat") { establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category); } else if (enumName == "CooperativeMatrixOperands") { establishOperandClass(enumName, OperandCooperativeMatrixOperands, &CooperativeMatrixOperandsParams, operandEnum, category); } else if (enumName == "CooperativeMatrixLayout") { establishOperandClass(enumName, OperandCooperativeMatrixLayout, &CooperativeMatrixLayoutParams, operandEnum, category); } else if (enumName == "CooperativeMatrixUse") { establishOperandClass(enumName, OperandCooperativeMatrixUse, &CooperativeMatrixUseParams, operandEnum, category); } else if (enumName == "InitializationModeQualifier") { establishOperandClass(enumName, OperandInitializationModeQualifier, &InitializationModeQualifierParams, operandEnum, category); } else if (enumName == "HostAccessQualifier") { establishOperandClass(enumName, OperandHostAccessQualifier, &HostAccessQualifierParams, operandEnum, category); } else if (enumName == "LoadCacheControl") { establishOperandClass(enumName, OperandLoadCacheControl, &LoadCacheControlParams, operandEnum, category); } else if (enumName == "StoreCacheControl") { establishOperandClass(enumName, OperandStoreCacheControl, &StoreCacheControlParams, operandEnum, category); } else if (enumName == "NamedMaximumNumberOfRegisters") { establishOperandClass(enumName, OperandNamedMaximumNumberOfRegisters, &NamedMaximumNumberOfRegistersParams, operandEnum, category); } else if (enumName == "RawAccessChainOperands") { establishOperandClass(enumName, OperandRawAccessChainOperands, &RawAccessChainOperandsParams, operandEnum, category); } } if (errorCount > 0) { std::exit(1); } } }; // end namespace spv spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsonToSpirv.h000066400000000000000000000256741463234063200234640ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. #pragma once #ifndef JSON_TO_SPIRV #define JSON_TO_SPIRV #include #include #include #include namespace spv { // Reads the file in the given |path|. Returns true and the contents of the // file on success; otherwise, returns false and an empty string. std::pair ReadFile(const std::string& path); // Fill in all the parameters void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders); // For parameterizing operands. // The ordering here affects the printing order in the SPIR-V specification. // Please add new operand classes at the end. enum OperandClass { OperandNone, OperandId, OperandVariableIds, OperandOptionalLiteral, OperandOptionalLiteralString, OperandOptionalLiteralStrings, OperandVariableLiterals, OperandVariableIdLiteral, OperandVariableLiteralId, OperandAnySizeLiteralNumber, OperandLiteralNumber, OperandLiteralString, OperandSource, OperandExecutionModel, OperandAddressing, OperandMemory, OperandExecutionMode, OperandStorage, OperandDimensionality, OperandSamplerAddressingMode, OperandSamplerFilterMode, OperandSamplerImageFormat, OperandImageChannelOrder, OperandImageChannelDataType, OperandImageOperands, OperandFPFastMath, OperandFPRoundingMode, OperandLinkageType, OperandAccessQualifier, OperandFuncParamAttr, OperandDecoration, OperandBuiltIn, OperandSelect, OperandLoop, OperandFunction, OperandMemorySemantics, OperandMemoryOperands, OperandScope, OperandGroupOperation, OperandKernelEnqueueFlags, OperandKernelProfilingInfo, OperandCapability, OperandRayFlags, OperandRayQueryIntersection, OperandRayQueryCommittedIntersectionType, OperandRayQueryCandidateIntersectionType, OperandFragmentShadingRate, OperandFPDenormMode, OperandFPOperationMode, OperandQuantizationModes, OperandOverflowModes, OperandPackedVectorFormat, OperandCooperativeMatrixOperands, OperandCooperativeMatrixLayout, OperandCooperativeMatrixUse, OperandInitializationModeQualifier, OperandHostAccessQualifier, OperandLoadCacheControl, OperandStoreCacheControl, OperandNamedMaximumNumberOfRegisters, OperandRawAccessChainOperands, OperandOpcode, OperandCount }; // For direct representation of the JSON grammar "instruction_printing_class". struct PrintingClass { std::string tag; std::string heading; }; using PrintingClasses = std::vector; // Any specific enum can have a set of capabilities that allow it: typedef std::vector EnumCaps; // A set of extensions. typedef std::vector Extensions; // Parameterize a set of operands with their OperandClass(es) and descriptions. class OperandParameters { public: OperandParameters() { } void push(OperandClass oc, const std::string& d, bool opt = false) { opClass.push_back(oc); desc.push_back(d); optional.push_back(opt); } void setOptional(); OperandClass getClass(int op) const { return opClass[op]; } const char* getDesc(int op) const { return desc[op].c_str(); } bool isOptional(int op) const { return optional[op]; } int getNum() const { return (int)opClass.size(); } protected: std::vector opClass; std::vector desc; std::vector optional; }; // An ordered sequence of EValue. We'll preserve the order found in the // JSON file. You can look up a value by enum or by name. If there are // duplicate values, then take the first. We assume names are unique. // The EValue must have an unsigned |value| field and a string |name| field. template class EnumValuesContainer { public: using ContainerType = std::vector; using iterator = typename ContainerType::iterator; using const_iterator = typename ContainerType::const_iterator; EnumValuesContainer() {} // Constructs an EValue in place as a new element at the end of the // sequence. template void emplace_back(Args&&... args) { values.emplace_back(std::forward(args)...); } // Returns the first EValue in the sequence with the given value. // More than one EValue might have the same value. EValue& operator[](unsigned value) { auto where = std::find_if(begin(), end(), [&value](const EValue& e) { return value == e.value; }); assert((where != end()) && "Could not find enum in the enum list"); return *where; } // gets *all* entries for the value, including the first one void gatherAliases(unsigned value, std::vector& aliases) { std::for_each(begin(), end(), [&](EValue& e) { if (value == e.value) aliases.push_back(&e);}); } // Returns the EValue with the given name. We assume uniqueness // by name. EValue& at(std::string name) { auto where = std::find_if(begin(), end(), [&name](const EValue& e) { return name == e.name; }); assert((where != end()) && "Could not find name in the enum list"); return *where; } iterator begin() { return values.begin(); } iterator end() { return values.end(); } EValue& back() { return values.back(); } private: ContainerType values; }; // A single enumerant value. Corresponds to a row in an enumeration table // in the spec. class EnumValue { public: EnumValue() : value(0), desc(nullptr) {} EnumValue(unsigned int the_value, const std::string& the_name, EnumCaps&& the_caps, const std::string& the_firstVersion, const std::string& the_lastVersion, Extensions&& the_extensions, OperandParameters&& the_operands) : value(the_value), name(the_name), capabilities(std::move(the_caps)), firstVersion(std::move(the_firstVersion)), lastVersion(std::move(the_lastVersion)), extensions(std::move(the_extensions)), operands(std::move(the_operands)), desc(nullptr) { } // For ValueEnum, the value from the JSON file. // For BitEnum, the index of the bit position represented by this mask. // (That is, what you shift 1 by to get the mask.) unsigned value; std::string name; EnumCaps capabilities; std::string firstVersion; std::string lastVersion; // A feature only be enabled by certain extensions. // An empty list means the feature does not require an extension. // Normally, only Capability enums are enabled by extension. In turn, // other enums and instructions are enabled by those capabilities. Extensions extensions; OperandParameters operands; const char* desc; // Returns true if this enum is valid, in isolation. // Otherwise emits a diagnostic to std::cerr and returns false. bool IsValid(OperandClass oc, const std::string& context) const; }; using EnumValues = EnumValuesContainer; // Parameterize a set of enumerants that form an enum class EnumDefinition { public: EnumDefinition() : desc(0), bitmask(false), enumValues(nullptr) { } void set(const std::string& enumName, EnumValues* enumValuesArg, bool mask = false) { codeName = enumName; bitmask = mask; enumValues = enumValuesArg; } // Returns the first EnumValue in the sequence with the given value. // More than one EnumValue might have the same value. Only valid // if enumValues has been populated. EnumValue& operator[](unsigned value) { assert(enumValues != nullptr); return (*enumValues)[value]; } // Returns the name of the first EnumValue with the given value. // Assumes enumValues has been populated. const char* getName(unsigned value) { return (*this)[value].name.c_str(); } using iterator = EnumValues::iterator; iterator begin() { return enumValues->begin(); } iterator end() { return enumValues->end(); } std::string codeName; // name to use when declaring headers for code const char* desc; bool bitmask; // true if these enumerants combine into a bitmask EnumValues* enumValues; // parameters for each individual enumerant }; // Parameterize an instruction's logical format, including its known set of operands, // per OperandParameters above. class InstructionValue : public EnumValue { public: InstructionValue(EnumValue&& e, const std::string& printClass, bool has_type, bool has_result) : EnumValue(std::move(e)), printingClass(printClass), opDesc("TBD"), typePresent(has_type), resultPresent(has_result), alias(this) { } InstructionValue(const InstructionValue& v) { *this = v; alias = this; } bool hasResult() const { return resultPresent != 0; } bool hasType() const { return typePresent != 0; } void setAlias(const InstructionValue& a) { alias = &a; } const InstructionValue& getAlias() const { return *alias; } bool isAlias() const { return alias != this; } std::string printingClass; const char* opDesc; protected: int typePresent : 1; int resultPresent : 1; const InstructionValue* alias; // correct only after discovering the aliases; otherwise points to this }; using InstructionValues = EnumValuesContainer; // Parameterization info for all instructions. extern InstructionValues InstructionDesc; extern PrintingClasses InstructionPrintingClasses; // These hold definitions of the enumerants used for operands. // This is indexed by OperandClass, but not including OperandOpcode. extern EnumDefinition OperandClassParams[]; }; // end namespace spv #endif // JSON_TO_SPIRV spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsoncpp/000077500000000000000000000000001463234063200224515ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsoncpp/dist/000077500000000000000000000000001463234063200234145ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsoncpp/dist/json/000077500000000000000000000000001463234063200243655ustar00rootroot00000000000000spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsoncpp/dist/json/json-forwards.h000066400000000000000000000214031463234063200273340ustar00rootroot00000000000000/// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/). /// It is intended to be used with #include "json/json-forwards.h" /// This header provides forward declaration for all JsonCpp types. // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: LICENSE // ////////////////////////////////////////////////////////////////////// /* The JsonCpp library's source code, including accompanying documentation, tests and demonstration applications, are licensed under the following conditions... The author (Baptiste Lepilleur) explicitly disclaims copyright in all jurisdictions which recognize such a disclaimer. In such jurisdictions, this software is released into the Public Domain. In jurisdictions which do not recognize Public Domain property (e.g. Germany as of 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is released under the terms of the MIT License (see below). In jurisdictions which recognize Public Domain property, the user of this software may choose to accept it either as 1) Public Domain, 2) under the conditions of the MIT License (see below), or 3) under the terms of dual Public Domain/MIT License conditions described here, as they choose. The MIT License is about as close to Public Domain as a license can get, and is described in clear, concise terms at: http://en.wikipedia.org/wiki/MIT_License The full text of the MIT License follows: ======================================================================== Copyright (c) 2007-2010 Baptiste Lepilleur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ======================================================================== (END LICENSE TEXT) The MIT license is compatible with both the GPL and commercial software, affording one all of the rights of Public Domain with the minor nuisance of being required to keep the above copyright notice and license text in the source code. Note also that by accepting the Public Domain "license" you can re-license your copy using whatever license you like. */ // ////////////////////////////////////////////////////////////////////// // End of content of file: LICENSE // ////////////////////////////////////////////////////////////////////// #ifndef JSON_FORWARD_AMALGATED_H_INCLUDED # define JSON_FORWARD_AMALGATED_H_INCLUDED /// If defined, indicates that the source file is amalgated /// to prevent private header inclusion. #define JSON_IS_AMALGAMATION // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef JSON_CONFIG_H_INCLUDED #define JSON_CONFIG_H_INCLUDED /// If defined, indicates that json library is embedded in CppTL library. //# define JSON_IN_CPPTL 1 /// If defined, indicates that json may leverage CppTL library //# define JSON_USE_CPPTL 1 /// If defined, indicates that cpptl vector based map should be used instead of /// std::map /// as Value container. //# define JSON_USE_CPPTL_SMALLMAP 1 // If non-zero, the library uses exceptions to report bad input instead of C // assertion macros. The default is to use exceptions. #ifndef JSON_USE_EXCEPTION #define JSON_USE_EXCEPTION 1 #endif /// If defined, indicates that the source file is amalgated /// to prevent private header inclusion. /// Remarks: it is automatically defined in the generated amalgated header. // #define JSON_IS_AMALGAMATION #ifdef JSON_IN_CPPTL #include #ifndef JSON_USE_CPPTL #define JSON_USE_CPPTL 1 #endif #endif #ifdef JSON_IN_CPPTL #define JSON_API CPPTL_API #elif defined(JSON_DLL_BUILD) #if defined(_MSC_VER) #define JSON_API __declspec(dllexport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) #elif defined(JSON_DLL) #if defined(_MSC_VER) #define JSON_API __declspec(dllimport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) #endif // ifdef JSON_IN_CPPTL #if !defined(JSON_API) #define JSON_API #endif // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for // integer // Storages, and 64 bits integer support is disabled. // #define JSON_NO_INT64 1 #if defined(_MSC_VER) && _MSC_VER <= 1200 // MSVC 6 // Microsoft Visual Studio 6 only support conversion from __int64 to double // (no conversion from unsigned __int64). #define JSON_USE_INT64_DOUBLE_CONVERSION 1 // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' // characters in the debug information) // All projects I've ever seen with VS6 were using this globally (not bothering // with pragma push/pop). #pragma warning(disable : 4786) #endif // if defined(_MSC_VER) && _MSC_VER < 1200 // MSVC 6 #if defined(_MSC_VER) && _MSC_VER >= 1500 // MSVC 2008 /// Indicates that the following function is deprecated. #define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) #elif defined(__clang__) && defined(__has_feature) #if __has_feature(attribute_deprecated_with_message) #define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) #endif #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) #define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) #elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) #define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) #endif #if !defined(JSONCPP_DEPRECATED) #define JSONCPP_DEPRECATED(message) #endif // if !defined(JSONCPP_DEPRECATED) namespace Json { typedef int Int; typedef unsigned int UInt; #if defined(JSON_NO_INT64) typedef int LargestInt; typedef unsigned int LargestUInt; #undef JSON_HAS_INT64 #else // if defined(JSON_NO_INT64) // For Microsoft Visual use specific types as long long is not supported #if defined(_MSC_VER) // Microsoft Visual Studio typedef __int64 Int64; typedef unsigned __int64 UInt64; #else // if defined(_MSC_VER) // Other platforms, use long long typedef long long int Int64; typedef unsigned long long int UInt64; #endif // if defined(_MSC_VER) typedef Int64 LargestInt; typedef UInt64 LargestUInt; #define JSON_HAS_INT64 #endif // if defined(JSON_NO_INT64) } // end namespace Json #endif // JSON_CONFIG_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/forwards.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef JSON_FORWARDS_H_INCLUDED #define JSON_FORWARDS_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "config.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { // writer.h class FastWriter; class StyledWriter; // reader.h class Reader; // features.h class Features; // value.h typedef unsigned int ArrayIndex; class StaticString; class Path; class PathArgument; class Value; class ValueIteratorBase; class ValueIterator; class ValueConstIterator; } // namespace Json #endif // JSON_FORWARDS_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/forwards.h // ////////////////////////////////////////////////////////////////////// #endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsoncpp/dist/json/json.h000066400000000000000000002005221463234063200255100ustar00rootroot00000000000000/// Json-cpp amalgated header (http://jsoncpp.sourceforge.net/). /// It is intended to be used with #include "json/json.h" // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: LICENSE // ////////////////////////////////////////////////////////////////////// /* The JsonCpp library's source code, including accompanying documentation, tests and demonstration applications, are licensed under the following conditions... The author (Baptiste Lepilleur) explicitly disclaims copyright in all jurisdictions which recognize such a disclaimer. In such jurisdictions, this software is released into the Public Domain. In jurisdictions which do not recognize Public Domain property (e.g. Germany as of 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is released under the terms of the MIT License (see below). In jurisdictions which recognize Public Domain property, the user of this software may choose to accept it either as 1) Public Domain, 2) under the conditions of the MIT License (see below), or 3) under the terms of dual Public Domain/MIT License conditions described here, as they choose. The MIT License is about as close to Public Domain as a license can get, and is described in clear, concise terms at: http://en.wikipedia.org/wiki/MIT_License The full text of the MIT License follows: ======================================================================== Copyright (c) 2007-2010 Baptiste Lepilleur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ======================================================================== (END LICENSE TEXT) The MIT license is compatible with both the GPL and commercial software, affording one all of the rights of Public Domain with the minor nuisance of being required to keep the above copyright notice and license text in the source code. Note also that by accepting the Public Domain "license" you can re-license your copy using whatever license you like. */ // ////////////////////////////////////////////////////////////////////// // End of content of file: LICENSE // ////////////////////////////////////////////////////////////////////// #ifndef JSON_AMALGATED_H_INCLUDED # define JSON_AMALGATED_H_INCLUDED /// If defined, indicates that the source file is amalgated /// to prevent private header inclusion. #define JSON_IS_AMALGAMATION // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/version.h // ////////////////////////////////////////////////////////////////////// // DO NOT EDIT. This file is generated by CMake from "version" // and "version.h.in" files. // Run CMake configure step to update it. #ifndef JSON_VERSION_H_INCLUDED # define JSON_VERSION_H_INCLUDED # define JSONCPP_VERSION_STRING "1.6.2" # define JSONCPP_VERSION_MAJOR 1 # define JSONCPP_VERSION_MINOR 6 # define JSONCPP_VERSION_PATCH 2 # define JSONCPP_VERSION_QUALIFIER # define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8)) #endif // JSON_VERSION_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/version.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef JSON_CONFIG_H_INCLUDED #define JSON_CONFIG_H_INCLUDED /// If defined, indicates that json library is embedded in CppTL library. //# define JSON_IN_CPPTL 1 /// If defined, indicates that json may leverage CppTL library //# define JSON_USE_CPPTL 1 /// If defined, indicates that cpptl vector based map should be used instead of /// std::map /// as Value container. //# define JSON_USE_CPPTL_SMALLMAP 1 // If non-zero, the library uses exceptions to report bad input instead of C // assertion macros. The default is to use exceptions. #ifndef JSON_USE_EXCEPTION #define JSON_USE_EXCEPTION 1 #endif /// If defined, indicates that the source file is amalgated /// to prevent private header inclusion. /// Remarks: it is automatically defined in the generated amalgated header. // #define JSON_IS_AMALGAMATION #ifdef JSON_IN_CPPTL #include #ifndef JSON_USE_CPPTL #define JSON_USE_CPPTL 1 #endif #endif #ifdef JSON_IN_CPPTL #define JSON_API CPPTL_API #elif defined(JSON_DLL_BUILD) #if defined(_MSC_VER) #define JSON_API __declspec(dllexport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) #elif defined(JSON_DLL) #if defined(_MSC_VER) #define JSON_API __declspec(dllimport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) #endif // ifdef JSON_IN_CPPTL #if !defined(JSON_API) #define JSON_API #endif // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for // integer // Storages, and 64 bits integer support is disabled. // #define JSON_NO_INT64 1 #if defined(_MSC_VER) && _MSC_VER <= 1200 // MSVC 6 // Microsoft Visual Studio 6 only support conversion from __int64 to double // (no conversion from unsigned __int64). #define JSON_USE_INT64_DOUBLE_CONVERSION 1 // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' // characters in the debug information) // All projects I've ever seen with VS6 were using this globally (not bothering // with pragma push/pop). #pragma warning(disable : 4786) #endif // if defined(_MSC_VER) && _MSC_VER < 1200 // MSVC 6 #if defined(_MSC_VER) && _MSC_VER >= 1500 // MSVC 2008 /// Indicates that the following function is deprecated. #define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) #elif defined(__clang__) && defined(__has_feature) #if __has_feature(attribute_deprecated_with_message) #define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) #endif #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) #define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) #elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) #define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) #endif #if !defined(JSONCPP_DEPRECATED) #define JSONCPP_DEPRECATED(message) #endif // if !defined(JSONCPP_DEPRECATED) namespace Json { typedef int Int; typedef unsigned int UInt; #if defined(JSON_NO_INT64) typedef int LargestInt; typedef unsigned int LargestUInt; #undef JSON_HAS_INT64 #else // if defined(JSON_NO_INT64) // For Microsoft Visual use specific types as long long is not supported #if defined(_MSC_VER) // Microsoft Visual Studio typedef __int64 Int64; typedef unsigned __int64 UInt64; #else // if defined(_MSC_VER) // Other platforms, use long long typedef long long int Int64; typedef unsigned long long int UInt64; #endif // if defined(_MSC_VER) typedef Int64 LargestInt; typedef UInt64 LargestUInt; #define JSON_HAS_INT64 #endif // if defined(JSON_NO_INT64) } // end namespace Json #endif // JSON_CONFIG_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/forwards.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef JSON_FORWARDS_H_INCLUDED #define JSON_FORWARDS_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "config.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { // writer.h class FastWriter; class StyledWriter; // reader.h class Reader; // features.h class Features; // value.h typedef unsigned int ArrayIndex; class StaticString; class Path; class PathArgument; class Value; class ValueIteratorBase; class ValueIterator; class ValueConstIterator; } // namespace Json #endif // JSON_FORWARDS_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/forwards.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/features.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef CPPTL_JSON_FEATURES_H_INCLUDED #define CPPTL_JSON_FEATURES_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { /** \brief Configuration passed to reader and writer. * This configuration object can be used to force the Reader or Writer * to behave in a standard conforming way. */ class JSON_API Features { public: /** \brief A configuration that allows all features and assumes all strings * are UTF-8. * - C & C++ comments are allowed * - Root object can be any JSON value * - Assumes Value strings are encoded in UTF-8 */ static Features all(); /** \brief A configuration that is strictly compatible with the JSON * specification. * - Comments are forbidden. * - Root object must be either an array or an object value. * - Assumes Value strings are encoded in UTF-8 */ static Features strictMode(); /** \brief Initialize the configuration like JsonConfig::allFeatures; */ Features(); /// \c true if comments are allowed. Default: \c true. bool allowComments_; /// \c true if root must be either an array or an object value. Default: \c /// false. bool strictRoot_; /// \c true if dropped null placeholders are allowed. Default: \c false. bool allowDroppedNullPlaceholders_; /// \c true if numeric object key are allowed. Default: \c false. bool allowNumericKeys_; }; } // namespace Json #endif // CPPTL_JSON_FEATURES_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/features.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/value.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef CPPTL_JSON_H_INCLUDED #define CPPTL_JSON_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include #include #include #ifndef JSON_USE_CPPTL_SMALLMAP #include #else #include #endif #ifdef JSON_USE_CPPTL #include #endif // Disable warning C4251: : needs to have dll-interface to // be used by... #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(push) #pragma warning(disable : 4251) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) /** \brief JSON (JavaScript Object Notation). */ namespace Json { /** Base class for all exceptions we throw. * * We use nothing but these internally. Of course, STL can throw others. */ class JSON_API Exception; /** Exceptions which the user cannot easily avoid. * * E.g. out-of-memory (when we use malloc), stack-overflow, malicious input * * \remark derived from Json::Exception */ class JSON_API RuntimeError; /** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros. * * These are precondition-violations (user bugs) and internal errors (our bugs). * * \remark derived from Json::Exception */ class JSON_API LogicError; /// used internally void throwRuntimeError(std::string const& msg); /// used internally void throwLogicError(std::string const& msg); /** \brief Type of the value held by a Value object. */ enum ValueType { nullValue = 0, ///< 'null' value intValue, ///< signed integer value uintValue, ///< unsigned integer value realValue, ///< double value stringValue, ///< UTF-8 string value booleanValue, ///< bool value arrayValue, ///< array value (ordered list) objectValue ///< object value (collection of name/value pairs). }; enum CommentPlacement { commentBefore = 0, ///< a comment placed on the line before a value commentAfterOnSameLine, ///< a comment just after a value on the same line commentAfter, ///< a comment on the line after a value (only make sense for /// root value) numberOfCommentPlacement }; //# ifdef JSON_USE_CPPTL // typedef CppTL::AnyEnumerator EnumMemberNames; // typedef CppTL::AnyEnumerator EnumValues; //# endif /** \brief Lightweight wrapper to tag static string. * * Value constructor and objectValue member assignement takes advantage of the * StaticString and avoid the cost of string duplication when storing the * string or the member name. * * Example of usage: * \code * Json::Value aValue( StaticString("some text") ); * Json::Value object; * static const StaticString code("code"); * object[code] = 1234; * \endcode */ class JSON_API StaticString { public: explicit StaticString(const char* czstring) : c_str_(czstring) {} operator const char*() const { return c_str_; } const char* c_str() const { return c_str_; } private: const char* c_str_; }; /** \brief Represents a JSON value. * * This class is a discriminated union wrapper that can represents a: * - signed integer [range: Value::minInt - Value::maxInt] * - unsigned integer (range: 0 - Value::maxUInt) * - double * - UTF-8 string * - boolean * - 'null' * - an ordered list of Value * - collection of name/value pairs (javascript object) * * The type of the held value is represented by a #ValueType and * can be obtained using type(). * * Values of an #objectValue or #arrayValue can be accessed using operator[]() * methods. * Non-const methods will automatically create the a #nullValue element * if it does not exist. * The sequence of an #arrayValue will be automatically resized and initialized * with #nullValue. resize() can be used to enlarge or truncate an #arrayValue. * * The get() methods can be used to obtain default value in the case the * required element does not exist. * * It is possible to iterate over the list of a #objectValue values using * the getMemberNames() method. * * \note #Value string-length fit in size_t, but keys must be < 2^30. * (The reason is an implementation detail.) A #CharReader will raise an * exception if a bound is exceeded to avoid security holes in your app, * but the Value API does *not* check bounds. That is the responsibility * of the caller. */ class JSON_API Value { friend class ValueIteratorBase; public: typedef std::vector Members; typedef ValueIterator iterator; typedef ValueConstIterator const_iterator; typedef Json::UInt UInt; typedef Json::Int Int; #if defined(JSON_HAS_INT64) typedef Json::UInt64 UInt64; typedef Json::Int64 Int64; #endif // defined(JSON_HAS_INT64) typedef Json::LargestInt LargestInt; typedef Json::LargestUInt LargestUInt; typedef Json::ArrayIndex ArrayIndex; static const Value& null; ///< We regret this reference to a global instance; prefer the simpler Value(). static const Value& nullRef; ///< just a kludge for binary-compatibility; same as null /// Minimum signed integer value that can be stored in a Json::Value. static const LargestInt minLargestInt; /// Maximum signed integer value that can be stored in a Json::Value. static const LargestInt maxLargestInt; /// Maximum unsigned integer value that can be stored in a Json::Value. static const LargestUInt maxLargestUInt; /// Minimum signed int value that can be stored in a Json::Value. static const Int minInt; /// Maximum signed int value that can be stored in a Json::Value. static const Int maxInt; /// Maximum unsigned int value that can be stored in a Json::Value. static const UInt maxUInt; #if defined(JSON_HAS_INT64) /// Minimum signed 64 bits int value that can be stored in a Json::Value. static const Int64 minInt64; /// Maximum signed 64 bits int value that can be stored in a Json::Value. static const Int64 maxInt64; /// Maximum unsigned 64 bits int value that can be stored in a Json::Value. static const UInt64 maxUInt64; #endif // defined(JSON_HAS_INT64) private: #ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION class CZString { public: enum DuplicationPolicy { noDuplication = 0, duplicate, duplicateOnCopy }; CZString(ArrayIndex index); CZString(char const* str, unsigned length, DuplicationPolicy allocate); CZString(CZString const& other); ~CZString(); CZString& operator=(CZString other); bool operator<(CZString const& other) const; bool operator==(CZString const& other) const; ArrayIndex index() const; //const char* c_str() const; ///< \deprecated char const* data() const; unsigned length() const; bool isStaticString() const; private: void swap(CZString& other); struct StringStorage { unsigned policy_: 2; unsigned length_: 30; // 1GB max }; char const* cstr_; // actually, a prefixed string, unless policy is noDup union { ArrayIndex index_; StringStorage storage_; }; }; public: #ifndef JSON_USE_CPPTL_SMALLMAP typedef std::map ObjectValues; #else typedef CppTL::SmallMap ObjectValues; #endif // ifndef JSON_USE_CPPTL_SMALLMAP #endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION public: /** \brief Create a default Value of the given type. This is a very useful constructor. To create an empty array, pass arrayValue. To create an empty object, pass objectValue. Another Value can then be set to this one by assignment. This is useful since clear() and resize() will not alter types. Examples: \code Json::Value null_value; // null Json::Value arr_value(Json::arrayValue); // [] Json::Value obj_value(Json::objectValue); // {} \endcode */ Value(ValueType type = nullValue); Value(Int value); Value(UInt value); #if defined(JSON_HAS_INT64) Value(Int64 value); Value(UInt64 value); #endif // if defined(JSON_HAS_INT64) Value(double value); Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.) Value(const char* beginValue, const char* endValue); ///< Copy all, incl zeroes. /** \brief Constructs a value from a static string. * Like other value string constructor but do not duplicate the string for * internal storage. The given string must remain alive after the call to this * constructor. * \note This works only for null-terminated strings. (We cannot change the * size of this class, so we have nowhere to store the length, * which might be computed later for various operations.) * * Example of usage: * \code * static StaticString foo("some text"); * Json::Value aValue(foo); * \endcode */ Value(const StaticString& value); Value(const std::string& value); ///< Copy data() til size(). Embedded zeroes too. #ifdef JSON_USE_CPPTL Value(const CppTL::ConstString& value); #endif Value(bool value); /// Deep copy. Value(const Value& other); ~Value(); /// Deep copy, then swap(other). /// \note Over-write existing comments. To preserve comments, use #swapPayload(). Value& operator=(Value other); /// Swap everything. void swap(Value& other); /// Swap values but leave comments and source offsets in place. void swapPayload(Value& other); ValueType type() const; /// Compare payload only, not comments etc. bool operator<(const Value& other) const; bool operator<=(const Value& other) const; bool operator>=(const Value& other) const; bool operator>(const Value& other) const; bool operator==(const Value& other) const; bool operator!=(const Value& other) const; int compare(const Value& other) const; const char* asCString() const; ///< Embedded zeroes could cause you trouble! std::string asString() const; ///< Embedded zeroes are possible. /** Get raw char* of string-value. * \return false if !string. (Seg-fault if str or end are NULL.) */ bool getString( char const** str, char const** end) const; #ifdef JSON_USE_CPPTL CppTL::ConstString asConstString() const; #endif Int asInt() const; UInt asUInt() const; #if defined(JSON_HAS_INT64) Int64 asInt64() const; UInt64 asUInt64() const; #endif // if defined(JSON_HAS_INT64) LargestInt asLargestInt() const; LargestUInt asLargestUInt() const; float asFloat() const; double asDouble() const; bool asBool() const; bool isNull() const; bool isBool() const; bool isInt() const; bool isInt64() const; bool isUInt() const; bool isUInt64() const; bool isIntegral() const; bool isDouble() const; bool isNumeric() const; bool isString() const; bool isArray() const; bool isObject() const; bool isConvertibleTo(ValueType other) const; /// Number of values in array or object ArrayIndex size() const; /// \brief Return true if empty array, empty object, or null; /// otherwise, false. bool empty() const; /// Return isNull() bool operator!() const; /// Remove all object members and array elements. /// \pre type() is arrayValue, objectValue, or nullValue /// \post type() is unchanged void clear(); /// Resize the array to size elements. /// New elements are initialized to null. /// May only be called on nullValue or arrayValue. /// \pre type() is arrayValue or nullValue /// \post type() is arrayValue void resize(ArrayIndex size); /// Access an array element (zero based index ). /// If the array contains less than index element, then null value are /// inserted /// in the array so that its size is index+1. /// (You may need to say 'value[0u]' to get your compiler to distinguish /// this from the operator[] which takes a string.) Value& operator[](ArrayIndex index); /// Access an array element (zero based index ). /// If the array contains less than index element, then null value are /// inserted /// in the array so that its size is index+1. /// (You may need to say 'value[0u]' to get your compiler to distinguish /// this from the operator[] which takes a string.) Value& operator[](int index); /// Access an array element (zero based index ) /// (You may need to say 'value[0u]' to get your compiler to distinguish /// this from the operator[] which takes a string.) const Value& operator[](ArrayIndex index) const; /// Access an array element (zero based index ) /// (You may need to say 'value[0u]' to get your compiler to distinguish /// this from the operator[] which takes a string.) const Value& operator[](int index) const; /// If the array contains at least index+1 elements, returns the element /// value, /// otherwise returns defaultValue. Value get(ArrayIndex index, const Value& defaultValue) const; /// Return true if index < size(). bool isValidIndex(ArrayIndex index) const; /// \brief Append value to array at the end. /// /// Equivalent to jsonvalue[jsonvalue.size()] = value; Value& append(const Value& value); /// Access an object value by name, create a null member if it does not exist. /// \note Because of our implementation, keys are limited to 2^30 -1 chars. /// Exceeding that will cause an exception. Value& operator[](const char* key); /// Access an object value by name, returns null if there is no member with /// that name. const Value& operator[](const char* key) const; /// Access an object value by name, create a null member if it does not exist. /// \param key may contain embedded nulls. Value& operator[](const std::string& key); /// Access an object value by name, returns null if there is no member with /// that name. /// \param key may contain embedded nulls. const Value& operator[](const std::string& key) const; /** \brief Access an object value by name, create a null member if it does not exist. * If the object has no entry for that name, then the member name used to store * the new entry is not duplicated. * Example of use: * \code * Json::Value object; * static const StaticString code("code"); * object[code] = 1234; * \endcode */ Value& operator[](const StaticString& key); #ifdef JSON_USE_CPPTL /// Access an object value by name, create a null member if it does not exist. Value& operator[](const CppTL::ConstString& key); /// Access an object value by name, returns null if there is no member with /// that name. const Value& operator[](const CppTL::ConstString& key) const; #endif /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy Value get(const char* key, const Value& defaultValue) const; /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy /// \param key may contain embedded nulls. Value get(const char* key, const char* end, const Value& defaultValue) const; /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy /// \param key may contain embedded nulls. Value get(const std::string& key, const Value& defaultValue) const; #ifdef JSON_USE_CPPTL /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy Value get(const CppTL::ConstString& key, const Value& defaultValue) const; #endif /// Most general and efficient version of isMember()const, get()const, /// and operator[]const /// \note As stated elsewhere, behavior is undefined if (end-key) >= 2^30 Value const* find(char const* key, char const* end) const; /// Most general and efficient version of object-mutators. /// \note As stated elsewhere, behavior is undefined if (end-key) >= 2^30 /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue. Value const* demand(char const* key, char const* end); /// \brief Remove and return the named member. /// /// Do nothing if it did not exist. /// \return the removed Value, or null. /// \pre type() is objectValue or nullValue /// \post type() is unchanged /// \deprecated Value removeMember(const char* key); /// Same as removeMember(const char*) /// \param key may contain embedded nulls. /// \deprecated Value removeMember(const std::string& key); /// Same as removeMember(const char* key, const char* end, Value* removed), /// but 'key' is null-terminated. bool removeMember(const char* key, Value* removed); /** \brief Remove the named map member. Update 'removed' iff removed. \param key may contain embedded nulls. \return true iff removed (no exceptions) */ bool removeMember(std::string const& key, Value* removed); /// Same as removeMember(std::string const& key, Value* removed) bool removeMember(const char* key, const char* end, Value* removed); /** \brief Remove the indexed array element. O(n) expensive operations. Update 'removed' iff removed. \return true iff removed (no exceptions) */ bool removeIndex(ArrayIndex i, Value* removed); /// Return true if the object has a member named key. /// \note 'key' must be null-terminated. bool isMember(const char* key) const; /// Return true if the object has a member named key. /// \param key may contain embedded nulls. bool isMember(const std::string& key) const; /// Same as isMember(std::string const& key)const bool isMember(const char* key, const char* end) const; #ifdef JSON_USE_CPPTL /// Return true if the object has a member named key. bool isMember(const CppTL::ConstString& key) const; #endif /// \brief Return a list of the member names. /// /// If null, return an empty list. /// \pre type() is objectValue or nullValue /// \post if type() was nullValue, it remains nullValue Members getMemberNames() const; //# ifdef JSON_USE_CPPTL // EnumMemberNames enumMemberNames() const; // EnumValues enumValues() const; //# endif /// \deprecated Always pass len. JSONCPP_DEPRECATED("Use setComment(std::string const&) instead.") void setComment(const char* comment, CommentPlacement placement); /// Comments must be //... or /* ... */ void setComment(const char* comment, size_t len, CommentPlacement placement); /// Comments must be //... or /* ... */ void setComment(const std::string& comment, CommentPlacement placement); bool hasComment(CommentPlacement placement) const; /// Include delimiters and embedded newlines. std::string getComment(CommentPlacement placement) const; std::string toStyledString() const; const_iterator begin() const; const_iterator end() const; iterator begin(); iterator end(); // Accessors for the [start, limit) range of bytes within the JSON text from // which this value was parsed, if any. void setOffsetStart(size_t start); void setOffsetLimit(size_t limit); size_t getOffsetStart() const; size_t getOffsetLimit() const; private: void initBasic(ValueType type, bool allocated = false); Value& resolveReference(const char* key); Value& resolveReference(const char* key, const char* end); struct CommentInfo { CommentInfo(); ~CommentInfo(); void setComment(const char* text, size_t len); char* comment_; }; // struct MemberNamesTransform //{ // typedef const char *result_type; // const char *operator()( const CZString &name ) const // { // return name.c_str(); // } //}; union ValueHolder { LargestInt int_; LargestUInt uint_; double real_; bool bool_; char* string_; // actually ptr to unsigned, followed by str, unless !allocated_ ObjectValues* map_; } value_; ValueType type_ : 8; unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless. // If not allocated_, string_ must be null-terminated. CommentInfo* comments_; // [start, limit) byte offsets in the source JSON text from which this Value // was extracted. size_t start_; size_t limit_; }; /** \brief Experimental and untested: represents an element of the "path" to * access a node. */ class JSON_API PathArgument { public: friend class Path; PathArgument(); PathArgument(ArrayIndex index); PathArgument(const char* key); PathArgument(const std::string& key); private: enum Kind { kindNone = 0, kindIndex, kindKey }; std::string key_; ArrayIndex index_; Kind kind_; }; /** \brief Experimental and untested: represents a "path" to access a node. * * Syntax: * - "." => root node * - ".[n]" => elements at index 'n' of root node (an array value) * - ".name" => member named 'name' of root node (an object value) * - ".name1.name2.name3" * - ".[0][1][2].name1[3]" * - ".%" => member name is provided as parameter * - ".[%]" => index is provied as parameter */ class JSON_API Path { public: Path(const std::string& path, const PathArgument& a1 = PathArgument(), const PathArgument& a2 = PathArgument(), const PathArgument& a3 = PathArgument(), const PathArgument& a4 = PathArgument(), const PathArgument& a5 = PathArgument()); const Value& resolve(const Value& root) const; Value resolve(const Value& root, const Value& defaultValue) const; /// Creates the "path" to access the specified node and returns a reference on /// the node. Value& make(Value& root) const; private: typedef std::vector InArgs; typedef std::vector Args; void makePath(const std::string& path, const InArgs& in); void addPathInArg(const std::string& path, const InArgs& in, InArgs::const_iterator& itInArg, PathArgument::Kind kind); void invalidPath(const std::string& path, int location); Args args_; }; /** \brief base class for Value iterators. * */ class JSON_API ValueIteratorBase { public: typedef std::bidirectional_iterator_tag iterator_category; typedef unsigned int size_t; typedef int difference_type; typedef ValueIteratorBase SelfType; bool operator==(const SelfType& other) const { return isEqual(other); } bool operator!=(const SelfType& other) const { return !isEqual(other); } difference_type operator-(const SelfType& other) const { return other.computeDistance(*this); } /// Return either the index or the member name of the referenced value as a /// Value. Value key() const; /// Return the index of the referenced Value, or -1 if it is not an arrayValue. UInt index() const; /// Return the member name of the referenced Value, or "" if it is not an /// objectValue. /// \note Avoid `c_str()` on result, as embedded zeroes are possible. std::string name() const; /// Return the member name of the referenced Value. "" if it is not an /// objectValue. /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls. JSONCPP_DEPRECATED("Use `key = name();` instead.") char const* memberName() const; /// Return the member name of the referenced Value, or NULL if it is not an /// objectValue. /// \note Better version than memberName(). Allows embedded nulls. char const* memberName(char const** end) const; protected: Value& deref() const; void increment(); void decrement(); difference_type computeDistance(const SelfType& other) const; bool isEqual(const SelfType& other) const; void copy(const SelfType& other); private: Value::ObjectValues::iterator current_; // Indicates that iterator is for a null value. bool isNull_; public: // For some reason, BORLAND needs these at the end, rather // than earlier. No idea why. ValueIteratorBase(); explicit ValueIteratorBase(const Value::ObjectValues::iterator& current); }; /** \brief const iterator for object and array value. * */ class JSON_API ValueConstIterator : public ValueIteratorBase { friend class Value; public: typedef const Value value_type; //typedef unsigned int size_t; //typedef int difference_type; typedef const Value& reference; typedef const Value* pointer; typedef ValueConstIterator SelfType; ValueConstIterator(); private: /*! \internal Use by Value to create an iterator. */ explicit ValueConstIterator(const Value::ObjectValues::iterator& current); public: SelfType& operator=(const ValueIteratorBase& other); SelfType operator++(int) { SelfType temp(*this); ++*this; return temp; } SelfType operator--(int) { SelfType temp(*this); --*this; return temp; } SelfType& operator--() { decrement(); return *this; } SelfType& operator++() { increment(); return *this; } reference operator*() const { return deref(); } pointer operator->() const { return &deref(); } }; /** \brief Iterator for object and array value. */ class JSON_API ValueIterator : public ValueIteratorBase { friend class Value; public: typedef Value value_type; typedef unsigned int size_t; typedef int difference_type; typedef Value& reference; typedef Value* pointer; typedef ValueIterator SelfType; ValueIterator(); ValueIterator(const ValueConstIterator& other); ValueIterator(const ValueIterator& other); private: /*! \internal Use by Value to create an iterator. */ explicit ValueIterator(const Value::ObjectValues::iterator& current); public: SelfType& operator=(const SelfType& other); SelfType operator++(int) { SelfType temp(*this); ++*this; return temp; } SelfType operator--(int) { SelfType temp(*this); --*this; return temp; } SelfType& operator--() { decrement(); return *this; } SelfType& operator++() { increment(); return *this; } reference operator*() const { return deref(); } pointer operator->() const { return &deref(); } }; } // namespace Json namespace std { /// Specialize std::swap() for Json::Value. template<> inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } } #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #endif // CPPTL_JSON_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/value.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/reader.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef CPPTL_JSON_READER_H_INCLUDED #define CPPTL_JSON_READER_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "features.h" #include "value.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include #include #include #include #include // Disable warning C4251: : needs to have dll-interface to // be used by... #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(push) #pragma warning(disable : 4251) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) namespace Json { /** \brief Unserialize a JSON document into a *Value. * * \deprecated Use CharReader and CharReaderBuilder. */ class JSON_API Reader { public: typedef char Char; typedef const Char* Location; /** \brief An error tagged with where in the JSON text it was encountered. * * The offsets give the [start, limit) range of bytes within the text. Note * that this is bytes, not codepoints. * */ struct StructuredError { size_t offset_start; size_t offset_limit; std::string message; }; /** \brief Constructs a Reader allowing all features * for parsing. */ Reader(); /** \brief Constructs a Reader allowing the specified feature set * for parsing. */ Reader(const Features& features); /** \brief Read a Value from a JSON * document. * \param document UTF-8 encoded string containing the document to read. * \param root [out] Contains the root value of the document if it was * successfully parsed. * \param collectComments \c true to collect comment and allow writing them * back during * serialization, \c false to discard comments. * This parameter is ignored if * Features::allowComments_ * is \c false. * \return \c true if the document was successfully parsed, \c false if an * error occurred. */ bool parse(const std::string& document, Value& root, bool collectComments = true); /** \brief Read a Value from a JSON document. * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the document to read. * \param endDoc Pointer on the end of the UTF-8 encoded string of the document to read. * Must be >= beginDoc. * \param root [out] Contains the root value of the document if it was * successfully parsed. * \param collectComments \c true to collect comment and allow writing them back during * serialization, \c false to discard comments. * This parameter is ignored if Features::allowComments_ * is \c false. * \return \c true if the document was successfully parsed, \c false if an error occurred. */ bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); /// \brief Parse from input stream. /// \see Json::operator>>(std::istream&, Json::Value&). bool parse(std::istream& is, Value& root, bool collectComments = true); /** \brief Returns a user friendly string that list errors in the parsed * document. * \return Formatted error message with the list of errors with their location * in * the parsed document. An empty string is returned if no error * occurred * during parsing. * \deprecated Use getFormattedErrorMessages() instead (typo fix). */ JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.") std::string getFormatedErrorMessages() const; /** \brief Returns a user friendly string that list errors in the parsed * document. * \return Formatted error message with the list of errors with their location * in * the parsed document. An empty string is returned if no error * occurred * during parsing. */ std::string getFormattedErrorMessages() const; /** \brief Returns a vector of structured erros encounted while parsing. * \return A (possibly empty) vector of StructuredError objects. Currently * only one error can be returned, but the caller should tolerate * multiple * errors. This can occur if the parser recovers from a non-fatal * parse error and then encounters additional errors. */ std::vector getStructuredErrors() const; /** \brief Add a semantic error message. * \param value JSON Value location associated with the error * \param message The error message. * \return \c true if the error was successfully added, \c false if the * Value offset exceeds the document size. */ bool pushError(const Value& value, const std::string& message); /** \brief Add a semantic error message with extra context. * \param value JSON Value location associated with the error * \param message The error message. * \param extra Additional JSON Value location to contextualize the error * \return \c true if the error was successfully added, \c false if either * Value offset exceeds the document size. */ bool pushError(const Value& value, const std::string& message, const Value& extra); /** \brief Return whether there are any errors. * \return \c true if there are no errors to report \c false if * errors have occurred. */ bool good() const; private: enum TokenType { tokenEndOfStream = 0, tokenObjectBegin, tokenObjectEnd, tokenArrayBegin, tokenArrayEnd, tokenString, tokenNumber, tokenTrue, tokenFalse, tokenNull, tokenArraySeparator, tokenMemberSeparator, tokenComment, tokenError }; class Token { public: TokenType type_; Location start_; Location end_; }; class ErrorInfo { public: Token token_; std::string message_; Location extra_; }; typedef std::deque Errors; bool readToken(Token& token); void skipSpaces(); bool match(Location pattern, int patternLength); bool readComment(); bool readCStyleComment(); bool readCppStyleComment(); bool readString(); void readNumber(); bool readValue(); bool readObject(Token& token); bool readArray(Token& token); bool decodeNumber(Token& token); bool decodeNumber(Token& token, Value& decoded); bool decodeString(Token& token); bool decodeString(Token& token, std::string& decoded); bool decodeDouble(Token& token); bool decodeDouble(Token& token, Value& decoded); bool decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode); bool decodeUnicodeEscapeSequence(Token& token, Location& current, Location end, unsigned int& unicode); bool addError(const std::string& message, Token& token, Location extra = 0); bool recoverFromError(TokenType skipUntilToken); bool addErrorAndRecover(const std::string& message, Token& token, TokenType skipUntilToken); void skipUntilSpace(); Value& currentValue(); Char getNextChar(); void getLocationLineAndColumn(Location location, int& line, int& column) const; std::string getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); void skipCommentTokens(Token& token); typedef std::stack Nodes; Nodes nodes_; Errors errors_; std::string document_; Location begin_; Location end_; Location current_; Location lastValueEnd_; Value* lastValue_; std::string commentsBefore_; Features features_; bool collectComments_; }; // Reader /** Interface for reading JSON from a char array. */ class JSON_API CharReader { public: virtual ~CharReader() {} /** \brief Read a Value from a JSON document. * The document must be a UTF-8 encoded string containing the document to read. * * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the document to read. * \param endDoc Pointer on the end of the UTF-8 encoded string of the document to read. * Must be >= beginDoc. * \param root [out] Contains the root value of the document if it was * successfully parsed. * \param errs [out] Formatted error messages (if not NULL) * a user friendly string that lists errors in the parsed * document. * \return \c true if the document was successfully parsed, \c false if an error occurred. */ virtual bool parse( char const* beginDoc, char const* endDoc, Value* root, std::string* errs) = 0; class Factory { public: virtual ~Factory() {} /** \brief Allocate a CharReader via operator new(). * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual CharReader* newCharReader() const = 0; }; // Factory }; // CharReader /** \brief Build a CharReader implementation. Usage: \code using namespace Json; CharReaderBuilder builder; builder["collectComments"] = false; Value value; std::string errs; bool ok = parseFromStream(builder, std::cin, &value, &errs); \endcode */ class JSON_API CharReaderBuilder : public CharReader::Factory { public: // Note: We use a Json::Value so that we can add data-members to this class // without a major version bump. /** Configuration of this builder. These are case-sensitive. Available settings (case-sensitive): - `"collectComments": false or true` - true to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if allowComments is false. - `"allowComments": false or true` - true if comments are allowed. - `"strictRoot": false or true` - true if root must be either an array or an object value - `"allowDroppedNullPlaceholders": false or true` - true if dropped null placeholders are allowed. (See StreamWriterBuilder.) - `"allowNumericKeys": false or true` - true if numeric object keys are allowed. - `"allowSingleQuotes": false or true` - true if '' are allowed for strings (both keys and values) - `"stackLimit": integer` - Exceeding stackLimit (recursive depth of `readValue()`) will cause an exception. - This is a security issue (seg-faults caused by deeply nested JSON), so the default is low. - `"failIfExtra": false or true` - If true, `parse()` returns false when extra non-whitespace trails the JSON value in the input string. - `"rejectDupKeys": false or true` - If true, `parse()` returns false when a key is duplicated within an object. You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value. \sa setDefaults() */ Json::Value settings_; CharReaderBuilder(); virtual ~CharReaderBuilder(); virtual CharReader* newCharReader() const; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. */ bool validate(Json::Value* invalid) const; /** A simple way to update a specific setting. */ Value& operator[](std::string key); /** Called by ctor, but you can use this to reset settings_. * \pre 'settings' != NULL (but Json::null is fine) * \remark Defaults: * \snippet src/lib_json/json_reader.cpp CharReaderBuilderDefaults */ static void setDefaults(Json::Value* settings); /** Same as old Features::strictMode(). * \pre 'settings' != NULL (but Json::null is fine) * \remark Defaults: * \snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode */ static void strictMode(Json::Value* settings); }; /** Consume entire stream and use its begin/end. * Someday we might have a real StreamReader, but for now this * is convenient. */ bool JSON_API parseFromStream( CharReader::Factory const&, std::istream&, Value* root, std::string* errs); /** \brief Read from 'sin' into 'root'. Always keep comments from the input JSON. This can be used to read a file into a particular sub-object. For example: \code Json::Value root; cin >> root["dir"]["file"]; cout << root; \endcode Result: \verbatim { "dir": { "file": { // The input stream JSON would be nested here. } } } \endverbatim \throw std::exception on parse error. \see Json::operator<<() */ JSON_API std::istream& operator>>(std::istream&, Value&); } // namespace Json #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #endif // CPPTL_JSON_READER_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/reader.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/writer.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef JSON_WRITER_H_INCLUDED #define JSON_WRITER_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "value.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include #include #include // Disable warning C4251: : needs to have dll-interface to // be used by... #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(push) #pragma warning(disable : 4251) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) namespace Json { class Value; /** Usage: \code using namespace Json; void writeToStdout(StreamWriter::Factory const& factory, Value const& value) { std::unique_ptr const writer( factory.newStreamWriter()); writer->write(value, &std::cout); std::cout << std::endl; // add lf and flush } \endcode */ class JSON_API StreamWriter { protected: std::ostream* sout_; // not owned; will not delete public: StreamWriter(); virtual ~StreamWriter(); /** Write Value into document as configured in sub-class. Do not take ownership of sout, but maintain a reference during function. \pre sout != NULL \return zero on success (For now, we always return zero, so check the stream instead.) \throw std::exception possibly, depending on configuration */ virtual int write(Value const& root, std::ostream* sout) = 0; /** \brief A simple abstract factory. */ class JSON_API Factory { public: virtual ~Factory(); /** \brief Allocate a CharReader via operator new(). * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual StreamWriter* newStreamWriter() const = 0; }; // Factory }; // StreamWriter /** \brief Write into stringstream, then return string, for convenience. * A StreamWriter will be created from the factory, used, and then deleted. */ std::string JSON_API writeString(StreamWriter::Factory const& factory, Value const& root); /** \brief Build a StreamWriter implementation. Usage: \code using namespace Json; Value value = ...; StreamWriterBuilder builder; builder["commentStyle"] = "None"; builder["indentation"] = " "; // or whatever you like std::unique_ptr writer( builder.newStreamWriter()); writer->write(value, &std::cout); std::cout << std::endl; // add lf and flush \endcode */ class JSON_API StreamWriterBuilder : public StreamWriter::Factory { public: // Note: We use a Json::Value so that we can add data-members to this class // without a major version bump. /** Configuration of this builder. Available settings (case-sensitive): - "commentStyle": "None" or "All" - "indentation": "" - "enableYAMLCompatibility": false or true - slightly change the whitespace around colons - "dropNullPlaceholders": false or true - Drop the "null" string from the writer's output for nullValues. Strictly speaking, this is not valid JSON. But when the output is being fed to a browser's Javascript, it makes for smaller output and the browser can handle the output just fine. You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value. \sa setDefaults() */ Json::Value settings_; StreamWriterBuilder(); virtual ~StreamWriterBuilder(); /** * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual StreamWriter* newStreamWriter() const; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. */ bool validate(Json::Value* invalid) const; /** A simple way to update a specific setting. */ Value& operator[](std::string key); /** Called by ctor, but you can use this to reset settings_. * \pre 'settings' != NULL (but Json::null is fine) * \remark Defaults: * \snippet src/lib_json/json_writer.cpp StreamWriterBuilderDefaults */ static void setDefaults(Json::Value* settings); }; /** \brief Abstract class for writers. * \deprecated Use StreamWriter. (And really, this is an implementation detail.) */ class JSON_API Writer { public: virtual ~Writer(); virtual std::string write(const Value& root) = 0; }; /** \brief Outputs a Value in JSON format *without formatting (not human friendly). * * The JSON document is written in a single line. It is not intended for 'human' *consumption, * but may be usefull to support feature such as RPC where bandwith is limited. * \sa Reader, Value * \deprecated Use StreamWriterBuilder. */ class JSON_API FastWriter : public Writer { public: FastWriter(); virtual ~FastWriter() {} void enableYAMLCompatibility(); /** \brief Drop the "null" string from the writer's output for nullValues. * Strictly speaking, this is not valid JSON. But when the output is being * fed to a browser's Javascript, it makes for smaller output and the * browser can handle the output just fine. */ void dropNullPlaceholders(); void omitEndingLineFeed(); public: // overridden from Writer virtual std::string write(const Value& root); private: void writeValue(const Value& value); std::string document_; bool yamlCompatiblityEnabled_; bool dropNullPlaceholders_; bool omitEndingLineFeed_; }; /** \brief Writes a Value in JSON format in a *human friendly way. * * The rules for line break and indent are as follow: * - Object value: * - if empty then print {} without indent and line break * - if not empty the print '{', line break & indent, print one value per *line * and then unindent and line break and print '}'. * - Array value: * - if empty then print [] without indent and line break * - if the array contains no object value, empty array or some other value *types, * and all the values fit on one lines, then print the array on a single *line. * - otherwise, it the values do not fit on one line, or the array contains * object or non empty array, then print one value per line. * * If the Value have comments then they are outputed according to their *#CommentPlacement. * * \sa Reader, Value, Value::setComment() * \deprecated Use StreamWriterBuilder. */ class JSON_API StyledWriter : public Writer { public: StyledWriter(); virtual ~StyledWriter() {} public: // overridden from Writer /** \brief Serialize a Value in JSON format. * \param root Value to serialize. * \return String containing the JSON document that represents the root value. */ virtual std::string write(const Value& root); private: void writeValue(const Value& value); void writeArrayValue(const Value& value); bool isMultineArray(const Value& value); void pushValue(const std::string& value); void writeIndent(); void writeWithIndent(const std::string& value); void indent(); void unindent(); void writeCommentBeforeValue(const Value& root); void writeCommentAfterValueOnSameLine(const Value& root); bool hasCommentForValue(const Value& value); static std::string normalizeEOL(const std::string& text); typedef std::vector ChildValues; ChildValues childValues_; std::string document_; std::string indentString_; int rightMargin_; int indentSize_; bool addChildValues_; }; /** \brief Writes a Value in JSON format in a human friendly way, to a stream rather than to a string. * * The rules for line break and indent are as follow: * - Object value: * - if empty then print {} without indent and line break * - if not empty the print '{', line break & indent, print one value per line * and then unindent and line break and print '}'. * - Array value: * - if empty then print [] without indent and line break * - if the array contains no object value, empty array or some other value types, * and all the values fit on one lines, then print the array on a single line. * - otherwise, it the values do not fit on one line, or the array contains * object or non empty array, then print one value per line. * * If the Value have comments then they are outputed according to their #CommentPlacement. * * \param indentation Each level will be indented by this amount extra. * \sa Reader, Value, Value::setComment() * \deprecated Use StreamWriterBuilder. */ class JSON_API StyledStreamWriter { public: StyledStreamWriter(std::string indentation = "\t"); ~StyledStreamWriter() {} public: /** \brief Serialize a Value in JSON format. * \param out Stream to write to. (Can be ostringstream, e.g.) * \param root Value to serialize. * \note There is no point in deriving from Writer, since write() should not * return a value. */ void write(std::ostream& out, const Value& root); private: void writeValue(const Value& value); void writeArrayValue(const Value& value); bool isMultineArray(const Value& value); void pushValue(const std::string& value); void writeIndent(); void writeWithIndent(const std::string& value); void indent(); void unindent(); void writeCommentBeforeValue(const Value& root); void writeCommentAfterValueOnSameLine(const Value& root); bool hasCommentForValue(const Value& value); static std::string normalizeEOL(const std::string& text); typedef std::vector ChildValues; ChildValues childValues_; std::ostream* document_; std::string indentString_; int rightMargin_; std::string indentation_; bool addChildValues_ : 1; bool indented_ : 1; }; #if defined(JSON_HAS_INT64) std::string JSON_API valueToString(Int value); std::string JSON_API valueToString(UInt value); #endif // if defined(JSON_HAS_INT64) std::string JSON_API valueToString(LargestInt value); std::string JSON_API valueToString(LargestUInt value); std::string JSON_API valueToString(double value); std::string JSON_API valueToString(bool value); std::string JSON_API valueToQuotedString(const char* value); /// \brief Output using the StyledStreamWriter. /// \see Json::operator>>() JSON_API std::ostream& operator<<(std::ostream&, const Value& root); } // namespace Json #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #endif // JSON_WRITER_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/writer.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/assertions.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED #define CPPTL_JSON_ASSERTIONS_H_INCLUDED #include #include #if !defined(JSON_IS_AMALGAMATION) #include "config.h" #endif // if !defined(JSON_IS_AMALGAMATION) /** It should not be possible for a maliciously designed file to * cause an abort() or seg-fault, so these macros are used only * for pre-condition violations and internal logic errors. */ #if JSON_USE_EXCEPTION // @todo <= add detail about condition in exception # define JSON_ASSERT(condition) \ {if (!(condition)) {Json::throwLogicError( "assert json failed" );}} # define JSON_FAIL_MESSAGE(message) \ { \ std::ostringstream oss; oss << message; \ Json::throwLogicError(oss.str()); \ abort(); \ } #else // JSON_USE_EXCEPTION # define JSON_ASSERT(condition) assert(condition) // The call to assert() will show the failure message in debug builds. In // release builds we abort, for a core-dump or debugger. # define JSON_FAIL_MESSAGE(message) \ { \ std::ostringstream oss; oss << message; \ assert(false && oss.str().c_str()); \ abort(); \ } #endif #define JSON_ASSERT_MESSAGE(condition, message) \ if (!(condition)) { \ JSON_FAIL_MESSAGE(message); \ } #endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/assertions.h // ////////////////////////////////////////////////////////////////////// #endif //ifndef JSON_AMALGATED_H_INCLUDED spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/jsoncpp/dist/jsoncpp.cpp000066400000000000000000004410361463234063200256040ustar00rootroot00000000000000/// Json-cpp amalgated source (http://jsoncpp.sourceforge.net/). /// It is intended to be used with #include "json/json.h" // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: LICENSE // ////////////////////////////////////////////////////////////////////// /* The JsonCpp library's source code, including accompanying documentation, tests and demonstration applications, are licensed under the following conditions... The author (Baptiste Lepilleur) explicitly disclaims copyright in all jurisdictions which recognize such a disclaimer. In such jurisdictions, this software is released into the Public Domain. In jurisdictions which do not recognize Public Domain property (e.g. Germany as of 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is released under the terms of the MIT License (see below). In jurisdictions which recognize Public Domain property, the user of this software may choose to accept it either as 1) Public Domain, 2) under the conditions of the MIT License (see below), or 3) under the terms of dual Public Domain/MIT License conditions described here, as they choose. The MIT License is about as close to Public Domain as a license can get, and is described in clear, concise terms at: http://en.wikipedia.org/wiki/MIT_License The full text of the MIT License follows: ======================================================================== Copyright (c) 2007-2010 Baptiste Lepilleur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ======================================================================== (END LICENSE TEXT) The MIT license is compatible with both the GPL and commercial software, affording one all of the rights of Public Domain with the minor nuisance of being required to keep the above copyright notice and license text in the source code. Note also that by accepting the Public Domain "license" you can re-license your copy using whatever license you like. */ // ////////////////////////////////////////////////////////////////////// // End of content of file: LICENSE // ////////////////////////////////////////////////////////////////////// #include "json/json.h" #ifndef JSON_IS_AMALGAMATION #error "Compile with -I PATH_TO_JSON_DIRECTORY" #endif // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: src/lib_json/json_tool.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED #define LIB_JSONCPP_JSON_TOOL_H_INCLUDED /* This header provides common string manipulation support, such as UTF-8, * portable conversion from/to string... * * It is an internal header that must not be exposed. */ namespace Json { /// Converts a unicode code-point to UTF-8. static inline std::string codePointToUTF8(unsigned int cp) { std::string result; // based on description from http://en.wikipedia.org/wiki/UTF-8 if (cp <= 0x7f) { result.resize(1); result[0] = static_cast(cp); } else if (cp <= 0x7FF) { result.resize(2); result[1] = static_cast(0x80 | (0x3f & cp)); result[0] = static_cast(0xC0 | (0x1f & (cp >> 6))); } else if (cp <= 0xFFFF) { result.resize(3); result[2] = static_cast(0x80 | (0x3f & cp)); result[1] = 0x80 | static_cast((0x3f & (cp >> 6))); result[0] = 0xE0 | static_cast((0xf & (cp >> 12))); } else if (cp <= 0x10FFFF) { result.resize(4); result[3] = static_cast(0x80 | (0x3f & cp)); result[2] = static_cast(0x80 | (0x3f & (cp >> 6))); result[1] = static_cast(0x80 | (0x3f & (cp >> 12))); result[0] = static_cast(0xF0 | (0x7 & (cp >> 18))); } return result; } /// Returns true if ch is a control character (in range [0,32[). static inline bool isControlCharacter(char ch) { return ch > 0 && ch <= 0x1F; } enum { /// Constant that specify the size of the buffer that must be passed to /// uintToString. uintToStringBufferSize = 3 * sizeof(LargestUInt) + 1 }; // Defines a char buffer for use with uintToString(). typedef char UIntToStringBuffer[uintToStringBufferSize]; /** Converts an unsigned integer to string. * @param value Unsigned interger to convert to string * @param current Input/Output string buffer. * Must have at least uintToStringBufferSize chars free. */ static inline void uintToString(LargestUInt value, char*& current) { *--current = 0; do { *--current = char(value % 10) + '0'; value /= 10; } while (value != 0); } /** Change ',' to '.' everywhere in buffer. * * We had a sophisticated way, but it did not work in WinCE. * @see https://github.com/open-source-parsers/jsoncpp/pull/9 */ static inline void fixNumericLocale(char* begin, char* end) { while (begin < end) { if (*begin == ',') { *begin = '.'; } ++begin; } } } // namespace Json { #endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: src/lib_json/json_tool.h // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: src/lib_json/json_reader.cpp // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2011 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) #include #include #include #include "json_tool.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include #include #include #include #include #include #include #include #if defined(_MSC_VER) && _MSC_VER < 1500 // VC++ 8.0 and below #define snprintf _snprintf #endif #if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0 // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) #endif static int const stackLimit_g = 1000; static int stackDepth_g = 0; // see readValue() namespace Json { #if __cplusplus >= 201103L typedef std::unique_ptr CharReaderPtr; #else typedef std::auto_ptr CharReaderPtr; #endif // Implementation of class Features // //////////////////////////////// Features::Features() : allowComments_(true), strictRoot_(false), allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {} Features Features::all() { return Features(); } Features Features::strictMode() { Features features; features.allowComments_ = false; features.strictRoot_ = true; features.allowDroppedNullPlaceholders_ = false; features.allowNumericKeys_ = false; return features; } // Implementation of class Reader // //////////////////////////////// static bool containsNewLine(Reader::Location begin, Reader::Location end) { for (; begin < end; ++begin) if (*begin == '\n' || *begin == '\r') return true; return false; } // Class Reader // ////////////////////////////////////////////////////////////////// Reader::Reader() : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), lastValue_(), commentsBefore_(), features_(Features::all()), collectComments_() {} Reader::Reader(const Features& features) : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), lastValue_(), commentsBefore_(), features_(features), collectComments_() { } bool Reader::parse(const std::string& document, Value& root, bool collectComments) { document_ = document; const char* begin = document_.c_str(); const char* end = begin + document_.length(); return parse(begin, end, root, collectComments); } bool Reader::parse(std::istream& sin, Value& root, bool collectComments) { // std::istream_iterator begin(sin); // std::istream_iterator end; // Those would allow streamed input from a file, if parse() were a // template function. // Since std::string is reference-counted, this at least does not // create an extra copy. std::string doc; std::getline(sin, doc, (char)EOF); return parse(doc, root, collectComments); } bool Reader::parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments) { if (!features_.allowComments_) { collectComments = false; } begin_ = beginDoc; end_ = endDoc; collectComments_ = collectComments; current_ = begin_; lastValueEnd_ = 0; lastValue_ = 0; commentsBefore_ = ""; errors_.clear(); while (!nodes_.empty()) nodes_.pop(); nodes_.push(&root); stackDepth_g = 0; // Yes, this is bad coding, but options are limited. bool successful = readValue(); Token token; skipCommentTokens(token); if (collectComments_ && !commentsBefore_.empty()) root.setComment(commentsBefore_, commentAfter); if (features_.strictRoot_) { if (!root.isArray() && !root.isObject()) { // Set error location to start of doc, ideally should be first token found // in doc token.type_ = tokenError; token.start_ = beginDoc; token.end_ = endDoc; addError( "A valid JSON document must be either an array or an object value.", token); return false; } } return successful; } bool Reader::readValue() { // This is a non-reentrant way to support a stackLimit. Terrible! // But this deprecated class has a security problem: Bad input can // cause a seg-fault. This seems like a fair, binary-compatible way // to prevent the problem. if (stackDepth_g >= stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue()."); ++stackDepth_g; Token token; skipCommentTokens(token); bool successful = true; if (collectComments_ && !commentsBefore_.empty()) { currentValue().setComment(commentsBefore_, commentBefore); commentsBefore_ = ""; } switch (token.type_) { case tokenObjectBegin: successful = readObject(token); currentValue().setOffsetLimit(current_ - begin_); break; case tokenArrayBegin: successful = readArray(token); currentValue().setOffsetLimit(current_ - begin_); break; case tokenNumber: successful = decodeNumber(token); break; case tokenString: successful = decodeString(token); break; case tokenTrue: { Value v(true); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); } break; case tokenFalse: { Value v(false); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); } break; case tokenNull: { Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); } break; case tokenArraySeparator: case tokenObjectEnd: case tokenArrayEnd: if (features_.allowDroppedNullPlaceholders_) { // "Un-read" the current token and mark the current value as a null // token. current_--; Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(current_ - begin_ - 1); currentValue().setOffsetLimit(current_ - begin_); break; } // Else, fall through... default: currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return addError("Syntax error: value, object or array expected.", token); } if (collectComments_) { lastValueEnd_ = current_; lastValue_ = ¤tValue(); } --stackDepth_g; return successful; } void Reader::skipCommentTokens(Token& token) { if (features_.allowComments_) { do { readToken(token); } while (token.type_ == tokenComment); } else { readToken(token); } } bool Reader::readToken(Token& token) { skipSpaces(); token.start_ = current_; Char c = getNextChar(); bool ok = true; switch (c) { case '{': token.type_ = tokenObjectBegin; break; case '}': token.type_ = tokenObjectEnd; break; case '[': token.type_ = tokenArrayBegin; break; case ']': token.type_ = tokenArrayEnd; break; case '"': token.type_ = tokenString; ok = readString(); break; case '/': token.type_ = tokenComment; ok = readComment(); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '-': token.type_ = tokenNumber; readNumber(); break; case 't': token.type_ = tokenTrue; ok = match("rue", 3); break; case 'f': token.type_ = tokenFalse; ok = match("alse", 4); break; case 'n': token.type_ = tokenNull; ok = match("ull", 3); break; case ',': token.type_ = tokenArraySeparator; break; case ':': token.type_ = tokenMemberSeparator; break; case 0: token.type_ = tokenEndOfStream; break; default: ok = false; break; } if (!ok) token.type_ = tokenError; token.end_ = current_; return true; } void Reader::skipSpaces() { while (current_ != end_) { Char c = *current_; if (c == ' ' || c == '\t' || c == '\r' || c == '\n') ++current_; else break; } } bool Reader::match(Location pattern, int patternLength) { if (end_ - current_ < patternLength) return false; int index = patternLength; while (index--) if (current_[index] != pattern[index]) return false; current_ += patternLength; return true; } bool Reader::readComment() { Location commentBegin = current_ - 1; Char c = getNextChar(); bool successful = false; if (c == '*') successful = readCStyleComment(); else if (c == '/') successful = readCppStyleComment(); if (!successful) return false; if (collectComments_) { CommentPlacement placement = commentBefore; if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) { if (c != '*' || !containsNewLine(commentBegin, current_)) placement = commentAfterOnSameLine; } addComment(commentBegin, current_, placement); } return true; } static std::string normalizeEOL(Reader::Location begin, Reader::Location end) { std::string normalized; normalized.reserve(end - begin); Reader::Location current = begin; while (current != end) { char c = *current++; if (c == '\r') { if (current != end && *current == '\n') // convert dos EOL ++current; // convert Mac EOL normalized += '\n'; } else { normalized += c; } } return normalized; } void Reader::addComment(Location begin, Location end, CommentPlacement placement) { assert(collectComments_); const std::string& normalized = normalizeEOL(begin, end); if (placement == commentAfterOnSameLine) { assert(lastValue_ != 0); lastValue_->setComment(normalized, placement); } else { commentsBefore_ += normalized; } } bool Reader::readCStyleComment() { while (current_ != end_) { Char c = getNextChar(); if (c == '*' && *current_ == '/') break; } return getNextChar() == '/'; } bool Reader::readCppStyleComment() { while (current_ != end_) { Char c = getNextChar(); if (c == '\n') break; if (c == '\r') { // Consume DOS EOL. It will be normalized in addComment. if (current_ != end_ && *current_ == '\n') getNextChar(); // Break on Moc OS 9 EOL. break; } } return true; } void Reader::readNumber() { const char *p = current_; char c = '0'; // stopgap for already consumed character // integral part while (c >= '0' && c <= '9') c = (current_ = p) < end_ ? *p++ : 0; // fractional part if (c == '.') { c = (current_ = p) < end_ ? *p++ : 0; while (c >= '0' && c <= '9') c = (current_ = p) < end_ ? *p++ : 0; } // exponential part if (c == 'e' || c == 'E') { c = (current_ = p) < end_ ? *p++ : 0; if (c == '+' || c == '-') c = (current_ = p) < end_ ? *p++ : 0; while (c >= '0' && c <= '9') c = (current_ = p) < end_ ? *p++ : 0; } } bool Reader::readString() { Char c = 0; while (current_ != end_) { c = getNextChar(); if (c == '\\') getNextChar(); else if (c == '"') break; } return c == '"'; } bool Reader::readObject(Token& tokenStart) { Token tokenName; std::string name; Value init(objectValue); currentValue().swapPayload(init); currentValue().setOffsetStart(tokenStart.start_ - begin_); while (readToken(tokenName)) { bool initialTokenOk = true; while (tokenName.type_ == tokenComment && initialTokenOk) initialTokenOk = readToken(tokenName); if (!initialTokenOk) break; if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object return true; name = ""; if (tokenName.type_ == tokenString) { if (!decodeString(tokenName, name)) return recoverFromError(tokenObjectEnd); } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) { Value numberName; if (!decodeNumber(tokenName, numberName)) return recoverFromError(tokenObjectEnd); name = numberName.asString(); } else { break; } Token colon; if (!readToken(colon) || colon.type_ != tokenMemberSeparator) { return addErrorAndRecover( "Missing ':' after object member name", colon, tokenObjectEnd); } Value& value = currentValue()[name]; nodes_.push(&value); bool ok = readValue(); nodes_.pop(); if (!ok) // error already set return recoverFromError(tokenObjectEnd); Token comma; if (!readToken(comma) || (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && comma.type_ != tokenComment)) { return addErrorAndRecover( "Missing ',' or '}' in object declaration", comma, tokenObjectEnd); } bool finalizeTokenOk = true; while (comma.type_ == tokenComment && finalizeTokenOk) finalizeTokenOk = readToken(comma); if (comma.type_ == tokenObjectEnd) return true; } return addErrorAndRecover( "Missing '}' or object member name", tokenName, tokenObjectEnd); } bool Reader::readArray(Token& tokenStart) { Value init(arrayValue); currentValue().swapPayload(init); currentValue().setOffsetStart(tokenStart.start_ - begin_); skipSpaces(); if (*current_ == ']') // empty array { Token endArray; readToken(endArray); return true; } int index = 0; for (;;) { Value& value = currentValue()[index++]; nodes_.push(&value); bool ok = readValue(); nodes_.pop(); if (!ok) // error already set return recoverFromError(tokenArrayEnd); Token token; // Accept Comment after last item in the array. ok = readToken(token); while (token.type_ == tokenComment && ok) { ok = readToken(token); } bool badTokenType = (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd); if (!ok || badTokenType) { return addErrorAndRecover( "Missing ',' or ']' in array declaration", token, tokenArrayEnd); } if (token.type_ == tokenArrayEnd) break; } return true; } bool Reader::decodeNumber(Token& token) { Value decoded; if (!decodeNumber(token, decoded)) return false; currentValue().swapPayload(decoded); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return true; } bool Reader::decodeNumber(Token& token, Value& decoded) { // Attempts to parse the number as an integer. If the number is // larger than the maximum supported value of an integer then // we decode the number as a double. Location current = token.start_; bool isNegative = *current == '-'; if (isNegative) ++current; // TODO: Help the compiler do the div and mod at compile time or get rid of them. Value::LargestUInt maxIntegerValue = isNegative ? Value::LargestUInt(-Value::minLargestInt) : Value::maxLargestUInt; Value::LargestUInt threshold = maxIntegerValue / 10; Value::LargestUInt value = 0; while (current < token.end_) { Char c = *current++; if (c < '0' || c > '9') return decodeDouble(token, decoded); Value::UInt digit(c - '0'); if (value >= threshold) { // We've hit or exceeded the max value divided by 10 (rounded down). If // a) we've only just touched the limit, b) this is the last digit, and // c) it's small enough to fit in that rounding delta, we're okay. // Otherwise treat this number as a double to avoid overflow. if (value > threshold || current != token.end_ || digit > maxIntegerValue % 10) { return decodeDouble(token, decoded); } } value = value * 10 + digit; } if (isNegative) decoded = -Value::LargestInt(value); else if (value <= Value::LargestUInt(Value::maxInt)) decoded = Value::LargestInt(value); else decoded = value; return true; } bool Reader::decodeDouble(Token& token) { Value decoded; if (!decodeDouble(token, decoded)) return false; currentValue().swapPayload(decoded); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return true; } bool Reader::decodeDouble(Token& token, Value& decoded) { double value = 0; const int bufferSize = 32; int count; int length = int(token.end_ - token.start_); // Sanity check to avoid buffer overflow exploits. if (length < 0) { return addError("Unable to parse token length", token); } // Avoid using a string constant for the format control string given to // sscanf, as this can cause hard to debug crashes on OS X. See here for more // info: // // http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html char format[] = "%lf"; if (length <= bufferSize) { Char buffer[bufferSize + 1]; memcpy(buffer, token.start_, length); buffer[length] = 0; count = sscanf(buffer, format, &value); } else { std::string buffer(token.start_, token.end_); count = sscanf(buffer.c_str(), format, &value); } if (count != 1) return addError("'" + std::string(token.start_, token.end_) + "' is not a number.", token); decoded = value; return true; } bool Reader::decodeString(Token& token) { std::string decoded_string; if (!decodeString(token, decoded_string)) return false; Value decoded(decoded_string); currentValue().swapPayload(decoded); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return true; } bool Reader::decodeString(Token& token, std::string& decoded) { decoded.reserve(token.end_ - token.start_ - 2); Location current = token.start_ + 1; // skip '"' Location end = token.end_ - 1; // do not include '"' while (current != end) { Char c = *current++; if (c == '"') break; else if (c == '\\') { if (current == end) return addError("Empty escape sequence in string", token, current); Char escape = *current++; switch (escape) { case '"': decoded += '"'; break; case '/': decoded += '/'; break; case '\\': decoded += '\\'; break; case 'b': decoded += '\b'; break; case 'f': decoded += '\f'; break; case 'n': decoded += '\n'; break; case 'r': decoded += '\r'; break; case 't': decoded += '\t'; break; case 'u': { unsigned int unicode; if (!decodeUnicodeCodePoint(token, current, end, unicode)) return false; decoded += codePointToUTF8(unicode); } break; default: return addError("Bad escape sequence in string", token, current); } } else { decoded += c; } } return true; } bool Reader::decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode) { if (!decodeUnicodeEscapeSequence(token, current, end, unicode)) return false; if (unicode >= 0xD800 && unicode <= 0xDBFF) { // surrogate pairs if (end - current < 6) return addError( "additional six characters expected to parse unicode surrogate pair.", token, current); unsigned int surrogatePair; if (*(current++) == '\\' && *(current++) == 'u') { if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) { unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF); } else return false; } else return addError("expecting another \\u token to begin the second half of " "a unicode surrogate pair", token, current); } return true; } bool Reader::decodeUnicodeEscapeSequence(Token& token, Location& current, Location end, unsigned int& unicode) { if (end - current < 4) return addError( "Bad unicode escape sequence in string: four digits expected.", token, current); unicode = 0; for (int index = 0; index < 4; ++index) { Char c = *current++; unicode *= 16; if (c >= '0' && c <= '9') unicode += c - '0'; else if (c >= 'a' && c <= 'f') unicode += c - 'a' + 10; else if (c >= 'A' && c <= 'F') unicode += c - 'A' + 10; else return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", token, current); } return true; } bool Reader::addError(const std::string& message, Token& token, Location extra) { ErrorInfo info; info.token_ = token; info.message_ = message; info.extra_ = extra; errors_.push_back(info); return false; } bool Reader::recoverFromError(TokenType skipUntilToken) { int errorCount = int(errors_.size()); Token skip; for (;;) { if (!readToken(skip)) errors_.resize(errorCount); // discard errors caused by recovery if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream) break; } errors_.resize(errorCount); return false; } bool Reader::addErrorAndRecover(const std::string& message, Token& token, TokenType skipUntilToken) { addError(message, token); return recoverFromError(skipUntilToken); } Value& Reader::currentValue() { return *(nodes_.top()); } Reader::Char Reader::getNextChar() { if (current_ == end_) return 0; return *current_++; } void Reader::getLocationLineAndColumn(Location location, int& line, int& column) const { Location current = begin_; Location lastLineStart = current; line = 0; while (current < location && current != end_) { Char c = *current++; if (c == '\r') { if (*current == '\n') ++current; lastLineStart = current; ++line; } else if (c == '\n') { lastLineStart = current; ++line; } } // column & line start at 1 column = int(location - lastLineStart) + 1; ++line; } std::string Reader::getLocationLineAndColumn(Location location) const { int line, column; getLocationLineAndColumn(location, line, column); char buffer[18 + 16 + 16 + 1]; #if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) #if defined(WINCE) _snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); #else sprintf_s(buffer, sizeof(buffer), "Line %d, Column %d", line, column); #endif #else snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); #endif return buffer; } // Deprecated. Preserved for backward compatibility std::string Reader::getFormatedErrorMessages() const { return getFormattedErrorMessages(); } std::string Reader::getFormattedErrorMessages() const { std::string formattedMessage; for (Errors::const_iterator itError = errors_.begin(); itError != errors_.end(); ++itError) { const ErrorInfo& error = *itError; formattedMessage += "* " + getLocationLineAndColumn(error.token_.start_) + "\n"; formattedMessage += " " + error.message_ + "\n"; if (error.extra_) formattedMessage += "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n"; } return formattedMessage; } std::vector Reader::getStructuredErrors() const { std::vector allErrors; for (Errors::const_iterator itError = errors_.begin(); itError != errors_.end(); ++itError) { const ErrorInfo& error = *itError; Reader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; structured.message = error.message_; allErrors.push_back(structured); } return allErrors; } bool Reader::pushError(const Value& value, const std::string& message) { size_t length = end_ - begin_; if(value.getOffsetStart() > length || value.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; token.start_ = begin_ + value.getOffsetStart(); token.end_ = end_ + value.getOffsetLimit(); ErrorInfo info; info.token_ = token; info.message_ = message; info.extra_ = 0; errors_.push_back(info); return true; } bool Reader::pushError(const Value& value, const std::string& message, const Value& extra) { size_t length = end_ - begin_; if(value.getOffsetStart() > length || value.getOffsetLimit() > length || extra.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; token.start_ = begin_ + value.getOffsetStart(); token.end_ = begin_ + value.getOffsetLimit(); ErrorInfo info; info.token_ = token; info.message_ = message; info.extra_ = begin_ + extra.getOffsetStart(); errors_.push_back(info); return true; } bool Reader::good() const { return !errors_.size(); } // exact copy of Features class OurFeatures { public: static OurFeatures all(); OurFeatures(); bool allowComments_; bool strictRoot_; bool allowDroppedNullPlaceholders_; bool allowNumericKeys_; bool allowSingleQuotes_; bool failIfExtra_; bool rejectDupKeys_; int stackLimit_; }; // OurFeatures // exact copy of Implementation of class Features // //////////////////////////////// OurFeatures::OurFeatures() : allowComments_(true), strictRoot_(false) , allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) , allowSingleQuotes_(false) , failIfExtra_(false) { } OurFeatures OurFeatures::all() { return OurFeatures(); } // Implementation of class Reader // //////////////////////////////// // exact copy of Reader, renamed to OurReader class OurReader { public: typedef char Char; typedef const Char* Location; struct StructuredError { size_t offset_start; size_t offset_limit; std::string message; }; OurReader(OurFeatures const& features); bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); std::string getFormattedErrorMessages() const; std::vector getStructuredErrors() const; bool pushError(const Value& value, const std::string& message); bool pushError(const Value& value, const std::string& message, const Value& extra); bool good() const; private: OurReader(OurReader const&); // no impl void operator=(OurReader const&); // no impl enum TokenType { tokenEndOfStream = 0, tokenObjectBegin, tokenObjectEnd, tokenArrayBegin, tokenArrayEnd, tokenString, tokenNumber, tokenTrue, tokenFalse, tokenNull, tokenArraySeparator, tokenMemberSeparator, tokenComment, tokenError }; class Token { public: TokenType type_; Location start_; Location end_; }; class ErrorInfo { public: Token token_; std::string message_; Location extra_; }; typedef std::deque Errors; bool readToken(Token& token); void skipSpaces(); bool match(Location pattern, int patternLength); bool readComment(); bool readCStyleComment(); bool readCppStyleComment(); bool readString(); bool readStringSingleQuote(); void readNumber(); bool readValue(); bool readObject(Token& token); bool readArray(Token& token); bool decodeNumber(Token& token); bool decodeNumber(Token& token, Value& decoded); bool decodeString(Token& token); bool decodeString(Token& token, std::string& decoded); bool decodeDouble(Token& token); bool decodeDouble(Token& token, Value& decoded); bool decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode); bool decodeUnicodeEscapeSequence(Token& token, Location& current, Location end, unsigned int& unicode); bool addError(const std::string& message, Token& token, Location extra = 0); bool recoverFromError(TokenType skipUntilToken); bool addErrorAndRecover(const std::string& message, Token& token, TokenType skipUntilToken); void skipUntilSpace(); Value& currentValue(); Char getNextChar(); void getLocationLineAndColumn(Location location, int& line, int& column) const; std::string getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); void skipCommentTokens(Token& token); typedef std::stack Nodes; Nodes nodes_; Errors errors_; std::string document_; Location begin_; Location end_; Location current_; Location lastValueEnd_; Value* lastValue_; std::string commentsBefore_; int stackDepth_; OurFeatures const features_; bool collectComments_; }; // OurReader // complete copy of Read impl, for OurReader OurReader::OurReader(OurFeatures const& features) : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), lastValue_(), commentsBefore_(), features_(features), collectComments_() { } bool OurReader::parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments) { if (!features_.allowComments_) { collectComments = false; } begin_ = beginDoc; end_ = endDoc; collectComments_ = collectComments; current_ = begin_; lastValueEnd_ = 0; lastValue_ = 0; commentsBefore_ = ""; errors_.clear(); while (!nodes_.empty()) nodes_.pop(); nodes_.push(&root); stackDepth_ = 0; bool successful = readValue(); Token token; skipCommentTokens(token); if (features_.failIfExtra_) { if (token.type_ != tokenError && token.type_ != tokenEndOfStream) { addError("Extra non-whitespace after JSON value.", token); return false; } } if (collectComments_ && !commentsBefore_.empty()) root.setComment(commentsBefore_, commentAfter); if (features_.strictRoot_) { if (!root.isArray() && !root.isObject()) { // Set error location to start of doc, ideally should be first token found // in doc token.type_ = tokenError; token.start_ = beginDoc; token.end_ = endDoc; addError( "A valid JSON document must be either an array or an object value.", token); return false; } } return successful; } bool OurReader::readValue() { if (stackDepth_ >= features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue()."); ++stackDepth_; Token token; skipCommentTokens(token); bool successful = true; if (collectComments_ && !commentsBefore_.empty()) { currentValue().setComment(commentsBefore_, commentBefore); commentsBefore_ = ""; } switch (token.type_) { case tokenObjectBegin: successful = readObject(token); currentValue().setOffsetLimit(current_ - begin_); break; case tokenArrayBegin: successful = readArray(token); currentValue().setOffsetLimit(current_ - begin_); break; case tokenNumber: successful = decodeNumber(token); break; case tokenString: successful = decodeString(token); break; case tokenTrue: { Value v(true); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); } break; case tokenFalse: { Value v(false); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); } break; case tokenNull: { Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); } break; case tokenArraySeparator: case tokenObjectEnd: case tokenArrayEnd: if (features_.allowDroppedNullPlaceholders_) { // "Un-read" the current token and mark the current value as a null // token. current_--; Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(current_ - begin_ - 1); currentValue().setOffsetLimit(current_ - begin_); break; } // else, fall through ... default: currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return addError("Syntax error: value, object or array expected.", token); } if (collectComments_) { lastValueEnd_ = current_; lastValue_ = ¤tValue(); } --stackDepth_; return successful; } void OurReader::skipCommentTokens(Token& token) { if (features_.allowComments_) { do { readToken(token); } while (token.type_ == tokenComment); } else { readToken(token); } } bool OurReader::readToken(Token& token) { skipSpaces(); token.start_ = current_; Char c = getNextChar(); bool ok = true; switch (c) { case '{': token.type_ = tokenObjectBegin; break; case '}': token.type_ = tokenObjectEnd; break; case '[': token.type_ = tokenArrayBegin; break; case ']': token.type_ = tokenArrayEnd; break; case '"': token.type_ = tokenString; ok = readString(); break; case '\'': if (features_.allowSingleQuotes_) { token.type_ = tokenString; ok = readStringSingleQuote(); break; } // else continue case '/': token.type_ = tokenComment; ok = readComment(); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '-': token.type_ = tokenNumber; readNumber(); break; case 't': token.type_ = tokenTrue; ok = match("rue", 3); break; case 'f': token.type_ = tokenFalse; ok = match("alse", 4); break; case 'n': token.type_ = tokenNull; ok = match("ull", 3); break; case ',': token.type_ = tokenArraySeparator; break; case ':': token.type_ = tokenMemberSeparator; break; case 0: token.type_ = tokenEndOfStream; break; default: ok = false; break; } if (!ok) token.type_ = tokenError; token.end_ = current_; return true; } void OurReader::skipSpaces() { while (current_ != end_) { Char c = *current_; if (c == ' ' || c == '\t' || c == '\r' || c == '\n') ++current_; else break; } } bool OurReader::match(Location pattern, int patternLength) { if (end_ - current_ < patternLength) return false; int index = patternLength; while (index--) if (current_[index] != pattern[index]) return false; current_ += patternLength; return true; } bool OurReader::readComment() { Location commentBegin = current_ - 1; Char c = getNextChar(); bool successful = false; if (c == '*') successful = readCStyleComment(); else if (c == '/') successful = readCppStyleComment(); if (!successful) return false; if (collectComments_) { CommentPlacement placement = commentBefore; if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) { if (c != '*' || !containsNewLine(commentBegin, current_)) placement = commentAfterOnSameLine; } addComment(commentBegin, current_, placement); } return true; } void OurReader::addComment(Location begin, Location end, CommentPlacement placement) { assert(collectComments_); const std::string& normalized = normalizeEOL(begin, end); if (placement == commentAfterOnSameLine) { assert(lastValue_ != 0); lastValue_->setComment(normalized, placement); } else { commentsBefore_ += normalized; } } bool OurReader::readCStyleComment() { while (current_ != end_) { Char c = getNextChar(); if (c == '*' && *current_ == '/') break; } return getNextChar() == '/'; } bool OurReader::readCppStyleComment() { while (current_ != end_) { Char c = getNextChar(); if (c == '\n') break; if (c == '\r') { // Consume DOS EOL. It will be normalized in addComment. if (current_ != end_ && *current_ == '\n') getNextChar(); // Break on Moc OS 9 EOL. break; } } return true; } void OurReader::readNumber() { const char *p = current_; char c = '0'; // stopgap for already consumed character // integral part while (c >= '0' && c <= '9') c = (current_ = p) < end_ ? *p++ : 0; // fractional part if (c == '.') { c = (current_ = p) < end_ ? *p++ : 0; while (c >= '0' && c <= '9') c = (current_ = p) < end_ ? *p++ : 0; } // exponential part if (c == 'e' || c == 'E') { c = (current_ = p) < end_ ? *p++ : 0; if (c == '+' || c == '-') c = (current_ = p) < end_ ? *p++ : 0; while (c >= '0' && c <= '9') c = (current_ = p) < end_ ? *p++ : 0; } } bool OurReader::readString() { Char c = 0; while (current_ != end_) { c = getNextChar(); if (c == '\\') getNextChar(); else if (c == '"') break; } return c == '"'; } bool OurReader::readStringSingleQuote() { Char c = 0; while (current_ != end_) { c = getNextChar(); if (c == '\\') getNextChar(); else if (c == '\'') break; } return c == '\''; } bool OurReader::readObject(Token& tokenStart) { Token tokenName; std::string name; Value init(objectValue); currentValue().swapPayload(init); currentValue().setOffsetStart(tokenStart.start_ - begin_); while (readToken(tokenName)) { bool initialTokenOk = true; while (tokenName.type_ == tokenComment && initialTokenOk) initialTokenOk = readToken(tokenName); if (!initialTokenOk) break; if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object return true; name = ""; if (tokenName.type_ == tokenString) { if (!decodeString(tokenName, name)) return recoverFromError(tokenObjectEnd); } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) { Value numberName; if (!decodeNumber(tokenName, numberName)) return recoverFromError(tokenObjectEnd); name = numberName.asString(); } else { break; } Token colon; if (!readToken(colon) || colon.type_ != tokenMemberSeparator) { return addErrorAndRecover( "Missing ':' after object member name", colon, tokenObjectEnd); } if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30"); if (features_.rejectDupKeys_ && currentValue().isMember(name)) { std::string msg = "Duplicate key: '" + name + "'"; return addErrorAndRecover( msg, tokenName, tokenObjectEnd); } Value& value = currentValue()[name]; nodes_.push(&value); bool ok = readValue(); nodes_.pop(); if (!ok) // error already set return recoverFromError(tokenObjectEnd); Token comma; if (!readToken(comma) || (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && comma.type_ != tokenComment)) { return addErrorAndRecover( "Missing ',' or '}' in object declaration", comma, tokenObjectEnd); } bool finalizeTokenOk = true; while (comma.type_ == tokenComment && finalizeTokenOk) finalizeTokenOk = readToken(comma); if (comma.type_ == tokenObjectEnd) return true; } return addErrorAndRecover( "Missing '}' or object member name", tokenName, tokenObjectEnd); } bool OurReader::readArray(Token& tokenStart) { Value init(arrayValue); currentValue().swapPayload(init); currentValue().setOffsetStart(tokenStart.start_ - begin_); skipSpaces(); if (*current_ == ']') // empty array { Token endArray; readToken(endArray); return true; } int index = 0; for (;;) { Value& value = currentValue()[index++]; nodes_.push(&value); bool ok = readValue(); nodes_.pop(); if (!ok) // error already set return recoverFromError(tokenArrayEnd); Token token; // Accept Comment after last item in the array. ok = readToken(token); while (token.type_ == tokenComment && ok) { ok = readToken(token); } bool badTokenType = (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd); if (!ok || badTokenType) { return addErrorAndRecover( "Missing ',' or ']' in array declaration", token, tokenArrayEnd); } if (token.type_ == tokenArrayEnd) break; } return true; } bool OurReader::decodeNumber(Token& token) { Value decoded; if (!decodeNumber(token, decoded)) return false; currentValue().swapPayload(decoded); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return true; } bool OurReader::decodeNumber(Token& token, Value& decoded) { // Attempts to parse the number as an integer. If the number is // larger than the maximum supported value of an integer then // we decode the number as a double. Location current = token.start_; bool isNegative = *current == '-'; if (isNegative) ++current; // TODO: Help the compiler do the div and mod at compile time or get rid of them. Value::LargestUInt maxIntegerValue = isNegative ? Value::LargestUInt(-Value::minLargestInt) : Value::maxLargestUInt; Value::LargestUInt threshold = maxIntegerValue / 10; Value::LargestUInt value = 0; while (current < token.end_) { Char c = *current++; if (c < '0' || c > '9') return decodeDouble(token, decoded); Value::UInt digit(c - '0'); if (value >= threshold) { // We've hit or exceeded the max value divided by 10 (rounded down). If // a) we've only just touched the limit, b) this is the last digit, and // c) it's small enough to fit in that rounding delta, we're okay. // Otherwise treat this number as a double to avoid overflow. if (value > threshold || current != token.end_ || digit > maxIntegerValue % 10) { return decodeDouble(token, decoded); } } value = value * 10 + digit; } if (isNegative) decoded = -Value::LargestInt(value); else if (value <= Value::LargestUInt(Value::maxInt)) decoded = Value::LargestInt(value); else decoded = value; return true; } bool OurReader::decodeDouble(Token& token) { Value decoded; if (!decodeDouble(token, decoded)) return false; currentValue().swapPayload(decoded); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return true; } bool OurReader::decodeDouble(Token& token, Value& decoded) { double value = 0; const int bufferSize = 32; int count; int length = int(token.end_ - token.start_); // Sanity check to avoid buffer overflow exploits. if (length < 0) { return addError("Unable to parse token length", token); } // Avoid using a string constant for the format control string given to // sscanf, as this can cause hard to debug crashes on OS X. See here for more // info: // // http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html char format[] = "%lf"; if (length <= bufferSize) { Char buffer[bufferSize + 1]; memcpy(buffer, token.start_, length); buffer[length] = 0; count = sscanf(buffer, format, &value); } else { std::string buffer(token.start_, token.end_); count = sscanf(buffer.c_str(), format, &value); } if (count != 1) return addError("'" + std::string(token.start_, token.end_) + "' is not a number.", token); decoded = value; return true; } bool OurReader::decodeString(Token& token) { std::string decoded_string; if (!decodeString(token, decoded_string)) return false; Value decoded(decoded_string); currentValue().swapPayload(decoded); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); return true; } bool OurReader::decodeString(Token& token, std::string& decoded) { decoded.reserve(token.end_ - token.start_ - 2); Location current = token.start_ + 1; // skip '"' Location end = token.end_ - 1; // do not include '"' while (current != end) { Char c = *current++; if (c == '"') break; else if (c == '\\') { if (current == end) return addError("Empty escape sequence in string", token, current); Char escape = *current++; switch (escape) { case '"': decoded += '"'; break; case '/': decoded += '/'; break; case '\\': decoded += '\\'; break; case 'b': decoded += '\b'; break; case 'f': decoded += '\f'; break; case 'n': decoded += '\n'; break; case 'r': decoded += '\r'; break; case 't': decoded += '\t'; break; case 'u': { unsigned int unicode; if (!decodeUnicodeCodePoint(token, current, end, unicode)) return false; decoded += codePointToUTF8(unicode); } break; default: return addError("Bad escape sequence in string", token, current); } } else { decoded += c; } } return true; } bool OurReader::decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode) { if (!decodeUnicodeEscapeSequence(token, current, end, unicode)) return false; if (unicode >= 0xD800 && unicode <= 0xDBFF) { // surrogate pairs if (end - current < 6) return addError( "additional six characters expected to parse unicode surrogate pair.", token, current); unsigned int surrogatePair; if (*(current++) == '\\' && *(current++) == 'u') { if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) { unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF); } else return false; } else return addError("expecting another \\u token to begin the second half of " "a unicode surrogate pair", token, current); } return true; } bool OurReader::decodeUnicodeEscapeSequence(Token& token, Location& current, Location end, unsigned int& unicode) { if (end - current < 4) return addError( "Bad unicode escape sequence in string: four digits expected.", token, current); unicode = 0; for (int index = 0; index < 4; ++index) { Char c = *current++; unicode *= 16; if (c >= '0' && c <= '9') unicode += c - '0'; else if (c >= 'a' && c <= 'f') unicode += c - 'a' + 10; else if (c >= 'A' && c <= 'F') unicode += c - 'A' + 10; else return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", token, current); } return true; } bool OurReader::addError(const std::string& message, Token& token, Location extra) { ErrorInfo info; info.token_ = token; info.message_ = message; info.extra_ = extra; errors_.push_back(info); return false; } bool OurReader::recoverFromError(TokenType skipUntilToken) { int errorCount = int(errors_.size()); Token skip; for (;;) { if (!readToken(skip)) errors_.resize(errorCount); // discard errors caused by recovery if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream) break; } errors_.resize(errorCount); return false; } bool OurReader::addErrorAndRecover(const std::string& message, Token& token, TokenType skipUntilToken) { addError(message, token); return recoverFromError(skipUntilToken); } Value& OurReader::currentValue() { return *(nodes_.top()); } OurReader::Char OurReader::getNextChar() { if (current_ == end_) return 0; return *current_++; } void OurReader::getLocationLineAndColumn(Location location, int& line, int& column) const { Location current = begin_; Location lastLineStart = current; line = 0; while (current < location && current != end_) { Char c = *current++; if (c == '\r') { if (*current == '\n') ++current; lastLineStart = current; ++line; } else if (c == '\n') { lastLineStart = current; ++line; } } // column & line start at 1 column = int(location - lastLineStart) + 1; ++line; } std::string OurReader::getLocationLineAndColumn(Location location) const { int line, column; getLocationLineAndColumn(location, line, column); char buffer[18 + 16 + 16 + 1]; #if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) #if defined(WINCE) _snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); #else sprintf_s(buffer, sizeof(buffer), "Line %d, Column %d", line, column); #endif #else snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); #endif return buffer; } std::string OurReader::getFormattedErrorMessages() const { std::string formattedMessage; for (Errors::const_iterator itError = errors_.begin(); itError != errors_.end(); ++itError) { const ErrorInfo& error = *itError; formattedMessage += "* " + getLocationLineAndColumn(error.token_.start_) + "\n"; formattedMessage += " " + error.message_ + "\n"; if (error.extra_) formattedMessage += "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n"; } return formattedMessage; } std::vector OurReader::getStructuredErrors() const { std::vector allErrors; for (Errors::const_iterator itError = errors_.begin(); itError != errors_.end(); ++itError) { const ErrorInfo& error = *itError; OurReader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; structured.message = error.message_; allErrors.push_back(structured); } return allErrors; } bool OurReader::pushError(const Value& value, const std::string& message) { size_t length = end_ - begin_; if(value.getOffsetStart() > length || value.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; token.start_ = begin_ + value.getOffsetStart(); token.end_ = end_ + value.getOffsetLimit(); ErrorInfo info; info.token_ = token; info.message_ = message; info.extra_ = 0; errors_.push_back(info); return true; } bool OurReader::pushError(const Value& value, const std::string& message, const Value& extra) { size_t length = end_ - begin_; if(value.getOffsetStart() > length || value.getOffsetLimit() > length || extra.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; token.start_ = begin_ + value.getOffsetStart(); token.end_ = begin_ + value.getOffsetLimit(); ErrorInfo info; info.token_ = token; info.message_ = message; info.extra_ = begin_ + extra.getOffsetStart(); errors_.push_back(info); return true; } bool OurReader::good() const { return !errors_.size(); } class OurCharReader : public CharReader { bool const collectComments_; OurReader reader_; public: OurCharReader( bool collectComments, OurFeatures const& features) : collectComments_(collectComments) , reader_(features) {} virtual bool parse( char const* beginDoc, char const* endDoc, Value* root, std::string* errs) { bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_); if (errs) { *errs = reader_.getFormattedErrorMessages(); } return ok; } }; CharReaderBuilder::CharReaderBuilder() { setDefaults(&settings_); } CharReaderBuilder::~CharReaderBuilder() {} CharReader* CharReaderBuilder::newCharReader() const { bool collectComments = settings_["collectComments"].asBool(); OurFeatures features = OurFeatures::all(); features.allowComments_ = settings_["allowComments"].asBool(); features.strictRoot_ = settings_["strictRoot"].asBool(); features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool(); features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool(); features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool(); features.stackLimit_ = settings_["stackLimit"].asInt(); features.failIfExtra_ = settings_["failIfExtra"].asBool(); features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool(); return new OurCharReader(collectComments, features); } static void getValidReaderKeys(std::set* valid_keys) { valid_keys->clear(); valid_keys->insert("collectComments"); valid_keys->insert("allowComments"); valid_keys->insert("strictRoot"); valid_keys->insert("allowDroppedNullPlaceholders"); valid_keys->insert("allowNumericKeys"); valid_keys->insert("allowSingleQuotes"); valid_keys->insert("stackLimit"); valid_keys->insert("failIfExtra"); valid_keys->insert("rejectDupKeys"); } bool CharReaderBuilder::validate(Json::Value* invalid) const { Json::Value my_invalid; if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL Json::Value& inv = *invalid; std::set valid_keys; getValidReaderKeys(&valid_keys); Value::Members keys = settings_.getMemberNames(); size_t n = keys.size(); for (size_t i = 0; i < n; ++i) { std::string const& key = keys[i]; if (valid_keys.find(key) == valid_keys.end()) { inv[key] = settings_[key]; } } return 0u == inv.size(); } Value& CharReaderBuilder::operator[](std::string key) { return settings_[key]; } // static void CharReaderBuilder::strictMode(Json::Value* settings) { //! [CharReaderBuilderStrictMode] (*settings)["allowComments"] = false; (*settings)["strictRoot"] = true; (*settings)["allowDroppedNullPlaceholders"] = false; (*settings)["allowNumericKeys"] = false; (*settings)["allowSingleQuotes"] = false; (*settings)["failIfExtra"] = true; (*settings)["rejectDupKeys"] = true; //! [CharReaderBuilderStrictMode] } // static void CharReaderBuilder::setDefaults(Json::Value* settings) { //! [CharReaderBuilderDefaults] (*settings)["collectComments"] = true; (*settings)["allowComments"] = true; (*settings)["strictRoot"] = false; (*settings)["allowDroppedNullPlaceholders"] = false; (*settings)["allowNumericKeys"] = false; (*settings)["allowSingleQuotes"] = false; (*settings)["stackLimit"] = 1000; (*settings)["failIfExtra"] = false; (*settings)["rejectDupKeys"] = false; //! [CharReaderBuilderDefaults] } ////////////////////////////////// // global functions bool parseFromStream( CharReader::Factory const& fact, std::istream& sin, Value* root, std::string* errs) { std::ostringstream ssin; ssin << sin.rdbuf(); std::string doc = ssin.str(); char const* begin = doc.data(); char const* end = begin + doc.size(); // Note that we do not actually need a null-terminator. CharReaderPtr const reader(fact.newCharReader()); return reader->parse(begin, end, root, errs); } std::istream& operator>>(std::istream& sin, Value& root) { CharReaderBuilder b; std::string errs; bool ok = parseFromStream(b, sin, &root, &errs); if (!ok) { fprintf(stderr, "Error from reader: %s", errs.c_str()); throwRuntimeError("reader error"); } return sin; } } // namespace Json // ////////////////////////////////////////////////////////////////////// // End of content of file: src/lib_json/json_reader.cpp // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: src/lib_json/json_valueiterator.inl // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE // included by json_value.cpp namespace Json { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // class ValueIteratorBase // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// ValueIteratorBase::ValueIteratorBase() : current_(), isNull_(true) { } ValueIteratorBase::ValueIteratorBase( const Value::ObjectValues::iterator& current) : current_(current), isNull_(false) {} Value& ValueIteratorBase::deref() const { return current_->second; } void ValueIteratorBase::increment() { ++current_; } void ValueIteratorBase::decrement() { --current_; } ValueIteratorBase::difference_type ValueIteratorBase::computeDistance(const SelfType& other) const { #ifdef JSON_USE_CPPTL_SMALLMAP return other.current_ - current_; #else // Iterator for null value are initialized using the default // constructor, which initialize current_ to the default // std::map::iterator. As begin() and end() are two instance // of the default std::map::iterator, they can not be compared. // To allow this, we handle this comparison specifically. if (isNull_ && other.isNull_) { return 0; } // Usage of std::distance is not portable (does not compile with Sun Studio 12 // RogueWave STL, // which is the one used by default). // Using a portable hand-made version for non random iterator instead: // return difference_type( std::distance( current_, other.current_ ) ); difference_type myDistance = 0; for (Value::ObjectValues::iterator it = current_; it != other.current_; ++it) { ++myDistance; } return myDistance; #endif } bool ValueIteratorBase::isEqual(const SelfType& other) const { if (isNull_) { return other.isNull_; } return current_ == other.current_; } void ValueIteratorBase::copy(const SelfType& other) { current_ = other.current_; isNull_ = other.isNull_; } Value ValueIteratorBase::key() const { const Value::CZString czstring = (*current_).first; if (czstring.data()) { if (czstring.isStaticString()) return Value(StaticString(czstring.data())); return Value(czstring.data(), czstring.data() + czstring.length()); } return Value(czstring.index()); } UInt ValueIteratorBase::index() const { const Value::CZString czstring = (*current_).first; if (!czstring.data()) return czstring.index(); return Value::UInt(-1); } std::string ValueIteratorBase::name() const { char const* key; char const* end; key = memberName(&end); if (!key) return std::string(); return std::string(key, end); } char const* ValueIteratorBase::memberName() const { const char* name = (*current_).first.data(); return name ? name : ""; } char const* ValueIteratorBase::memberName(char const** end) const { const char* name = (*current_).first.data(); if (!name) { *end = NULL; return NULL; } *end = name + (*current_).first.length(); return name; } // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // class ValueConstIterator // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// ValueConstIterator::ValueConstIterator() {} ValueConstIterator::ValueConstIterator( const Value::ObjectValues::iterator& current) : ValueIteratorBase(current) {} ValueConstIterator& ValueConstIterator:: operator=(const ValueIteratorBase& other) { copy(other); return *this; } // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // class ValueIterator // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// ValueIterator::ValueIterator() {} ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current) : ValueIteratorBase(current) {} ValueIterator::ValueIterator(const ValueConstIterator& other) : ValueIteratorBase(other) {} ValueIterator::ValueIterator(const ValueIterator& other) : ValueIteratorBase(other) {} ValueIterator& ValueIterator::operator=(const SelfType& other) { copy(other); return *this; } } // namespace Json // ////////////////////////////////////////////////////////////////////// // End of content of file: src/lib_json/json_valueiterator.inl // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: src/lib_json/json_value.cpp // ////////////////////////////////////////////////////////////////////// // Copyright 2011 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) #include #include #include #endif // if !defined(JSON_IS_AMALGAMATION) #include #include #include #include #include #ifdef JSON_USE_CPPTL #include #endif #include // size_t #include // min() #define JSON_ASSERT_UNREACHABLE assert(false) namespace Json { // This is a walkaround to avoid the static initialization of Value::null. // kNull must be word-aligned to avoid crashing on ARM. We use an alignment of // 8 (instead of 4) as a bit of future-proofing. #if defined(__ARMEL__) #define ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment))) #else #define ALIGNAS(byte_alignment) #endif static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 }; const unsigned char& kNullRef = kNull[0]; const Value& Value::null = reinterpret_cast(kNullRef); const Value& Value::nullRef = null; const Int Value::minInt = Int(~(UInt(-1) / 2)); const Int Value::maxInt = Int(UInt(-1) / 2); const UInt Value::maxUInt = UInt(-1); #if defined(JSON_HAS_INT64) const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2)); const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2); const UInt64 Value::maxUInt64 = UInt64(-1); // The constant is hard-coded because some compiler have trouble // converting Value::maxUInt64 to a double correctly (AIX/xlC). // Assumes that UInt64 is a 64 bits integer. static const double maxUInt64AsDouble = 18446744073709551615.0; #endif // defined(JSON_HAS_INT64) const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2)); const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2); const LargestUInt Value::maxLargestUInt = LargestUInt(-1); #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) template static inline bool InRange(double d, T min, U max) { return d >= min && d <= max; } #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) static inline double integerToDouble(Json::UInt64 value) { return static_cast(Int64(value / 2)) * 2.0 + Int64(value & 1); } template static inline double integerToDouble(T value) { return static_cast(value); } template static inline bool InRange(double d, T min, U max) { return d >= integerToDouble(min) && d <= integerToDouble(max); } #endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) /** Duplicates the specified string value. * @param value Pointer to the string to duplicate. Must be zero-terminated if * length is "unknown". * @param length Length of the value. if equals to unknown, then it will be * computed using strlen(value). * @return Pointer on the duplicate instance of string. */ static inline char* duplicateStringValue(const char* value, size_t length) { // Avoid an integer overflow in the call to malloc below by limiting length // to a sane value. if (length >= (size_t)Value::maxInt) length = Value::maxInt - 1; char* newString = static_cast(malloc(length + 1)); if (newString == NULL) { throwRuntimeError( "in Json::Value::duplicateStringValue(): " "Failed to allocate string value buffer"); } memcpy(newString, value, length); newString[length] = 0; return newString; } /* Record the length as a prefix. */ static inline char* duplicateAndPrefixStringValue( const char* value, unsigned int length) { // Avoid an integer overflow in the call to malloc below by limiting length // to a sane value. JSON_ASSERT_MESSAGE(length <= (unsigned)Value::maxInt - sizeof(unsigned) - 1U, "in Json::Value::duplicateAndPrefixStringValue(): " "length too big for prefixing"); unsigned actualLength = length + sizeof(unsigned) + 1U; char* newString = static_cast(malloc(actualLength)); if (newString == 0) { throwRuntimeError( "in Json::Value::duplicateAndPrefixStringValue(): " "Failed to allocate string value buffer"); } *reinterpret_cast(newString) = length; memcpy(newString + sizeof(unsigned), value, length); newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later return newString; } inline static void decodePrefixedString( bool isPrefixed, char const* prefixed, unsigned* length, char const** value) { if (!isPrefixed) { *length = strlen(prefixed); *value = prefixed; } else { *length = *reinterpret_cast(prefixed); *value = prefixed + sizeof(unsigned); } } /** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue(). */ static inline void releaseStringValue(char* value) { free(value); } } // namespace Json // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ValueInternals... // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// #if !defined(JSON_IS_AMALGAMATION) #include "json_valueiterator.inl" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { class JSON_API Exception : public std::exception { public: Exception(std::string const& msg); virtual ~Exception() throw(); virtual char const* what() const throw(); protected: std::string const msg_; }; class JSON_API RuntimeError : public Exception { public: RuntimeError(std::string const& msg); }; class JSON_API LogicError : public Exception { public: LogicError(std::string const& msg); }; Exception::Exception(std::string const& msg) : msg_(msg) {} Exception::~Exception() throw() {} char const* Exception::what() const throw() { return msg_.c_str(); } RuntimeError::RuntimeError(std::string const& msg) : Exception(msg) {} LogicError::LogicError(std::string const& msg) : Exception(msg) {} void throwRuntimeError(std::string const& msg) { throw RuntimeError(msg); } void throwLogicError(std::string const& msg) { throw LogicError(msg); } // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // class Value::CommentInfo // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// Value::CommentInfo::CommentInfo() : comment_(0) {} Value::CommentInfo::~CommentInfo() { if (comment_) releaseStringValue(comment_); } void Value::CommentInfo::setComment(const char* text, size_t len) { if (comment_) { releaseStringValue(comment_); comment_ = 0; } JSON_ASSERT(text != 0); JSON_ASSERT_MESSAGE( text[0] == '\0' || text[0] == '/', "in Json::Value::setComment(): Comments must start with /"); // It seems that /**/ style comments are acceptable as well. comment_ = duplicateStringValue(text, len); } // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // class Value::CZString // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // Notes: policy_ indicates if the string was allocated when // a string is stored. Value::CZString::CZString(ArrayIndex index) : cstr_(0), index_(index) {} Value::CZString::CZString(char const* str, unsigned length, DuplicationPolicy allocate) : cstr_(str) { // allocate != duplicate storage_.policy_ = allocate; storage_.length_ = length; } Value::CZString::CZString(const CZString& other) : cstr_(other.storage_.policy_ != noDuplication && other.cstr_ != 0 ? duplicateStringValue(other.cstr_, other.storage_.length_) : other.cstr_) { storage_.policy_ = (other.cstr_ ? (other.storage_.policy_ == noDuplication ? noDuplication : duplicate) : other.storage_.policy_); storage_.length_ = other.storage_.length_; } Value::CZString::~CZString() { if (cstr_ && storage_.policy_ == duplicate) releaseStringValue(const_cast(cstr_)); } void Value::CZString::swap(CZString& other) { std::swap(cstr_, other.cstr_); std::swap(index_, other.index_); } Value::CZString& Value::CZString::operator=(CZString other) { swap(other); return *this; } bool Value::CZString::operator<(const CZString& other) const { if (!cstr_) return index_ < other.index_; //return strcmp(cstr_, other.cstr_) < 0; // Assume both are strings. unsigned this_len = this->storage_.length_; unsigned other_len = other.storage_.length_; unsigned min_len = std::min(this_len, other_len); int comp = memcmp(this->cstr_, other.cstr_, min_len); if (comp < 0) return true; if (comp > 0) return false; return (this_len < other_len); } bool Value::CZString::operator==(const CZString& other) const { if (!cstr_) return index_ == other.index_; //return strcmp(cstr_, other.cstr_) == 0; // Assume both are strings. unsigned this_len = this->storage_.length_; unsigned other_len = other.storage_.length_; if (this_len != other_len) return false; int comp = memcmp(this->cstr_, other.cstr_, this_len); return comp == 0; } ArrayIndex Value::CZString::index() const { return index_; } //const char* Value::CZString::c_str() const { return cstr_; } const char* Value::CZString::data() const { return cstr_; } unsigned Value::CZString::length() const { return storage_.length_; } bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; } // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // class Value::Value // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// /*! \internal Default constructor initialization must be equivalent to: * memset( this, 0, sizeof(Value) ) * This optimization is used in ValueInternalMap fast allocator. */ Value::Value(ValueType type) { initBasic(type); switch (type) { case nullValue: break; case intValue: case uintValue: value_.int_ = 0; break; case realValue: value_.real_ = 0.0; break; case stringValue: value_.string_ = 0; break; case arrayValue: case objectValue: value_.map_ = new ObjectValues(); break; case booleanValue: value_.bool_ = false; break; default: JSON_ASSERT_UNREACHABLE; } } Value::Value(Int value) { initBasic(intValue); value_.int_ = value; } Value::Value(UInt value) { initBasic(uintValue); value_.uint_ = value; } #if defined(JSON_HAS_INT64) Value::Value(Int64 value) { initBasic(intValue); value_.int_ = value; } Value::Value(UInt64 value) { initBasic(uintValue); value_.uint_ = value; } #endif // defined(JSON_HAS_INT64) Value::Value(double value) { initBasic(realValue); value_.real_ = value; } Value::Value(const char* value) { initBasic(stringValue, true); value_.string_ = duplicateAndPrefixStringValue(value, static_cast(strlen(value))); } Value::Value(const char* beginValue, const char* endValue) { initBasic(stringValue, true); value_.string_ = duplicateAndPrefixStringValue(beginValue, static_cast(endValue - beginValue)); } Value::Value(const std::string& value) { initBasic(stringValue, true); value_.string_ = duplicateAndPrefixStringValue(value.data(), static_cast(value.length())); } Value::Value(const StaticString& value) { initBasic(stringValue); value_.string_ = const_cast(value.c_str()); } #ifdef JSON_USE_CPPTL Value::Value(const CppTL::ConstString& value) { initBasic(stringValue, true); value_.string_ = duplicateAndPrefixStringValue(value, static_cast(value.length())); } #endif Value::Value(bool value) { initBasic(booleanValue); value_.bool_ = value; } Value::Value(Value const& other) : type_(other.type_), allocated_(false) , comments_(0), start_(other.start_), limit_(other.limit_) { switch (type_) { case nullValue: case intValue: case uintValue: case realValue: case booleanValue: value_ = other.value_; break; case stringValue: if (other.value_.string_ && other.allocated_) { unsigned len; char const* str; decodePrefixedString(other.allocated_, other.value_.string_, &len, &str); value_.string_ = duplicateAndPrefixStringValue(str, len); allocated_ = true; } else { value_.string_ = other.value_.string_; allocated_ = false; } break; case arrayValue: case objectValue: value_.map_ = new ObjectValues(*other.value_.map_); break; default: JSON_ASSERT_UNREACHABLE; } if (other.comments_) { comments_ = new CommentInfo[numberOfCommentPlacement]; for (int comment = 0; comment < numberOfCommentPlacement; ++comment) { const CommentInfo& otherComment = other.comments_[comment]; if (otherComment.comment_) comments_[comment].setComment( otherComment.comment_, strlen(otherComment.comment_)); } } } Value::~Value() { switch (type_) { case nullValue: case intValue: case uintValue: case realValue: case booleanValue: break; case stringValue: if (allocated_) releaseStringValue(value_.string_); break; case arrayValue: case objectValue: delete value_.map_; break; default: JSON_ASSERT_UNREACHABLE; } if (comments_) delete[] comments_; } Value& Value::operator=(Value other) { swap(other); return *this; } void Value::swapPayload(Value& other) { ValueType temp = type_; type_ = other.type_; other.type_ = temp; std::swap(value_, other.value_); int temp2 = allocated_; allocated_ = other.allocated_; other.allocated_ = temp2; } void Value::swap(Value& other) { swapPayload(other); std::swap(comments_, other.comments_); std::swap(start_, other.start_); std::swap(limit_, other.limit_); } ValueType Value::type() const { return type_; } int Value::compare(const Value& other) const { if (*this < other) return -1; if (*this > other) return 1; return 0; } bool Value::operator<(const Value& other) const { int typeDelta = type_ - other.type_; if (typeDelta) return typeDelta < 0 ? true : false; switch (type_) { case nullValue: return false; case intValue: return value_.int_ < other.value_.int_; case uintValue: return value_.uint_ < other.value_.uint_; case realValue: return value_.real_ < other.value_.real_; case booleanValue: return value_.bool_ < other.value_.bool_; case stringValue: { if ((value_.string_ == 0) || (other.value_.string_ == 0)) { if (other.value_.string_) return true; else return false; } unsigned this_len; unsigned other_len; char const* this_str; char const* other_str; decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str); unsigned min_len = std::min(this_len, other_len); int comp = memcmp(this_str, other_str, min_len); if (comp < 0) return true; if (comp > 0) return false; return (this_len < other_len); } case arrayValue: case objectValue: { int delta = int(value_.map_->size() - other.value_.map_->size()); if (delta) return delta < 0; return (*value_.map_) < (*other.value_.map_); } default: JSON_ASSERT_UNREACHABLE; } return false; // unreachable } bool Value::operator<=(const Value& other) const { return !(other < *this); } bool Value::operator>=(const Value& other) const { return !(*this < other); } bool Value::operator>(const Value& other) const { return other < *this; } bool Value::operator==(const Value& other) const { // if ( type_ != other.type_ ) // GCC 2.95.3 says: // attempt to take address of bit-field structure member `Json::Value::type_' // Beats me, but a temp solves the problem. int temp = other.type_; if (type_ != temp) return false; switch (type_) { case nullValue: return true; case intValue: return value_.int_ == other.value_.int_; case uintValue: return value_.uint_ == other.value_.uint_; case realValue: return value_.real_ == other.value_.real_; case booleanValue: return value_.bool_ == other.value_.bool_; case stringValue: { if ((value_.string_ == 0) || (other.value_.string_ == 0)) { return (value_.string_ == other.value_.string_); } unsigned this_len; unsigned other_len; char const* this_str; char const* other_str; decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str); if (this_len != other_len) return false; int comp = memcmp(this_str, other_str, this_len); return comp == 0; } case arrayValue: case objectValue: return value_.map_->size() == other.value_.map_->size() && (*value_.map_) == (*other.value_.map_); default: JSON_ASSERT_UNREACHABLE; } return false; // unreachable } bool Value::operator!=(const Value& other) const { return !(*this == other); } const char* Value::asCString() const { JSON_ASSERT_MESSAGE(type_ == stringValue, "in Json::Value::asCString(): requires stringValue"); if (value_.string_ == 0) return 0; unsigned this_len; char const* this_str; decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); return this_str; } bool Value::getString(char const** str, char const** end) const { if (type_ != stringValue) return false; if (value_.string_ == 0) return false; unsigned length; decodePrefixedString(this->allocated_, this->value_.string_, &length, str); *end = *str + length; return true; } std::string Value::asString() const { switch (type_) { case nullValue: return ""; case stringValue: { if (value_.string_ == 0) return ""; unsigned this_len; char const* this_str; decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); return std::string(this_str, this_len); } case booleanValue: return value_.bool_ ? "true" : "false"; case intValue: return valueToString(value_.int_); case uintValue: return valueToString(value_.uint_); case realValue: return valueToString(value_.real_); default: JSON_FAIL_MESSAGE("Type is not convertible to string"); } } #ifdef JSON_USE_CPPTL CppTL::ConstString Value::asConstString() const { unsigned len; char const* str; decodePrefixedString(allocated_, value_.string_, &len, &str); return CppTL::ConstString(str, len); } #endif Value::Int Value::asInt() const { switch (type_) { case intValue: JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range"); return Int(value_.int_); case uintValue: JSON_ASSERT_MESSAGE(isInt(), "LargestUInt out of Int range"); return Int(value_.uint_); case realValue: JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt, maxInt), "double out of Int range"); return Int(value_.real_); case nullValue: return 0; case booleanValue: return value_.bool_ ? 1 : 0; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to Int."); } Value::UInt Value::asUInt() const { switch (type_) { case intValue: JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range"); return UInt(value_.int_); case uintValue: JSON_ASSERT_MESSAGE(isUInt(), "LargestUInt out of UInt range"); return UInt(value_.uint_); case realValue: JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt), "double out of UInt range"); return UInt(value_.real_); case nullValue: return 0; case booleanValue: return value_.bool_ ? 1 : 0; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to UInt."); } #if defined(JSON_HAS_INT64) Value::Int64 Value::asInt64() const { switch (type_) { case intValue: return Int64(value_.int_); case uintValue: JSON_ASSERT_MESSAGE(isInt64(), "LargestUInt out of Int64 range"); return Int64(value_.uint_); case realValue: JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt64, maxInt64), "double out of Int64 range"); return Int64(value_.real_); case nullValue: return 0; case booleanValue: return value_.bool_ ? 1 : 0; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to Int64."); } Value::UInt64 Value::asUInt64() const { switch (type_) { case intValue: JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range"); return UInt64(value_.int_); case uintValue: return UInt64(value_.uint_); case realValue: JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt64), "double out of UInt64 range"); return UInt64(value_.real_); case nullValue: return 0; case booleanValue: return value_.bool_ ? 1 : 0; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to UInt64."); } #endif // if defined(JSON_HAS_INT64) LargestInt Value::asLargestInt() const { #if defined(JSON_NO_INT64) return asInt(); #else return asInt64(); #endif } LargestUInt Value::asLargestUInt() const { #if defined(JSON_NO_INT64) return asUInt(); #else return asUInt64(); #endif } double Value::asDouble() const { switch (type_) { case intValue: return static_cast(value_.int_); case uintValue: #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) return static_cast(value_.uint_); #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) return integerToDouble(value_.uint_); #endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) case realValue: return value_.real_; case nullValue: return 0.0; case booleanValue: return value_.bool_ ? 1.0 : 0.0; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to double."); } float Value::asFloat() const { switch (type_) { case intValue: return static_cast(value_.int_); case uintValue: #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) return static_cast(value_.uint_); #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) return integerToDouble(value_.uint_); #endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) case realValue: return static_cast(value_.real_); case nullValue: return 0.0; case booleanValue: return value_.bool_ ? 1.0f : 0.0f; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to float."); } bool Value::asBool() const { switch (type_) { case booleanValue: return value_.bool_; case nullValue: return false; case intValue: return value_.int_ ? true : false; case uintValue: return value_.uint_ ? true : false; case realValue: return value_.real_ ? true : false; default: break; } JSON_FAIL_MESSAGE("Value is not convertible to bool."); } bool Value::isConvertibleTo(ValueType other) const { switch (other) { case nullValue: return (isNumeric() && asDouble() == 0.0) || (type_ == booleanValue && value_.bool_ == false) || (type_ == stringValue && asString() == "") || (type_ == arrayValue && value_.map_->size() == 0) || (type_ == objectValue && value_.map_->size() == 0) || type_ == nullValue; case intValue: return isInt() || (type_ == realValue && InRange(value_.real_, minInt, maxInt)) || type_ == booleanValue || type_ == nullValue; case uintValue: return isUInt() || (type_ == realValue && InRange(value_.real_, 0, maxUInt)) || type_ == booleanValue || type_ == nullValue; case realValue: return isNumeric() || type_ == booleanValue || type_ == nullValue; case booleanValue: return isNumeric() || type_ == booleanValue || type_ == nullValue; case stringValue: return isNumeric() || type_ == booleanValue || type_ == stringValue || type_ == nullValue; case arrayValue: return type_ == arrayValue || type_ == nullValue; case objectValue: return type_ == objectValue || type_ == nullValue; } JSON_ASSERT_UNREACHABLE; return false; } /// Number of values in array or object ArrayIndex Value::size() const { switch (type_) { case nullValue: case intValue: case uintValue: case realValue: case booleanValue: case stringValue: return 0; case arrayValue: // size of the array is highest index + 1 if (!value_.map_->empty()) { ObjectValues::const_iterator itLast = value_.map_->end(); --itLast; return (*itLast).first.index() + 1; } return 0; case objectValue: return ArrayIndex(value_.map_->size()); } JSON_ASSERT_UNREACHABLE; return 0; // unreachable; } bool Value::empty() const { if (isNull() || isArray() || isObject()) return size() == 0u; else return false; } bool Value::operator!() const { return isNull(); } void Value::clear() { JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue || type_ == objectValue, "in Json::Value::clear(): requires complex value"); start_ = 0; limit_ = 0; switch (type_) { case arrayValue: case objectValue: value_.map_->clear(); break; default: break; } } void Value::resize(ArrayIndex newSize) { JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue, "in Json::Value::resize(): requires arrayValue"); if (type_ == nullValue) *this = Value(arrayValue); ArrayIndex oldSize = size(); if (newSize == 0) clear(); else if (newSize > oldSize) (*this)[newSize - 1]; else { for (ArrayIndex index = newSize; index < oldSize; ++index) { value_.map_->erase(index); } assert(size() == newSize); } } Value& Value::operator[](ArrayIndex index) { JSON_ASSERT_MESSAGE( type_ == nullValue || type_ == arrayValue, "in Json::Value::operator[](ArrayIndex): requires arrayValue"); if (type_ == nullValue) *this = Value(arrayValue); CZString key(index); ObjectValues::iterator it = value_.map_->lower_bound(key); if (it != value_.map_->end() && (*it).first == key) return (*it).second; ObjectValues::value_type defaultValue(key, nullRef); it = value_.map_->insert(it, defaultValue); return (*it).second; } Value& Value::operator[](int index) { JSON_ASSERT_MESSAGE( index >= 0, "in Json::Value::operator[](int index): index cannot be negative"); return (*this)[ArrayIndex(index)]; } const Value& Value::operator[](ArrayIndex index) const { JSON_ASSERT_MESSAGE( type_ == nullValue || type_ == arrayValue, "in Json::Value::operator[](ArrayIndex)const: requires arrayValue"); if (type_ == nullValue) return nullRef; CZString key(index); ObjectValues::const_iterator it = value_.map_->find(key); if (it == value_.map_->end()) return nullRef; return (*it).second; } const Value& Value::operator[](int index) const { JSON_ASSERT_MESSAGE( index >= 0, "in Json::Value::operator[](int index) const: index cannot be negative"); return (*this)[ArrayIndex(index)]; } void Value::initBasic(ValueType type, bool allocated) { type_ = type; allocated_ = allocated; comments_ = 0; start_ = 0; limit_ = 0; } // Access an object value by name, create a null member if it does not exist. // @pre Type of '*this' is object or null. // @param key is null-terminated. Value& Value::resolveReference(const char* key) { JSON_ASSERT_MESSAGE( type_ == nullValue || type_ == objectValue, "in Json::Value::resolveReference(): requires objectValue"); if (type_ == nullValue) *this = Value(objectValue); CZString actualKey( key, static_cast(strlen(key)), CZString::noDuplication); // NOTE! ObjectValues::iterator it = value_.map_->lower_bound(actualKey); if (it != value_.map_->end() && (*it).first == actualKey) return (*it).second; ObjectValues::value_type defaultValue(actualKey, nullRef); it = value_.map_->insert(it, defaultValue); Value& value = (*it).second; return value; } // @param key is not null-terminated. Value& Value::resolveReference(char const* key, char const* end) { JSON_ASSERT_MESSAGE( type_ == nullValue || type_ == objectValue, "in Json::Value::resolveReference(key, end): requires objectValue"); if (type_ == nullValue) *this = Value(objectValue); CZString actualKey( key, static_cast(end-key), CZString::duplicateOnCopy); ObjectValues::iterator it = value_.map_->lower_bound(actualKey); if (it != value_.map_->end() && (*it).first == actualKey) return (*it).second; ObjectValues::value_type defaultValue(actualKey, nullRef); it = value_.map_->insert(it, defaultValue); Value& value = (*it).second; return value; } Value Value::get(ArrayIndex index, const Value& defaultValue) const { const Value* value = &((*this)[index]); return value == &nullRef ? defaultValue : *value; } bool Value::isValidIndex(ArrayIndex index) const { return index < size(); } Value const* Value::find(char const* key, char const* end) const { JSON_ASSERT_MESSAGE( type_ == nullValue || type_ == objectValue, "in Json::Value::find(key, end, found): requires objectValue or nullValue"); if (type_ == nullValue) return NULL; CZString actualKey(key, static_cast(end-key), CZString::noDuplication); ObjectValues::const_iterator it = value_.map_->find(actualKey); if (it == value_.map_->end()) return NULL; return &(*it).second; } const Value& Value::operator[](const char* key) const { Value const* found = find(key, key + strlen(key)); if (!found) return nullRef; return *found; } Value const& Value::operator[](std::string const& key) const { Value const* found = find(key.data(), key.data() + key.length()); if (!found) return nullRef; return *found; } Value& Value::operator[](const char* key) { return resolveReference(key, key + strlen(key)); } Value& Value::operator[](const std::string& key) { return resolveReference(key.data(), key.data() + key.length()); } Value& Value::operator[](const StaticString& key) { return resolveReference(key.c_str()); } #ifdef JSON_USE_CPPTL Value& Value::operator[](const CppTL::ConstString& key) { return resolveReference(key.c_str(), key.end_c_str()); } Value const& Value::operator[](CppTL::ConstString const& key) const { Value const* found = find(key.c_str(), key.end_c_str()); if (!found) return nullRef; return *found; } #endif Value& Value::append(const Value& value) { return (*this)[size()] = value; } Value Value::get(char const* key, char const* end, Value const& defaultValue) const { Value const* found = find(key, end); return !found ? defaultValue : *found; } Value Value::get(char const* key, Value const& defaultValue) const { return get(key, key + strlen(key), defaultValue); } Value Value::get(std::string const& key, Value const& defaultValue) const { return get(key.data(), key.data() + key.length(), defaultValue); } bool Value::removeMember(const char* key, const char* end, Value* removed) { if (type_ != objectValue) { return false; } CZString actualKey(key, static_cast(end-key), CZString::noDuplication); ObjectValues::iterator it = value_.map_->find(actualKey); if (it == value_.map_->end()) return false; *removed = it->second; value_.map_->erase(it); return true; } bool Value::removeMember(const char* key, Value* removed) { return removeMember(key, key + strlen(key), removed); } bool Value::removeMember(std::string const& key, Value* removed) { return removeMember(key.data(), key.data() + key.length(), removed); } Value Value::removeMember(const char* key) { JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue, "in Json::Value::removeMember(): requires objectValue"); if (type_ == nullValue) return nullRef; Value removed; // null removeMember(key, key + strlen(key), &removed); return removed; // still null if removeMember() did nothing } Value Value::removeMember(const std::string& key) { return removeMember(key.c_str()); } bool Value::removeIndex(ArrayIndex index, Value* removed) { if (type_ != arrayValue) { return false; } CZString key(index); ObjectValues::iterator it = value_.map_->find(key); if (it == value_.map_->end()) { return false; } *removed = it->second; ArrayIndex oldSize = size(); // shift left all items left, into the place of the "removed" for (ArrayIndex i = index; i < (oldSize - 1); ++i){ CZString key(i); (*value_.map_)[key] = (*this)[i + 1]; } // erase the last one ("leftover") CZString keyLast(oldSize - 1); ObjectValues::iterator itLast = value_.map_->find(keyLast); value_.map_->erase(itLast); return true; } #ifdef JSON_USE_CPPTL Value Value::get(const CppTL::ConstString& key, const Value& defaultValue) const { return get(key.c_str(), key.end_c_str(), defaultValue); } #endif bool Value::isMember(char const* key, char const* end) const { Value const* value = find(key, end); return NULL != value; } bool Value::isMember(char const* key) const { return isMember(key, key + strlen(key)); } bool Value::isMember(std::string const& key) const { return isMember(key.data(), key.data() + key.length()); } #ifdef JSON_USE_CPPTL bool Value::isMember(const CppTL::ConstString& key) const { return isMember(key.c_str(), key.end_c_str()); } #endif Value::Members Value::getMemberNames() const { JSON_ASSERT_MESSAGE( type_ == nullValue || type_ == objectValue, "in Json::Value::getMemberNames(), value must be objectValue"); if (type_ == nullValue) return Value::Members(); Members members; members.reserve(value_.map_->size()); ObjectValues::const_iterator it = value_.map_->begin(); ObjectValues::const_iterator itEnd = value_.map_->end(); for (; it != itEnd; ++it) { members.push_back(std::string((*it).first.data(), (*it).first.length())); } return members; } // //# ifdef JSON_USE_CPPTL // EnumMemberNames // Value::enumMemberNames() const //{ // if ( type_ == objectValue ) // { // return CppTL::Enum::any( CppTL::Enum::transform( // CppTL::Enum::keys( *(value_.map_), CppTL::Type() ), // MemberNamesTransform() ) ); // } // return EnumMemberNames(); //} // // // EnumValues // Value::enumValues() const //{ // if ( type_ == objectValue || type_ == arrayValue ) // return CppTL::Enum::anyValues( *(value_.map_), // CppTL::Type() ); // return EnumValues(); //} // //# endif static bool IsIntegral(double d) { double integral_part; return modf(d, &integral_part) == 0.0; } bool Value::isNull() const { return type_ == nullValue; } bool Value::isBool() const { return type_ == booleanValue; } bool Value::isInt() const { switch (type_) { case intValue: return value_.int_ >= minInt && value_.int_ <= maxInt; case uintValue: return value_.uint_ <= UInt(maxInt); case realValue: return value_.real_ >= minInt && value_.real_ <= maxInt && IsIntegral(value_.real_); default: break; } return false; } bool Value::isUInt() const { switch (type_) { case intValue: return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt); case uintValue: return value_.uint_ <= maxUInt; case realValue: return value_.real_ >= 0 && value_.real_ <= maxUInt && IsIntegral(value_.real_); default: break; } return false; } bool Value::isInt64() const { #if defined(JSON_HAS_INT64) switch (type_) { case intValue: return true; case uintValue: return value_.uint_ <= UInt64(maxInt64); case realValue: // Note that maxInt64 (= 2^63 - 1) is not exactly representable as a // double, so double(maxInt64) will be rounded up to 2^63. Therefore we // require the value to be strictly less than the limit. return value_.real_ >= double(minInt64) && value_.real_ < double(maxInt64) && IsIntegral(value_.real_); default: break; } #endif // JSON_HAS_INT64 return false; } bool Value::isUInt64() const { #if defined(JSON_HAS_INT64) switch (type_) { case intValue: return value_.int_ >= 0; case uintValue: return true; case realValue: // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we // require the value to be strictly less than the limit. return value_.real_ >= 0 && value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_); default: break; } #endif // JSON_HAS_INT64 return false; } bool Value::isIntegral() const { #if defined(JSON_HAS_INT64) return isInt64() || isUInt64(); #else return isInt() || isUInt(); #endif } bool Value::isDouble() const { return type_ == realValue || isIntegral(); } bool Value::isNumeric() const { return isIntegral() || isDouble(); } bool Value::isString() const { return type_ == stringValue; } bool Value::isArray() const { return type_ == arrayValue; } bool Value::isObject() const { return type_ == objectValue; } void Value::setComment(const char* comment, size_t len, CommentPlacement placement) { if (!comments_) comments_ = new CommentInfo[numberOfCommentPlacement]; if ((len > 0) && (comment[len-1] == '\n')) { // Always discard trailing newline, to aid indentation. len -= 1; } comments_[placement].setComment(comment, len); } void Value::setComment(const char* comment, CommentPlacement placement) { setComment(comment, strlen(comment), placement); } void Value::setComment(const std::string& comment, CommentPlacement placement) { setComment(comment.c_str(), comment.length(), placement); } bool Value::hasComment(CommentPlacement placement) const { return comments_ != 0 && comments_[placement].comment_ != 0; } std::string Value::getComment(CommentPlacement placement) const { if (hasComment(placement)) return comments_[placement].comment_; return ""; } void Value::setOffsetStart(size_t start) { start_ = start; } void Value::setOffsetLimit(size_t limit) { limit_ = limit; } size_t Value::getOffsetStart() const { return start_; } size_t Value::getOffsetLimit() const { return limit_; } std::string Value::toStyledString() const { StyledWriter writer; return writer.write(*this); } Value::const_iterator Value::begin() const { switch (type_) { case arrayValue: case objectValue: if (value_.map_) return const_iterator(value_.map_->begin()); break; default: break; } return const_iterator(); } Value::const_iterator Value::end() const { switch (type_) { case arrayValue: case objectValue: if (value_.map_) return const_iterator(value_.map_->end()); break; default: break; } return const_iterator(); } Value::iterator Value::begin() { switch (type_) { case arrayValue: case objectValue: if (value_.map_) return iterator(value_.map_->begin()); break; default: break; } return iterator(); } Value::iterator Value::end() { switch (type_) { case arrayValue: case objectValue: if (value_.map_) return iterator(value_.map_->end()); break; default: break; } return iterator(); } // class PathArgument // ////////////////////////////////////////////////////////////////// PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {} PathArgument::PathArgument(ArrayIndex index) : key_(), index_(index), kind_(kindIndex) {} PathArgument::PathArgument(const char* key) : key_(key), index_(), kind_(kindKey) {} PathArgument::PathArgument(const std::string& key) : key_(key.c_str()), index_(), kind_(kindKey) {} // class Path // ////////////////////////////////////////////////////////////////// Path::Path(const std::string& path, const PathArgument& a1, const PathArgument& a2, const PathArgument& a3, const PathArgument& a4, const PathArgument& a5) { InArgs in; in.push_back(&a1); in.push_back(&a2); in.push_back(&a3); in.push_back(&a4); in.push_back(&a5); makePath(path, in); } void Path::makePath(const std::string& path, const InArgs& in) { const char* current = path.c_str(); const char* end = current + path.length(); InArgs::const_iterator itInArg = in.begin(); while (current != end) { if (*current == '[') { ++current; if (*current == '%') addPathInArg(path, in, itInArg, PathArgument::kindIndex); else { ArrayIndex index = 0; for (; current != end && *current >= '0' && *current <= '9'; ++current) index = index * 10 + ArrayIndex(*current - '0'); args_.push_back(index); } if (current == end || *current++ != ']') invalidPath(path, int(current - path.c_str())); } else if (*current == '%') { addPathInArg(path, in, itInArg, PathArgument::kindKey); ++current; } else if (*current == '.') { ++current; } else { const char* beginName = current; while (current != end && !strchr("[.", *current)) ++current; args_.push_back(std::string(beginName, current)); } } } void Path::addPathInArg(const std::string& /*path*/, const InArgs& in, InArgs::const_iterator& itInArg, PathArgument::Kind kind) { if (itInArg == in.end()) { // Error: missing argument %d } else if ((*itInArg)->kind_ != kind) { // Error: bad argument type } else { args_.push_back(**itInArg); } } void Path::invalidPath(const std::string& /*path*/, int /*location*/) { // Error: invalid path. } const Value& Path::resolve(const Value& root) const { const Value* node = &root; for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { const PathArgument& arg = *it; if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray() || !node->isValidIndex(arg.index_)) { // Error: unable to resolve path (array value expected at position... } node = &((*node)[arg.index_]); } else if (arg.kind_ == PathArgument::kindKey) { if (!node->isObject()) { // Error: unable to resolve path (object value expected at position...) } node = &((*node)[arg.key_]); if (node == &Value::nullRef) { // Error: unable to resolve path (object has no member named '' at // position...) } } } return *node; } Value Path::resolve(const Value& root, const Value& defaultValue) const { const Value* node = &root; for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { const PathArgument& arg = *it; if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray() || !node->isValidIndex(arg.index_)) return defaultValue; node = &((*node)[arg.index_]); } else if (arg.kind_ == PathArgument::kindKey) { if (!node->isObject()) return defaultValue; node = &((*node)[arg.key_]); if (node == &Value::nullRef) return defaultValue; } } return *node; } Value& Path::make(Value& root) const { Value* node = &root; for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { const PathArgument& arg = *it; if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray()) { // Error: node is not an array at position ... } node = &((*node)[arg.index_]); } else if (arg.kind_ == PathArgument::kindKey) { if (!node->isObject()) { // Error: node is not an object at position... } node = &((*node)[arg.key_]); } } return *node; } } // namespace Json // ////////////////////////////////////////////////////////////////////// // End of content of file: src/lib_json/json_value.cpp // ////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: src/lib_json/json_writer.cpp // ////////////////////////////////////////////////////////////////////// // Copyright 2011 Baptiste Lepilleur // Distributed under MIT license, or public domain if desired and // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) #include #include "json_tool.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include #include #include #include #include #include #include #include #if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0 #include #define isfinite _finite #elif defined(__sun) && defined(__SVR4) //Solaris #include #define isfinite finite #else #include #define isfinite std::isfinite #endif #if defined(_MSC_VER) && _MSC_VER < 1500 // VC++ 8.0 and below #define snprintf _snprintf #elif defined(__ANDROID__) #define snprintf snprintf #elif __cplusplus >= 201103L #define snprintf std::snprintf #endif #if defined(__BORLANDC__) #include #define isfinite _finite #define snprintf _snprintf #endif #if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0 // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) #endif namespace Json { #if __cplusplus >= 201103L typedef std::unique_ptr StreamWriterPtr; #else typedef std::auto_ptr StreamWriterPtr; #endif static bool containsControlCharacter(const char* str) { while (*str) { if (isControlCharacter(*(str++))) return true; } return false; } static bool containsControlCharacter0(const char* str, unsigned len) { char const* end = str + len; while (end != str) { if (isControlCharacter(*str) || 0==*str) return true; ++str; } return false; } std::string valueToString(LargestInt value) { UIntToStringBuffer buffer; char* current = buffer + sizeof(buffer); bool isNegative = value < 0; if (isNegative) value = -value; uintToString(LargestUInt(value), current); if (isNegative) *--current = '-'; assert(current >= buffer); return current; } std::string valueToString(LargestUInt value) { UIntToStringBuffer buffer; char* current = buffer + sizeof(buffer); uintToString(value, current); assert(current >= buffer); return current; } #if defined(JSON_HAS_INT64) std::string valueToString(Int value) { return valueToString(LargestInt(value)); } std::string valueToString(UInt value) { return valueToString(LargestUInt(value)); } #endif // # if defined(JSON_HAS_INT64) std::string valueToString(double value) { // Allocate a buffer that is more than large enough to store the 16 digits of // precision requested below. char buffer[32]; int len = -1; // Print into the buffer. We need not request the alternative representation // that always has a decimal point because JSON doesn't distingish the // concepts of reals and integers. #if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) // Use secure version with // visual studio 2005 to // avoid warning. #if defined(WINCE) len = _snprintf(buffer, sizeof(buffer), "%.17g", value); #else len = sprintf_s(buffer, sizeof(buffer), "%.17g", value); #endif #else if (isfinite(value)) { len = snprintf(buffer, sizeof(buffer), "%.17g", value); } else { // IEEE standard states that NaN values will not compare to themselves if (value != value) { len = snprintf(buffer, sizeof(buffer), "null"); } else if (value < 0) { len = snprintf(buffer, sizeof(buffer), "-1e+9999"); } else { len = snprintf(buffer, sizeof(buffer), "1e+9999"); } // For those, we do not need to call fixNumLoc, but it is fast. } #endif assert(len >= 0); fixNumericLocale(buffer, buffer + len); return buffer; } std::string valueToString(bool value) { return value ? "true" : "false"; } std::string valueToQuotedString(const char* value) { if (value == NULL) return ""; // Not sure how to handle unicode... if (strpbrk(value, "\"\\\b\f\n\r\t") == NULL && !containsControlCharacter(value)) return std::string("\"") + value + "\""; // We have to walk value and escape any special characters. // Appending to std::string is not efficient, but this should be rare. // (Note: forward slashes are *not* rare, but I am not escaping them.) std::string::size_type maxsize = strlen(value) * 2 + 3; // allescaped+quotes+NULL std::string result; result.reserve(maxsize); // to avoid lots of mallocs result += "\""; for (const char* c = value; *c != 0; ++c) { switch (*c) { case '\"': result += "\\\""; break; case '\\': result += "\\\\"; break; case '\b': result += "\\b"; break; case '\f': result += "\\f"; break; case '\n': result += "\\n"; break; case '\r': result += "\\r"; break; case '\t': result += "\\t"; break; // case '/': // Even though \/ is considered a legal escape in JSON, a bare // slash is also legal, so I see no reason to escape it. // (I hope I am not misunderstanding something. // blep notes: actually escaping \/ may be useful in javascript to avoid (*c); result += oss.str(); } else { result += *c; } break; } } result += "\""; return result; } // https://github.com/upcaste/upcaste/blob/master/src/upcore/src/cstring/strnpbrk.cpp static char const* strnpbrk(char const* s, char const* accept, size_t n) { assert((s || !n) && accept); char const* const end = s + n; for (char const* cur = s; cur < end; ++cur) { int const c = *cur; for (char const* a = accept; *a; ++a) { if (*a == c) { return cur; } } } return NULL; } static std::string valueToQuotedStringN(const char* value, unsigned length) { if (value == NULL) return ""; // Not sure how to handle unicode... if (strnpbrk(value, "\"\\\b\f\n\r\t", length) == NULL && !containsControlCharacter0(value, length)) return std::string("\"") + value + "\""; // We have to walk value and escape any special characters. // Appending to std::string is not efficient, but this should be rare. // (Note: forward slashes are *not* rare, but I am not escaping them.) std::string::size_type maxsize = length * 2 + 3; // allescaped+quotes+NULL std::string result; result.reserve(maxsize); // to avoid lots of mallocs result += "\""; char const* end = value + length; for (const char* c = value; c != end; ++c) { switch (*c) { case '\"': result += "\\\""; break; case '\\': result += "\\\\"; break; case '\b': result += "\\b"; break; case '\f': result += "\\f"; break; case '\n': result += "\\n"; break; case '\r': result += "\\r"; break; case '\t': result += "\\t"; break; // case '/': // Even though \/ is considered a legal escape in JSON, a bare // slash is also legal, so I see no reason to escape it. // (I hope I am not misunderstanding something.) // blep notes: actually escaping \/ may be useful in javascript to avoid (*c); result += oss.str(); } else { result += *c; } break; } } result += "\""; return result; } // Class Writer // ////////////////////////////////////////////////////////////////// Writer::~Writer() {} // Class FastWriter // ////////////////////////////////////////////////////////////////// FastWriter::FastWriter() : yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false), omitEndingLineFeed_(false) {} void FastWriter::enableYAMLCompatibility() { yamlCompatiblityEnabled_ = true; } void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; } void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; } std::string FastWriter::write(const Value& root) { document_ = ""; writeValue(root); if (!omitEndingLineFeed_) document_ += "\n"; return document_; } void FastWriter::writeValue(const Value& value) { switch (value.type()) { case nullValue: if (!dropNullPlaceholders_) document_ += "null"; break; case intValue: document_ += valueToString(value.asLargestInt()); break; case uintValue: document_ += valueToString(value.asLargestUInt()); break; case realValue: document_ += valueToString(value.asDouble()); break; case stringValue: { // Is NULL possible for value.string_? char const* str; char const* end; bool ok = value.getString(&str, &end); if (ok) document_ += valueToQuotedStringN(str, static_cast(end-str)); break; } case booleanValue: document_ += valueToString(value.asBool()); break; case arrayValue: { document_ += '['; int size = value.size(); for (int index = 0; index < size; ++index) { if (index > 0) document_ += ','; writeValue(value[index]); } document_ += ']'; } break; case objectValue: { Value::Members members(value.getMemberNames()); document_ += '{'; for (Value::Members::iterator it = members.begin(); it != members.end(); ++it) { const std::string& name = *it; if (it != members.begin()) document_ += ','; document_ += valueToQuotedStringN(name.data(), name.length()); document_ += yamlCompatiblityEnabled_ ? ": " : ":"; writeValue(value[name]); } document_ += '}'; } break; } } // Class StyledWriter // ////////////////////////////////////////////////////////////////// StyledWriter::StyledWriter() : rightMargin_(74), indentSize_(3), addChildValues_() {} std::string StyledWriter::write(const Value& root) { document_ = ""; addChildValues_ = false; indentString_ = ""; writeCommentBeforeValue(root); writeValue(root); writeCommentAfterValueOnSameLine(root); document_ += "\n"; return document_; } void StyledWriter::writeValue(const Value& value) { switch (value.type()) { case nullValue: pushValue("null"); break; case intValue: pushValue(valueToString(value.asLargestInt())); break; case uintValue: pushValue(valueToString(value.asLargestUInt())); break; case realValue: pushValue(valueToString(value.asDouble())); break; case stringValue: { // Is NULL possible for value.string_? char const* str; char const* end; bool ok = value.getString(&str, &end); if (ok) pushValue(valueToQuotedStringN(str, static_cast(end-str))); else pushValue(""); break; } case booleanValue: pushValue(valueToString(value.asBool())); break; case arrayValue: writeArrayValue(value); break; case objectValue: { Value::Members members(value.getMemberNames()); if (members.empty()) pushValue("{}"); else { writeWithIndent("{"); indent(); Value::Members::iterator it = members.begin(); for (;;) { const std::string& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedString(name.c_str())); document_ += " : "; writeValue(childValue); if (++it == members.end()) { writeCommentAfterValueOnSameLine(childValue); break; } document_ += ','; writeCommentAfterValueOnSameLine(childValue); } unindent(); writeWithIndent("}"); } } break; } } void StyledWriter::writeArrayValue(const Value& value) { unsigned size = value.size(); if (size == 0) pushValue("[]"); else { bool isArrayMultiLine = isMultineArray(value); if (isArrayMultiLine) { writeWithIndent("["); indent(); bool hasChildValue = !childValues_.empty(); unsigned index = 0; for (;;) { const Value& childValue = value[index]; writeCommentBeforeValue(childValue); if (hasChildValue) writeWithIndent(childValues_[index]); else { writeIndent(); writeValue(childValue); } if (++index == size) { writeCommentAfterValueOnSameLine(childValue); break; } document_ += ','; writeCommentAfterValueOnSameLine(childValue); } unindent(); writeWithIndent("]"); } else // output on a single line { assert(childValues_.size() == size); document_ += "[ "; for (unsigned index = 0; index < size; ++index) { if (index > 0) document_ += ", "; document_ += childValues_[index]; } document_ += " ]"; } } } bool StyledWriter::isMultineArray(const Value& value) { int size = value.size(); bool isMultiLine = size * 3 >= rightMargin_; childValues_.clear(); for (int index = 0; index < size && !isMultiLine; ++index) { const Value& childValue = value[index]; isMultiLine = isMultiLine || ((childValue.isArray() || childValue.isObject()) && childValue.size() > 0); } if (!isMultiLine) // check if line length > max line length { childValues_.reserve(size); addChildValues_ = true; int lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]' for (int index = 0; index < size; ++index) { if (hasCommentForValue(value[index])) { isMultiLine = true; } writeValue(value[index]); lineLength += int(childValues_[index].length()); } addChildValues_ = false; isMultiLine = isMultiLine || lineLength >= rightMargin_; } return isMultiLine; } void StyledWriter::pushValue(const std::string& value) { if (addChildValues_) childValues_.push_back(value); else document_ += value; } void StyledWriter::writeIndent() { if (!document_.empty()) { char last = document_[document_.length() - 1]; if (last == ' ') // already indented return; if (last != '\n') // Comments may add new-line document_ += '\n'; } document_ += indentString_; } void StyledWriter::writeWithIndent(const std::string& value) { writeIndent(); document_ += value; } void StyledWriter::indent() { indentString_ += std::string(indentSize_, ' '); } void StyledWriter::unindent() { assert(int(indentString_.size()) >= indentSize_); indentString_.resize(indentString_.size() - indentSize_); } void StyledWriter::writeCommentBeforeValue(const Value& root) { if (!root.hasComment(commentBefore)) return; document_ += "\n"; writeIndent(); const std::string& comment = root.getComment(commentBefore); std::string::const_iterator iter = comment.begin(); while (iter != comment.end()) { document_ += *iter; if (*iter == '\n' && (iter != comment.end() && *(iter + 1) == '/')) writeIndent(); ++iter; } // Comments are stripped of trailing newlines, so add one here document_ += "\n"; } void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) { if (root.hasComment(commentAfterOnSameLine)) document_ += " " + root.getComment(commentAfterOnSameLine); if (root.hasComment(commentAfter)) { document_ += "\n"; document_ += root.getComment(commentAfter); document_ += "\n"; } } bool StyledWriter::hasCommentForValue(const Value& value) { return value.hasComment(commentBefore) || value.hasComment(commentAfterOnSameLine) || value.hasComment(commentAfter); } // Class StyledStreamWriter // ////////////////////////////////////////////////////////////////// StyledStreamWriter::StyledStreamWriter(std::string indentation) : document_(NULL), rightMargin_(74), indentation_(indentation), addChildValues_() {} void StyledStreamWriter::write(std::ostream& out, const Value& root) { document_ = &out; addChildValues_ = false; indentString_ = ""; indented_ = true; writeCommentBeforeValue(root); if (!indented_) writeIndent(); indented_ = true; writeValue(root); writeCommentAfterValueOnSameLine(root); *document_ << "\n"; document_ = NULL; // Forget the stream, for safety. } void StyledStreamWriter::writeValue(const Value& value) { switch (value.type()) { case nullValue: pushValue("null"); break; case intValue: pushValue(valueToString(value.asLargestInt())); break; case uintValue: pushValue(valueToString(value.asLargestUInt())); break; case realValue: pushValue(valueToString(value.asDouble())); break; case stringValue: { // Is NULL possible for value.string_? char const* str; char const* end; bool ok = value.getString(&str, &end); if (ok) pushValue(valueToQuotedStringN(str, static_cast(end-str))); else pushValue(""); break; } case booleanValue: pushValue(valueToString(value.asBool())); break; case arrayValue: writeArrayValue(value); break; case objectValue: { Value::Members members(value.getMemberNames()); if (members.empty()) pushValue("{}"); else { writeWithIndent("{"); indent(); Value::Members::iterator it = members.begin(); for (;;) { const std::string& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedString(name.c_str())); *document_ << " : "; writeValue(childValue); if (++it == members.end()) { writeCommentAfterValueOnSameLine(childValue); break; } *document_ << ","; writeCommentAfterValueOnSameLine(childValue); } unindent(); writeWithIndent("}"); } } break; } } void StyledStreamWriter::writeArrayValue(const Value& value) { unsigned size = value.size(); if (size == 0) pushValue("[]"); else { bool isArrayMultiLine = isMultineArray(value); if (isArrayMultiLine) { writeWithIndent("["); indent(); bool hasChildValue = !childValues_.empty(); unsigned index = 0; for (;;) { const Value& childValue = value[index]; writeCommentBeforeValue(childValue); if (hasChildValue) writeWithIndent(childValues_[index]); else { if (!indented_) writeIndent(); indented_ = true; writeValue(childValue); indented_ = false; } if (++index == size) { writeCommentAfterValueOnSameLine(childValue); break; } *document_ << ","; writeCommentAfterValueOnSameLine(childValue); } unindent(); writeWithIndent("]"); } else // output on a single line { assert(childValues_.size() == size); *document_ << "[ "; for (unsigned index = 0; index < size; ++index) { if (index > 0) *document_ << ", "; *document_ << childValues_[index]; } *document_ << " ]"; } } } bool StyledStreamWriter::isMultineArray(const Value& value) { int size = value.size(); bool isMultiLine = size * 3 >= rightMargin_; childValues_.clear(); for (int index = 0; index < size && !isMultiLine; ++index) { const Value& childValue = value[index]; isMultiLine = isMultiLine || ((childValue.isArray() || childValue.isObject()) && childValue.size() > 0); } if (!isMultiLine) // check if line length > max line length { childValues_.reserve(size); addChildValues_ = true; int lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]' for (int index = 0; index < size; ++index) { if (hasCommentForValue(value[index])) { isMultiLine = true; } writeValue(value[index]); lineLength += int(childValues_[index].length()); } addChildValues_ = false; isMultiLine = isMultiLine || lineLength >= rightMargin_; } return isMultiLine; } void StyledStreamWriter::pushValue(const std::string& value) { if (addChildValues_) childValues_.push_back(value); else *document_ << value; } void StyledStreamWriter::writeIndent() { // blep intended this to look at the so-far-written string // to determine whether we are already indented, but // with a stream we cannot do that. So we rely on some saved state. // The caller checks indented_. *document_ << '\n' << indentString_; } void StyledStreamWriter::writeWithIndent(const std::string& value) { if (!indented_) writeIndent(); *document_ << value; indented_ = false; } void StyledStreamWriter::indent() { indentString_ += indentation_; } void StyledStreamWriter::unindent() { assert(indentString_.size() >= indentation_.size()); indentString_.resize(indentString_.size() - indentation_.size()); } void StyledStreamWriter::writeCommentBeforeValue(const Value& root) { if (!root.hasComment(commentBefore)) return; if (!indented_) writeIndent(); const std::string& comment = root.getComment(commentBefore); std::string::const_iterator iter = comment.begin(); while (iter != comment.end()) { *document_ << *iter; if (*iter == '\n' && (iter != comment.end() && *(iter + 1) == '/')) // writeIndent(); // would include newline *document_ << indentString_; ++iter; } indented_ = false; } void StyledStreamWriter::writeCommentAfterValueOnSameLine(const Value& root) { if (root.hasComment(commentAfterOnSameLine)) *document_ << ' ' << root.getComment(commentAfterOnSameLine); if (root.hasComment(commentAfter)) { writeIndent(); *document_ << root.getComment(commentAfter); } indented_ = false; } bool StyledStreamWriter::hasCommentForValue(const Value& value) { return value.hasComment(commentBefore) || value.hasComment(commentAfterOnSameLine) || value.hasComment(commentAfter); } ////////////////////////// // BuiltStyledStreamWriter /// Scoped enums are not available until C++11. struct CommentStyle { /// Decide whether to write comments. enum Enum { None, ///< Drop all comments. Most, ///< Recover odd behavior of previous versions (not implemented yet). All ///< Keep all comments. }; }; struct BuiltStyledStreamWriter : public StreamWriter { BuiltStyledStreamWriter( std::string const& indentation, CommentStyle::Enum cs, std::string const& colonSymbol, std::string const& nullSymbol, std::string const& endingLineFeedSymbol); virtual int write(Value const& root, std::ostream* sout); private: void writeValue(Value const& value); void writeArrayValue(Value const& value); bool isMultineArray(Value const& value); void pushValue(std::string const& value); void writeIndent(); void writeWithIndent(std::string const& value); void indent(); void unindent(); void writeCommentBeforeValue(Value const& root); void writeCommentAfterValueOnSameLine(Value const& root); static bool hasCommentForValue(const Value& value); typedef std::vector ChildValues; ChildValues childValues_; std::string indentString_; int rightMargin_; std::string indentation_; CommentStyle::Enum cs_; std::string colonSymbol_; std::string nullSymbol_; std::string endingLineFeedSymbol_; bool addChildValues_ : 1; bool indented_ : 1; }; BuiltStyledStreamWriter::BuiltStyledStreamWriter( std::string const& indentation, CommentStyle::Enum cs, std::string const& colonSymbol, std::string const& nullSymbol, std::string const& endingLineFeedSymbol) : rightMargin_(74) , indentation_(indentation) , cs_(cs) , colonSymbol_(colonSymbol) , nullSymbol_(nullSymbol) , endingLineFeedSymbol_(endingLineFeedSymbol) , addChildValues_(false) , indented_(false) { } int BuiltStyledStreamWriter::write(Value const& root, std::ostream* sout) { sout_ = sout; addChildValues_ = false; indented_ = true; indentString_ = ""; writeCommentBeforeValue(root); if (!indented_) writeIndent(); indented_ = true; writeValue(root); writeCommentAfterValueOnSameLine(root); *sout_ << endingLineFeedSymbol_; sout_ = NULL; return 0; } void BuiltStyledStreamWriter::writeValue(Value const& value) { switch (value.type()) { case nullValue: pushValue(nullSymbol_); break; case intValue: pushValue(valueToString(value.asLargestInt())); break; case uintValue: pushValue(valueToString(value.asLargestUInt())); break; case realValue: pushValue(valueToString(value.asDouble())); break; case stringValue: { // Is NULL is possible for value.string_? char const* str; char const* end; bool ok = value.getString(&str, &end); if (ok) pushValue(valueToQuotedStringN(str, static_cast(end-str))); else pushValue(""); break; } case booleanValue: pushValue(valueToString(value.asBool())); break; case arrayValue: writeArrayValue(value); break; case objectValue: { Value::Members members(value.getMemberNames()); if (members.empty()) pushValue("{}"); else { writeWithIndent("{"); indent(); Value::Members::iterator it = members.begin(); for (;;) { std::string const& name = *it; Value const& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedStringN(name.data(), name.length())); *sout_ << colonSymbol_; writeValue(childValue); if (++it == members.end()) { writeCommentAfterValueOnSameLine(childValue); break; } *sout_ << ","; writeCommentAfterValueOnSameLine(childValue); } unindent(); writeWithIndent("}"); } } break; } } void BuiltStyledStreamWriter::writeArrayValue(Value const& value) { unsigned size = value.size(); if (size == 0) pushValue("[]"); else { bool isMultiLine = (cs_ == CommentStyle::All) || isMultineArray(value); if (isMultiLine) { writeWithIndent("["); indent(); bool hasChildValue = !childValues_.empty(); unsigned index = 0; for (;;) { Value const& childValue = value[index]; writeCommentBeforeValue(childValue); if (hasChildValue) writeWithIndent(childValues_[index]); else { if (!indented_) writeIndent(); indented_ = true; writeValue(childValue); indented_ = false; } if (++index == size) { writeCommentAfterValueOnSameLine(childValue); break; } *sout_ << ","; writeCommentAfterValueOnSameLine(childValue); } unindent(); writeWithIndent("]"); } else // output on a single line { assert(childValues_.size() == size); *sout_ << "["; if (!indentation_.empty()) *sout_ << " "; for (unsigned index = 0; index < size; ++index) { if (index > 0) *sout_ << ", "; *sout_ << childValues_[index]; } if (!indentation_.empty()) *sout_ << " "; *sout_ << "]"; } } } bool BuiltStyledStreamWriter::isMultineArray(Value const& value) { int size = value.size(); bool isMultiLine = size * 3 >= rightMargin_; childValues_.clear(); for (int index = 0; index < size && !isMultiLine; ++index) { Value const& childValue = value[index]; isMultiLine = isMultiLine || ((childValue.isArray() || childValue.isObject()) && childValue.size() > 0); } if (!isMultiLine) // check if line length > max line length { childValues_.reserve(size); addChildValues_ = true; int lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]' for (int index = 0; index < size; ++index) { if (hasCommentForValue(value[index])) { isMultiLine = true; } writeValue(value[index]); lineLength += int(childValues_[index].length()); } addChildValues_ = false; isMultiLine = isMultiLine || lineLength >= rightMargin_; } return isMultiLine; } void BuiltStyledStreamWriter::pushValue(std::string const& value) { if (addChildValues_) childValues_.push_back(value); else *sout_ << value; } void BuiltStyledStreamWriter::writeIndent() { // blep intended this to look at the so-far-written string // to determine whether we are already indented, but // with a stream we cannot do that. So we rely on some saved state. // The caller checks indented_. if (!indentation_.empty()) { // In this case, drop newlines too. *sout_ << '\n' << indentString_; } } void BuiltStyledStreamWriter::writeWithIndent(std::string const& value) { if (!indented_) writeIndent(); *sout_ << value; indented_ = false; } void BuiltStyledStreamWriter::indent() { indentString_ += indentation_; } void BuiltStyledStreamWriter::unindent() { assert(indentString_.size() >= indentation_.size()); indentString_.resize(indentString_.size() - indentation_.size()); } void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) { if (cs_ == CommentStyle::None) return; if (!root.hasComment(commentBefore)) return; if (!indented_) writeIndent(); const std::string& comment = root.getComment(commentBefore); std::string::const_iterator iter = comment.begin(); while (iter != comment.end()) { *sout_ << *iter; if (*iter == '\n' && (iter != comment.end() && *(iter + 1) == '/')) // writeIndent(); // would write extra newline *sout_ << indentString_; ++iter; } indented_ = false; } void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) { if (cs_ == CommentStyle::None) return; if (root.hasComment(commentAfterOnSameLine)) *sout_ << " " + root.getComment(commentAfterOnSameLine); if (root.hasComment(commentAfter)) { writeIndent(); *sout_ << root.getComment(commentAfter); } } // static bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) { return value.hasComment(commentBefore) || value.hasComment(commentAfterOnSameLine) || value.hasComment(commentAfter); } /////////////// // StreamWriter StreamWriter::StreamWriter() : sout_(NULL) { } StreamWriter::~StreamWriter() { } StreamWriter::Factory::~Factory() {} StreamWriterBuilder::StreamWriterBuilder() { setDefaults(&settings_); } StreamWriterBuilder::~StreamWriterBuilder() {} StreamWriter* StreamWriterBuilder::newStreamWriter() const { std::string indentation = settings_["indentation"].asString(); std::string cs_str = settings_["commentStyle"].asString(); bool eyc = settings_["enableYAMLCompatibility"].asBool(); bool dnp = settings_["dropNullPlaceholders"].asBool(); CommentStyle::Enum cs = CommentStyle::All; if (cs_str == "All") { cs = CommentStyle::All; } else if (cs_str == "None") { cs = CommentStyle::None; } else { throwRuntimeError("commentStyle must be 'All' or 'None'"); } std::string colonSymbol = " : "; if (eyc) { colonSymbol = ": "; } else if (indentation.empty()) { colonSymbol = ":"; } std::string nullSymbol = "null"; if (dnp) { nullSymbol = ""; } std::string endingLineFeedSymbol = ""; return new BuiltStyledStreamWriter( indentation, cs, colonSymbol, nullSymbol, endingLineFeedSymbol); } static void getValidWriterKeys(std::set* valid_keys) { valid_keys->clear(); valid_keys->insert("indentation"); valid_keys->insert("commentStyle"); valid_keys->insert("enableYAMLCompatibility"); valid_keys->insert("dropNullPlaceholders"); } bool StreamWriterBuilder::validate(Json::Value* invalid) const { Json::Value my_invalid; if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL Json::Value& inv = *invalid; std::set valid_keys; getValidWriterKeys(&valid_keys); Value::Members keys = settings_.getMemberNames(); size_t n = keys.size(); for (size_t i = 0; i < n; ++i) { std::string const& key = keys[i]; if (valid_keys.find(key) == valid_keys.end()) { inv[key] = settings_[key]; } } return 0u == inv.size(); } Value& StreamWriterBuilder::operator[](std::string key) { return settings_[key]; } // static void StreamWriterBuilder::setDefaults(Json::Value* settings) { //! [StreamWriterBuilderDefaults] (*settings)["commentStyle"] = "All"; (*settings)["indentation"] = "\t"; (*settings)["enableYAMLCompatibility"] = false; (*settings)["dropNullPlaceholders"] = false; //! [StreamWriterBuilderDefaults] } std::string writeString(StreamWriter::Factory const& builder, Value const& root) { std::ostringstream sout; StreamWriterPtr const writer(builder.newStreamWriter()); writer->write(root, &sout); return sout.str(); } std::ostream& operator<<(std::ostream& sout, Value const& root) { StreamWriterBuilder builder; StreamWriterPtr const writer(builder.newStreamWriter()); writer->write(root, &sout); return sout; } } // namespace Json // ////////////////////////////////////////////////////////////////////// // End of content of file: src/lib_json/json_writer.cpp // ////////////////////////////////////////////////////////////////////// spirv-headers-1.6.1+1.3.290.0/tools/buildHeaders/main.cpp000066400000000000000000000106371463234063200224340ustar00rootroot00000000000000// Copyright (c) 2014-2024 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), // to deal in the Materials without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Materials, and to permit persons to whom the // Materials are furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Materials. // // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ // // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS // IN THE MATERIALS. //#include #include #include #include "jsonToSpirv.h" #include "header.h" // Command-line options enum TOptions { EOptionNone = 0x000, EOptionPrintHeader = 0x008, }; std::string jsonPath; int Options; spv::TLanguage Language; void Usage() { printf("Usage: spirv option [file]\n" "\n" " -h print header for given language to stdout, from one of:\n" " C - C99 header\n" " C++ - C++03 or greater header (also accepts C++03)\n" " C++11 - C++11 or greater header\n" " JSON - JSON format data\n" " Lua - Lua module\n" " Python - Python module (also accepts Py)\n" " C# - C# module (also accepts CSharp)\n" " D - D module\n" " Beef - Beef module\n" " -H print header in all supported languages to files in current directory\n" ); } std::string tolower_s(std::string s) { std::transform(s.begin(), s.end(), s.begin(), ::tolower); return s; } bool ProcessArguments(int argc, char* argv[]) { argc--; argv++; for (; argc >= 1; argc--, argv++) { if (argv[0][0] == '-') { switch (argv[0][1]) { case 'H': Options |= EOptionPrintHeader; Language = spv::ELangAll; break; case 'h': { if (argc < 2) return false; Options |= EOptionPrintHeader; const std::string language(tolower_s(argv[1])); if (language == "c") { Language = spv::ELangC; } else if (language == "c++" || language == "c++03") { Language = spv::ELangCPP; } else if (language == "c++11") { Language = spv::ELangCPP11; } else if (language == "json") { Language = spv::ELangJSON; } else if (language == "lua") { Language = spv::ELangLua; } else if (language == "python" || language == "py") { Language = spv::ELangPython; } else if (language == "c#" || language == "csharp") { Language = spv::ELangCSharp; } else if (language == "d") { Language = spv::ELangD; } else if (language == "beef") { Language = spv::ELangBeef; } else return false; return true; } default: return false; } } else { jsonPath = std::string(argv[0]); } } return true; } int main(int argc, char* argv[]) { if (argc < 2 || ! ProcessArguments(argc, argv)) { Usage(); return 1; } spv::jsonToSpirv(jsonPath, (Options & EOptionPrintHeader) != 0); if (Options & EOptionPrintHeader) spv::PrintHeader(Language, std::cout); return 0; }