update to vulkan-sdk-1.3.275.0

Signed-off-by: huruitao <huruitao@kaihong.com>
This commit is contained in:
huruitao 2024-05-21 14:26:08 +08:00
parent 1a7f8fdb39
commit 4e7add7b09
30 changed files with 5600 additions and 849 deletions

View File

@ -1,4 +1,4 @@
# Copyright (c) 2015-2016 The Khronos Group Inc. # Copyright (c) 2015-2023 The Khronos Group Inc.
# #
# Permission is hereby granted, free of charge, to any person obtaining a # Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and/or associated documentation files (the # copy of this software and/or associated documentation files (the
@ -23,115 +23,43 @@
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. # 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")
# The SPIR-V headers from the SPIR-V Registry # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
# https://www.khronos.org/registry/spir-v/ string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
#
cmake_minimum_required(VERSION 3.0)
project(SPIRV-Headers VERSION 1.5.5)
# There are two ways to use this project.
#
# Using this source tree directly from a CMake-based project:
# 1. Add an add_subdirectory directive to include this sub directory.
# 2. Use ${SPIRV-Headers_SOURCE_DIR}/include} in a target_include_directories
# command.
#
# Installing the headers first, then using them with an implicit include
# directory. To install the headers:
# 1. mkdir build ; cd build
# 2. cmake ..
# 3. cmake --build . --target install
option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples"
${SPIRV_HEADERS_SKIP_EXAMPLES})
option(SPIRV_HEADERS_SKIP_INSTALL "Skip install"
${SPIRV_HEADERS_SKIP_INSTALL})
if(NOT ${SPIRV_HEADERS_SKIP_EXAMPLES})
set(SPIRV_HEADERS_ENABLE_EXAMPLES ON)
endif() endif()
if(NOT ${SPIRV_HEADERS_SKIP_INSTALL}) add_library(SPIRV-Headers INTERFACE)
set(SPIRV_HEADERS_ENABLE_INSTALL ON) add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers)
# legacy target_include_directories(SPIRV-Headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
add_custom_target(install-headers
COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv)
endif()
if (SPIRV_HEADERS_ENABLE_EXAMPLES) if (PROJECT_IS_TOP_LEVEL)
message(STATUS "Building SPIRV-Header examples") option(BUILD_TESTS "Build the tests")
add_subdirectory(example) if (BUILD_TESTS)
add_subdirectory(tests)
endif() endif()
include(GNUInstallDirs) include(GNUInstallDirs)
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME} INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
# Installation
if (SPIRV_HEADERS_ENABLE_INSTALL)
message(STATUS "Installing SPIRV-Header")
set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
set(namespace "${PROJECT_NAME}::")
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
if (NOT CMAKE_VERSION VERSION_LESS 3.14) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
set(arch_independent_str ARCH_INDEPENDENT)
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() endif()
write_basic_package_version_file( configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Headers.pc.in ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
"${version_config}" install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc" DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig)
COMPATIBILITY SameMajorVersion
${arch_independent_str}
)
configure_package_config_file(
"cmake/Config.cmake.in"
"${project_config}"
INSTALL_DESTINATION "${config_install_dir}"
)
install(
TARGETS ${PROJECT_NAME}
EXPORT "${TARGETS_EXPORT_NAME}"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
install(
DIRECTORY include/spirv
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
install(
FILES "${project_config}" "${version_config}"
DESTINATION "${config_install_dir}"
)
install(
EXPORT "${TARGETS_EXPORT_NAME}"
NAMESPACE "${namespace}"
DESTINATION "${config_install_dir}"
)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers.pc.in ${CMAKE_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
install(
FILES "${CMAKE_BINARY_DIR}/SPIRV-Headers.pc"
DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig
)
endif() endif()

View File

@ -3,7 +3,7 @@
"Name": "spirv-headers", "Name": "spirv-headers",
"License": "Apache-2.0", "License": "Apache-2.0",
"License File": "LICENSE", "License File": "LICENSE",
"Version Number": "sdk-1.3.231.1", "Version Number": "sdk-1.3.275.0",
"Owner": "zhangleiyu1@huawei.com", "Owner": "zhangleiyu1@huawei.com",
"Upstream URL": "https://github.com/KhronosGroup/SPIRV-Headers.git", "Upstream URL": "https://github.com/KhronosGroup/SPIRV-Headers.git",
"Description": "This repository contains machine-readable files for the SPIR-V Registry." "Description": "This repository contains machine-readable files for the SPIR-V Registry."

13
SECURITY.md Executable file
View File

@ -0,0 +1,13 @@
# 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.

View File

@ -1,4 +0,0 @@
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
check_required_components("@PROJECT_NAME@")

3
SPIRV-Headers.pc.in → cmake/SPIRV-Headers.pc.in Normal file → Executable file
View File

@ -1,5 +1,4 @@
prefix=@CMAKE_INSTALL_PREFIX@ includedir=@SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR@
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
Name: SPIRV-Headers Name: SPIRV-Headers
Description: Header files from the SPIR-V registry Description: Header files from the SPIR-V registry

View File

@ -1,4 +0,0 @@
add_library(SPIRV-Headers-example
${CMAKE_CURRENT_SOURCE_DIR}/example.cpp)
target_include_directories(SPIRV-Headers-example
PRIVATE ${SPIRV-Headers_SOURCE_DIR}/include)

View File

@ -62,7 +62,7 @@
<id value="9" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/> <id value="9" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
<id value="10" vendor="AMD" comment="Contact Daniel Rakos, daniel.rakos@amd.com"/> <id value="10" vendor="AMD" comment="Contact Daniel Rakos, daniel.rakos@amd.com"/>
<id value="11" vendor="Intel" comment="Contact Alexey, alexey.bader@intel.com"/> <id value="11" vendor="Intel" comment="Contact Alexey, alexey.bader@intel.com"/>
<id value="12" vendor="Imagination" comment="Contact James Jones"/> <id value="12" vendor="Imagination" comment="Contact Stephen Clarke, stephen.clarke@imgtec.com"/>
<id value="13" vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, dneto@google.com"/> <id value="13" vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, dneto@google.com"/>
<id value="14" vendor="Google" tool="spiregg" comment="Contact Lei Zhang, antiagainst@google.com"/> <id value="14" vendor="Google" tool="spiregg" comment="Contact Lei Zhang, antiagainst@google.com"/>
<id value="15" vendor="Google" tool="rspirv" comment="Contact Lei Zhang, antiagainst@gmail.com"/> <id value="15" vendor="Google" tool="rspirv" comment="Contact Lei Zhang, antiagainst@gmail.com"/>
@ -82,11 +82,16 @@
<id value="29" vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/> <id value="29" vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
<id value="30" vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/> <id value="30" vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
<id value="31" vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/> <id value="31" vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
<id value="32" vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/> <id value="32" vendor="TornadoVM" tool="Beehive SPIRV Toolkit" comment="https://github.com/beehive-lab/beehive-spirv-toolkit"/>
<id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/> <id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
<id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/> <id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
<id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/> <id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
<unused start="36" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/> <id value="36" vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi"/>
<id value="37" vendor="heroseh" tool="Hero C Compiler" comment="https://github.com/heroseh/hcc"/>
<id value="38" vendor="Meta" tool="SparkSL" comment="Contact Dunfan Lu, dunfanlu@meta.com, https://sparkar.facebook.com/ar-studio/learn/sparksl/sparksl-overview"/>
<id value="39" vendor="SirLynix" tool="Nazara ShaderLang Compiler" comment="Contact Jérôme Leclercq, https://github.com/NazaraEngine/ShaderLang"/>
<id value="40" vendor="NVIDIA" tool="Slang Compiler" comment="Contact Theresa Foley, tfoley@nvidia.com, https://github.com/shader-slang/slang/"/>
<unused start="41" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids> </ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants --> <!-- SECTION: SPIR-V Opcodes and Enumerants -->
@ -139,13 +144,17 @@
<ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/> <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
<ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/> <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
<ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/> <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
<ids type="opcode" start="6464" end="6527" vendor="N/A" comment="Blank range to keep alignment with non-opcodes"/>
<ids type="opcode" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
<ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
<ids type="opcode" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
<!-- Opcode enumerants to reserve for future use. To get a block, allocate <!-- Opcode enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make block and add a corresponding <ids> tag immediately above. Make
sure to fill in the vendor attribute, and preferably add a contact sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. --> person/address in a comment attribute. -->
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> --> <!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
<ids type="opcode" start="6464" end="65535" comment="Opcode range reservable for future use by vendors"/> <ids type="opcode" start="6656" end="65535" comment="Opcode range reservable for future use by vendors"/>
<!-- End reservations of opcodes --> <!-- End reservations of opcodes -->
@ -169,13 +178,16 @@
<ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/> <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
<ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/> <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
<ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/> <ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
<ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
<ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
<ids type="enumerant" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
<!-- Enumerants to reserve for future use. To get a block, allocate <!-- Enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make block and add a corresponding <ids> tag immediately above. Make
sure to fill in the vendor attribute, and preferably add a contact sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. --> person/address in a comment attribute. -->
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> --> <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
<ids type="enumerant" start="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/> <ids type="enumerant" start="6656" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
<!-- End reservations of enumerants --> <!-- End reservations of enumerants -->

View File

@ -33,7 +33,7 @@ extern "C" {
#endif #endif
enum { enum {
NonSemanticClspvReflectionRevision = 4, NonSemanticClspvReflectionRevision = 6,
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
}; };
@ -73,10 +73,23 @@ enum NonSemanticClspvReflectionInstructions {
NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33, NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34, NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34,
NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35, NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35,
NonSemanticClspvReflectionConstantDataPointerPushConstant = 36,
NonSemanticClspvReflectionProgramScopeVariablePointerPushConstant = 37,
NonSemanticClspvReflectionPrintfInfo = 38,
NonSemanticClspvReflectionPrintfBufferStorageBuffer = 39,
NonSemanticClspvReflectionPrintfBufferPointerPushConstant = 40,
NonSemanticClspvReflectionNormalizedSamplerMaskPushConstant = 41,
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
}; };
enum NonSemanticClspvReflectionKernelPropertyFlags {
NonSemanticClspvReflectionNone = 0x0,
NonSemanticClspvReflectionMayUsePrintf = 0x1,
NonSemanticClspvReflectionKernelPropertyFlagsMax = 0x7fffffff
};
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -0,0 +1,50 @@
// Copyright (c) 2020 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and/or associated documentation files (the
// "Materials"), to deal in the Materials without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Materials, and to
// permit persons to whom the Materials are furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Materials.
//
// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
// https://www.khronos.org/registry/
//
// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
//
#ifndef SPIRV_UNIFIED1_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_

View File

@ -1,12 +1,15 @@
{ {
"revision" : 4, "revision" : 6,
"instructions" : [ "instructions" : [
{ {
"opname" : "Kernel", "opname" : "Kernel",
"opcode" : 1, "opcode" : 1,
"operands" : [ "operands" : [
{ "kind" : "IdRef", "name" : "Kernel" }, { "kind" : "IdRef", "name" : "Kernel" },
{ "kind" : "IdRef", "name" : "Name" } { "kind" : "IdRef", "name" : "Name" },
{ "kind" : "IdRef", "name" : "NumArguments", "quantifier" : "?" },
{ "kind" : "IdRef", "name" : "Flags", "quantifier" : "?" },
{ "kind" : "IdRef", "name" : "Attributes", "quantifier" : "?" }
] ]
}, },
{ {
@ -347,6 +350,77 @@
{ "kind" : "IdRef", "name" : "Binding" }, { "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } { "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"
}
]
} }
] ]
} }

View File

@ -0,0 +1,9 @@
{
"revision" : 1,
"instructions" : [
{
"opname" : "DebugBreak",
"opcode" : 1
}
]
}

View File

@ -66,6 +66,10 @@ namespace Spv
HLSL = 5, HLSL = 5,
CPP_for_OpenCL = 6, CPP_for_OpenCL = 6,
SYCL = 7, SYCL = 7,
HERO_C = 8,
NZSL = 9,
WGSL = 10,
Slang = 11,
} }
[AllowDuplicates, CRepr] public enum ExecutionModel [AllowDuplicates, CRepr] public enum ExecutionModel
@ -153,6 +157,9 @@ namespace Spv
SubgroupsPerWorkgroupId = 37, SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38, LocalSizeId = 38,
LocalSizeHintId = 39, LocalSizeHintId = 39,
NonCoherentColorAttachmentReadEXT = 4169,
NonCoherentDepthAttachmentReadEXT = 4170,
NonCoherentStencilAttachmentReadEXT = 4171,
SubgroupUniformControlFlowKHR = 4421, SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446, PostDepthCoverage = 4446,
DenormPreserve = 4459, DenormPreserve = 4459,
@ -162,6 +169,11 @@ namespace Spv
RoundingModeRTZ = 4463, RoundingModeRTZ = 4463,
EarlyAndLateFragmentTestsAMD = 5017, EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027, StencilRefReplacingEXT = 5027,
CoalescingAMDX = 5069,
MaxNodeRecursionAMDX = 5071,
StaticNumWorkgroupsAMDX = 5072,
ShaderIndexAMDX = 5073,
MaxNumWorkgroupsAMDX = 5077,
StencilRefUnchangedFrontAMD = 5079, StencilRefUnchangedFrontAMD = 5079,
StencilRefGreaterFrontAMD = 5080, StencilRefGreaterFrontAMD = 5080,
StencilRefLessFrontAMD = 5081, StencilRefLessFrontAMD = 5081,
@ -192,6 +204,8 @@ namespace Spv
NoGlobalOffsetINTEL = 5895, NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896, NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903, SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417, NamedBarrierCountINTEL = 6417,
} }
@ -210,6 +224,9 @@ namespace Spv
AtomicCounter = 10, AtomicCounter = 10,
Image = 11, Image = 11,
StorageBuffer = 12, StorageBuffer = 12,
TileImageEXT = 4172,
NodePayloadAMDX = 5068,
NodeOutputPayloadAMDX = 5076,
CallableDataKHR = 5328, CallableDataKHR = 5328,
CallableDataNV = 5328, CallableDataNV = 5328,
IncomingCallableDataKHR = 5329, IncomingCallableDataKHR = 5329,
@ -224,6 +241,7 @@ namespace Spv
ShaderRecordBufferNV = 5343, ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349, PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349, PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402, TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605, CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936, DeviceOnlyINTEL = 5936,
@ -239,6 +257,7 @@ namespace Spv
Rect = 4, Rect = 4,
Buffer = 5, Buffer = 5,
SubpassData = 6, SubpassData = 6,
TileImageDataEXT = 4173,
} }
[AllowDuplicates, CRepr] public enum SamplerAddressingMode [AllowDuplicates, CRepr] public enum SamplerAddressingMode
@ -345,6 +364,8 @@ namespace Spv
Float = 14, Float = 14,
UnormInt24 = 15, UnormInt24 = 15,
UnormInt101010_2 = 16, UnormInt101010_2 = 16,
UnsignedIntRaw10EXT = 19,
UnsignedIntRaw12EXT = 20,
} }
[AllowDuplicates, CRepr] public enum ImageOperandsShift [AllowDuplicates, CRepr] public enum ImageOperandsShift
@ -451,6 +472,7 @@ namespace Spv
NoCapture = 5, NoCapture = 5,
NoWrite = 6, NoWrite = 6,
NoReadWrite = 7, NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
} }
[AllowDuplicates, CRepr] public enum Decoration [AllowDuplicates, CRepr] public enum Decoration
@ -504,7 +526,13 @@ namespace Spv
MaxByteOffsetId = 47, MaxByteOffsetId = 47,
NoSignedWrap = 4469, NoSignedWrap = 4469,
NoUnsignedWrap = 4470, NoUnsignedWrap = 4470,
WeightTextureQCOM = 4487,
BlockMatchTextureQCOM = 4488,
ExplicitInterpAMD = 4999, ExplicitInterpAMD = 4999,
NodeSharesPayloadLimitsWithAMDX = 5019,
NodeMaxPayloadsAMDX = 5020,
TrackFinishWritingAMDX = 5078,
PayloadNodeNameAMDX = 5091,
OverrideCoverageNV = 5248, OverrideCoverageNV = 5248,
PassthroughNV = 5250, PassthroughNV = 5250,
ViewportRelativeNV = 5252, ViewportRelativeNV = 5252,
@ -521,6 +549,7 @@ namespace Spv
RestrictPointerEXT = 5355, RestrictPointerEXT = 5355,
AliasedPointer = 5356, AliasedPointer = 5356,
AliasedPointerEXT = 5356, AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398, BindlessSamplerNV = 5398,
BindlessImageNV = 5399, BindlessImageNV = 5399,
BoundSamplerNV = 5400, BoundSamplerNV = 5400,
@ -553,20 +582,45 @@ namespace Spv
MergeINTEL = 5834, MergeINTEL = 5834,
BankBitsINTEL = 5835, BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836, ForcePow2DepthINTEL = 5836,
StridesizeINTEL = 5883,
WordsizeINTEL = 5884,
TrueDualPortINTEL = 5885,
BurstCoalesceINTEL = 5899, BurstCoalesceINTEL = 5899,
CacheSizeINTEL = 5900, CacheSizeINTEL = 5900,
DontStaticallyCoalesceINTEL = 5901, DontStaticallyCoalesceINTEL = 5901,
PrefetchINTEL = 5902, PrefetchINTEL = 5902,
StallEnableINTEL = 5905, StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907, FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914, AliasScopeINTEL = 5914,
NoAliasINTEL = 5915, NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921, BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944, IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080, FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085, SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087, VectorComputeCallableFunctionINTEL = 6087,
MediaBlockIOINTEL = 6140, 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 [AllowDuplicates, CRepr] public enum BuiltIn
@ -642,6 +696,8 @@ namespace Spv
BaryCoordSmoothSampleAMD = 4997, BaryCoordSmoothSampleAMD = 4997,
BaryCoordPullModelAMD = 4998, BaryCoordPullModelAMD = 4998,
FragStencilRefEXT = 5014, FragStencilRefEXT = 5014,
CoalescedInputCountAMDX = 5021,
ShaderIndexAMDX = 5073,
ViewportMaskNV = 5253, ViewportMaskNV = 5253,
SecondaryPositionNV = 5257, SecondaryPositionNV = 5257,
SecondaryViewportMaskNV = 5258, SecondaryViewportMaskNV = 5258,
@ -694,6 +750,9 @@ namespace Spv
HitKindKHR = 5333, HitKindKHR = 5333,
HitKindNV = 5333, HitKindNV = 5333,
CurrentRayTimeNV = 5334, CurrentRayTimeNV = 5334,
HitTriangleVertexPositionsKHR = 5335,
HitMicroTriangleVertexPositionsNV = 5337,
HitMicroTriangleVertexBarycentricsNV = 5344,
IncomingRayFlagsKHR = 5351, IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351, IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352, RayGeometryIndexKHR = 5352,
@ -701,6 +760,8 @@ namespace Spv
SMCountNV = 5375, SMCountNV = 5375,
WarpIDNV = 5376, WarpIDNV = 5376,
SMIDNV = 5377, SMIDNV = 5377,
HitKindFrontFacingMicroTriangleNV = 5405,
HitKindBackFacingMicroTriangleNV = 5406,
CullMaskKHR = 6021, CullMaskKHR = 6021,
} }
@ -736,6 +797,8 @@ namespace Spv
MaxInterleavingINTEL = 21, MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22, SpeculatedIterationsINTEL = 22,
NoFusionINTEL = 23, NoFusionINTEL = 23,
LoopCountINTEL = 24,
MaxReinvocationDelayINTEL = 25,
} }
[AllowDuplicates, CRepr] public enum LoopControlMask [AllowDuplicates, CRepr] public enum LoopControlMask
@ -758,6 +821,8 @@ namespace Spv
MaxInterleavingINTEL = 0x00200000, MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000, SpeculatedIterationsINTEL = 0x00400000,
NoFusionINTEL = 0x00800000, NoFusionINTEL = 0x00800000,
LoopCountINTEL = 0x01000000,
MaxReinvocationDelayINTEL = 0x02000000,
} }
[AllowDuplicates, CRepr] public enum FunctionControlShift [AllowDuplicates, CRepr] public enum FunctionControlShift
@ -967,6 +1032,9 @@ namespace Spv
ShaderViewportIndex = 70, ShaderViewportIndex = 70,
UniformDecoration = 71, UniformDecoration = 71,
CoreBuiltinsARM = 4165, CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
TileImageStencilReadAccessEXT = 4168,
FragmentShadingRateKHR = 4422, FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423, SubgroupBallotKHR = 4423,
DrawParameters = 4427, DrawParameters = 4427,
@ -998,6 +1066,9 @@ namespace Spv
RayQueryKHR = 4472, RayQueryKHR = 4472,
RayTraversalPrimitiveCullingKHR = 4478, RayTraversalPrimitiveCullingKHR = 4478,
RayTracingKHR = 4479, RayTracingKHR = 4479,
TextureSampleWeightedQCOM = 4484,
TextureBoxFilterQCOM = 4485,
TextureBlockMatchQCOM = 4486,
Float16ImageAMD = 5008, Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009, ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010, FragmentMaskAMD = 5010,
@ -1005,6 +1076,7 @@ namespace Spv
ImageReadWriteLodAMD = 5015, ImageReadWriteLodAMD = 5015,
Int64ImageEXT = 5016, Int64ImageEXT = 5016,
ShaderClockKHR = 5055, ShaderClockKHR = 5055,
ShaderEnqueueAMDX = 5067,
SampleMaskOverrideCoverageNV = 5249, SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251, GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerEXT = 5254,
@ -1046,6 +1118,7 @@ namespace Spv
UniformTexelBufferArrayNonUniformIndexingEXT = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingPositionFetchKHR = 5336,
RayTracingNV = 5340, RayTracingNV = 5340,
RayTracingMotionBlurNV = 5341, RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345, VulkanMemoryModel = 5345,
@ -1063,8 +1136,12 @@ namespace Spv
FragmentShaderPixelInterlockEXT = 5378, FragmentShaderPixelInterlockEXT = 5378,
DemoteToHelperInvocation = 5379, DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379, DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381, RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390, BindlessTextureNV = 5390,
RayQueryPositionFetchKHR = 5391,
RayTracingDisplacementMicromapNV = 5409,
SubgroupShuffleINTEL = 5568, SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569, SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570, SubgroupImageBlockIOINTEL = 5570,
@ -1097,10 +1174,13 @@ namespace Spv
FPGAMemoryAccessesINTEL = 5898, FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904, FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906, LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910, MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920, FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922, ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935, USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943, IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945, BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948, FPGARegINTEL = 5948,
@ -1113,16 +1193,26 @@ namespace Spv
DotProduct = 6019, DotProduct = 6019,
DotProductKHR = 6019, DotProductKHR = 6019,
RayCullMaskKHR = 6020, RayCullMaskKHR = 6020,
CooperativeMatrixKHR = 6022,
BitInstructions = 6025, BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026, GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033, AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034, AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089, LongCompositesINTEL = 6089,
OptNoneINTEL = 6094, OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095, AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114, DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
SplitBarrierINTEL = 6141, SplitBarrierINTEL = 6141,
FPGAClusterAttributesV2INTEL = 6150,
FPGAKernelAttributesv2INTEL = 6161,
FPMaxErrorINTEL = 6169,
FPGALatencyControlINTEL = 6171,
FPGAArgumentInterfacesINTEL = 6174,
GlobalVariableHostAccessINTEL = 6187,
GlobalVariableFPGADecorationsINTEL = 6189,
GroupUniformArithmeticKHR = 6400, GroupUniformArithmeticKHR = 6400,
CacheControlsINTEL = 6441,
} }
[AllowDuplicates, CRepr] public enum RayFlagsShift [AllowDuplicates, CRepr] public enum RayFlagsShift
@ -1230,6 +1320,69 @@ namespace Spv
PackedVectorFormat4x8BitKHR = 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,
}
[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 Op [AllowDuplicates, CRepr] public enum Op
{ {
OpNop = 0, OpNop = 0,
@ -1576,6 +1729,9 @@ namespace Spv
OpPtrEqual = 401, OpPtrEqual = 401,
OpPtrNotEqual = 402, OpPtrNotEqual = 402,
OpPtrDiff = 403, OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416, OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421, OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422, OpSubgroupFirstInvocationKHR = 4422,
@ -1601,6 +1757,11 @@ namespace Spv
OpUDotAccSatKHR = 4454, OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455, OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455, OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472, OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473, OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474, OpRayQueryTerminateKHR = 4474,
@ -1608,6 +1769,10 @@ namespace Spv
OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477, OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479, OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000, OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001, OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002, OpGroupFMinNonUniformAMD = 5002,
@ -1619,11 +1784,49 @@ namespace Spv
OpFragmentMaskFetchAMD = 5011, OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012, OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056, OpReadClockKHR = 5056,
OpFinalizeNodePayloadsAMDX = 5075,
OpFinishWritingNodePayloadAMDX = 5078,
OpInitializeNodePayloadsAMDX = 5090,
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, OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294, OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295, OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296, OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299, OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpReportIntersectionKHR = 5334, OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334, OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
@ -1631,6 +1834,7 @@ namespace Spv
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338, OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339, OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1892,6 +2096,9 @@ namespace Spv
OpTypeStructContinuedINTEL = 6090, OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091, OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092, OpSpecConstantCompositeContinuedINTEL = 6092,
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142, OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143, OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401, OpGroupIMulKHR = 6401,

File diff suppressed because it is too large Load Diff

View File

@ -65,6 +65,10 @@ namespace Spv
HLSL = 5, HLSL = 5,
CPP_for_OpenCL = 6, CPP_for_OpenCL = 6,
SYCL = 7, SYCL = 7,
HERO_C = 8,
NZSL = 9,
WGSL = 10,
Slang = 11,
} }
public enum ExecutionModel public enum ExecutionModel
@ -152,6 +156,9 @@ namespace Spv
SubgroupsPerWorkgroupId = 37, SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38, LocalSizeId = 38,
LocalSizeHintId = 39, LocalSizeHintId = 39,
NonCoherentColorAttachmentReadEXT = 4169,
NonCoherentDepthAttachmentReadEXT = 4170,
NonCoherentStencilAttachmentReadEXT = 4171,
SubgroupUniformControlFlowKHR = 4421, SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446, PostDepthCoverage = 4446,
DenormPreserve = 4459, DenormPreserve = 4459,
@ -161,6 +168,11 @@ namespace Spv
RoundingModeRTZ = 4463, RoundingModeRTZ = 4463,
EarlyAndLateFragmentTestsAMD = 5017, EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027, StencilRefReplacingEXT = 5027,
CoalescingAMDX = 5069,
MaxNodeRecursionAMDX = 5071,
StaticNumWorkgroupsAMDX = 5072,
ShaderIndexAMDX = 5073,
MaxNumWorkgroupsAMDX = 5077,
StencilRefUnchangedFrontAMD = 5079, StencilRefUnchangedFrontAMD = 5079,
StencilRefGreaterFrontAMD = 5080, StencilRefGreaterFrontAMD = 5080,
StencilRefLessFrontAMD = 5081, StencilRefLessFrontAMD = 5081,
@ -191,6 +203,8 @@ namespace Spv
NoGlobalOffsetINTEL = 5895, NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896, NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903, SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417, NamedBarrierCountINTEL = 6417,
} }
@ -209,6 +223,9 @@ namespace Spv
AtomicCounter = 10, AtomicCounter = 10,
Image = 11, Image = 11,
StorageBuffer = 12, StorageBuffer = 12,
TileImageEXT = 4172,
NodePayloadAMDX = 5068,
NodeOutputPayloadAMDX = 5076,
CallableDataKHR = 5328, CallableDataKHR = 5328,
CallableDataNV = 5328, CallableDataNV = 5328,
IncomingCallableDataKHR = 5329, IncomingCallableDataKHR = 5329,
@ -223,6 +240,7 @@ namespace Spv
ShaderRecordBufferNV = 5343, ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349, PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349, PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402, TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605, CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936, DeviceOnlyINTEL = 5936,
@ -238,6 +256,7 @@ namespace Spv
Rect = 4, Rect = 4,
Buffer = 5, Buffer = 5,
SubpassData = 6, SubpassData = 6,
TileImageDataEXT = 4173,
} }
public enum SamplerAddressingMode public enum SamplerAddressingMode
@ -344,6 +363,8 @@ namespace Spv
Float = 14, Float = 14,
UnormInt24 = 15, UnormInt24 = 15,
UnormInt101010_2 = 16, UnormInt101010_2 = 16,
UnsignedIntRaw10EXT = 19,
UnsignedIntRaw12EXT = 20,
} }
public enum ImageOperandsShift public enum ImageOperandsShift
@ -450,6 +471,7 @@ namespace Spv
NoCapture = 5, NoCapture = 5,
NoWrite = 6, NoWrite = 6,
NoReadWrite = 7, NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
} }
public enum Decoration public enum Decoration
@ -503,7 +525,13 @@ namespace Spv
MaxByteOffsetId = 47, MaxByteOffsetId = 47,
NoSignedWrap = 4469, NoSignedWrap = 4469,
NoUnsignedWrap = 4470, NoUnsignedWrap = 4470,
WeightTextureQCOM = 4487,
BlockMatchTextureQCOM = 4488,
ExplicitInterpAMD = 4999, ExplicitInterpAMD = 4999,
NodeSharesPayloadLimitsWithAMDX = 5019,
NodeMaxPayloadsAMDX = 5020,
TrackFinishWritingAMDX = 5078,
PayloadNodeNameAMDX = 5091,
OverrideCoverageNV = 5248, OverrideCoverageNV = 5248,
PassthroughNV = 5250, PassthroughNV = 5250,
ViewportRelativeNV = 5252, ViewportRelativeNV = 5252,
@ -520,6 +548,7 @@ namespace Spv
RestrictPointerEXT = 5355, RestrictPointerEXT = 5355,
AliasedPointer = 5356, AliasedPointer = 5356,
AliasedPointerEXT = 5356, AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398, BindlessSamplerNV = 5398,
BindlessImageNV = 5399, BindlessImageNV = 5399,
BoundSamplerNV = 5400, BoundSamplerNV = 5400,
@ -552,20 +581,45 @@ namespace Spv
MergeINTEL = 5834, MergeINTEL = 5834,
BankBitsINTEL = 5835, BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836, ForcePow2DepthINTEL = 5836,
StridesizeINTEL = 5883,
WordsizeINTEL = 5884,
TrueDualPortINTEL = 5885,
BurstCoalesceINTEL = 5899, BurstCoalesceINTEL = 5899,
CacheSizeINTEL = 5900, CacheSizeINTEL = 5900,
DontStaticallyCoalesceINTEL = 5901, DontStaticallyCoalesceINTEL = 5901,
PrefetchINTEL = 5902, PrefetchINTEL = 5902,
StallEnableINTEL = 5905, StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907, FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914, AliasScopeINTEL = 5914,
NoAliasINTEL = 5915, NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921, BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944, IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080, FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085, SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087, VectorComputeCallableFunctionINTEL = 6087,
MediaBlockIOINTEL = 6140, 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 public enum BuiltIn
@ -641,6 +695,8 @@ namespace Spv
BaryCoordSmoothSampleAMD = 4997, BaryCoordSmoothSampleAMD = 4997,
BaryCoordPullModelAMD = 4998, BaryCoordPullModelAMD = 4998,
FragStencilRefEXT = 5014, FragStencilRefEXT = 5014,
CoalescedInputCountAMDX = 5021,
ShaderIndexAMDX = 5073,
ViewportMaskNV = 5253, ViewportMaskNV = 5253,
SecondaryPositionNV = 5257, SecondaryPositionNV = 5257,
SecondaryViewportMaskNV = 5258, SecondaryViewportMaskNV = 5258,
@ -693,6 +749,9 @@ namespace Spv
HitKindKHR = 5333, HitKindKHR = 5333,
HitKindNV = 5333, HitKindNV = 5333,
CurrentRayTimeNV = 5334, CurrentRayTimeNV = 5334,
HitTriangleVertexPositionsKHR = 5335,
HitMicroTriangleVertexPositionsNV = 5337,
HitMicroTriangleVertexBarycentricsNV = 5344,
IncomingRayFlagsKHR = 5351, IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351, IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352, RayGeometryIndexKHR = 5352,
@ -700,6 +759,8 @@ namespace Spv
SMCountNV = 5375, SMCountNV = 5375,
WarpIDNV = 5376, WarpIDNV = 5376,
SMIDNV = 5377, SMIDNV = 5377,
HitKindFrontFacingMicroTriangleNV = 5405,
HitKindBackFacingMicroTriangleNV = 5406,
CullMaskKHR = 6021, CullMaskKHR = 6021,
} }
@ -735,6 +796,8 @@ namespace Spv
MaxInterleavingINTEL = 21, MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22, SpeculatedIterationsINTEL = 22,
NoFusionINTEL = 23, NoFusionINTEL = 23,
LoopCountINTEL = 24,
MaxReinvocationDelayINTEL = 25,
} }
public enum LoopControlMask public enum LoopControlMask
@ -757,6 +820,8 @@ namespace Spv
MaxInterleavingINTEL = 0x00200000, MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000, SpeculatedIterationsINTEL = 0x00400000,
NoFusionINTEL = 0x00800000, NoFusionINTEL = 0x00800000,
LoopCountINTEL = 0x01000000,
MaxReinvocationDelayINTEL = 0x02000000,
} }
public enum FunctionControlShift public enum FunctionControlShift
@ -966,6 +1031,9 @@ namespace Spv
ShaderViewportIndex = 70, ShaderViewportIndex = 70,
UniformDecoration = 71, UniformDecoration = 71,
CoreBuiltinsARM = 4165, CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
TileImageStencilReadAccessEXT = 4168,
FragmentShadingRateKHR = 4422, FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423, SubgroupBallotKHR = 4423,
DrawParameters = 4427, DrawParameters = 4427,
@ -997,6 +1065,9 @@ namespace Spv
RayQueryKHR = 4472, RayQueryKHR = 4472,
RayTraversalPrimitiveCullingKHR = 4478, RayTraversalPrimitiveCullingKHR = 4478,
RayTracingKHR = 4479, RayTracingKHR = 4479,
TextureSampleWeightedQCOM = 4484,
TextureBoxFilterQCOM = 4485,
TextureBlockMatchQCOM = 4486,
Float16ImageAMD = 5008, Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009, ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010, FragmentMaskAMD = 5010,
@ -1004,6 +1075,7 @@ namespace Spv
ImageReadWriteLodAMD = 5015, ImageReadWriteLodAMD = 5015,
Int64ImageEXT = 5016, Int64ImageEXT = 5016,
ShaderClockKHR = 5055, ShaderClockKHR = 5055,
ShaderEnqueueAMDX = 5067,
SampleMaskOverrideCoverageNV = 5249, SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251, GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerEXT = 5254,
@ -1045,6 +1117,7 @@ namespace Spv
UniformTexelBufferArrayNonUniformIndexingEXT = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingPositionFetchKHR = 5336,
RayTracingNV = 5340, RayTracingNV = 5340,
RayTracingMotionBlurNV = 5341, RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345, VulkanMemoryModel = 5345,
@ -1062,8 +1135,12 @@ namespace Spv
FragmentShaderPixelInterlockEXT = 5378, FragmentShaderPixelInterlockEXT = 5378,
DemoteToHelperInvocation = 5379, DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379, DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381, RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390, BindlessTextureNV = 5390,
RayQueryPositionFetchKHR = 5391,
RayTracingDisplacementMicromapNV = 5409,
SubgroupShuffleINTEL = 5568, SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569, SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570, SubgroupImageBlockIOINTEL = 5570,
@ -1096,10 +1173,13 @@ namespace Spv
FPGAMemoryAccessesINTEL = 5898, FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904, FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906, LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910, MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920, FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922, ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935, USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943, IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945, BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948, FPGARegINTEL = 5948,
@ -1112,16 +1192,26 @@ namespace Spv
DotProduct = 6019, DotProduct = 6019,
DotProductKHR = 6019, DotProductKHR = 6019,
RayCullMaskKHR = 6020, RayCullMaskKHR = 6020,
CooperativeMatrixKHR = 6022,
BitInstructions = 6025, BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026, GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033, AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034, AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089, LongCompositesINTEL = 6089,
OptNoneINTEL = 6094, OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095, AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114, DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
SplitBarrierINTEL = 6141, SplitBarrierINTEL = 6141,
FPGAClusterAttributesV2INTEL = 6150,
FPGAKernelAttributesv2INTEL = 6161,
FPMaxErrorINTEL = 6169,
FPGALatencyControlINTEL = 6171,
FPGAArgumentInterfacesINTEL = 6174,
GlobalVariableHostAccessINTEL = 6187,
GlobalVariableFPGADecorationsINTEL = 6189,
GroupUniformArithmeticKHR = 6400, GroupUniformArithmeticKHR = 6400,
CacheControlsINTEL = 6441,
} }
public enum RayFlagsShift public enum RayFlagsShift
@ -1229,6 +1319,69 @@ namespace Spv
PackedVectorFormat4x8BitKHR = 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,
}
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 Op public enum Op
{ {
OpNop = 0, OpNop = 0,
@ -1575,6 +1728,9 @@ namespace Spv
OpPtrEqual = 401, OpPtrEqual = 401,
OpPtrNotEqual = 402, OpPtrNotEqual = 402,
OpPtrDiff = 403, OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416, OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421, OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422, OpSubgroupFirstInvocationKHR = 4422,
@ -1600,6 +1756,11 @@ namespace Spv
OpUDotAccSatKHR = 4454, OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455, OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455, OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472, OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473, OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474, OpRayQueryTerminateKHR = 4474,
@ -1607,6 +1768,10 @@ namespace Spv
OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477, OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479, OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000, OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001, OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002, OpGroupFMinNonUniformAMD = 5002,
@ -1618,11 +1783,49 @@ namespace Spv
OpFragmentMaskFetchAMD = 5011, OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012, OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056, OpReadClockKHR = 5056,
OpFinalizeNodePayloadsAMDX = 5075,
OpFinishWritingNodePayloadAMDX = 5078,
OpInitializeNodePayloadsAMDX = 5090,
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, OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294, OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295, OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296, OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299, OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpReportIntersectionKHR = 5334, OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334, OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
@ -1630,6 +1833,7 @@ namespace Spv
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338, OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339, OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1891,6 +2095,9 @@ namespace Spv
OpTypeStructContinuedINTEL = 6090, OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091, OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092, OpSpecConstantCompositeContinuedINTEL = 6092,
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142, OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143, OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401, OpGroupIMulKHR = 6401,

View File

@ -73,6 +73,10 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageHLSL = 5, SpvSourceLanguageHLSL = 5,
SpvSourceLanguageCPP_for_OpenCL = 6, SpvSourceLanguageCPP_for_OpenCL = 6,
SpvSourceLanguageSYCL = 7, SpvSourceLanguageSYCL = 7,
SpvSourceLanguageHERO_C = 8,
SpvSourceLanguageNZSL = 9,
SpvSourceLanguageWGSL = 10,
SpvSourceLanguageSlang = 11,
SpvSourceLanguageMax = 0x7fffffff, SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage; } SpvSourceLanguage;
@ -160,6 +164,9 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSubgroupsPerWorkgroupId = 37, SpvExecutionModeSubgroupsPerWorkgroupId = 37,
SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeId = 38,
SpvExecutionModeLocalSizeHintId = 39, SpvExecutionModeLocalSizeHintId = 39,
SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
SpvExecutionModeSubgroupUniformControlFlowKHR = 4421, SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModePostDepthCoverage = 4446,
SpvExecutionModeDenormPreserve = 4459, SpvExecutionModeDenormPreserve = 4459,
@ -169,6 +176,11 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeRoundingModeRTZ = 4463, SpvExecutionModeRoundingModeRTZ = 4463,
SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017, SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeStencilRefReplacingEXT = 5027,
SpvExecutionModeCoalescingAMDX = 5069,
SpvExecutionModeMaxNodeRecursionAMDX = 5071,
SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
SpvExecutionModeShaderIndexAMDX = 5073,
SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
SpvExecutionModeStencilRefUnchangedFrontAMD = 5079, SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
SpvExecutionModeStencilRefGreaterFrontAMD = 5080, SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
SpvExecutionModeStencilRefLessFrontAMD = 5081, SpvExecutionModeStencilRefLessFrontAMD = 5081,
@ -199,6 +211,8 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeNoGlobalOffsetINTEL = 5895, SpvExecutionModeNoGlobalOffsetINTEL = 5895,
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896, SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
SpvExecutionModeStreamingInterfaceINTEL = 6154,
SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
SpvExecutionModeNamedBarrierCountINTEL = 6417, SpvExecutionModeNamedBarrierCountINTEL = 6417,
SpvExecutionModeMax = 0x7fffffff, SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode; } SpvExecutionMode;
@ -217,6 +231,9 @@ typedef enum SpvStorageClass_ {
SpvStorageClassAtomicCounter = 10, SpvStorageClassAtomicCounter = 10,
SpvStorageClassImage = 11, SpvStorageClassImage = 11,
SpvStorageClassStorageBuffer = 12, SpvStorageClassStorageBuffer = 12,
SpvStorageClassTileImageEXT = 4172,
SpvStorageClassNodePayloadAMDX = 5068,
SpvStorageClassNodeOutputPayloadAMDX = 5076,
SpvStorageClassCallableDataKHR = 5328, SpvStorageClassCallableDataKHR = 5328,
SpvStorageClassCallableDataNV = 5328, SpvStorageClassCallableDataNV = 5328,
SpvStorageClassIncomingCallableDataKHR = 5329, SpvStorageClassIncomingCallableDataKHR = 5329,
@ -231,6 +248,7 @@ typedef enum SpvStorageClass_ {
SpvStorageClassShaderRecordBufferNV = 5343, SpvStorageClassShaderRecordBufferNV = 5343,
SpvStorageClassPhysicalStorageBuffer = 5349, SpvStorageClassPhysicalStorageBuffer = 5349,
SpvStorageClassPhysicalStorageBufferEXT = 5349, SpvStorageClassPhysicalStorageBufferEXT = 5349,
SpvStorageClassHitObjectAttributeNV = 5385,
SpvStorageClassTaskPayloadWorkgroupEXT = 5402, SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
SpvStorageClassCodeSectionINTEL = 5605, SpvStorageClassCodeSectionINTEL = 5605,
SpvStorageClassDeviceOnlyINTEL = 5936, SpvStorageClassDeviceOnlyINTEL = 5936,
@ -246,6 +264,7 @@ typedef enum SpvDim_ {
SpvDimRect = 4, SpvDimRect = 4,
SpvDimBuffer = 5, SpvDimBuffer = 5,
SpvDimSubpassData = 6, SpvDimSubpassData = 6,
SpvDimTileImageDataEXT = 4173,
SpvDimMax = 0x7fffffff, SpvDimMax = 0x7fffffff,
} SpvDim; } SpvDim;
@ -352,6 +371,8 @@ typedef enum SpvImageChannelDataType_ {
SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeFloat = 14,
SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt24 = 15,
SpvImageChannelDataTypeUnormInt101010_2 = 16, SpvImageChannelDataTypeUnormInt101010_2 = 16,
SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
SpvImageChannelDataTypeMax = 0x7fffffff, SpvImageChannelDataTypeMax = 0x7fffffff,
} SpvImageChannelDataType; } SpvImageChannelDataType;
@ -456,6 +477,7 @@ typedef enum SpvFunctionParameterAttribute_ {
SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoCapture = 5,
SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoWrite = 6,
SpvFunctionParameterAttributeNoReadWrite = 7, SpvFunctionParameterAttributeNoReadWrite = 7,
SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
SpvFunctionParameterAttributeMax = 0x7fffffff, SpvFunctionParameterAttributeMax = 0x7fffffff,
} SpvFunctionParameterAttribute; } SpvFunctionParameterAttribute;
@ -509,7 +531,13 @@ typedef enum SpvDecoration_ {
SpvDecorationMaxByteOffsetId = 47, SpvDecorationMaxByteOffsetId = 47,
SpvDecorationNoSignedWrap = 4469, SpvDecorationNoSignedWrap = 4469,
SpvDecorationNoUnsignedWrap = 4470, SpvDecorationNoUnsignedWrap = 4470,
SpvDecorationWeightTextureQCOM = 4487,
SpvDecorationBlockMatchTextureQCOM = 4488,
SpvDecorationExplicitInterpAMD = 4999, SpvDecorationExplicitInterpAMD = 4999,
SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
SpvDecorationNodeMaxPayloadsAMDX = 5020,
SpvDecorationTrackFinishWritingAMDX = 5078,
SpvDecorationPayloadNodeNameAMDX = 5091,
SpvDecorationOverrideCoverageNV = 5248, SpvDecorationOverrideCoverageNV = 5248,
SpvDecorationPassthroughNV = 5250, SpvDecorationPassthroughNV = 5250,
SpvDecorationViewportRelativeNV = 5252, SpvDecorationViewportRelativeNV = 5252,
@ -526,6 +554,7 @@ typedef enum SpvDecoration_ {
SpvDecorationRestrictPointerEXT = 5355, SpvDecorationRestrictPointerEXT = 5355,
SpvDecorationAliasedPointer = 5356, SpvDecorationAliasedPointer = 5356,
SpvDecorationAliasedPointerEXT = 5356, SpvDecorationAliasedPointerEXT = 5356,
SpvDecorationHitObjectShaderRecordBufferNV = 5386,
SpvDecorationBindlessSamplerNV = 5398, SpvDecorationBindlessSamplerNV = 5398,
SpvDecorationBindlessImageNV = 5399, SpvDecorationBindlessImageNV = 5399,
SpvDecorationBoundSamplerNV = 5400, SpvDecorationBoundSamplerNV = 5400,
@ -558,20 +587,45 @@ typedef enum SpvDecoration_ {
SpvDecorationMergeINTEL = 5834, SpvDecorationMergeINTEL = 5834,
SpvDecorationBankBitsINTEL = 5835, SpvDecorationBankBitsINTEL = 5835,
SpvDecorationForcePow2DepthINTEL = 5836, SpvDecorationForcePow2DepthINTEL = 5836,
SpvDecorationStridesizeINTEL = 5883,
SpvDecorationWordsizeINTEL = 5884,
SpvDecorationTrueDualPortINTEL = 5885,
SpvDecorationBurstCoalesceINTEL = 5899, SpvDecorationBurstCoalesceINTEL = 5899,
SpvDecorationCacheSizeINTEL = 5900, SpvDecorationCacheSizeINTEL = 5900,
SpvDecorationDontStaticallyCoalesceINTEL = 5901, SpvDecorationDontStaticallyCoalesceINTEL = 5901,
SpvDecorationPrefetchINTEL = 5902, SpvDecorationPrefetchINTEL = 5902,
SpvDecorationStallEnableINTEL = 5905, SpvDecorationStallEnableINTEL = 5905,
SpvDecorationFuseLoopsInFunctionINTEL = 5907, SpvDecorationFuseLoopsInFunctionINTEL = 5907,
SpvDecorationMathOpDSPModeINTEL = 5909,
SpvDecorationAliasScopeINTEL = 5914, SpvDecorationAliasScopeINTEL = 5914,
SpvDecorationNoAliasINTEL = 5915, SpvDecorationNoAliasINTEL = 5915,
SpvDecorationInitiationIntervalINTEL = 5917,
SpvDecorationMaxConcurrencyINTEL = 5918,
SpvDecorationPipelineEnableINTEL = 5919,
SpvDecorationBufferLocationINTEL = 5921, SpvDecorationBufferLocationINTEL = 5921,
SpvDecorationIOPipeStorageINTEL = 5944, SpvDecorationIOPipeStorageINTEL = 5944,
SpvDecorationFunctionFloatingPointModeINTEL = 6080, SpvDecorationFunctionFloatingPointModeINTEL = 6080,
SpvDecorationSingleElementVectorINTEL = 6085, SpvDecorationSingleElementVectorINTEL = 6085,
SpvDecorationVectorComputeCallableFunctionINTEL = 6087, SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
SpvDecorationMediaBlockIOINTEL = 6140, 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, SpvDecorationMax = 0x7fffffff,
} SpvDecoration; } SpvDecoration;
@ -647,6 +701,8 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInBaryCoordPullModelAMD = 4998,
SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInFragStencilRefEXT = 5014,
SpvBuiltInCoalescedInputCountAMDX = 5021,
SpvBuiltInShaderIndexAMDX = 5073,
SpvBuiltInViewportMaskNV = 5253, SpvBuiltInViewportMaskNV = 5253,
SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryPositionNV = 5257,
SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInSecondaryViewportMaskNV = 5258,
@ -699,6 +755,9 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInHitKindKHR = 5333, SpvBuiltInHitKindKHR = 5333,
SpvBuiltInHitKindNV = 5333, SpvBuiltInHitKindNV = 5333,
SpvBuiltInCurrentRayTimeNV = 5334, SpvBuiltInCurrentRayTimeNV = 5334,
SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
SpvBuiltInIncomingRayFlagsKHR = 5351, SpvBuiltInIncomingRayFlagsKHR = 5351,
SpvBuiltInIncomingRayFlagsNV = 5351, SpvBuiltInIncomingRayFlagsNV = 5351,
SpvBuiltInRayGeometryIndexKHR = 5352, SpvBuiltInRayGeometryIndexKHR = 5352,
@ -706,6 +765,8 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInSMCountNV = 5375, SpvBuiltInSMCountNV = 5375,
SpvBuiltInWarpIDNV = 5376, SpvBuiltInWarpIDNV = 5376,
SpvBuiltInSMIDNV = 5377, SpvBuiltInSMIDNV = 5377,
SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
SpvBuiltInCullMaskKHR = 6021, SpvBuiltInCullMaskKHR = 6021,
SpvBuiltInMax = 0x7fffffff, SpvBuiltInMax = 0x7fffffff,
} SpvBuiltIn; } SpvBuiltIn;
@ -740,6 +801,8 @@ typedef enum SpvLoopControlShift_ {
SpvLoopControlMaxInterleavingINTELShift = 21, SpvLoopControlMaxInterleavingINTELShift = 21,
SpvLoopControlSpeculatedIterationsINTELShift = 22, SpvLoopControlSpeculatedIterationsINTELShift = 22,
SpvLoopControlNoFusionINTELShift = 23, SpvLoopControlNoFusionINTELShift = 23,
SpvLoopControlLoopCountINTELShift = 24,
SpvLoopControlMaxReinvocationDelayINTELShift = 25,
SpvLoopControlMax = 0x7fffffff, SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift; } SpvLoopControlShift;
@ -762,6 +825,8 @@ typedef enum SpvLoopControlMask_ {
SpvLoopControlMaxInterleavingINTELMask = 0x00200000, SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000, SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
SpvLoopControlNoFusionINTELMask = 0x00800000, SpvLoopControlNoFusionINTELMask = 0x00800000,
SpvLoopControlLoopCountINTELMask = 0x01000000,
SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
} SpvLoopControlMask; } SpvLoopControlMask;
typedef enum SpvFunctionControlShift_ { typedef enum SpvFunctionControlShift_ {
@ -966,6 +1031,9 @@ typedef enum SpvCapability_ {
SpvCapabilityShaderViewportIndex = 70, SpvCapabilityShaderViewportIndex = 70,
SpvCapabilityUniformDecoration = 71, SpvCapabilityUniformDecoration = 71,
SpvCapabilityCoreBuiltinsARM = 4165, SpvCapabilityCoreBuiltinsARM = 4165,
SpvCapabilityTileImageColorReadAccessEXT = 4166,
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
SpvCapabilityTileImageStencilReadAccessEXT = 4168,
SpvCapabilityFragmentShadingRateKHR = 4422, SpvCapabilityFragmentShadingRateKHR = 4422,
SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427, SpvCapabilityDrawParameters = 4427,
@ -997,6 +1065,9 @@ typedef enum SpvCapability_ {
SpvCapabilityRayQueryKHR = 4472, SpvCapabilityRayQueryKHR = 4472,
SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478, SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
SpvCapabilityRayTracingKHR = 4479, SpvCapabilityRayTracingKHR = 4479,
SpvCapabilityTextureSampleWeightedQCOM = 4484,
SpvCapabilityTextureBoxFilterQCOM = 4485,
SpvCapabilityTextureBlockMatchQCOM = 4486,
SpvCapabilityFloat16ImageAMD = 5008, SpvCapabilityFloat16ImageAMD = 5008,
SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityImageGatherBiasLodAMD = 5009,
SpvCapabilityFragmentMaskAMD = 5010, SpvCapabilityFragmentMaskAMD = 5010,
@ -1004,6 +1075,7 @@ typedef enum SpvCapability_ {
SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilityImageReadWriteLodAMD = 5015,
SpvCapabilityInt64ImageEXT = 5016, SpvCapabilityInt64ImageEXT = 5016,
SpvCapabilityShaderClockKHR = 5055, SpvCapabilityShaderClockKHR = 5055,
SpvCapabilityShaderEnqueueAMDX = 5067,
SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityGeometryShaderPassthroughNV = 5251,
SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerEXT = 5254,
@ -1045,6 +1117,7 @@ typedef enum SpvCapability_ {
SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
SpvCapabilityRayTracingPositionFetchKHR = 5336,
SpvCapabilityRayTracingNV = 5340, SpvCapabilityRayTracingNV = 5340,
SpvCapabilityRayTracingMotionBlurNV = 5341, SpvCapabilityRayTracingMotionBlurNV = 5341,
SpvCapabilityVulkanMemoryModel = 5345, SpvCapabilityVulkanMemoryModel = 5345,
@ -1062,8 +1135,12 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378, SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
SpvCapabilityDemoteToHelperInvocation = 5379, SpvCapabilityDemoteToHelperInvocation = 5379,
SpvCapabilityDemoteToHelperInvocationEXT = 5379, SpvCapabilityDemoteToHelperInvocationEXT = 5379,
SpvCapabilityDisplacementMicromapNV = 5380,
SpvCapabilityRayTracingOpacityMicromapEXT = 5381, SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
SpvCapabilityShaderInvocationReorderNV = 5383,
SpvCapabilityBindlessTextureNV = 5390, SpvCapabilityBindlessTextureNV = 5390,
SpvCapabilityRayQueryPositionFetchKHR = 5391,
SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@ -1096,10 +1173,13 @@ typedef enum SpvCapability_ {
SpvCapabilityFPGAMemoryAccessesINTEL = 5898, SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
SpvCapabilityFPGAClusterAttributesINTEL = 5904, SpvCapabilityFPGAClusterAttributesINTEL = 5904,
SpvCapabilityLoopFuseINTEL = 5906, SpvCapabilityLoopFuseINTEL = 5906,
SpvCapabilityFPGADSPControlINTEL = 5908,
SpvCapabilityMemoryAccessAliasingINTEL = 5910, SpvCapabilityMemoryAccessAliasingINTEL = 5910,
SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
SpvCapabilityFPGABufferLocationINTEL = 5920, SpvCapabilityFPGABufferLocationINTEL = 5920,
SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922, SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
SpvCapabilityUSMStorageClassesINTEL = 5935, SpvCapabilityUSMStorageClassesINTEL = 5935,
SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
SpvCapabilityIOPipesINTEL = 5943, SpvCapabilityIOPipesINTEL = 5943,
SpvCapabilityBlockingPipesINTEL = 5945, SpvCapabilityBlockingPipesINTEL = 5945,
SpvCapabilityFPGARegINTEL = 5948, SpvCapabilityFPGARegINTEL = 5948,
@ -1112,16 +1192,26 @@ typedef enum SpvCapability_ {
SpvCapabilityDotProduct = 6019, SpvCapabilityDotProduct = 6019,
SpvCapabilityDotProductKHR = 6019, SpvCapabilityDotProductKHR = 6019,
SpvCapabilityRayCullMaskKHR = 6020, SpvCapabilityRayCullMaskKHR = 6020,
SpvCapabilityCooperativeMatrixKHR = 6022,
SpvCapabilityBitInstructions = 6025, SpvCapabilityBitInstructions = 6025,
SpvCapabilityGroupNonUniformRotateKHR = 6026, SpvCapabilityGroupNonUniformRotateKHR = 6026,
SpvCapabilityAtomicFloat32AddEXT = 6033, SpvCapabilityAtomicFloat32AddEXT = 6033,
SpvCapabilityAtomicFloat64AddEXT = 6034, SpvCapabilityAtomicFloat64AddEXT = 6034,
SpvCapabilityLongConstantCompositeINTEL = 6089, SpvCapabilityLongCompositesINTEL = 6089,
SpvCapabilityOptNoneINTEL = 6094, SpvCapabilityOptNoneINTEL = 6094,
SpvCapabilityAtomicFloat16AddEXT = 6095, SpvCapabilityAtomicFloat16AddEXT = 6095,
SpvCapabilityDebugInfoModuleINTEL = 6114, SpvCapabilityDebugInfoModuleINTEL = 6114,
SpvCapabilityBFloat16ConversionINTEL = 6115,
SpvCapabilitySplitBarrierINTEL = 6141, SpvCapabilitySplitBarrierINTEL = 6141,
SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
SpvCapabilityFPMaxErrorINTEL = 6169,
SpvCapabilityFPGALatencyControlINTEL = 6171,
SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
SpvCapabilityGroupUniformArithmeticKHR = 6400, SpvCapabilityGroupUniformArithmeticKHR = 6400,
SpvCapabilityCacheControlsINTEL = 6441,
SpvCapabilityMax = 0x7fffffff, SpvCapabilityMax = 0x7fffffff,
} SpvCapability; } SpvCapability;
@ -1228,6 +1318,68 @@ typedef enum SpvPackedVectorFormat_ {
SpvPackedVectorFormatMax = 0x7fffffff, SpvPackedVectorFormatMax = 0x7fffffff,
} SpvPackedVectorFormat; } 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,
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 SpvOp_ { typedef enum SpvOp_ {
SpvOpNop = 0, SpvOpNop = 0,
SpvOpUndef = 1, SpvOpUndef = 1,
@ -1573,6 +1725,9 @@ typedef enum SpvOp_ {
SpvOpPtrEqual = 401, SpvOpPtrEqual = 401,
SpvOpPtrNotEqual = 402, SpvOpPtrNotEqual = 402,
SpvOpPtrDiff = 403, SpvOpPtrDiff = 403,
SpvOpColorAttachmentReadEXT = 4160,
SpvOpDepthAttachmentReadEXT = 4161,
SpvOpStencilAttachmentReadEXT = 4162,
SpvOpTerminateInvocation = 4416, SpvOpTerminateInvocation = 4416,
SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupBallotKHR = 4421,
SpvOpSubgroupFirstInvocationKHR = 4422, SpvOpSubgroupFirstInvocationKHR = 4422,
@ -1598,6 +1753,11 @@ typedef enum SpvOp_ {
SpvOpUDotAccSatKHR = 4454, SpvOpUDotAccSatKHR = 4454,
SpvOpSUDotAccSat = 4455, SpvOpSUDotAccSat = 4455,
SpvOpSUDotAccSatKHR = 4455, SpvOpSUDotAccSatKHR = 4455,
SpvOpTypeCooperativeMatrixKHR = 4456,
SpvOpCooperativeMatrixLoadKHR = 4457,
SpvOpCooperativeMatrixStoreKHR = 4458,
SpvOpCooperativeMatrixMulAddKHR = 4459,
SpvOpCooperativeMatrixLengthKHR = 4460,
SpvOpTypeRayQueryKHR = 4472, SpvOpTypeRayQueryKHR = 4472,
SpvOpRayQueryInitializeKHR = 4473, SpvOpRayQueryInitializeKHR = 4473,
SpvOpRayQueryTerminateKHR = 4474, SpvOpRayQueryTerminateKHR = 4474,
@ -1605,6 +1765,10 @@ typedef enum SpvOp_ {
SpvOpRayQueryConfirmIntersectionKHR = 4476, SpvOpRayQueryConfirmIntersectionKHR = 4476,
SpvOpRayQueryProceedKHR = 4477, SpvOpRayQueryProceedKHR = 4477,
SpvOpRayQueryGetIntersectionTypeKHR = 4479, SpvOpRayQueryGetIntersectionTypeKHR = 4479,
SpvOpImageSampleWeightedQCOM = 4480,
SpvOpImageBoxFilterQCOM = 4481,
SpvOpImageBlockMatchSSDQCOM = 4482,
SpvOpImageBlockMatchSADQCOM = 4483,
SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupIAddNonUniformAMD = 5000,
SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFAddNonUniformAMD = 5001,
SpvOpGroupFMinNonUniformAMD = 5002, SpvOpGroupFMinNonUniformAMD = 5002,
@ -1616,11 +1780,49 @@ typedef enum SpvOp_ {
SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentMaskFetchAMD = 5011,
SpvOpFragmentFetchAMD = 5012, SpvOpFragmentFetchAMD = 5012,
SpvOpReadClockKHR = 5056, SpvOpReadClockKHR = 5056,
SpvOpFinalizeNodePayloadsAMDX = 5075,
SpvOpFinishWritingNodePayloadAMDX = 5078,
SpvOpInitializeNodePayloadsAMDX = 5090,
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, SpvOpImageSampleFootprintNV = 5283,
SpvOpEmitMeshTasksEXT = 5294, SpvOpEmitMeshTasksEXT = 5294,
SpvOpSetMeshOutputsEXT = 5295, SpvOpSetMeshOutputsEXT = 5295,
SpvOpGroupNonUniformPartitionNV = 5296, SpvOpGroupNonUniformPartitionNV = 5296,
SpvOpWritePackedPrimitiveIndices4x8NV = 5299, SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
SpvOpFetchMicroTriangleVertexPositionNV = 5300,
SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
SpvOpReportIntersectionKHR = 5334, SpvOpReportIntersectionKHR = 5334,
SpvOpReportIntersectionNV = 5334, SpvOpReportIntersectionNV = 5334,
SpvOpIgnoreIntersectionNV = 5335, SpvOpIgnoreIntersectionNV = 5335,
@ -1628,6 +1830,7 @@ typedef enum SpvOp_ {
SpvOpTraceNV = 5337, SpvOpTraceNV = 5337,
SpvOpTraceMotionNV = 5338, SpvOpTraceMotionNV = 5338,
SpvOpTraceRayMotionNV = 5339, SpvOpTraceRayMotionNV = 5339,
SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
SpvOpTypeAccelerationStructureKHR = 5341, SpvOpTypeAccelerationStructureKHR = 5341,
SpvOpTypeAccelerationStructureNV = 5341, SpvOpTypeAccelerationStructureNV = 5341,
SpvOpExecuteCallableNV = 5344, SpvOpExecuteCallableNV = 5344,
@ -1889,6 +2092,9 @@ typedef enum SpvOp_ {
SpvOpTypeStructContinuedINTEL = 6090, SpvOpTypeStructContinuedINTEL = 6090,
SpvOpConstantCompositeContinuedINTEL = 6091, SpvOpConstantCompositeContinuedINTEL = 6091,
SpvOpSpecConstantCompositeContinuedINTEL = 6092, SpvOpSpecConstantCompositeContinuedINTEL = 6092,
SpvOpCompositeConstructContinuedINTEL = 6096,
SpvOpConvertFToBF16INTEL = 6116,
SpvOpConvertBF16ToFINTEL = 6117,
SpvOpControlBarrierArriveINTEL = 6142, SpvOpControlBarrierArriveINTEL = 6142,
SpvOpControlBarrierWaitINTEL = 6143, SpvOpControlBarrierWaitINTEL = 6143,
SpvOpGroupIMulKHR = 6401, SpvOpGroupIMulKHR = 6401,
@ -2254,6 +2460,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
case SpvOpPtrDiff: *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 SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
@ -2273,6 +2482,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpSUDotAccSat: *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 SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@ -2280,6 +2494,10 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpRayQueryGetIntersectionTypeKHR: *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 SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@ -2291,17 +2509,56 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpReadClockKHR: *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 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 SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@ -2559,6 +2816,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpSpecConstantCompositeContinuedINTEL: *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 SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;

View File

@ -69,6 +69,10 @@ enum SourceLanguage {
SourceLanguageHLSL = 5, SourceLanguageHLSL = 5,
SourceLanguageCPP_for_OpenCL = 6, SourceLanguageCPP_for_OpenCL = 6,
SourceLanguageSYCL = 7, SourceLanguageSYCL = 7,
SourceLanguageHERO_C = 8,
SourceLanguageNZSL = 9,
SourceLanguageWGSL = 10,
SourceLanguageSlang = 11,
SourceLanguageMax = 0x7fffffff, SourceLanguageMax = 0x7fffffff,
}; };
@ -156,6 +160,9 @@ enum ExecutionMode {
ExecutionModeSubgroupsPerWorkgroupId = 37, ExecutionModeSubgroupsPerWorkgroupId = 37,
ExecutionModeLocalSizeId = 38, ExecutionModeLocalSizeId = 38,
ExecutionModeLocalSizeHintId = 39, ExecutionModeLocalSizeHintId = 39,
ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
ExecutionModeSubgroupUniformControlFlowKHR = 4421, ExecutionModeSubgroupUniformControlFlowKHR = 4421,
ExecutionModePostDepthCoverage = 4446, ExecutionModePostDepthCoverage = 4446,
ExecutionModeDenormPreserve = 4459, ExecutionModeDenormPreserve = 4459,
@ -165,6 +172,11 @@ enum ExecutionMode {
ExecutionModeRoundingModeRTZ = 4463, ExecutionModeRoundingModeRTZ = 4463,
ExecutionModeEarlyAndLateFragmentTestsAMD = 5017, ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeStencilRefReplacingEXT = 5027,
ExecutionModeCoalescingAMDX = 5069,
ExecutionModeMaxNodeRecursionAMDX = 5071,
ExecutionModeStaticNumWorkgroupsAMDX = 5072,
ExecutionModeShaderIndexAMDX = 5073,
ExecutionModeMaxNumWorkgroupsAMDX = 5077,
ExecutionModeStencilRefUnchangedFrontAMD = 5079, ExecutionModeStencilRefUnchangedFrontAMD = 5079,
ExecutionModeStencilRefGreaterFrontAMD = 5080, ExecutionModeStencilRefGreaterFrontAMD = 5080,
ExecutionModeStencilRefLessFrontAMD = 5081, ExecutionModeStencilRefLessFrontAMD = 5081,
@ -195,6 +207,8 @@ enum ExecutionMode {
ExecutionModeNoGlobalOffsetINTEL = 5895, ExecutionModeNoGlobalOffsetINTEL = 5895,
ExecutionModeNumSIMDWorkitemsINTEL = 5896, ExecutionModeNumSIMDWorkitemsINTEL = 5896,
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeStreamingInterfaceINTEL = 6154,
ExecutionModeRegisterMapInterfaceINTEL = 6160,
ExecutionModeNamedBarrierCountINTEL = 6417, ExecutionModeNamedBarrierCountINTEL = 6417,
ExecutionModeMax = 0x7fffffff, ExecutionModeMax = 0x7fffffff,
}; };
@ -213,6 +227,9 @@ enum StorageClass {
StorageClassAtomicCounter = 10, StorageClassAtomicCounter = 10,
StorageClassImage = 11, StorageClassImage = 11,
StorageClassStorageBuffer = 12, StorageClassStorageBuffer = 12,
StorageClassTileImageEXT = 4172,
StorageClassNodePayloadAMDX = 5068,
StorageClassNodeOutputPayloadAMDX = 5076,
StorageClassCallableDataKHR = 5328, StorageClassCallableDataKHR = 5328,
StorageClassCallableDataNV = 5328, StorageClassCallableDataNV = 5328,
StorageClassIncomingCallableDataKHR = 5329, StorageClassIncomingCallableDataKHR = 5329,
@ -227,6 +244,7 @@ enum StorageClass {
StorageClassShaderRecordBufferNV = 5343, StorageClassShaderRecordBufferNV = 5343,
StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349, StorageClassPhysicalStorageBufferEXT = 5349,
StorageClassHitObjectAttributeNV = 5385,
StorageClassTaskPayloadWorkgroupEXT = 5402, StorageClassTaskPayloadWorkgroupEXT = 5402,
StorageClassCodeSectionINTEL = 5605, StorageClassCodeSectionINTEL = 5605,
StorageClassDeviceOnlyINTEL = 5936, StorageClassDeviceOnlyINTEL = 5936,
@ -242,6 +260,7 @@ enum Dim {
DimRect = 4, DimRect = 4,
DimBuffer = 5, DimBuffer = 5,
DimSubpassData = 6, DimSubpassData = 6,
DimTileImageDataEXT = 4173,
DimMax = 0x7fffffff, DimMax = 0x7fffffff,
}; };
@ -348,6 +367,8 @@ enum ImageChannelDataType {
ImageChannelDataTypeFloat = 14, ImageChannelDataTypeFloat = 14,
ImageChannelDataTypeUnormInt24 = 15, ImageChannelDataTypeUnormInt24 = 15,
ImageChannelDataTypeUnormInt101010_2 = 16, ImageChannelDataTypeUnormInt101010_2 = 16,
ImageChannelDataTypeUnsignedIntRaw10EXT = 19,
ImageChannelDataTypeUnsignedIntRaw12EXT = 20,
ImageChannelDataTypeMax = 0x7fffffff, ImageChannelDataTypeMax = 0x7fffffff,
}; };
@ -452,6 +473,7 @@ enum FunctionParameterAttribute {
FunctionParameterAttributeNoCapture = 5, FunctionParameterAttributeNoCapture = 5,
FunctionParameterAttributeNoWrite = 6, FunctionParameterAttributeNoWrite = 6,
FunctionParameterAttributeNoReadWrite = 7, FunctionParameterAttributeNoReadWrite = 7,
FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
FunctionParameterAttributeMax = 0x7fffffff, FunctionParameterAttributeMax = 0x7fffffff,
}; };
@ -505,7 +527,13 @@ enum Decoration {
DecorationMaxByteOffsetId = 47, DecorationMaxByteOffsetId = 47,
DecorationNoSignedWrap = 4469, DecorationNoSignedWrap = 4469,
DecorationNoUnsignedWrap = 4470, DecorationNoUnsignedWrap = 4470,
DecorationWeightTextureQCOM = 4487,
DecorationBlockMatchTextureQCOM = 4488,
DecorationExplicitInterpAMD = 4999, DecorationExplicitInterpAMD = 4999,
DecorationNodeSharesPayloadLimitsWithAMDX = 5019,
DecorationNodeMaxPayloadsAMDX = 5020,
DecorationTrackFinishWritingAMDX = 5078,
DecorationPayloadNodeNameAMDX = 5091,
DecorationOverrideCoverageNV = 5248, DecorationOverrideCoverageNV = 5248,
DecorationPassthroughNV = 5250, DecorationPassthroughNV = 5250,
DecorationViewportRelativeNV = 5252, DecorationViewportRelativeNV = 5252,
@ -522,6 +550,7 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355, DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356, DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356, DecorationAliasedPointerEXT = 5356,
DecorationHitObjectShaderRecordBufferNV = 5386,
DecorationBindlessSamplerNV = 5398, DecorationBindlessSamplerNV = 5398,
DecorationBindlessImageNV = 5399, DecorationBindlessImageNV = 5399,
DecorationBoundSamplerNV = 5400, DecorationBoundSamplerNV = 5400,
@ -554,20 +583,45 @@ enum Decoration {
DecorationMergeINTEL = 5834, DecorationMergeINTEL = 5834,
DecorationBankBitsINTEL = 5835, DecorationBankBitsINTEL = 5835,
DecorationForcePow2DepthINTEL = 5836, DecorationForcePow2DepthINTEL = 5836,
DecorationStridesizeINTEL = 5883,
DecorationWordsizeINTEL = 5884,
DecorationTrueDualPortINTEL = 5885,
DecorationBurstCoalesceINTEL = 5899, DecorationBurstCoalesceINTEL = 5899,
DecorationCacheSizeINTEL = 5900, DecorationCacheSizeINTEL = 5900,
DecorationDontStaticallyCoalesceINTEL = 5901, DecorationDontStaticallyCoalesceINTEL = 5901,
DecorationPrefetchINTEL = 5902, DecorationPrefetchINTEL = 5902,
DecorationStallEnableINTEL = 5905, DecorationStallEnableINTEL = 5905,
DecorationFuseLoopsInFunctionINTEL = 5907, DecorationFuseLoopsInFunctionINTEL = 5907,
DecorationMathOpDSPModeINTEL = 5909,
DecorationAliasScopeINTEL = 5914, DecorationAliasScopeINTEL = 5914,
DecorationNoAliasINTEL = 5915, DecorationNoAliasINTEL = 5915,
DecorationInitiationIntervalINTEL = 5917,
DecorationMaxConcurrencyINTEL = 5918,
DecorationPipelineEnableINTEL = 5919,
DecorationBufferLocationINTEL = 5921, DecorationBufferLocationINTEL = 5921,
DecorationIOPipeStorageINTEL = 5944, DecorationIOPipeStorageINTEL = 5944,
DecorationFunctionFloatingPointModeINTEL = 6080, DecorationFunctionFloatingPointModeINTEL = 6080,
DecorationSingleElementVectorINTEL = 6085, DecorationSingleElementVectorINTEL = 6085,
DecorationVectorComputeCallableFunctionINTEL = 6087, DecorationVectorComputeCallableFunctionINTEL = 6087,
DecorationMediaBlockIOINTEL = 6140, 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, DecorationMax = 0x7fffffff,
}; };
@ -643,6 +697,8 @@ enum BuiltIn {
BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordSmoothSampleAMD = 4997,
BuiltInBaryCoordPullModelAMD = 4998, BuiltInBaryCoordPullModelAMD = 4998,
BuiltInFragStencilRefEXT = 5014, BuiltInFragStencilRefEXT = 5014,
BuiltInCoalescedInputCountAMDX = 5021,
BuiltInShaderIndexAMDX = 5073,
BuiltInViewportMaskNV = 5253, BuiltInViewportMaskNV = 5253,
BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryPositionNV = 5257,
BuiltInSecondaryViewportMaskNV = 5258, BuiltInSecondaryViewportMaskNV = 5258,
@ -695,6 +751,9 @@ enum BuiltIn {
BuiltInHitKindKHR = 5333, BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333, BuiltInHitKindNV = 5333,
BuiltInCurrentRayTimeNV = 5334, BuiltInCurrentRayTimeNV = 5334,
BuiltInHitTriangleVertexPositionsKHR = 5335,
BuiltInHitMicroTriangleVertexPositionsNV = 5337,
BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
BuiltInIncomingRayFlagsKHR = 5351, BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351, BuiltInIncomingRayFlagsNV = 5351,
BuiltInRayGeometryIndexKHR = 5352, BuiltInRayGeometryIndexKHR = 5352,
@ -702,6 +761,8 @@ enum BuiltIn {
BuiltInSMCountNV = 5375, BuiltInSMCountNV = 5375,
BuiltInWarpIDNV = 5376, BuiltInWarpIDNV = 5376,
BuiltInSMIDNV = 5377, BuiltInSMIDNV = 5377,
BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
BuiltInHitKindBackFacingMicroTriangleNV = 5406,
BuiltInCullMaskKHR = 6021, BuiltInCullMaskKHR = 6021,
BuiltInMax = 0x7fffffff, BuiltInMax = 0x7fffffff,
}; };
@ -736,6 +797,8 @@ enum LoopControlShift {
LoopControlMaxInterleavingINTELShift = 21, LoopControlMaxInterleavingINTELShift = 21,
LoopControlSpeculatedIterationsINTELShift = 22, LoopControlSpeculatedIterationsINTELShift = 22,
LoopControlNoFusionINTELShift = 23, LoopControlNoFusionINTELShift = 23,
LoopControlLoopCountINTELShift = 24,
LoopControlMaxReinvocationDelayINTELShift = 25,
LoopControlMax = 0x7fffffff, LoopControlMax = 0x7fffffff,
}; };
@ -758,6 +821,8 @@ enum LoopControlMask {
LoopControlMaxInterleavingINTELMask = 0x00200000, LoopControlMaxInterleavingINTELMask = 0x00200000,
LoopControlSpeculatedIterationsINTELMask = 0x00400000, LoopControlSpeculatedIterationsINTELMask = 0x00400000,
LoopControlNoFusionINTELMask = 0x00800000, LoopControlNoFusionINTELMask = 0x00800000,
LoopControlLoopCountINTELMask = 0x01000000,
LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
}; };
enum FunctionControlShift { enum FunctionControlShift {
@ -962,6 +1027,9 @@ enum Capability {
CapabilityShaderViewportIndex = 70, CapabilityShaderViewportIndex = 70,
CapabilityUniformDecoration = 71, CapabilityUniformDecoration = 71,
CapabilityCoreBuiltinsARM = 4165, CapabilityCoreBuiltinsARM = 4165,
CapabilityTileImageColorReadAccessEXT = 4166,
CapabilityTileImageDepthReadAccessEXT = 4167,
CapabilityTileImageStencilReadAccessEXT = 4168,
CapabilityFragmentShadingRateKHR = 4422, CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423, CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427, CapabilityDrawParameters = 4427,
@ -993,6 +1061,9 @@ enum Capability {
CapabilityRayQueryKHR = 4472, CapabilityRayQueryKHR = 4472,
CapabilityRayTraversalPrimitiveCullingKHR = 4478, CapabilityRayTraversalPrimitiveCullingKHR = 4478,
CapabilityRayTracingKHR = 4479, CapabilityRayTracingKHR = 4479,
CapabilityTextureSampleWeightedQCOM = 4484,
CapabilityTextureBoxFilterQCOM = 4485,
CapabilityTextureBlockMatchQCOM = 4486,
CapabilityFloat16ImageAMD = 5008, CapabilityFloat16ImageAMD = 5008,
CapabilityImageGatherBiasLodAMD = 5009, CapabilityImageGatherBiasLodAMD = 5009,
CapabilityFragmentMaskAMD = 5010, CapabilityFragmentMaskAMD = 5010,
@ -1000,6 +1071,7 @@ enum Capability {
CapabilityImageReadWriteLodAMD = 5015, CapabilityImageReadWriteLodAMD = 5015,
CapabilityInt64ImageEXT = 5016, CapabilityInt64ImageEXT = 5016,
CapabilityShaderClockKHR = 5055, CapabilityShaderClockKHR = 5055,
CapabilityShaderEnqueueAMDX = 5067,
CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilitySampleMaskOverrideCoverageNV = 5249,
CapabilityGeometryShaderPassthroughNV = 5251, CapabilityGeometryShaderPassthroughNV = 5251,
CapabilityShaderViewportIndexLayerEXT = 5254, CapabilityShaderViewportIndexLayerEXT = 5254,
@ -1041,6 +1113,7 @@ enum Capability {
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
CapabilityRayTracingPositionFetchKHR = 5336,
CapabilityRayTracingNV = 5340, CapabilityRayTracingNV = 5340,
CapabilityRayTracingMotionBlurNV = 5341, CapabilityRayTracingMotionBlurNV = 5341,
CapabilityVulkanMemoryModel = 5345, CapabilityVulkanMemoryModel = 5345,
@ -1058,8 +1131,12 @@ enum Capability {
CapabilityFragmentShaderPixelInterlockEXT = 5378, CapabilityFragmentShaderPixelInterlockEXT = 5378,
CapabilityDemoteToHelperInvocation = 5379, CapabilityDemoteToHelperInvocation = 5379,
CapabilityDemoteToHelperInvocationEXT = 5379, CapabilityDemoteToHelperInvocationEXT = 5379,
CapabilityDisplacementMicromapNV = 5380,
CapabilityRayTracingOpacityMicromapEXT = 5381, CapabilityRayTracingOpacityMicromapEXT = 5381,
CapabilityShaderInvocationReorderNV = 5383,
CapabilityBindlessTextureNV = 5390, CapabilityBindlessTextureNV = 5390,
CapabilityRayQueryPositionFetchKHR = 5391,
CapabilityRayTracingDisplacementMicromapNV = 5409,
CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupShuffleINTEL = 5568,
CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilitySubgroupImageBlockIOINTEL = 5570,
@ -1092,10 +1169,13 @@ enum Capability {
CapabilityFPGAMemoryAccessesINTEL = 5898, CapabilityFPGAMemoryAccessesINTEL = 5898,
CapabilityFPGAClusterAttributesINTEL = 5904, CapabilityFPGAClusterAttributesINTEL = 5904,
CapabilityLoopFuseINTEL = 5906, CapabilityLoopFuseINTEL = 5906,
CapabilityFPGADSPControlINTEL = 5908,
CapabilityMemoryAccessAliasingINTEL = 5910, CapabilityMemoryAccessAliasingINTEL = 5910,
CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
CapabilityFPGABufferLocationINTEL = 5920, CapabilityFPGABufferLocationINTEL = 5920,
CapabilityArbitraryPrecisionFixedPointINTEL = 5922, CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
CapabilityUSMStorageClassesINTEL = 5935, CapabilityUSMStorageClassesINTEL = 5935,
CapabilityRuntimeAlignedAttributeINTEL = 5939,
CapabilityIOPipesINTEL = 5943, CapabilityIOPipesINTEL = 5943,
CapabilityBlockingPipesINTEL = 5945, CapabilityBlockingPipesINTEL = 5945,
CapabilityFPGARegINTEL = 5948, CapabilityFPGARegINTEL = 5948,
@ -1108,16 +1188,26 @@ enum Capability {
CapabilityDotProduct = 6019, CapabilityDotProduct = 6019,
CapabilityDotProductKHR = 6019, CapabilityDotProductKHR = 6019,
CapabilityRayCullMaskKHR = 6020, CapabilityRayCullMaskKHR = 6020,
CapabilityCooperativeMatrixKHR = 6022,
CapabilityBitInstructions = 6025, CapabilityBitInstructions = 6025,
CapabilityGroupNonUniformRotateKHR = 6026, CapabilityGroupNonUniformRotateKHR = 6026,
CapabilityAtomicFloat32AddEXT = 6033, CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034, CapabilityAtomicFloat64AddEXT = 6034,
CapabilityLongConstantCompositeINTEL = 6089, CapabilityLongCompositesINTEL = 6089,
CapabilityOptNoneINTEL = 6094, CapabilityOptNoneINTEL = 6094,
CapabilityAtomicFloat16AddEXT = 6095, CapabilityAtomicFloat16AddEXT = 6095,
CapabilityDebugInfoModuleINTEL = 6114, CapabilityDebugInfoModuleINTEL = 6114,
CapabilityBFloat16ConversionINTEL = 6115,
CapabilitySplitBarrierINTEL = 6141, CapabilitySplitBarrierINTEL = 6141,
CapabilityFPGAClusterAttributesV2INTEL = 6150,
CapabilityFPGAKernelAttributesv2INTEL = 6161,
CapabilityFPMaxErrorINTEL = 6169,
CapabilityFPGALatencyControlINTEL = 6171,
CapabilityFPGAArgumentInterfacesINTEL = 6174,
CapabilityGlobalVariableHostAccessINTEL = 6187,
CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
CapabilityGroupUniformArithmeticKHR = 6400, CapabilityGroupUniformArithmeticKHR = 6400,
CapabilityCacheControlsINTEL = 6441,
CapabilityMax = 0x7fffffff, CapabilityMax = 0x7fffffff,
}; };
@ -1224,6 +1314,68 @@ enum PackedVectorFormat {
PackedVectorFormatMax = 0x7fffffff, 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,
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 Op { enum Op {
OpNop = 0, OpNop = 0,
OpUndef = 1, OpUndef = 1,
@ -1569,6 +1721,9 @@ enum Op {
OpPtrEqual = 401, OpPtrEqual = 401,
OpPtrNotEqual = 402, OpPtrNotEqual = 402,
OpPtrDiff = 403, OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416, OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421, OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422, OpSubgroupFirstInvocationKHR = 4422,
@ -1594,6 +1749,11 @@ enum Op {
OpUDotAccSatKHR = 4454, OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455, OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455, OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472, OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473, OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474, OpRayQueryTerminateKHR = 4474,
@ -1601,6 +1761,10 @@ enum Op {
OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477, OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479, OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000, OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001, OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002, OpGroupFMinNonUniformAMD = 5002,
@ -1612,11 +1776,49 @@ enum Op {
OpFragmentMaskFetchAMD = 5011, OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012, OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056, OpReadClockKHR = 5056,
OpFinalizeNodePayloadsAMDX = 5075,
OpFinishWritingNodePayloadAMDX = 5078,
OpInitializeNodePayloadsAMDX = 5090,
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, OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294, OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295, OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296, OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299, OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpReportIntersectionKHR = 5334, OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334, OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
@ -1624,6 +1826,7 @@ enum Op {
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338, OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339, OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1885,6 +2088,9 @@ enum Op {
OpTypeStructContinuedINTEL = 6090, OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091, OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092, OpSpecConstantCompositeContinuedINTEL = 6092,
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142, OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143, OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401, OpGroupIMulKHR = 6401,
@ -2250,6 +2456,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpPtrEqual: *hasResult = true; *hasResultType = true; break; case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
case OpPtrDiff: *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 OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
@ -2269,6 +2478,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
case OpSUDotAccSat: *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 OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@ -2276,6 +2490,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetIntersectionTypeKHR: *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 OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@ -2287,17 +2505,56 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
case OpReadClockKHR: *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 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 OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case OpTraceNV: *hasResult = false; *hasResultType = false; break; case OpTraceNV: *hasResult = false; *hasResultType = false; break;
case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@ -2555,6 +2812,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpSpecConstantCompositeContinuedINTEL: *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 OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
@ -2569,18 +2829,52 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
} }
#endif /* SPV_ENABLE_UTILITY_CODE */ #endif /* SPV_ENABLE_UTILITY_CODE */
// Overload operator| for mask bit combining // 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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)); }
} // end namespace spv } // end namespace spv

View File

@ -69,6 +69,10 @@ enum class SourceLanguage : unsigned {
HLSL = 5, HLSL = 5,
CPP_for_OpenCL = 6, CPP_for_OpenCL = 6,
SYCL = 7, SYCL = 7,
HERO_C = 8,
NZSL = 9,
WGSL = 10,
Slang = 11,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -156,6 +160,9 @@ enum class ExecutionMode : unsigned {
SubgroupsPerWorkgroupId = 37, SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38, LocalSizeId = 38,
LocalSizeHintId = 39, LocalSizeHintId = 39,
NonCoherentColorAttachmentReadEXT = 4169,
NonCoherentDepthAttachmentReadEXT = 4170,
NonCoherentStencilAttachmentReadEXT = 4171,
SubgroupUniformControlFlowKHR = 4421, SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446, PostDepthCoverage = 4446,
DenormPreserve = 4459, DenormPreserve = 4459,
@ -165,6 +172,11 @@ enum class ExecutionMode : unsigned {
RoundingModeRTZ = 4463, RoundingModeRTZ = 4463,
EarlyAndLateFragmentTestsAMD = 5017, EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027, StencilRefReplacingEXT = 5027,
CoalescingAMDX = 5069,
MaxNodeRecursionAMDX = 5071,
StaticNumWorkgroupsAMDX = 5072,
ShaderIndexAMDX = 5073,
MaxNumWorkgroupsAMDX = 5077,
StencilRefUnchangedFrontAMD = 5079, StencilRefUnchangedFrontAMD = 5079,
StencilRefGreaterFrontAMD = 5080, StencilRefGreaterFrontAMD = 5080,
StencilRefLessFrontAMD = 5081, StencilRefLessFrontAMD = 5081,
@ -195,6 +207,8 @@ enum class ExecutionMode : unsigned {
NoGlobalOffsetINTEL = 5895, NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896, NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903, SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417, NamedBarrierCountINTEL = 6417,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -213,6 +227,9 @@ enum class StorageClass : unsigned {
AtomicCounter = 10, AtomicCounter = 10,
Image = 11, Image = 11,
StorageBuffer = 12, StorageBuffer = 12,
TileImageEXT = 4172,
NodePayloadAMDX = 5068,
NodeOutputPayloadAMDX = 5076,
CallableDataKHR = 5328, CallableDataKHR = 5328,
CallableDataNV = 5328, CallableDataNV = 5328,
IncomingCallableDataKHR = 5329, IncomingCallableDataKHR = 5329,
@ -227,6 +244,7 @@ enum class StorageClass : unsigned {
ShaderRecordBufferNV = 5343, ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349, PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349, PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402, TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605, CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936, DeviceOnlyINTEL = 5936,
@ -242,6 +260,7 @@ enum class Dim : unsigned {
Rect = 4, Rect = 4,
Buffer = 5, Buffer = 5,
SubpassData = 6, SubpassData = 6,
TileImageDataEXT = 4173,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -348,6 +367,8 @@ enum class ImageChannelDataType : unsigned {
Float = 14, Float = 14,
UnormInt24 = 15, UnormInt24 = 15,
UnormInt101010_2 = 16, UnormInt101010_2 = 16,
UnsignedIntRaw10EXT = 19,
UnsignedIntRaw12EXT = 20,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -452,6 +473,7 @@ enum class FunctionParameterAttribute : unsigned {
NoCapture = 5, NoCapture = 5,
NoWrite = 6, NoWrite = 6,
NoReadWrite = 7, NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -505,7 +527,13 @@ enum class Decoration : unsigned {
MaxByteOffsetId = 47, MaxByteOffsetId = 47,
NoSignedWrap = 4469, NoSignedWrap = 4469,
NoUnsignedWrap = 4470, NoUnsignedWrap = 4470,
WeightTextureQCOM = 4487,
BlockMatchTextureQCOM = 4488,
ExplicitInterpAMD = 4999, ExplicitInterpAMD = 4999,
NodeSharesPayloadLimitsWithAMDX = 5019,
NodeMaxPayloadsAMDX = 5020,
TrackFinishWritingAMDX = 5078,
PayloadNodeNameAMDX = 5091,
OverrideCoverageNV = 5248, OverrideCoverageNV = 5248,
PassthroughNV = 5250, PassthroughNV = 5250,
ViewportRelativeNV = 5252, ViewportRelativeNV = 5252,
@ -522,6 +550,7 @@ enum class Decoration : unsigned {
RestrictPointerEXT = 5355, RestrictPointerEXT = 5355,
AliasedPointer = 5356, AliasedPointer = 5356,
AliasedPointerEXT = 5356, AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398, BindlessSamplerNV = 5398,
BindlessImageNV = 5399, BindlessImageNV = 5399,
BoundSamplerNV = 5400, BoundSamplerNV = 5400,
@ -554,20 +583,45 @@ enum class Decoration : unsigned {
MergeINTEL = 5834, MergeINTEL = 5834,
BankBitsINTEL = 5835, BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836, ForcePow2DepthINTEL = 5836,
StridesizeINTEL = 5883,
WordsizeINTEL = 5884,
TrueDualPortINTEL = 5885,
BurstCoalesceINTEL = 5899, BurstCoalesceINTEL = 5899,
CacheSizeINTEL = 5900, CacheSizeINTEL = 5900,
DontStaticallyCoalesceINTEL = 5901, DontStaticallyCoalesceINTEL = 5901,
PrefetchINTEL = 5902, PrefetchINTEL = 5902,
StallEnableINTEL = 5905, StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907, FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914, AliasScopeINTEL = 5914,
NoAliasINTEL = 5915, NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921, BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944, IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080, FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085, SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087, VectorComputeCallableFunctionINTEL = 6087,
MediaBlockIOINTEL = 6140, 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, Max = 0x7fffffff,
}; };
@ -643,6 +697,8 @@ enum class BuiltIn : unsigned {
BaryCoordSmoothSampleAMD = 4997, BaryCoordSmoothSampleAMD = 4997,
BaryCoordPullModelAMD = 4998, BaryCoordPullModelAMD = 4998,
FragStencilRefEXT = 5014, FragStencilRefEXT = 5014,
CoalescedInputCountAMDX = 5021,
ShaderIndexAMDX = 5073,
ViewportMaskNV = 5253, ViewportMaskNV = 5253,
SecondaryPositionNV = 5257, SecondaryPositionNV = 5257,
SecondaryViewportMaskNV = 5258, SecondaryViewportMaskNV = 5258,
@ -695,6 +751,9 @@ enum class BuiltIn : unsigned {
HitKindKHR = 5333, HitKindKHR = 5333,
HitKindNV = 5333, HitKindNV = 5333,
CurrentRayTimeNV = 5334, CurrentRayTimeNV = 5334,
HitTriangleVertexPositionsKHR = 5335,
HitMicroTriangleVertexPositionsNV = 5337,
HitMicroTriangleVertexBarycentricsNV = 5344,
IncomingRayFlagsKHR = 5351, IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351, IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352, RayGeometryIndexKHR = 5352,
@ -702,6 +761,8 @@ enum class BuiltIn : unsigned {
SMCountNV = 5375, SMCountNV = 5375,
WarpIDNV = 5376, WarpIDNV = 5376,
SMIDNV = 5377, SMIDNV = 5377,
HitKindFrontFacingMicroTriangleNV = 5405,
HitKindBackFacingMicroTriangleNV = 5406,
CullMaskKHR = 6021, CullMaskKHR = 6021,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -736,6 +797,8 @@ enum class LoopControlShift : unsigned {
MaxInterleavingINTEL = 21, MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22, SpeculatedIterationsINTEL = 22,
NoFusionINTEL = 23, NoFusionINTEL = 23,
LoopCountINTEL = 24,
MaxReinvocationDelayINTEL = 25,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -758,6 +821,8 @@ enum class LoopControlMask : unsigned {
MaxInterleavingINTEL = 0x00200000, MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000, SpeculatedIterationsINTEL = 0x00400000,
NoFusionINTEL = 0x00800000, NoFusionINTEL = 0x00800000,
LoopCountINTEL = 0x01000000,
MaxReinvocationDelayINTEL = 0x02000000,
}; };
enum class FunctionControlShift : unsigned { enum class FunctionControlShift : unsigned {
@ -962,6 +1027,9 @@ enum class Capability : unsigned {
ShaderViewportIndex = 70, ShaderViewportIndex = 70,
UniformDecoration = 71, UniformDecoration = 71,
CoreBuiltinsARM = 4165, CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
TileImageStencilReadAccessEXT = 4168,
FragmentShadingRateKHR = 4422, FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423, SubgroupBallotKHR = 4423,
DrawParameters = 4427, DrawParameters = 4427,
@ -993,6 +1061,9 @@ enum class Capability : unsigned {
RayQueryKHR = 4472, RayQueryKHR = 4472,
RayTraversalPrimitiveCullingKHR = 4478, RayTraversalPrimitiveCullingKHR = 4478,
RayTracingKHR = 4479, RayTracingKHR = 4479,
TextureSampleWeightedQCOM = 4484,
TextureBoxFilterQCOM = 4485,
TextureBlockMatchQCOM = 4486,
Float16ImageAMD = 5008, Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009, ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010, FragmentMaskAMD = 5010,
@ -1000,6 +1071,7 @@ enum class Capability : unsigned {
ImageReadWriteLodAMD = 5015, ImageReadWriteLodAMD = 5015,
Int64ImageEXT = 5016, Int64ImageEXT = 5016,
ShaderClockKHR = 5055, ShaderClockKHR = 5055,
ShaderEnqueueAMDX = 5067,
SampleMaskOverrideCoverageNV = 5249, SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251, GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerEXT = 5254,
@ -1041,6 +1113,7 @@ enum class Capability : unsigned {
UniformTexelBufferArrayNonUniformIndexingEXT = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingPositionFetchKHR = 5336,
RayTracingNV = 5340, RayTracingNV = 5340,
RayTracingMotionBlurNV = 5341, RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345, VulkanMemoryModel = 5345,
@ -1058,8 +1131,12 @@ enum class Capability : unsigned {
FragmentShaderPixelInterlockEXT = 5378, FragmentShaderPixelInterlockEXT = 5378,
DemoteToHelperInvocation = 5379, DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379, DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381, RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390, BindlessTextureNV = 5390,
RayQueryPositionFetchKHR = 5391,
RayTracingDisplacementMicromapNV = 5409,
SubgroupShuffleINTEL = 5568, SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569, SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570, SubgroupImageBlockIOINTEL = 5570,
@ -1092,10 +1169,13 @@ enum class Capability : unsigned {
FPGAMemoryAccessesINTEL = 5898, FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904, FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906, LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910, MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920, FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922, ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935, USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943, IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945, BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948, FPGARegINTEL = 5948,
@ -1108,16 +1188,26 @@ enum class Capability : unsigned {
DotProduct = 6019, DotProduct = 6019,
DotProductKHR = 6019, DotProductKHR = 6019,
RayCullMaskKHR = 6020, RayCullMaskKHR = 6020,
CooperativeMatrixKHR = 6022,
BitInstructions = 6025, BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026, GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033, AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034, AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089, LongCompositesINTEL = 6089,
OptNoneINTEL = 6094, OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095, AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114, DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
SplitBarrierINTEL = 6141, SplitBarrierINTEL = 6141,
FPGAClusterAttributesV2INTEL = 6150,
FPGAKernelAttributesv2INTEL = 6161,
FPMaxErrorINTEL = 6169,
FPGALatencyControlINTEL = 6171,
FPGAArgumentInterfacesINTEL = 6174,
GlobalVariableHostAccessINTEL = 6187,
GlobalVariableFPGADecorationsINTEL = 6189,
GroupUniformArithmeticKHR = 6400, GroupUniformArithmeticKHR = 6400,
CacheControlsINTEL = 6441,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -1224,6 +1314,68 @@ enum class PackedVectorFormat : unsigned {
Max = 0x7fffffff, 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,
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 Op : unsigned { enum class Op : unsigned {
OpNop = 0, OpNop = 0,
OpUndef = 1, OpUndef = 1,
@ -1569,6 +1721,9 @@ enum class Op : unsigned {
OpPtrEqual = 401, OpPtrEqual = 401,
OpPtrNotEqual = 402, OpPtrNotEqual = 402,
OpPtrDiff = 403, OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416, OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421, OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422, OpSubgroupFirstInvocationKHR = 4422,
@ -1594,6 +1749,11 @@ enum class Op : unsigned {
OpUDotAccSatKHR = 4454, OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455, OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455, OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472, OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473, OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474, OpRayQueryTerminateKHR = 4474,
@ -1601,6 +1761,10 @@ enum class Op : unsigned {
OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477, OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479, OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000, OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001, OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002, OpGroupFMinNonUniformAMD = 5002,
@ -1612,11 +1776,49 @@ enum class Op : unsigned {
OpFragmentMaskFetchAMD = 5011, OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012, OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056, OpReadClockKHR = 5056,
OpFinalizeNodePayloadsAMDX = 5075,
OpFinishWritingNodePayloadAMDX = 5078,
OpInitializeNodePayloadsAMDX = 5090,
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, OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294, OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295, OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296, OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299, OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpReportIntersectionKHR = 5334, OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334, OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
@ -1624,6 +1826,7 @@ enum class Op : unsigned {
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338, OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339, OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1885,6 +2088,9 @@ enum class Op : unsigned {
OpTypeStructContinuedINTEL = 6090, OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091, OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092, OpSpecConstantCompositeContinuedINTEL = 6092,
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142, OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143, OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401, OpGroupIMulKHR = 6401,
@ -2250,6 +2456,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break; case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrDiff: *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::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
@ -2269,6 +2478,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
case Op::OpSUDotAccSat: *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::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@ -2276,6 +2490,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpRayQueryGetIntersectionTypeKHR: *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::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@ -2287,17 +2505,56 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpReadClockKHR: *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::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::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; 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::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@ -2555,6 +2812,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpSpecConstantCompositeContinuedINTEL: *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::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
@ -2569,18 +2829,52 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
} }
#endif /* SPV_ENABLE_UTILITY_CODE */ #endif /* SPV_ENABLE_UTILITY_CODE */
// Overload operator| for mask bit combining // Overload bitwise operators for mask bit combining
inline 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)); }
inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(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)); }
} // end namespace spv } // end namespace spv

View File

@ -75,7 +75,11 @@
"OpenCL_CPP": 4, "OpenCL_CPP": 4,
"HLSL": 5, "HLSL": 5,
"CPP_for_OpenCL": 6, "CPP_for_OpenCL": 6,
"SYCL": 7 "SYCL": 7,
"HERO_C": 8,
"NZSL": 9,
"WGSL": 10,
"Slang": 11
} }
}, },
{ {
@ -175,6 +179,9 @@
"SubgroupsPerWorkgroupId": 37, "SubgroupsPerWorkgroupId": 37,
"LocalSizeId": 38, "LocalSizeId": 38,
"LocalSizeHintId": 39, "LocalSizeHintId": 39,
"NonCoherentColorAttachmentReadEXT": 4169,
"NonCoherentDepthAttachmentReadEXT": 4170,
"NonCoherentStencilAttachmentReadEXT": 4171,
"SubgroupUniformControlFlowKHR": 4421, "SubgroupUniformControlFlowKHR": 4421,
"PostDepthCoverage": 4446, "PostDepthCoverage": 4446,
"DenormPreserve": 4459, "DenormPreserve": 4459,
@ -184,6 +191,11 @@
"RoundingModeRTZ": 4463, "RoundingModeRTZ": 4463,
"EarlyAndLateFragmentTestsAMD": 5017, "EarlyAndLateFragmentTestsAMD": 5017,
"StencilRefReplacingEXT": 5027, "StencilRefReplacingEXT": 5027,
"CoalescingAMDX": 5069,
"MaxNodeRecursionAMDX": 5071,
"StaticNumWorkgroupsAMDX": 5072,
"ShaderIndexAMDX": 5073,
"MaxNumWorkgroupsAMDX": 5077,
"StencilRefUnchangedFrontAMD": 5079, "StencilRefUnchangedFrontAMD": 5079,
"StencilRefGreaterFrontAMD": 5080, "StencilRefGreaterFrontAMD": 5080,
"StencilRefLessFrontAMD": 5081, "StencilRefLessFrontAMD": 5081,
@ -214,6 +226,8 @@
"NoGlobalOffsetINTEL": 5895, "NoGlobalOffsetINTEL": 5895,
"NumSIMDWorkitemsINTEL": 5896, "NumSIMDWorkitemsINTEL": 5896,
"SchedulerTargetFmaxMhzINTEL": 5903, "SchedulerTargetFmaxMhzINTEL": 5903,
"StreamingInterfaceINTEL": 6154,
"RegisterMapInterfaceINTEL": 6160,
"NamedBarrierCountINTEL": 6417 "NamedBarrierCountINTEL": 6417
} }
}, },
@ -235,6 +249,9 @@
"AtomicCounter": 10, "AtomicCounter": 10,
"Image": 11, "Image": 11,
"StorageBuffer": 12, "StorageBuffer": 12,
"TileImageEXT": 4172,
"NodePayloadAMDX": 5068,
"NodeOutputPayloadAMDX": 5076,
"CallableDataKHR": 5328, "CallableDataKHR": 5328,
"CallableDataNV": 5328, "CallableDataNV": 5328,
"IncomingCallableDataKHR": 5329, "IncomingCallableDataKHR": 5329,
@ -249,6 +266,7 @@
"ShaderRecordBufferNV": 5343, "ShaderRecordBufferNV": 5343,
"PhysicalStorageBuffer": 5349, "PhysicalStorageBuffer": 5349,
"PhysicalStorageBufferEXT": 5349, "PhysicalStorageBufferEXT": 5349,
"HitObjectAttributeNV": 5385,
"TaskPayloadWorkgroupEXT": 5402, "TaskPayloadWorkgroupEXT": 5402,
"CodeSectionINTEL": 5605, "CodeSectionINTEL": 5605,
"DeviceOnlyINTEL": 5936, "DeviceOnlyINTEL": 5936,
@ -266,7 +284,8 @@
"Cube": 3, "Cube": 3,
"Rect": 4, "Rect": 4,
"Buffer": 5, "Buffer": 5,
"SubpassData": 6 "SubpassData": 6,
"TileImageDataEXT": 4173
} }
}, },
{ {
@ -387,7 +406,9 @@
"HalfFloat": 13, "HalfFloat": 13,
"Float": 14, "Float": 14,
"UnormInt24": 15, "UnormInt24": 15,
"UnormInt101010_2": 16 "UnormInt101010_2": 16,
"UnsignedIntRaw10EXT": 19,
"UnsignedIntRaw12EXT": 20
} }
}, },
{ {
@ -474,7 +495,8 @@
"NoAlias": 4, "NoAlias": 4,
"NoCapture": 5, "NoCapture": 5,
"NoWrite": 6, "NoWrite": 6,
"NoReadWrite": 7 "NoReadWrite": 7,
"RuntimeAlignedINTEL": 5940
} }
}, },
{ {
@ -531,7 +553,13 @@
"MaxByteOffsetId": 47, "MaxByteOffsetId": 47,
"NoSignedWrap": 4469, "NoSignedWrap": 4469,
"NoUnsignedWrap": 4470, "NoUnsignedWrap": 4470,
"WeightTextureQCOM": 4487,
"BlockMatchTextureQCOM": 4488,
"ExplicitInterpAMD": 4999, "ExplicitInterpAMD": 4999,
"NodeSharesPayloadLimitsWithAMDX": 5019,
"NodeMaxPayloadsAMDX": 5020,
"TrackFinishWritingAMDX": 5078,
"PayloadNodeNameAMDX": 5091,
"OverrideCoverageNV": 5248, "OverrideCoverageNV": 5248,
"PassthroughNV": 5250, "PassthroughNV": 5250,
"ViewportRelativeNV": 5252, "ViewportRelativeNV": 5252,
@ -548,6 +576,7 @@
"RestrictPointerEXT": 5355, "RestrictPointerEXT": 5355,
"AliasedPointer": 5356, "AliasedPointer": 5356,
"AliasedPointerEXT": 5356, "AliasedPointerEXT": 5356,
"HitObjectShaderRecordBufferNV": 5386,
"BindlessSamplerNV": 5398, "BindlessSamplerNV": 5398,
"BindlessImageNV": 5399, "BindlessImageNV": 5399,
"BoundSamplerNV": 5400, "BoundSamplerNV": 5400,
@ -580,20 +609,45 @@
"MergeINTEL": 5834, "MergeINTEL": 5834,
"BankBitsINTEL": 5835, "BankBitsINTEL": 5835,
"ForcePow2DepthINTEL": 5836, "ForcePow2DepthINTEL": 5836,
"StridesizeINTEL": 5883,
"WordsizeINTEL": 5884,
"TrueDualPortINTEL": 5885,
"BurstCoalesceINTEL": 5899, "BurstCoalesceINTEL": 5899,
"CacheSizeINTEL": 5900, "CacheSizeINTEL": 5900,
"DontStaticallyCoalesceINTEL": 5901, "DontStaticallyCoalesceINTEL": 5901,
"PrefetchINTEL": 5902, "PrefetchINTEL": 5902,
"StallEnableINTEL": 5905, "StallEnableINTEL": 5905,
"FuseLoopsInFunctionINTEL": 5907, "FuseLoopsInFunctionINTEL": 5907,
"MathOpDSPModeINTEL": 5909,
"AliasScopeINTEL": 5914, "AliasScopeINTEL": 5914,
"NoAliasINTEL": 5915, "NoAliasINTEL": 5915,
"InitiationIntervalINTEL": 5917,
"MaxConcurrencyINTEL": 5918,
"PipelineEnableINTEL": 5919,
"BufferLocationINTEL": 5921, "BufferLocationINTEL": 5921,
"IOPipeStorageINTEL": 5944, "IOPipeStorageINTEL": 5944,
"FunctionFloatingPointModeINTEL": 6080, "FunctionFloatingPointModeINTEL": 6080,
"SingleElementVectorINTEL": 6085, "SingleElementVectorINTEL": 6085,
"VectorComputeCallableFunctionINTEL": 6087, "VectorComputeCallableFunctionINTEL": 6087,
"MediaBlockIOINTEL": 6140 "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
} }
}, },
{ {
@ -672,6 +726,8 @@
"BaryCoordSmoothSampleAMD": 4997, "BaryCoordSmoothSampleAMD": 4997,
"BaryCoordPullModelAMD": 4998, "BaryCoordPullModelAMD": 4998,
"FragStencilRefEXT": 5014, "FragStencilRefEXT": 5014,
"CoalescedInputCountAMDX": 5021,
"ShaderIndexAMDX": 5073,
"ViewportMaskNV": 5253, "ViewportMaskNV": 5253,
"SecondaryPositionNV": 5257, "SecondaryPositionNV": 5257,
"SecondaryViewportMaskNV": 5258, "SecondaryViewportMaskNV": 5258,
@ -724,6 +780,9 @@
"HitKindKHR": 5333, "HitKindKHR": 5333,
"HitKindNV": 5333, "HitKindNV": 5333,
"CurrentRayTimeNV": 5334, "CurrentRayTimeNV": 5334,
"HitTriangleVertexPositionsKHR": 5335,
"HitMicroTriangleVertexPositionsNV": 5337,
"HitMicroTriangleVertexBarycentricsNV": 5344,
"IncomingRayFlagsKHR": 5351, "IncomingRayFlagsKHR": 5351,
"IncomingRayFlagsNV": 5351, "IncomingRayFlagsNV": 5351,
"RayGeometryIndexKHR": 5352, "RayGeometryIndexKHR": 5352,
@ -731,6 +790,8 @@
"SMCountNV": 5375, "SMCountNV": 5375,
"WarpIDNV": 5376, "WarpIDNV": 5376,
"SMIDNV": 5377, "SMIDNV": 5377,
"HitKindFrontFacingMicroTriangleNV": 5405,
"HitKindBackFacingMicroTriangleNV": 5406,
"CullMaskKHR": 6021 "CullMaskKHR": 6021
} }
}, },
@ -764,7 +825,9 @@
"LoopCoalesceINTEL": 20, "LoopCoalesceINTEL": 20,
"MaxInterleavingINTEL": 21, "MaxInterleavingINTEL": 21,
"SpeculatedIterationsINTEL": 22, "SpeculatedIterationsINTEL": 22,
"NoFusionINTEL": 23 "NoFusionINTEL": 23,
"LoopCountINTEL": 24,
"MaxReinvocationDelayINTEL": 25
} }
}, },
{ {
@ -944,6 +1007,9 @@
"ShaderViewportIndex": 70, "ShaderViewportIndex": 70,
"UniformDecoration": 71, "UniformDecoration": 71,
"CoreBuiltinsARM": 4165, "CoreBuiltinsARM": 4165,
"TileImageColorReadAccessEXT": 4166,
"TileImageDepthReadAccessEXT": 4167,
"TileImageStencilReadAccessEXT": 4168,
"FragmentShadingRateKHR": 4422, "FragmentShadingRateKHR": 4422,
"SubgroupBallotKHR": 4423, "SubgroupBallotKHR": 4423,
"DrawParameters": 4427, "DrawParameters": 4427,
@ -975,6 +1041,9 @@
"RayQueryKHR": 4472, "RayQueryKHR": 4472,
"RayTraversalPrimitiveCullingKHR": 4478, "RayTraversalPrimitiveCullingKHR": 4478,
"RayTracingKHR": 4479, "RayTracingKHR": 4479,
"TextureSampleWeightedQCOM": 4484,
"TextureBoxFilterQCOM": 4485,
"TextureBlockMatchQCOM": 4486,
"Float16ImageAMD": 5008, "Float16ImageAMD": 5008,
"ImageGatherBiasLodAMD": 5009, "ImageGatherBiasLodAMD": 5009,
"FragmentMaskAMD": 5010, "FragmentMaskAMD": 5010,
@ -982,6 +1051,7 @@
"ImageReadWriteLodAMD": 5015, "ImageReadWriteLodAMD": 5015,
"Int64ImageEXT": 5016, "Int64ImageEXT": 5016,
"ShaderClockKHR": 5055, "ShaderClockKHR": 5055,
"ShaderEnqueueAMDX": 5067,
"SampleMaskOverrideCoverageNV": 5249, "SampleMaskOverrideCoverageNV": 5249,
"GeometryShaderPassthroughNV": 5251, "GeometryShaderPassthroughNV": 5251,
"ShaderViewportIndexLayerEXT": 5254, "ShaderViewportIndexLayerEXT": 5254,
@ -1023,6 +1093,7 @@
"UniformTexelBufferArrayNonUniformIndexingEXT": 5311, "UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
"StorageTexelBufferArrayNonUniformIndexing": 5312, "StorageTexelBufferArrayNonUniformIndexing": 5312,
"StorageTexelBufferArrayNonUniformIndexingEXT": 5312, "StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
"RayTracingPositionFetchKHR": 5336,
"RayTracingNV": 5340, "RayTracingNV": 5340,
"RayTracingMotionBlurNV": 5341, "RayTracingMotionBlurNV": 5341,
"VulkanMemoryModel": 5345, "VulkanMemoryModel": 5345,
@ -1040,8 +1111,12 @@
"FragmentShaderPixelInterlockEXT": 5378, "FragmentShaderPixelInterlockEXT": 5378,
"DemoteToHelperInvocation": 5379, "DemoteToHelperInvocation": 5379,
"DemoteToHelperInvocationEXT": 5379, "DemoteToHelperInvocationEXT": 5379,
"DisplacementMicromapNV": 5380,
"RayTracingOpacityMicromapEXT": 5381, "RayTracingOpacityMicromapEXT": 5381,
"ShaderInvocationReorderNV": 5383,
"BindlessTextureNV": 5390, "BindlessTextureNV": 5390,
"RayQueryPositionFetchKHR": 5391,
"RayTracingDisplacementMicromapNV": 5409,
"SubgroupShuffleINTEL": 5568, "SubgroupShuffleINTEL": 5568,
"SubgroupBufferBlockIOINTEL": 5569, "SubgroupBufferBlockIOINTEL": 5569,
"SubgroupImageBlockIOINTEL": 5570, "SubgroupImageBlockIOINTEL": 5570,
@ -1074,10 +1149,13 @@
"FPGAMemoryAccessesINTEL": 5898, "FPGAMemoryAccessesINTEL": 5898,
"FPGAClusterAttributesINTEL": 5904, "FPGAClusterAttributesINTEL": 5904,
"LoopFuseINTEL": 5906, "LoopFuseINTEL": 5906,
"FPGADSPControlINTEL": 5908,
"MemoryAccessAliasingINTEL": 5910, "MemoryAccessAliasingINTEL": 5910,
"FPGAInvocationPipeliningAttributesINTEL": 5916,
"FPGABufferLocationINTEL": 5920, "FPGABufferLocationINTEL": 5920,
"ArbitraryPrecisionFixedPointINTEL": 5922, "ArbitraryPrecisionFixedPointINTEL": 5922,
"USMStorageClassesINTEL": 5935, "USMStorageClassesINTEL": 5935,
"RuntimeAlignedAttributeINTEL": 5939,
"IOPipesINTEL": 5943, "IOPipesINTEL": 5943,
"BlockingPipesINTEL": 5945, "BlockingPipesINTEL": 5945,
"FPGARegINTEL": 5948, "FPGARegINTEL": 5948,
@ -1090,16 +1168,26 @@
"DotProduct": 6019, "DotProduct": 6019,
"DotProductKHR": 6019, "DotProductKHR": 6019,
"RayCullMaskKHR": 6020, "RayCullMaskKHR": 6020,
"CooperativeMatrixKHR": 6022,
"BitInstructions": 6025, "BitInstructions": 6025,
"GroupNonUniformRotateKHR": 6026, "GroupNonUniformRotateKHR": 6026,
"AtomicFloat32AddEXT": 6033, "AtomicFloat32AddEXT": 6033,
"AtomicFloat64AddEXT": 6034, "AtomicFloat64AddEXT": 6034,
"LongConstantCompositeINTEL": 6089, "LongCompositesINTEL": 6089,
"OptNoneINTEL": 6094, "OptNoneINTEL": 6094,
"AtomicFloat16AddEXT": 6095, "AtomicFloat16AddEXT": 6095,
"DebugInfoModuleINTEL": 6114, "DebugInfoModuleINTEL": 6114,
"BFloat16ConversionINTEL": 6115,
"SplitBarrierINTEL": 6141, "SplitBarrierINTEL": 6141,
"GroupUniformArithmeticKHR": 6400 "FPGAClusterAttributesV2INTEL": 6150,
"FPGAKernelAttributesv2INTEL": 6161,
"FPMaxErrorINTEL": 6169,
"FPGALatencyControlINTEL": 6171,
"FPGAArgumentInterfacesINTEL": 6174,
"GlobalVariableHostAccessINTEL": 6187,
"GlobalVariableFPGADecorationsINTEL": 6189,
"GroupUniformArithmeticKHR": 6400,
"CacheControlsINTEL": 6441
} }
}, },
{ {
@ -1212,6 +1300,80 @@
"PackedVectorFormat4x8BitKHR": 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
}
},
{
"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": "Op", "Name": "Op",
"Type": "Value", "Type": "Value",
@ -1561,6 +1723,9 @@
"OpPtrEqual": 401, "OpPtrEqual": 401,
"OpPtrNotEqual": 402, "OpPtrNotEqual": 402,
"OpPtrDiff": 403, "OpPtrDiff": 403,
"OpColorAttachmentReadEXT": 4160,
"OpDepthAttachmentReadEXT": 4161,
"OpStencilAttachmentReadEXT": 4162,
"OpTerminateInvocation": 4416, "OpTerminateInvocation": 4416,
"OpSubgroupBallotKHR": 4421, "OpSubgroupBallotKHR": 4421,
"OpSubgroupFirstInvocationKHR": 4422, "OpSubgroupFirstInvocationKHR": 4422,
@ -1586,6 +1751,11 @@
"OpUDotAccSatKHR": 4454, "OpUDotAccSatKHR": 4454,
"OpSUDotAccSat": 4455, "OpSUDotAccSat": 4455,
"OpSUDotAccSatKHR": 4455, "OpSUDotAccSatKHR": 4455,
"OpTypeCooperativeMatrixKHR": 4456,
"OpCooperativeMatrixLoadKHR": 4457,
"OpCooperativeMatrixStoreKHR": 4458,
"OpCooperativeMatrixMulAddKHR": 4459,
"OpCooperativeMatrixLengthKHR": 4460,
"OpTypeRayQueryKHR": 4472, "OpTypeRayQueryKHR": 4472,
"OpRayQueryInitializeKHR": 4473, "OpRayQueryInitializeKHR": 4473,
"OpRayQueryTerminateKHR": 4474, "OpRayQueryTerminateKHR": 4474,
@ -1593,6 +1763,10 @@
"OpRayQueryConfirmIntersectionKHR": 4476, "OpRayQueryConfirmIntersectionKHR": 4476,
"OpRayQueryProceedKHR": 4477, "OpRayQueryProceedKHR": 4477,
"OpRayQueryGetIntersectionTypeKHR": 4479, "OpRayQueryGetIntersectionTypeKHR": 4479,
"OpImageSampleWeightedQCOM": 4480,
"OpImageBoxFilterQCOM": 4481,
"OpImageBlockMatchSSDQCOM": 4482,
"OpImageBlockMatchSADQCOM": 4483,
"OpGroupIAddNonUniformAMD": 5000, "OpGroupIAddNonUniformAMD": 5000,
"OpGroupFAddNonUniformAMD": 5001, "OpGroupFAddNonUniformAMD": 5001,
"OpGroupFMinNonUniformAMD": 5002, "OpGroupFMinNonUniformAMD": 5002,
@ -1604,11 +1778,49 @@
"OpFragmentMaskFetchAMD": 5011, "OpFragmentMaskFetchAMD": 5011,
"OpFragmentFetchAMD": 5012, "OpFragmentFetchAMD": 5012,
"OpReadClockKHR": 5056, "OpReadClockKHR": 5056,
"OpFinalizeNodePayloadsAMDX": 5075,
"OpFinishWritingNodePayloadAMDX": 5078,
"OpInitializeNodePayloadsAMDX": 5090,
"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, "OpImageSampleFootprintNV": 5283,
"OpEmitMeshTasksEXT": 5294, "OpEmitMeshTasksEXT": 5294,
"OpSetMeshOutputsEXT": 5295, "OpSetMeshOutputsEXT": 5295,
"OpGroupNonUniformPartitionNV": 5296, "OpGroupNonUniformPartitionNV": 5296,
"OpWritePackedPrimitiveIndices4x8NV": 5299, "OpWritePackedPrimitiveIndices4x8NV": 5299,
"OpFetchMicroTriangleVertexPositionNV": 5300,
"OpFetchMicroTriangleVertexBarycentricNV": 5301,
"OpReportIntersectionKHR": 5334, "OpReportIntersectionKHR": 5334,
"OpReportIntersectionNV": 5334, "OpReportIntersectionNV": 5334,
"OpIgnoreIntersectionNV": 5335, "OpIgnoreIntersectionNV": 5335,
@ -1616,6 +1828,7 @@
"OpTraceNV": 5337, "OpTraceNV": 5337,
"OpTraceMotionNV": 5338, "OpTraceMotionNV": 5338,
"OpTraceRayMotionNV": 5339, "OpTraceRayMotionNV": 5339,
"OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340,
"OpTypeAccelerationStructureKHR": 5341, "OpTypeAccelerationStructureKHR": 5341,
"OpTypeAccelerationStructureNV": 5341, "OpTypeAccelerationStructureNV": 5341,
"OpExecuteCallableNV": 5344, "OpExecuteCallableNV": 5344,
@ -1877,6 +2090,9 @@
"OpTypeStructContinuedINTEL": 6090, "OpTypeStructContinuedINTEL": 6090,
"OpConstantCompositeContinuedINTEL": 6091, "OpConstantCompositeContinuedINTEL": 6091,
"OpSpecConstantCompositeContinuedINTEL": 6092, "OpSpecConstantCompositeContinuedINTEL": 6092,
"OpCompositeConstructContinuedINTEL": 6096,
"OpConvertFToBF16INTEL": 6116,
"OpConvertBF16ToFINTEL": 6117,
"OpControlBarrierArriveINTEL": 6142, "OpControlBarrierArriveINTEL": 6142,
"OpControlBarrierWaitINTEL": 6143, "OpControlBarrierWaitINTEL": 6143,
"OpGroupIMulKHR": 6401, "OpGroupIMulKHR": 6401,

View File

@ -60,6 +60,10 @@ spv = {
HLSL = 5, HLSL = 5,
CPP_for_OpenCL = 6, CPP_for_OpenCL = 6,
SYCL = 7, SYCL = 7,
HERO_C = 8,
NZSL = 9,
WGSL = 10,
Slang = 11,
}, },
ExecutionModel = { ExecutionModel = {
@ -143,6 +147,9 @@ spv = {
SubgroupsPerWorkgroupId = 37, SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38, LocalSizeId = 38,
LocalSizeHintId = 39, LocalSizeHintId = 39,
NonCoherentColorAttachmentReadEXT = 4169,
NonCoherentDepthAttachmentReadEXT = 4170,
NonCoherentStencilAttachmentReadEXT = 4171,
SubgroupUniformControlFlowKHR = 4421, SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446, PostDepthCoverage = 4446,
DenormPreserve = 4459, DenormPreserve = 4459,
@ -152,6 +159,11 @@ spv = {
RoundingModeRTZ = 4463, RoundingModeRTZ = 4463,
EarlyAndLateFragmentTestsAMD = 5017, EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027, StencilRefReplacingEXT = 5027,
CoalescingAMDX = 5069,
MaxNodeRecursionAMDX = 5071,
StaticNumWorkgroupsAMDX = 5072,
ShaderIndexAMDX = 5073,
MaxNumWorkgroupsAMDX = 5077,
StencilRefUnchangedFrontAMD = 5079, StencilRefUnchangedFrontAMD = 5079,
StencilRefGreaterFrontAMD = 5080, StencilRefGreaterFrontAMD = 5080,
StencilRefLessFrontAMD = 5081, StencilRefLessFrontAMD = 5081,
@ -182,6 +194,8 @@ spv = {
NoGlobalOffsetINTEL = 5895, NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896, NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903, SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417, NamedBarrierCountINTEL = 6417,
}, },
@ -199,6 +213,9 @@ spv = {
AtomicCounter = 10, AtomicCounter = 10,
Image = 11, Image = 11,
StorageBuffer = 12, StorageBuffer = 12,
TileImageEXT = 4172,
NodePayloadAMDX = 5068,
NodeOutputPayloadAMDX = 5076,
CallableDataKHR = 5328, CallableDataKHR = 5328,
CallableDataNV = 5328, CallableDataNV = 5328,
IncomingCallableDataKHR = 5329, IncomingCallableDataKHR = 5329,
@ -213,6 +230,7 @@ spv = {
ShaderRecordBufferNV = 5343, ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349, PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349, PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402, TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605, CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936, DeviceOnlyINTEL = 5936,
@ -227,6 +245,7 @@ spv = {
Rect = 4, Rect = 4,
Buffer = 5, Buffer = 5,
SubpassData = 6, SubpassData = 6,
TileImageDataEXT = 4173,
}, },
SamplerAddressingMode = { SamplerAddressingMode = {
@ -328,6 +347,8 @@ spv = {
Float = 14, Float = 14,
UnormInt24 = 15, UnormInt24 = 15,
UnormInt101010_2 = 16, UnormInt101010_2 = 16,
UnsignedIntRaw10EXT = 19,
UnsignedIntRaw12EXT = 20,
}, },
ImageOperandsShift = { ImageOperandsShift = {
@ -426,6 +447,7 @@ spv = {
NoCapture = 5, NoCapture = 5,
NoWrite = 6, NoWrite = 6,
NoReadWrite = 7, NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
}, },
Decoration = { Decoration = {
@ -478,7 +500,13 @@ spv = {
MaxByteOffsetId = 47, MaxByteOffsetId = 47,
NoSignedWrap = 4469, NoSignedWrap = 4469,
NoUnsignedWrap = 4470, NoUnsignedWrap = 4470,
WeightTextureQCOM = 4487,
BlockMatchTextureQCOM = 4488,
ExplicitInterpAMD = 4999, ExplicitInterpAMD = 4999,
NodeSharesPayloadLimitsWithAMDX = 5019,
NodeMaxPayloadsAMDX = 5020,
TrackFinishWritingAMDX = 5078,
PayloadNodeNameAMDX = 5091,
OverrideCoverageNV = 5248, OverrideCoverageNV = 5248,
PassthroughNV = 5250, PassthroughNV = 5250,
ViewportRelativeNV = 5252, ViewportRelativeNV = 5252,
@ -495,6 +523,7 @@ spv = {
RestrictPointerEXT = 5355, RestrictPointerEXT = 5355,
AliasedPointer = 5356, AliasedPointer = 5356,
AliasedPointerEXT = 5356, AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398, BindlessSamplerNV = 5398,
BindlessImageNV = 5399, BindlessImageNV = 5399,
BoundSamplerNV = 5400, BoundSamplerNV = 5400,
@ -527,20 +556,45 @@ spv = {
MergeINTEL = 5834, MergeINTEL = 5834,
BankBitsINTEL = 5835, BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836, ForcePow2DepthINTEL = 5836,
StridesizeINTEL = 5883,
WordsizeINTEL = 5884,
TrueDualPortINTEL = 5885,
BurstCoalesceINTEL = 5899, BurstCoalesceINTEL = 5899,
CacheSizeINTEL = 5900, CacheSizeINTEL = 5900,
DontStaticallyCoalesceINTEL = 5901, DontStaticallyCoalesceINTEL = 5901,
PrefetchINTEL = 5902, PrefetchINTEL = 5902,
StallEnableINTEL = 5905, StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907, FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914, AliasScopeINTEL = 5914,
NoAliasINTEL = 5915, NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921, BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944, IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080, FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085, SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087, VectorComputeCallableFunctionINTEL = 6087,
MediaBlockIOINTEL = 6140, 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 = { BuiltIn = {
@ -615,6 +669,8 @@ spv = {
BaryCoordSmoothSampleAMD = 4997, BaryCoordSmoothSampleAMD = 4997,
BaryCoordPullModelAMD = 4998, BaryCoordPullModelAMD = 4998,
FragStencilRefEXT = 5014, FragStencilRefEXT = 5014,
CoalescedInputCountAMDX = 5021,
ShaderIndexAMDX = 5073,
ViewportMaskNV = 5253, ViewportMaskNV = 5253,
SecondaryPositionNV = 5257, SecondaryPositionNV = 5257,
SecondaryViewportMaskNV = 5258, SecondaryViewportMaskNV = 5258,
@ -667,6 +723,9 @@ spv = {
HitKindKHR = 5333, HitKindKHR = 5333,
HitKindNV = 5333, HitKindNV = 5333,
CurrentRayTimeNV = 5334, CurrentRayTimeNV = 5334,
HitTriangleVertexPositionsKHR = 5335,
HitMicroTriangleVertexPositionsNV = 5337,
HitMicroTriangleVertexBarycentricsNV = 5344,
IncomingRayFlagsKHR = 5351, IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351, IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352, RayGeometryIndexKHR = 5352,
@ -674,6 +733,8 @@ spv = {
SMCountNV = 5375, SMCountNV = 5375,
WarpIDNV = 5376, WarpIDNV = 5376,
SMIDNV = 5377, SMIDNV = 5377,
HitKindFrontFacingMicroTriangleNV = 5405,
HitKindBackFacingMicroTriangleNV = 5406,
CullMaskKHR = 6021, CullMaskKHR = 6021,
}, },
@ -706,6 +767,8 @@ spv = {
MaxInterleavingINTEL = 21, MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22, SpeculatedIterationsINTEL = 22,
NoFusionINTEL = 23, NoFusionINTEL = 23,
LoopCountINTEL = 24,
MaxReinvocationDelayINTEL = 25,
}, },
LoopControlMask = { LoopControlMask = {
@ -727,6 +790,8 @@ spv = {
MaxInterleavingINTEL = 0x00200000, MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000, SpeculatedIterationsINTEL = 0x00400000,
NoFusionINTEL = 0x00800000, NoFusionINTEL = 0x00800000,
LoopCountINTEL = 0x01000000,
MaxReinvocationDelayINTEL = 0x02000000,
}, },
FunctionControlShift = { FunctionControlShift = {
@ -924,6 +989,9 @@ spv = {
ShaderViewportIndex = 70, ShaderViewportIndex = 70,
UniformDecoration = 71, UniformDecoration = 71,
CoreBuiltinsARM = 4165, CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
TileImageStencilReadAccessEXT = 4168,
FragmentShadingRateKHR = 4422, FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423, SubgroupBallotKHR = 4423,
DrawParameters = 4427, DrawParameters = 4427,
@ -955,6 +1023,9 @@ spv = {
RayQueryKHR = 4472, RayQueryKHR = 4472,
RayTraversalPrimitiveCullingKHR = 4478, RayTraversalPrimitiveCullingKHR = 4478,
RayTracingKHR = 4479, RayTracingKHR = 4479,
TextureSampleWeightedQCOM = 4484,
TextureBoxFilterQCOM = 4485,
TextureBlockMatchQCOM = 4486,
Float16ImageAMD = 5008, Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009, ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010, FragmentMaskAMD = 5010,
@ -962,6 +1033,7 @@ spv = {
ImageReadWriteLodAMD = 5015, ImageReadWriteLodAMD = 5015,
Int64ImageEXT = 5016, Int64ImageEXT = 5016,
ShaderClockKHR = 5055, ShaderClockKHR = 5055,
ShaderEnqueueAMDX = 5067,
SampleMaskOverrideCoverageNV = 5249, SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251, GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerEXT = 5254,
@ -1003,6 +1075,7 @@ spv = {
UniformTexelBufferArrayNonUniformIndexingEXT = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingPositionFetchKHR = 5336,
RayTracingNV = 5340, RayTracingNV = 5340,
RayTracingMotionBlurNV = 5341, RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345, VulkanMemoryModel = 5345,
@ -1020,8 +1093,12 @@ spv = {
FragmentShaderPixelInterlockEXT = 5378, FragmentShaderPixelInterlockEXT = 5378,
DemoteToHelperInvocation = 5379, DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379, DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381, RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390, BindlessTextureNV = 5390,
RayQueryPositionFetchKHR = 5391,
RayTracingDisplacementMicromapNV = 5409,
SubgroupShuffleINTEL = 5568, SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569, SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570, SubgroupImageBlockIOINTEL = 5570,
@ -1054,10 +1131,13 @@ spv = {
FPGAMemoryAccessesINTEL = 5898, FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904, FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906, LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910, MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920, FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922, ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935, USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943, IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945, BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948, FPGARegINTEL = 5948,
@ -1070,16 +1150,26 @@ spv = {
DotProduct = 6019, DotProduct = 6019,
DotProductKHR = 6019, DotProductKHR = 6019,
RayCullMaskKHR = 6020, RayCullMaskKHR = 6020,
CooperativeMatrixKHR = 6022,
BitInstructions = 6025, BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026, GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033, AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034, AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089, LongCompositesINTEL = 6089,
OptNoneINTEL = 6094, OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095, AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114, DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
SplitBarrierINTEL = 6141, SplitBarrierINTEL = 6141,
FPGAClusterAttributesV2INTEL = 6150,
FPGAKernelAttributesv2INTEL = 6161,
FPMaxErrorINTEL = 6169,
FPGALatencyControlINTEL = 6171,
FPGAArgumentInterfacesINTEL = 6174,
GlobalVariableHostAccessINTEL = 6187,
GlobalVariableFPGADecorationsINTEL = 6189,
GroupUniformArithmeticKHR = 6400, GroupUniformArithmeticKHR = 6400,
CacheControlsINTEL = 6441,
}, },
RayFlagsShift = { RayFlagsShift = {
@ -1175,6 +1265,61 @@ spv = {
PackedVectorFormat4x8BitKHR = 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,
},
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,
},
Op = { Op = {
OpNop = 0, OpNop = 0,
OpUndef = 1, OpUndef = 1,
@ -1520,6 +1665,9 @@ spv = {
OpPtrEqual = 401, OpPtrEqual = 401,
OpPtrNotEqual = 402, OpPtrNotEqual = 402,
OpPtrDiff = 403, OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416, OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421, OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422, OpSubgroupFirstInvocationKHR = 4422,
@ -1545,6 +1693,11 @@ spv = {
OpUDotAccSatKHR = 4454, OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455, OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455, OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472, OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473, OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474, OpRayQueryTerminateKHR = 4474,
@ -1552,6 +1705,10 @@ spv = {
OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477, OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479, OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000, OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001, OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002, OpGroupFMinNonUniformAMD = 5002,
@ -1563,11 +1720,49 @@ spv = {
OpFragmentMaskFetchAMD = 5011, OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012, OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056, OpReadClockKHR = 5056,
OpFinalizeNodePayloadsAMDX = 5075,
OpFinishWritingNodePayloadAMDX = 5078,
OpInitializeNodePayloadsAMDX = 5090,
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, OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294, OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295, OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296, OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299, OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpReportIntersectionKHR = 5334, OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334, OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
@ -1575,6 +1770,7 @@ spv = {
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338, OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339, OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1836,6 +2032,9 @@ spv = {
OpTypeStructContinuedINTEL = 6090, OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091, OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092, OpSpecConstantCompositeContinuedINTEL = 6092,
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142, OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143, OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401, OpGroupIMulKHR = 6401,

View File

@ -60,6 +60,10 @@ spv = {
'HLSL' : 5, 'HLSL' : 5,
'CPP_for_OpenCL' : 6, 'CPP_for_OpenCL' : 6,
'SYCL' : 7, 'SYCL' : 7,
'HERO_C' : 8,
'NZSL' : 9,
'WGSL' : 10,
'Slang' : 11,
}, },
'ExecutionModel' : { 'ExecutionModel' : {
@ -143,6 +147,9 @@ spv = {
'SubgroupsPerWorkgroupId' : 37, 'SubgroupsPerWorkgroupId' : 37,
'LocalSizeId' : 38, 'LocalSizeId' : 38,
'LocalSizeHintId' : 39, 'LocalSizeHintId' : 39,
'NonCoherentColorAttachmentReadEXT' : 4169,
'NonCoherentDepthAttachmentReadEXT' : 4170,
'NonCoherentStencilAttachmentReadEXT' : 4171,
'SubgroupUniformControlFlowKHR' : 4421, 'SubgroupUniformControlFlowKHR' : 4421,
'PostDepthCoverage' : 4446, 'PostDepthCoverage' : 4446,
'DenormPreserve' : 4459, 'DenormPreserve' : 4459,
@ -152,6 +159,11 @@ spv = {
'RoundingModeRTZ' : 4463, 'RoundingModeRTZ' : 4463,
'EarlyAndLateFragmentTestsAMD' : 5017, 'EarlyAndLateFragmentTestsAMD' : 5017,
'StencilRefReplacingEXT' : 5027, 'StencilRefReplacingEXT' : 5027,
'CoalescingAMDX' : 5069,
'MaxNodeRecursionAMDX' : 5071,
'StaticNumWorkgroupsAMDX' : 5072,
'ShaderIndexAMDX' : 5073,
'MaxNumWorkgroupsAMDX' : 5077,
'StencilRefUnchangedFrontAMD' : 5079, 'StencilRefUnchangedFrontAMD' : 5079,
'StencilRefGreaterFrontAMD' : 5080, 'StencilRefGreaterFrontAMD' : 5080,
'StencilRefLessFrontAMD' : 5081, 'StencilRefLessFrontAMD' : 5081,
@ -182,6 +194,8 @@ spv = {
'NoGlobalOffsetINTEL' : 5895, 'NoGlobalOffsetINTEL' : 5895,
'NumSIMDWorkitemsINTEL' : 5896, 'NumSIMDWorkitemsINTEL' : 5896,
'SchedulerTargetFmaxMhzINTEL' : 5903, 'SchedulerTargetFmaxMhzINTEL' : 5903,
'StreamingInterfaceINTEL' : 6154,
'RegisterMapInterfaceINTEL' : 6160,
'NamedBarrierCountINTEL' : 6417, 'NamedBarrierCountINTEL' : 6417,
}, },
@ -199,6 +213,9 @@ spv = {
'AtomicCounter' : 10, 'AtomicCounter' : 10,
'Image' : 11, 'Image' : 11,
'StorageBuffer' : 12, 'StorageBuffer' : 12,
'TileImageEXT' : 4172,
'NodePayloadAMDX' : 5068,
'NodeOutputPayloadAMDX' : 5076,
'CallableDataKHR' : 5328, 'CallableDataKHR' : 5328,
'CallableDataNV' : 5328, 'CallableDataNV' : 5328,
'IncomingCallableDataKHR' : 5329, 'IncomingCallableDataKHR' : 5329,
@ -213,6 +230,7 @@ spv = {
'ShaderRecordBufferNV' : 5343, 'ShaderRecordBufferNV' : 5343,
'PhysicalStorageBuffer' : 5349, 'PhysicalStorageBuffer' : 5349,
'PhysicalStorageBufferEXT' : 5349, 'PhysicalStorageBufferEXT' : 5349,
'HitObjectAttributeNV' : 5385,
'TaskPayloadWorkgroupEXT' : 5402, 'TaskPayloadWorkgroupEXT' : 5402,
'CodeSectionINTEL' : 5605, 'CodeSectionINTEL' : 5605,
'DeviceOnlyINTEL' : 5936, 'DeviceOnlyINTEL' : 5936,
@ -227,6 +245,7 @@ spv = {
'Rect' : 4, 'Rect' : 4,
'Buffer' : 5, 'Buffer' : 5,
'SubpassData' : 6, 'SubpassData' : 6,
'TileImageDataEXT' : 4173,
}, },
'SamplerAddressingMode' : { 'SamplerAddressingMode' : {
@ -328,6 +347,8 @@ spv = {
'Float' : 14, 'Float' : 14,
'UnormInt24' : 15, 'UnormInt24' : 15,
'UnormInt101010_2' : 16, 'UnormInt101010_2' : 16,
'UnsignedIntRaw10EXT' : 19,
'UnsignedIntRaw12EXT' : 20,
}, },
'ImageOperandsShift' : { 'ImageOperandsShift' : {
@ -426,6 +447,7 @@ spv = {
'NoCapture' : 5, 'NoCapture' : 5,
'NoWrite' : 6, 'NoWrite' : 6,
'NoReadWrite' : 7, 'NoReadWrite' : 7,
'RuntimeAlignedINTEL' : 5940,
}, },
'Decoration' : { 'Decoration' : {
@ -478,7 +500,13 @@ spv = {
'MaxByteOffsetId' : 47, 'MaxByteOffsetId' : 47,
'NoSignedWrap' : 4469, 'NoSignedWrap' : 4469,
'NoUnsignedWrap' : 4470, 'NoUnsignedWrap' : 4470,
'WeightTextureQCOM' : 4487,
'BlockMatchTextureQCOM' : 4488,
'ExplicitInterpAMD' : 4999, 'ExplicitInterpAMD' : 4999,
'NodeSharesPayloadLimitsWithAMDX' : 5019,
'NodeMaxPayloadsAMDX' : 5020,
'TrackFinishWritingAMDX' : 5078,
'PayloadNodeNameAMDX' : 5091,
'OverrideCoverageNV' : 5248, 'OverrideCoverageNV' : 5248,
'PassthroughNV' : 5250, 'PassthroughNV' : 5250,
'ViewportRelativeNV' : 5252, 'ViewportRelativeNV' : 5252,
@ -495,6 +523,7 @@ spv = {
'RestrictPointerEXT' : 5355, 'RestrictPointerEXT' : 5355,
'AliasedPointer' : 5356, 'AliasedPointer' : 5356,
'AliasedPointerEXT' : 5356, 'AliasedPointerEXT' : 5356,
'HitObjectShaderRecordBufferNV' : 5386,
'BindlessSamplerNV' : 5398, 'BindlessSamplerNV' : 5398,
'BindlessImageNV' : 5399, 'BindlessImageNV' : 5399,
'BoundSamplerNV' : 5400, 'BoundSamplerNV' : 5400,
@ -527,20 +556,45 @@ spv = {
'MergeINTEL' : 5834, 'MergeINTEL' : 5834,
'BankBitsINTEL' : 5835, 'BankBitsINTEL' : 5835,
'ForcePow2DepthINTEL' : 5836, 'ForcePow2DepthINTEL' : 5836,
'StridesizeINTEL' : 5883,
'WordsizeINTEL' : 5884,
'TrueDualPortINTEL' : 5885,
'BurstCoalesceINTEL' : 5899, 'BurstCoalesceINTEL' : 5899,
'CacheSizeINTEL' : 5900, 'CacheSizeINTEL' : 5900,
'DontStaticallyCoalesceINTEL' : 5901, 'DontStaticallyCoalesceINTEL' : 5901,
'PrefetchINTEL' : 5902, 'PrefetchINTEL' : 5902,
'StallEnableINTEL' : 5905, 'StallEnableINTEL' : 5905,
'FuseLoopsInFunctionINTEL' : 5907, 'FuseLoopsInFunctionINTEL' : 5907,
'MathOpDSPModeINTEL' : 5909,
'AliasScopeINTEL' : 5914, 'AliasScopeINTEL' : 5914,
'NoAliasINTEL' : 5915, 'NoAliasINTEL' : 5915,
'InitiationIntervalINTEL' : 5917,
'MaxConcurrencyINTEL' : 5918,
'PipelineEnableINTEL' : 5919,
'BufferLocationINTEL' : 5921, 'BufferLocationINTEL' : 5921,
'IOPipeStorageINTEL' : 5944, 'IOPipeStorageINTEL' : 5944,
'FunctionFloatingPointModeINTEL' : 6080, 'FunctionFloatingPointModeINTEL' : 6080,
'SingleElementVectorINTEL' : 6085, 'SingleElementVectorINTEL' : 6085,
'VectorComputeCallableFunctionINTEL' : 6087, 'VectorComputeCallableFunctionINTEL' : 6087,
'MediaBlockIOINTEL' : 6140, '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' : { 'BuiltIn' : {
@ -615,6 +669,8 @@ spv = {
'BaryCoordSmoothSampleAMD' : 4997, 'BaryCoordSmoothSampleAMD' : 4997,
'BaryCoordPullModelAMD' : 4998, 'BaryCoordPullModelAMD' : 4998,
'FragStencilRefEXT' : 5014, 'FragStencilRefEXT' : 5014,
'CoalescedInputCountAMDX' : 5021,
'ShaderIndexAMDX' : 5073,
'ViewportMaskNV' : 5253, 'ViewportMaskNV' : 5253,
'SecondaryPositionNV' : 5257, 'SecondaryPositionNV' : 5257,
'SecondaryViewportMaskNV' : 5258, 'SecondaryViewportMaskNV' : 5258,
@ -667,6 +723,9 @@ spv = {
'HitKindKHR' : 5333, 'HitKindKHR' : 5333,
'HitKindNV' : 5333, 'HitKindNV' : 5333,
'CurrentRayTimeNV' : 5334, 'CurrentRayTimeNV' : 5334,
'HitTriangleVertexPositionsKHR' : 5335,
'HitMicroTriangleVertexPositionsNV' : 5337,
'HitMicroTriangleVertexBarycentricsNV' : 5344,
'IncomingRayFlagsKHR' : 5351, 'IncomingRayFlagsKHR' : 5351,
'IncomingRayFlagsNV' : 5351, 'IncomingRayFlagsNV' : 5351,
'RayGeometryIndexKHR' : 5352, 'RayGeometryIndexKHR' : 5352,
@ -674,6 +733,8 @@ spv = {
'SMCountNV' : 5375, 'SMCountNV' : 5375,
'WarpIDNV' : 5376, 'WarpIDNV' : 5376,
'SMIDNV' : 5377, 'SMIDNV' : 5377,
'HitKindFrontFacingMicroTriangleNV' : 5405,
'HitKindBackFacingMicroTriangleNV' : 5406,
'CullMaskKHR' : 6021, 'CullMaskKHR' : 6021,
}, },
@ -706,6 +767,8 @@ spv = {
'MaxInterleavingINTEL' : 21, 'MaxInterleavingINTEL' : 21,
'SpeculatedIterationsINTEL' : 22, 'SpeculatedIterationsINTEL' : 22,
'NoFusionINTEL' : 23, 'NoFusionINTEL' : 23,
'LoopCountINTEL' : 24,
'MaxReinvocationDelayINTEL' : 25,
}, },
'LoopControlMask' : { 'LoopControlMask' : {
@ -727,6 +790,8 @@ spv = {
'MaxInterleavingINTEL' : 0x00200000, 'MaxInterleavingINTEL' : 0x00200000,
'SpeculatedIterationsINTEL' : 0x00400000, 'SpeculatedIterationsINTEL' : 0x00400000,
'NoFusionINTEL' : 0x00800000, 'NoFusionINTEL' : 0x00800000,
'LoopCountINTEL' : 0x01000000,
'MaxReinvocationDelayINTEL' : 0x02000000,
}, },
'FunctionControlShift' : { 'FunctionControlShift' : {
@ -924,6 +989,9 @@ spv = {
'ShaderViewportIndex' : 70, 'ShaderViewportIndex' : 70,
'UniformDecoration' : 71, 'UniformDecoration' : 71,
'CoreBuiltinsARM' : 4165, 'CoreBuiltinsARM' : 4165,
'TileImageColorReadAccessEXT' : 4166,
'TileImageDepthReadAccessEXT' : 4167,
'TileImageStencilReadAccessEXT' : 4168,
'FragmentShadingRateKHR' : 4422, 'FragmentShadingRateKHR' : 4422,
'SubgroupBallotKHR' : 4423, 'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427, 'DrawParameters' : 4427,
@ -955,6 +1023,9 @@ spv = {
'RayQueryKHR' : 4472, 'RayQueryKHR' : 4472,
'RayTraversalPrimitiveCullingKHR' : 4478, 'RayTraversalPrimitiveCullingKHR' : 4478,
'RayTracingKHR' : 4479, 'RayTracingKHR' : 4479,
'TextureSampleWeightedQCOM' : 4484,
'TextureBoxFilterQCOM' : 4485,
'TextureBlockMatchQCOM' : 4486,
'Float16ImageAMD' : 5008, 'Float16ImageAMD' : 5008,
'ImageGatherBiasLodAMD' : 5009, 'ImageGatherBiasLodAMD' : 5009,
'FragmentMaskAMD' : 5010, 'FragmentMaskAMD' : 5010,
@ -962,6 +1033,7 @@ spv = {
'ImageReadWriteLodAMD' : 5015, 'ImageReadWriteLodAMD' : 5015,
'Int64ImageEXT' : 5016, 'Int64ImageEXT' : 5016,
'ShaderClockKHR' : 5055, 'ShaderClockKHR' : 5055,
'ShaderEnqueueAMDX' : 5067,
'SampleMaskOverrideCoverageNV' : 5249, 'SampleMaskOverrideCoverageNV' : 5249,
'GeometryShaderPassthroughNV' : 5251, 'GeometryShaderPassthroughNV' : 5251,
'ShaderViewportIndexLayerEXT' : 5254, 'ShaderViewportIndexLayerEXT' : 5254,
@ -1003,6 +1075,7 @@ spv = {
'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311, 'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
'StorageTexelBufferArrayNonUniformIndexing' : 5312, 'StorageTexelBufferArrayNonUniformIndexing' : 5312,
'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312, 'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
'RayTracingPositionFetchKHR' : 5336,
'RayTracingNV' : 5340, 'RayTracingNV' : 5340,
'RayTracingMotionBlurNV' : 5341, 'RayTracingMotionBlurNV' : 5341,
'VulkanMemoryModel' : 5345, 'VulkanMemoryModel' : 5345,
@ -1020,8 +1093,12 @@ spv = {
'FragmentShaderPixelInterlockEXT' : 5378, 'FragmentShaderPixelInterlockEXT' : 5378,
'DemoteToHelperInvocation' : 5379, 'DemoteToHelperInvocation' : 5379,
'DemoteToHelperInvocationEXT' : 5379, 'DemoteToHelperInvocationEXT' : 5379,
'DisplacementMicromapNV' : 5380,
'RayTracingOpacityMicromapEXT' : 5381, 'RayTracingOpacityMicromapEXT' : 5381,
'ShaderInvocationReorderNV' : 5383,
'BindlessTextureNV' : 5390, 'BindlessTextureNV' : 5390,
'RayQueryPositionFetchKHR' : 5391,
'RayTracingDisplacementMicromapNV' : 5409,
'SubgroupShuffleINTEL' : 5568, 'SubgroupShuffleINTEL' : 5568,
'SubgroupBufferBlockIOINTEL' : 5569, 'SubgroupBufferBlockIOINTEL' : 5569,
'SubgroupImageBlockIOINTEL' : 5570, 'SubgroupImageBlockIOINTEL' : 5570,
@ -1054,10 +1131,13 @@ spv = {
'FPGAMemoryAccessesINTEL' : 5898, 'FPGAMemoryAccessesINTEL' : 5898,
'FPGAClusterAttributesINTEL' : 5904, 'FPGAClusterAttributesINTEL' : 5904,
'LoopFuseINTEL' : 5906, 'LoopFuseINTEL' : 5906,
'FPGADSPControlINTEL' : 5908,
'MemoryAccessAliasingINTEL' : 5910, 'MemoryAccessAliasingINTEL' : 5910,
'FPGAInvocationPipeliningAttributesINTEL' : 5916,
'FPGABufferLocationINTEL' : 5920, 'FPGABufferLocationINTEL' : 5920,
'ArbitraryPrecisionFixedPointINTEL' : 5922, 'ArbitraryPrecisionFixedPointINTEL' : 5922,
'USMStorageClassesINTEL' : 5935, 'USMStorageClassesINTEL' : 5935,
'RuntimeAlignedAttributeINTEL' : 5939,
'IOPipesINTEL' : 5943, 'IOPipesINTEL' : 5943,
'BlockingPipesINTEL' : 5945, 'BlockingPipesINTEL' : 5945,
'FPGARegINTEL' : 5948, 'FPGARegINTEL' : 5948,
@ -1070,16 +1150,26 @@ spv = {
'DotProduct' : 6019, 'DotProduct' : 6019,
'DotProductKHR' : 6019, 'DotProductKHR' : 6019,
'RayCullMaskKHR' : 6020, 'RayCullMaskKHR' : 6020,
'CooperativeMatrixKHR' : 6022,
'BitInstructions' : 6025, 'BitInstructions' : 6025,
'GroupNonUniformRotateKHR' : 6026, 'GroupNonUniformRotateKHR' : 6026,
'AtomicFloat32AddEXT' : 6033, 'AtomicFloat32AddEXT' : 6033,
'AtomicFloat64AddEXT' : 6034, 'AtomicFloat64AddEXT' : 6034,
'LongConstantCompositeINTEL' : 6089, 'LongCompositesINTEL' : 6089,
'OptNoneINTEL' : 6094, 'OptNoneINTEL' : 6094,
'AtomicFloat16AddEXT' : 6095, 'AtomicFloat16AddEXT' : 6095,
'DebugInfoModuleINTEL' : 6114, 'DebugInfoModuleINTEL' : 6114,
'BFloat16ConversionINTEL' : 6115,
'SplitBarrierINTEL' : 6141, 'SplitBarrierINTEL' : 6141,
'FPGAClusterAttributesV2INTEL' : 6150,
'FPGAKernelAttributesv2INTEL' : 6161,
'FPMaxErrorINTEL' : 6169,
'FPGALatencyControlINTEL' : 6171,
'FPGAArgumentInterfacesINTEL' : 6174,
'GlobalVariableHostAccessINTEL' : 6187,
'GlobalVariableFPGADecorationsINTEL' : 6189,
'GroupUniformArithmeticKHR' : 6400, 'GroupUniformArithmeticKHR' : 6400,
'CacheControlsINTEL' : 6441,
}, },
'RayFlagsShift' : { 'RayFlagsShift' : {
@ -1175,6 +1265,61 @@ spv = {
'PackedVectorFormat4x8BitKHR' : 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,
},
'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,
},
'Op' : { 'Op' : {
'OpNop' : 0, 'OpNop' : 0,
'OpUndef' : 1, 'OpUndef' : 1,
@ -1520,6 +1665,9 @@ spv = {
'OpPtrEqual' : 401, 'OpPtrEqual' : 401,
'OpPtrNotEqual' : 402, 'OpPtrNotEqual' : 402,
'OpPtrDiff' : 403, 'OpPtrDiff' : 403,
'OpColorAttachmentReadEXT' : 4160,
'OpDepthAttachmentReadEXT' : 4161,
'OpStencilAttachmentReadEXT' : 4162,
'OpTerminateInvocation' : 4416, 'OpTerminateInvocation' : 4416,
'OpSubgroupBallotKHR' : 4421, 'OpSubgroupBallotKHR' : 4421,
'OpSubgroupFirstInvocationKHR' : 4422, 'OpSubgroupFirstInvocationKHR' : 4422,
@ -1545,6 +1693,11 @@ spv = {
'OpUDotAccSatKHR' : 4454, 'OpUDotAccSatKHR' : 4454,
'OpSUDotAccSat' : 4455, 'OpSUDotAccSat' : 4455,
'OpSUDotAccSatKHR' : 4455, 'OpSUDotAccSatKHR' : 4455,
'OpTypeCooperativeMatrixKHR' : 4456,
'OpCooperativeMatrixLoadKHR' : 4457,
'OpCooperativeMatrixStoreKHR' : 4458,
'OpCooperativeMatrixMulAddKHR' : 4459,
'OpCooperativeMatrixLengthKHR' : 4460,
'OpTypeRayQueryKHR' : 4472, 'OpTypeRayQueryKHR' : 4472,
'OpRayQueryInitializeKHR' : 4473, 'OpRayQueryInitializeKHR' : 4473,
'OpRayQueryTerminateKHR' : 4474, 'OpRayQueryTerminateKHR' : 4474,
@ -1552,6 +1705,10 @@ spv = {
'OpRayQueryConfirmIntersectionKHR' : 4476, 'OpRayQueryConfirmIntersectionKHR' : 4476,
'OpRayQueryProceedKHR' : 4477, 'OpRayQueryProceedKHR' : 4477,
'OpRayQueryGetIntersectionTypeKHR' : 4479, 'OpRayQueryGetIntersectionTypeKHR' : 4479,
'OpImageSampleWeightedQCOM' : 4480,
'OpImageBoxFilterQCOM' : 4481,
'OpImageBlockMatchSSDQCOM' : 4482,
'OpImageBlockMatchSADQCOM' : 4483,
'OpGroupIAddNonUniformAMD' : 5000, 'OpGroupIAddNonUniformAMD' : 5000,
'OpGroupFAddNonUniformAMD' : 5001, 'OpGroupFAddNonUniformAMD' : 5001,
'OpGroupFMinNonUniformAMD' : 5002, 'OpGroupFMinNonUniformAMD' : 5002,
@ -1563,11 +1720,49 @@ spv = {
'OpFragmentMaskFetchAMD' : 5011, 'OpFragmentMaskFetchAMD' : 5011,
'OpFragmentFetchAMD' : 5012, 'OpFragmentFetchAMD' : 5012,
'OpReadClockKHR' : 5056, 'OpReadClockKHR' : 5056,
'OpFinalizeNodePayloadsAMDX' : 5075,
'OpFinishWritingNodePayloadAMDX' : 5078,
'OpInitializeNodePayloadsAMDX' : 5090,
'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, 'OpImageSampleFootprintNV' : 5283,
'OpEmitMeshTasksEXT' : 5294, 'OpEmitMeshTasksEXT' : 5294,
'OpSetMeshOutputsEXT' : 5295, 'OpSetMeshOutputsEXT' : 5295,
'OpGroupNonUniformPartitionNV' : 5296, 'OpGroupNonUniformPartitionNV' : 5296,
'OpWritePackedPrimitiveIndices4x8NV' : 5299, 'OpWritePackedPrimitiveIndices4x8NV' : 5299,
'OpFetchMicroTriangleVertexPositionNV' : 5300,
'OpFetchMicroTriangleVertexBarycentricNV' : 5301,
'OpReportIntersectionKHR' : 5334, 'OpReportIntersectionKHR' : 5334,
'OpReportIntersectionNV' : 5334, 'OpReportIntersectionNV' : 5334,
'OpIgnoreIntersectionNV' : 5335, 'OpIgnoreIntersectionNV' : 5335,
@ -1575,6 +1770,7 @@ spv = {
'OpTraceNV' : 5337, 'OpTraceNV' : 5337,
'OpTraceMotionNV' : 5338, 'OpTraceMotionNV' : 5338,
'OpTraceRayMotionNV' : 5339, 'OpTraceRayMotionNV' : 5339,
'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340,
'OpTypeAccelerationStructureKHR' : 5341, 'OpTypeAccelerationStructureKHR' : 5341,
'OpTypeAccelerationStructureNV' : 5341, 'OpTypeAccelerationStructureNV' : 5341,
'OpExecuteCallableNV' : 5344, 'OpExecuteCallableNV' : 5344,
@ -1836,6 +2032,9 @@ spv = {
'OpTypeStructContinuedINTEL' : 6090, 'OpTypeStructContinuedINTEL' : 6090,
'OpConstantCompositeContinuedINTEL' : 6091, 'OpConstantCompositeContinuedINTEL' : 6091,
'OpSpecConstantCompositeContinuedINTEL' : 6092, 'OpSpecConstantCompositeContinuedINTEL' : 6092,
'OpCompositeConstructContinuedINTEL' : 6096,
'OpConvertFToBF16INTEL' : 6116,
'OpConvertBF16ToFINTEL' : 6117,
'OpControlBarrierArriveINTEL' : 6142, 'OpControlBarrierArriveINTEL' : 6142,
'OpControlBarrierWaitINTEL' : 6143, 'OpControlBarrierWaitINTEL' : 6143,
'OpGroupIMulKHR' : 6401, 'OpGroupIMulKHR' : 6401,

View File

@ -68,6 +68,10 @@ enum SourceLanguage : uint
HLSL = 5, HLSL = 5,
CPP_for_OpenCL = 6, CPP_for_OpenCL = 6,
SYCL = 7, SYCL = 7,
HERO_C = 8,
NZSL = 9,
WGSL = 10,
Slang = 11,
} }
enum ExecutionModel : uint enum ExecutionModel : uint
@ -155,6 +159,9 @@ enum ExecutionMode : uint
SubgroupsPerWorkgroupId = 37, SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38, LocalSizeId = 38,
LocalSizeHintId = 39, LocalSizeHintId = 39,
NonCoherentColorAttachmentReadEXT = 4169,
NonCoherentDepthAttachmentReadEXT = 4170,
NonCoherentStencilAttachmentReadEXT = 4171,
SubgroupUniformControlFlowKHR = 4421, SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446, PostDepthCoverage = 4446,
DenormPreserve = 4459, DenormPreserve = 4459,
@ -164,6 +171,11 @@ enum ExecutionMode : uint
RoundingModeRTZ = 4463, RoundingModeRTZ = 4463,
EarlyAndLateFragmentTestsAMD = 5017, EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027, StencilRefReplacingEXT = 5027,
CoalescingAMDX = 5069,
MaxNodeRecursionAMDX = 5071,
StaticNumWorkgroupsAMDX = 5072,
ShaderIndexAMDX = 5073,
MaxNumWorkgroupsAMDX = 5077,
StencilRefUnchangedFrontAMD = 5079, StencilRefUnchangedFrontAMD = 5079,
StencilRefGreaterFrontAMD = 5080, StencilRefGreaterFrontAMD = 5080,
StencilRefLessFrontAMD = 5081, StencilRefLessFrontAMD = 5081,
@ -194,6 +206,8 @@ enum ExecutionMode : uint
NoGlobalOffsetINTEL = 5895, NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896, NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903, SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417, NamedBarrierCountINTEL = 6417,
} }
@ -212,6 +226,9 @@ enum StorageClass : uint
AtomicCounter = 10, AtomicCounter = 10,
Image = 11, Image = 11,
StorageBuffer = 12, StorageBuffer = 12,
TileImageEXT = 4172,
NodePayloadAMDX = 5068,
NodeOutputPayloadAMDX = 5076,
CallableDataKHR = 5328, CallableDataKHR = 5328,
CallableDataNV = 5328, CallableDataNV = 5328,
IncomingCallableDataKHR = 5329, IncomingCallableDataKHR = 5329,
@ -226,6 +243,7 @@ enum StorageClass : uint
ShaderRecordBufferNV = 5343, ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349, PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349, PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402, TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605, CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936, DeviceOnlyINTEL = 5936,
@ -241,6 +259,7 @@ enum Dim : uint
Rect = 4, Rect = 4,
Buffer = 5, Buffer = 5,
SubpassData = 6, SubpassData = 6,
TileImageDataEXT = 4173,
} }
enum SamplerAddressingMode : uint enum SamplerAddressingMode : uint
@ -347,6 +366,8 @@ enum ImageChannelDataType : uint
Float = 14, Float = 14,
UnormInt24 = 15, UnormInt24 = 15,
UnormInt101010_2 = 16, UnormInt101010_2 = 16,
UnsignedIntRaw10EXT = 19,
UnsignedIntRaw12EXT = 20,
} }
enum ImageOperandsShift : uint enum ImageOperandsShift : uint
@ -453,6 +474,7 @@ enum FunctionParameterAttribute : uint
NoCapture = 5, NoCapture = 5,
NoWrite = 6, NoWrite = 6,
NoReadWrite = 7, NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
} }
enum Decoration : uint enum Decoration : uint
@ -506,7 +528,13 @@ enum Decoration : uint
MaxByteOffsetId = 47, MaxByteOffsetId = 47,
NoSignedWrap = 4469, NoSignedWrap = 4469,
NoUnsignedWrap = 4470, NoUnsignedWrap = 4470,
WeightTextureQCOM = 4487,
BlockMatchTextureQCOM = 4488,
ExplicitInterpAMD = 4999, ExplicitInterpAMD = 4999,
NodeSharesPayloadLimitsWithAMDX = 5019,
NodeMaxPayloadsAMDX = 5020,
TrackFinishWritingAMDX = 5078,
PayloadNodeNameAMDX = 5091,
OverrideCoverageNV = 5248, OverrideCoverageNV = 5248,
PassthroughNV = 5250, PassthroughNV = 5250,
ViewportRelativeNV = 5252, ViewportRelativeNV = 5252,
@ -523,6 +551,7 @@ enum Decoration : uint
RestrictPointerEXT = 5355, RestrictPointerEXT = 5355,
AliasedPointer = 5356, AliasedPointer = 5356,
AliasedPointerEXT = 5356, AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398, BindlessSamplerNV = 5398,
BindlessImageNV = 5399, BindlessImageNV = 5399,
BoundSamplerNV = 5400, BoundSamplerNV = 5400,
@ -555,20 +584,45 @@ enum Decoration : uint
MergeINTEL = 5834, MergeINTEL = 5834,
BankBitsINTEL = 5835, BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836, ForcePow2DepthINTEL = 5836,
StridesizeINTEL = 5883,
WordsizeINTEL = 5884,
TrueDualPortINTEL = 5885,
BurstCoalesceINTEL = 5899, BurstCoalesceINTEL = 5899,
CacheSizeINTEL = 5900, CacheSizeINTEL = 5900,
DontStaticallyCoalesceINTEL = 5901, DontStaticallyCoalesceINTEL = 5901,
PrefetchINTEL = 5902, PrefetchINTEL = 5902,
StallEnableINTEL = 5905, StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907, FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914, AliasScopeINTEL = 5914,
NoAliasINTEL = 5915, NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921, BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944, IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080, FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085, SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087, VectorComputeCallableFunctionINTEL = 6087,
MediaBlockIOINTEL = 6140, 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 enum BuiltIn : uint
@ -644,6 +698,8 @@ enum BuiltIn : uint
BaryCoordSmoothSampleAMD = 4997, BaryCoordSmoothSampleAMD = 4997,
BaryCoordPullModelAMD = 4998, BaryCoordPullModelAMD = 4998,
FragStencilRefEXT = 5014, FragStencilRefEXT = 5014,
CoalescedInputCountAMDX = 5021,
ShaderIndexAMDX = 5073,
ViewportMaskNV = 5253, ViewportMaskNV = 5253,
SecondaryPositionNV = 5257, SecondaryPositionNV = 5257,
SecondaryViewportMaskNV = 5258, SecondaryViewportMaskNV = 5258,
@ -696,6 +752,9 @@ enum BuiltIn : uint
HitKindKHR = 5333, HitKindKHR = 5333,
HitKindNV = 5333, HitKindNV = 5333,
CurrentRayTimeNV = 5334, CurrentRayTimeNV = 5334,
HitTriangleVertexPositionsKHR = 5335,
HitMicroTriangleVertexPositionsNV = 5337,
HitMicroTriangleVertexBarycentricsNV = 5344,
IncomingRayFlagsKHR = 5351, IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351, IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352, RayGeometryIndexKHR = 5352,
@ -703,6 +762,8 @@ enum BuiltIn : uint
SMCountNV = 5375, SMCountNV = 5375,
WarpIDNV = 5376, WarpIDNV = 5376,
SMIDNV = 5377, SMIDNV = 5377,
HitKindFrontFacingMicroTriangleNV = 5405,
HitKindBackFacingMicroTriangleNV = 5406,
CullMaskKHR = 6021, CullMaskKHR = 6021,
} }
@ -738,6 +799,8 @@ enum LoopControlShift : uint
MaxInterleavingINTEL = 21, MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22, SpeculatedIterationsINTEL = 22,
NoFusionINTEL = 23, NoFusionINTEL = 23,
LoopCountINTEL = 24,
MaxReinvocationDelayINTEL = 25,
} }
enum LoopControlMask : uint enum LoopControlMask : uint
@ -760,6 +823,8 @@ enum LoopControlMask : uint
MaxInterleavingINTEL = 0x00200000, MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000, SpeculatedIterationsINTEL = 0x00400000,
NoFusionINTEL = 0x00800000, NoFusionINTEL = 0x00800000,
LoopCountINTEL = 0x01000000,
MaxReinvocationDelayINTEL = 0x02000000,
} }
enum FunctionControlShift : uint enum FunctionControlShift : uint
@ -969,6 +1034,9 @@ enum Capability : uint
ShaderViewportIndex = 70, ShaderViewportIndex = 70,
UniformDecoration = 71, UniformDecoration = 71,
CoreBuiltinsARM = 4165, CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
TileImageStencilReadAccessEXT = 4168,
FragmentShadingRateKHR = 4422, FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423, SubgroupBallotKHR = 4423,
DrawParameters = 4427, DrawParameters = 4427,
@ -1000,6 +1068,9 @@ enum Capability : uint
RayQueryKHR = 4472, RayQueryKHR = 4472,
RayTraversalPrimitiveCullingKHR = 4478, RayTraversalPrimitiveCullingKHR = 4478,
RayTracingKHR = 4479, RayTracingKHR = 4479,
TextureSampleWeightedQCOM = 4484,
TextureBoxFilterQCOM = 4485,
TextureBlockMatchQCOM = 4486,
Float16ImageAMD = 5008, Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009, ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010, FragmentMaskAMD = 5010,
@ -1007,6 +1078,7 @@ enum Capability : uint
ImageReadWriteLodAMD = 5015, ImageReadWriteLodAMD = 5015,
Int64ImageEXT = 5016, Int64ImageEXT = 5016,
ShaderClockKHR = 5055, ShaderClockKHR = 5055,
ShaderEnqueueAMDX = 5067,
SampleMaskOverrideCoverageNV = 5249, SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251, GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254, ShaderViewportIndexLayerEXT = 5254,
@ -1048,6 +1120,7 @@ enum Capability : uint
UniformTexelBufferArrayNonUniformIndexingEXT = 5311, UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingPositionFetchKHR = 5336,
RayTracingNV = 5340, RayTracingNV = 5340,
RayTracingMotionBlurNV = 5341, RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345, VulkanMemoryModel = 5345,
@ -1065,8 +1138,12 @@ enum Capability : uint
FragmentShaderPixelInterlockEXT = 5378, FragmentShaderPixelInterlockEXT = 5378,
DemoteToHelperInvocation = 5379, DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379, DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381, RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390, BindlessTextureNV = 5390,
RayQueryPositionFetchKHR = 5391,
RayTracingDisplacementMicromapNV = 5409,
SubgroupShuffleINTEL = 5568, SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569, SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570, SubgroupImageBlockIOINTEL = 5570,
@ -1099,10 +1176,13 @@ enum Capability : uint
FPGAMemoryAccessesINTEL = 5898, FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904, FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906, LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910, MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920, FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922, ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935, USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943, IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945, BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948, FPGARegINTEL = 5948,
@ -1115,16 +1195,26 @@ enum Capability : uint
DotProduct = 6019, DotProduct = 6019,
DotProductKHR = 6019, DotProductKHR = 6019,
RayCullMaskKHR = 6020, RayCullMaskKHR = 6020,
CooperativeMatrixKHR = 6022,
BitInstructions = 6025, BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026, GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033, AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034, AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089, LongCompositesINTEL = 6089,
OptNoneINTEL = 6094, OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095, AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114, DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
SplitBarrierINTEL = 6141, SplitBarrierINTEL = 6141,
FPGAClusterAttributesV2INTEL = 6150,
FPGAKernelAttributesv2INTEL = 6161,
FPMaxErrorINTEL = 6169,
FPGALatencyControlINTEL = 6171,
FPGAArgumentInterfacesINTEL = 6174,
GlobalVariableHostAccessINTEL = 6187,
GlobalVariableFPGADecorationsINTEL = 6189,
GroupUniformArithmeticKHR = 6400, GroupUniformArithmeticKHR = 6400,
CacheControlsINTEL = 6441,
} }
enum RayFlagsShift : uint enum RayFlagsShift : uint
@ -1232,6 +1322,69 @@ enum PackedVectorFormat : uint
PackedVectorFormat4x8BitKHR = 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,
}
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 Op : uint enum Op : uint
{ {
OpNop = 0, OpNop = 0,
@ -1578,6 +1731,9 @@ enum Op : uint
OpPtrEqual = 401, OpPtrEqual = 401,
OpPtrNotEqual = 402, OpPtrNotEqual = 402,
OpPtrDiff = 403, OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416, OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421, OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422, OpSubgroupFirstInvocationKHR = 4422,
@ -1603,6 +1759,11 @@ enum Op : uint
OpUDotAccSatKHR = 4454, OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455, OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455, OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472, OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473, OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474, OpRayQueryTerminateKHR = 4474,
@ -1610,6 +1771,10 @@ enum Op : uint
OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477, OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479, OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000, OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001, OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002, OpGroupFMinNonUniformAMD = 5002,
@ -1621,11 +1786,49 @@ enum Op : uint
OpFragmentMaskFetchAMD = 5011, OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012, OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056, OpReadClockKHR = 5056,
OpFinalizeNodePayloadsAMDX = 5075,
OpFinishWritingNodePayloadAMDX = 5078,
OpInitializeNodePayloadsAMDX = 5090,
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, OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294, OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295, OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296, OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299, OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpReportIntersectionKHR = 5334, OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334, OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335, OpIgnoreIntersectionNV = 5335,
@ -1633,6 +1836,7 @@ enum Op : uint
OpTraceNV = 5337, OpTraceNV = 5337,
OpTraceMotionNV = 5338, OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339, OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341, OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344, OpExecuteCallableNV = 5344,
@ -1894,6 +2098,9 @@ enum Op : uint
OpTypeStructContinuedINTEL = 6090, OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091, OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092, OpSpecConstantCompositeContinuedINTEL = 6092,
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142, OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143, OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401, OpGroupIMulKHR = 6401,

47
tests/CMakeLists.txt Executable file
View File

@ -0,0 +1,47 @@
# Copyright (c) 2015-2023 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(simple_test STATIC)
target_sources(simple_test PRIVATE
example.cpp
)
target_link_libraries(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()

0
example/example.cpp → tests/example.cpp Normal file → Executable file
View File

View File

@ -0,0 +1,23 @@
cmake_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}")

23
tests/pkg_config/CMakeLists.txt Executable file
View File

@ -0,0 +1,23 @@
cmake_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}")

View File

@ -26,3 +26,4 @@ mk_extinst('AMD_shader_explicit_vertex_parameter', 'extinst.spv-amd-shader-expli
mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.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('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json')
mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json') mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json')
mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json')

View File

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -ex
python3 bin/makeExtinstHeaders.py python3 bin/makeExtinstHeaders.py
cd ../../include/spirv/unified1 cd ../../include/spirv/unified1

View File

@ -574,17 +574,11 @@ namespace {
// C++ printer // C++ printer
class TPrinterCPP : public TPrinterCBase { class TPrinterCPP : public TPrinterCBase {
private: protected:
void printPrologue(std::ostream& out) const override { void printMaskOperators(std::ostream& out, const std::string& specifiers) const {
TPrinterCBase::printPrologue(out);
out << "namespace spv {\n\n";
}
void printEpilogue(std::ostream& out) const override {
const Json::Value& enums = spvRoot["spv"]["enum"]; const Json::Value& enums = spvRoot["spv"]["enum"];
// Create overloaded operator| for mask types out << "// Overload bitwise operators for mask bit combining\n\n";
out << "// Overload operator| for mask bit combining\n\n";
for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) { for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) {
const bool isMask = (*opClass)["Type"].asString() == "Bit"; const bool isMask = (*opClass)["Type"].asString() == "Bit";
@ -593,11 +587,29 @@ namespace {
if (isMask) { if (isMask) {
const auto typeName = opName + styleStr(enumMask); const auto typeName = opName + styleStr(enumMask);
out << "inline " + typeName + " operator|(" + typeName + " a, " + typeName + " b) { return " + // Overload operator|
typeName + "(unsigned(a) | unsigned(b)); }\n"; 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 << "\n} // end namespace spv\n\n";
out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl; out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
} }
@ -633,6 +645,11 @@ namespace {
// C++11 printer (uses enum classes) // C++11 printer (uses enum classes)
class TPrinterCPP11 final : public TPrinterCPP { class TPrinterCPP11 final : public TPrinterCPP {
private: 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 { std::string enumBeg(const std::string& s, enumStyle_t style) const override {
return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n"; return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n";
} }

View File

@ -36,8 +36,185 @@
#include "jsonToSpirv.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 { namespace spv {
bool IsLegacyDoublyEnabledInstruction(const std::string& instruction) {
static std::unordered_set<std::string> 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 // The set of objects that hold all the instruction/operand
// parameterization information. // parameterization information.
InstructionValues InstructionDesc; InstructionValues InstructionDesc;
@ -88,6 +265,13 @@ EnumValues RayQueryCommittedIntersectionTypeParams;
EnumValues RayQueryCandidateIntersectionTypeParams; EnumValues RayQueryCandidateIntersectionTypeParams;
EnumValues FragmentShadingRateParams; EnumValues FragmentShadingRateParams;
EnumValues PackedVectorFormatParams; EnumValues PackedVectorFormatParams;
EnumValues CooperativeMatrixOperandsParams;
EnumValues CooperativeMatrixLayoutParams;
EnumValues CooperativeMatrixUseParams;
EnumValues InitializationModeQualifierParams;
EnumValues HostAccessQualifierParams;
EnumValues LoadCacheControlParams;
EnumValues StoreCacheControlParams;
std::pair<bool, std::string> ReadFile(const std::string& path) std::pair<bool, std::string> ReadFile(const std::string& path)
{ {
@ -158,6 +342,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandLiteralNumber; type = OperandLiteralNumber;
} else if (operandKind == "LiteralContextDependentNumber") { } else if (operandKind == "LiteralContextDependentNumber") {
type = OperandAnySizeLiteralNumber; type = OperandAnySizeLiteralNumber;
} else if (operandKind == "LiteralFloat") {
type = OperandLiteralNumber;
} else if (operandKind == "SourceLanguage") { } else if (operandKind == "SourceLanguage") {
type = OperandSource; type = OperandSource;
} else if (operandKind == "ExecutionModel") { } else if (operandKind == "ExecutionModel") {
@ -234,6 +420,20 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandFragmentShadingRate; type = OperandFragmentShadingRate;
} else if (operandKind == "PackedVectorFormat") { } else if (operandKind == "PackedVectorFormat") {
type = OperandPackedVectorFormat; 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;
} }
if (type == OperandNone) { if (type == OperandNone) {
@ -273,6 +473,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
return; return;
initialized = true; initialized = true;
size_t errorCount = 0;
// Read the JSON grammar file. // Read the JSON grammar file.
bool fileReadOk = false; bool fileReadOk = false;
std::string content; std::string content;
@ -326,8 +528,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
for (const auto& printingClass : printingClasses) { for (const auto& printingClass : printingClasses) {
if (printingClass["tag"].asString().size() > 0) if (printingClass["tag"].asString().size() > 0)
tags.insert(printingClass["tag"].asString()); // just for error checking tags.insert(printingClass["tag"].asString()); // just for error checking
else else {
std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl; std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl;
std::exit(1);
}
if (buildingHeaders || printingClass["tag"].asString() != "@exclude") { if (buildingHeaders || printingClass["tag"].asString() != "@exclude") {
InstructionPrintingClasses.push_back({printingClass["tag"].asString(), InstructionPrintingClasses.push_back({printingClass["tag"].asString(),
printingClass["heading"].asString()}); printingClass["heading"].asString()});
@ -343,6 +547,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
if (printingClass.size() == 0) { if (printingClass.size() == 0) {
std::cerr << "Error: " << inst["opname"].asString() std::cerr << "Error: " << inst["opname"].asString()
<< " requires a non-empty printing \"class\" tag" << std::endl; << " requires a non-empty printing \"class\" tag" << std::endl;
std::exit(1);
} }
if (!buildingHeaders && printingClass == "@exclude") if (!buildingHeaders && printingClass == "@exclude")
continue; continue;
@ -350,6 +555,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
std::cerr << "Error: " << inst["opname"].asString() std::cerr << "Error: " << inst["opname"].asString()
<< " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\"" << " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\""
<< std::endl; << std::endl;
std::exit(1);
} }
const auto opcode = inst["opcode"].asUInt(); const auto opcode = inst["opcode"].asUInt();
const std::string name = inst["opname"].asString(); const std::string name = inst["opname"].asString();
@ -387,12 +593,15 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
std::move(caps), std::move(version), std::move(lastVersion), std::move(exts), std::move(caps), std::move(version), std::move(lastVersion), std::move(exts),
std::move(operands))), std::move(operands))),
printingClass, defTypeId, defResultId); printingClass, defTypeId, defResultId);
if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) {
errorCount++;
}
} }
// Specific additional context-dependent operands // Specific additional context-dependent operands
// Populate dest with EnumValue objects constructed from source. // Populate dest with EnumValue objects constructed from source.
const auto populateEnumValues = [&getCaps,&getExts](EnumValues* dest, const Json::Value& source, bool bitEnum) { 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 // 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. // enumerant in JSON form, and whether that value is a 0 in a bitfield.
auto getValue = [&bitEnum](const Json::Value& enumerant) { auto getValue = [&bitEnum](const Json::Value& enumerant) {
@ -451,12 +660,22 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
} }
}; };
const auto establishOperandClass = [&populateEnumValues]( const auto establishOperandClass = [&populateEnumValues,&errorCount](
const std::string& enumName, spv::OperandClass operandClass, const std::string& enumName, spv::OperandClass operandClass,
spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) { spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) {
assert(category == "BitEnum" || category == "ValueEnum"); assert(category == "BitEnum" || category == "ValueEnum");
bool bitEnum = (category == "BitEnum"); 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); 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); OperandClassParams[operandClass].set(enumName, enumValues, bitEnum);
}; };
@ -544,8 +763,26 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category); establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
} else if (enumName == "PackedVectorFormat") { } else if (enumName == "PackedVectorFormat") {
establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category); 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);
} }
} }
if (errorCount > 0) {
std::exit(1);
}
} }
}; // end namespace spv }; // end namespace spv

View File

@ -96,6 +96,13 @@ enum OperandClass {
OperandQuantizationModes, OperandQuantizationModes,
OperandOverflowModes, OperandOverflowModes,
OperandPackedVectorFormat, OperandPackedVectorFormat,
OperandCooperativeMatrixOperands,
OperandCooperativeMatrixLayout,
OperandCooperativeMatrixUse,
OperandInitializationModeQualifier,
OperandHostAccessQualifier,
OperandLoadCacheControl,
OperandStoreCacheControl,
OperandOpcode, OperandOpcode,
@ -184,6 +191,7 @@ public:
iterator begin() { return values.begin(); } iterator begin() { return values.begin(); }
iterator end() { return values.end(); } iterator end() { return values.end(); }
EValue& back() { return values.back(); }
private: private:
ContainerType values; ContainerType values;
@ -216,6 +224,10 @@ public:
Extensions extensions; Extensions extensions;
OperandParameters operands; OperandParameters operands;
const char* desc; 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<EnumValue>; using EnumValues = EnumValuesContainer<EnumValue>;