From 4e7add7b09cde53dd7c0483e60d835af5cb60ea7 Mon Sep 17 00:00:00 2001 From: huruitao Date: Tue, 21 May 2024 14:26:08 +0800 Subject: [PATCH] update to vulkan-sdk-1.3.275.0 Signed-off-by: huruitao --- CMakeLists.txt | 136 +- README.OpenSource | 2 +- SECURITY.md | 13 + cmake/Config.cmake.in | 4 - .../SPIRV-Headers.pc.in | 3 +- example/CMakeLists.txt | 4 - include/spirv/spir-v.xml | 22 +- .../unified1/NonSemanticClspvReflection.h | 15 +- .../spirv/unified1/NonSemanticDebugBreak.h | 50 + ...t.nonsemantic.clspvreflection.grammar.json | 78 +- ...xtinst.nonsemantic.debugbreak.grammar.json | 9 + include/spirv/unified1/spirv.bf | 209 +- .../spirv/unified1/spirv.core.grammar.json | 3584 +++++++++++++---- include/spirv/unified1/spirv.cs | 209 +- include/spirv/unified1/spirv.h | 262 +- include/spirv/unified1/spirv.hpp | 298 +- include/spirv/unified1/spirv.hpp11 | 318 +- include/spirv/unified1/spirv.json | 232 +- include/spirv/unified1/spirv.lua | 201 +- include/spirv/unified1/spirv.py | 201 +- include/spirv/unified1/spv.d | 209 +- tests/CMakeLists.txt | 47 + {example => tests}/example.cpp | 0 tests/find_package/CMakeLists.txt | 23 + tests/pkg_config/CMakeLists.txt | 23 + tools/buildHeaders/bin/makeExtinstHeaders.py | 1 + tools/buildHeaders/bin/makeHeaders | 2 + tools/buildHeaders/header.cpp | 39 +- tools/buildHeaders/jsonToSpirv.cpp | 243 +- tools/buildHeaders/jsonToSpirv.h | 12 + 30 files changed, 5600 insertions(+), 849 deletions(-) create mode 100755 SECURITY.md delete mode 100644 cmake/Config.cmake.in rename SPIRV-Headers.pc.in => cmake/SPIRV-Headers.pc.in (65%) mode change 100644 => 100755 delete mode 100644 example/CMakeLists.txt create mode 100755 include/spirv/unified1/NonSemanticDebugBreak.h create mode 100755 include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json create mode 100755 tests/CMakeLists.txt rename {example => tests}/example.cpp (100%) mode change 100644 => 100755 create mode 100755 tests/find_package/CMakeLists.txt create mode 100755 tests/pkg_config/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cfba73..e3d76d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 # 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, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +cmake_minimum_required(VERSION 3.14) +project(SPIRV-Headers LANGUAGES CXX VERSION 1.5.5) -# -# The SPIR-V headers from the SPIR-V Registry -# https://www.khronos.org/registry/spir-v/ -# -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) +if (CMAKE_VERSION VERSION_LESS "3.21") + # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html + string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL) endif() -if(NOT ${SPIRV_HEADERS_SKIP_INSTALL}) - set(SPIRV_HEADERS_ENABLE_INSTALL ON) - # legacy - add_custom_target(install-headers - COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv - $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv) -endif() +add_library(SPIRV-Headers INTERFACE) +add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers) +target_include_directories(SPIRV-Headers INTERFACE $) -if (SPIRV_HEADERS_ENABLE_EXAMPLES) - message(STATUS "Building SPIRV-Header examples") - add_subdirectory(example) -endif() - -include(GNUInstallDirs) -add_library(${PROJECT_NAME} INTERFACE) -target_include_directories(${PROJECT_NAME} INTERFACE - $ -) - -# 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}::") +if (PROJECT_IS_TOP_LEVEL) + option(BUILD_TESTS "Build the tests") + if (BUILD_TESTS) + add_subdirectory(tests) + endif() + include(GNUInstallDirs) include(CMakePackageConfigHelpers) - if (NOT CMAKE_VERSION VERSION_LESS 3.14) - set(arch_independent_str ARCH_INDEPENDENT) + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + set(cmake_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/SPIRV-Headers") + set(version_config "${CMAKE_CURRENT_BINARY_DIR}/generated/SPIRV-HeadersConfigVersion.cmake") + + write_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT) + install(FILES "${version_config}" DESTINATION "${cmake_install_dir}") + + install(TARGETS SPIRV-Headers EXPORT "SPIRV-HeadersConfig" INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(EXPORT "SPIRV-HeadersConfig" NAMESPACE "SPIRV-Headers::" DESTINATION "${cmake_install_dir}") + + if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR}) + set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}) + else() + set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) endif() - write_basic_package_version_file( - "${version_config}" - 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 - ) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Headers.pc.in ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc @ONLY) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc" DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) endif() diff --git a/README.OpenSource b/README.OpenSource index db973f4..707783d 100644 --- a/README.OpenSource +++ b/README.OpenSource @@ -3,7 +3,7 @@ "Name": "spirv-headers", "License": "Apache-2.0", "License File": "LICENSE", - "Version Number": "sdk-1.3.231.1", + "Version Number": "sdk-1.3.275.0", "Owner": "zhangleiyu1@huawei.com", "Upstream URL": "https://github.com/KhronosGroup/SPIRV-Headers.git", "Description": "This repository contains machine-readable files for the SPIR-V Registry." diff --git a/SECURITY.md b/SECURITY.md new file mode 100755 index 0000000..9b51f0c --- /dev/null +++ b/SECURITY.md @@ -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. diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in deleted file mode 100644 index 38bbde7..0000000 --- a/cmake/Config.cmake.in +++ /dev/null @@ -1,4 +0,0 @@ -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") -check_required_components("@PROJECT_NAME@") diff --git a/SPIRV-Headers.pc.in b/cmake/SPIRV-Headers.pc.in old mode 100644 new mode 100755 similarity index 65% rename from SPIRV-Headers.pc.in rename to cmake/SPIRV-Headers.pc.in index 345f5f8..843b0a7 --- a/SPIRV-Headers.pc.in +++ b/cmake/SPIRV-Headers.pc.in @@ -1,5 +1,4 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ +includedir=@SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR@ Name: SPIRV-Headers Description: Header files from the SPIR-V registry diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt deleted file mode 100644 index 8b22f60..0000000 --- a/example/CMakeLists.txt +++ /dev/null @@ -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) diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml index dad141b..1305df5 100644 --- a/include/spirv/spir-v.xml +++ b/include/spirv/spir-v.xml @@ -62,7 +62,7 @@ - + @@ -82,11 +82,16 @@ - + - + + + + + + @@ -139,13 +144,17 @@ + + + + - + @@ -169,13 +178,16 @@ + + + - + diff --git a/include/spirv/unified1/NonSemanticClspvReflection.h b/include/spirv/unified1/NonSemanticClspvReflection.h index 0cdf29d..4ee87c2 100644 --- a/include/spirv/unified1/NonSemanticClspvReflection.h +++ b/include/spirv/unified1/NonSemanticClspvReflection.h @@ -33,7 +33,7 @@ extern "C" { #endif enum { - NonSemanticClspvReflectionRevision = 4, + NonSemanticClspvReflectionRevision = 6, NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff }; @@ -73,10 +73,23 @@ enum NonSemanticClspvReflectionInstructions { NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33, NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34, NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35, + NonSemanticClspvReflectionConstantDataPointerPushConstant = 36, + NonSemanticClspvReflectionProgramScopeVariablePointerPushConstant = 37, + NonSemanticClspvReflectionPrintfInfo = 38, + NonSemanticClspvReflectionPrintfBufferStorageBuffer = 39, + NonSemanticClspvReflectionPrintfBufferPointerPushConstant = 40, + NonSemanticClspvReflectionNormalizedSamplerMaskPushConstant = 41, NonSemanticClspvReflectionInstructionsMax = 0x7fffffff }; +enum NonSemanticClspvReflectionKernelPropertyFlags { + NonSemanticClspvReflectionNone = 0x0, + NonSemanticClspvReflectionMayUsePrintf = 0x1, + NonSemanticClspvReflectionKernelPropertyFlagsMax = 0x7fffffff +}; + + #ifdef __cplusplus } #endif diff --git a/include/spirv/unified1/NonSemanticDebugBreak.h b/include/spirv/unified1/NonSemanticDebugBreak.h new file mode 100755 index 0000000..6ec2b5b --- /dev/null +++ b/include/spirv/unified1/NonSemanticDebugBreak.h @@ -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_ diff --git a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json index b5a6637..cfccc80 100644 --- a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json +++ b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json @@ -1,12 +1,15 @@ { - "revision" : 4, + "revision" : 6, "instructions" : [ { "opname" : "Kernel", "opcode" : 1, "operands" : [ { "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" : "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" + } + ] } ] } diff --git a/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json b/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json new file mode 100755 index 0000000..ae28883 --- /dev/null +++ b/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json @@ -0,0 +1,9 @@ +{ + "revision" : 1, + "instructions" : [ + { + "opname" : "DebugBreak", + "opcode" : 1 + } + ] +} diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf index 4bdb937..2528b9c 100644 --- a/include/spirv/unified1/spirv.bf +++ b/include/spirv/unified1/spirv.bf @@ -66,6 +66,10 @@ namespace Spv HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, + HERO_C = 8, + NZSL = 9, + WGSL = 10, + Slang = 11, } [AllowDuplicates, CRepr] public enum ExecutionModel @@ -153,6 +157,9 @@ namespace Spv SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, + NonCoherentColorAttachmentReadEXT = 4169, + NonCoherentDepthAttachmentReadEXT = 4170, + NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, @@ -162,6 +169,11 @@ namespace Spv RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, + CoalescingAMDX = 5069, + MaxNodeRecursionAMDX = 5071, + StaticNumWorkgroupsAMDX = 5072, + ShaderIndexAMDX = 5073, + MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, @@ -192,6 +204,8 @@ namespace Spv NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, + StreamingInterfaceINTEL = 6154, + RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, } @@ -210,6 +224,9 @@ namespace Spv AtomicCounter = 10, Image = 11, StorageBuffer = 12, + TileImageEXT = 4172, + NodePayloadAMDX = 5068, + NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, @@ -224,6 +241,7 @@ namespace Spv ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, @@ -239,6 +257,7 @@ namespace Spv Rect = 4, Buffer = 5, SubpassData = 6, + TileImageDataEXT = 4173, } [AllowDuplicates, CRepr] public enum SamplerAddressingMode @@ -345,6 +364,8 @@ namespace Spv Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, + UnsignedIntRaw10EXT = 19, + UnsignedIntRaw12EXT = 20, } [AllowDuplicates, CRepr] public enum ImageOperandsShift @@ -451,6 +472,7 @@ namespace Spv NoCapture = 5, NoWrite = 6, NoReadWrite = 7, + RuntimeAlignedINTEL = 5940, } [AllowDuplicates, CRepr] public enum Decoration @@ -504,7 +526,13 @@ namespace Spv MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, + WeightTextureQCOM = 4487, + BlockMatchTextureQCOM = 4488, ExplicitInterpAMD = 4999, + NodeSharesPayloadLimitsWithAMDX = 5019, + NodeMaxPayloadsAMDX = 5020, + TrackFinishWritingAMDX = 5078, + PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, @@ -521,6 +549,7 @@ namespace Spv RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, + HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -553,20 +582,45 @@ namespace Spv MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, + StridesizeINTEL = 5883, + WordsizeINTEL = 5884, + TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, + MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, + InitiationIntervalINTEL = 5917, + MaxConcurrencyINTEL = 5918, + PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, + StallFreeINTEL = 6151, + FPMaxErrorDecorationINTEL = 6170, + LatencyControlLabelINTEL = 6172, + LatencyControlConstraintINTEL = 6173, + ConduitKernelArgumentINTEL = 6175, + RegisterMapKernelArgumentINTEL = 6176, + MMHostInterfaceAddressWidthINTEL = 6177, + MMHostInterfaceDataWidthINTEL = 6178, + MMHostInterfaceLatencyINTEL = 6179, + MMHostInterfaceReadWriteModeINTEL = 6180, + MMHostInterfaceMaxBurstINTEL = 6181, + MMHostInterfaceWaitRequestINTEL = 6182, + StableKernelArgumentINTEL = 6183, + HostAccessINTEL = 6188, + InitModeINTEL = 6190, + ImplementInRegisterMapINTEL = 6191, + CacheControlLoadINTEL = 6442, + CacheControlStoreINTEL = 6443, } [AllowDuplicates, CRepr] public enum BuiltIn @@ -642,6 +696,8 @@ namespace Spv BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, + CoalescedInputCountAMDX = 5021, + ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, @@ -694,6 +750,9 @@ namespace Spv HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, + HitTriangleVertexPositionsKHR = 5335, + HitMicroTriangleVertexPositionsNV = 5337, + HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, @@ -701,6 +760,8 @@ namespace Spv SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, + HitKindFrontFacingMicroTriangleNV = 5405, + HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, } @@ -736,6 +797,8 @@ namespace Spv MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, + LoopCountINTEL = 24, + MaxReinvocationDelayINTEL = 25, } [AllowDuplicates, CRepr] public enum LoopControlMask @@ -758,6 +821,8 @@ namespace Spv MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, + LoopCountINTEL = 0x01000000, + MaxReinvocationDelayINTEL = 0x02000000, } [AllowDuplicates, CRepr] public enum FunctionControlShift @@ -967,6 +1032,9 @@ namespace Spv ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, + TileImageColorReadAccessEXT = 4166, + TileImageDepthReadAccessEXT = 4167, + TileImageStencilReadAccessEXT = 4168, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, @@ -998,6 +1066,9 @@ namespace Spv RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, + TextureSampleWeightedQCOM = 4484, + TextureBoxFilterQCOM = 4485, + TextureBlockMatchQCOM = 4486, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, @@ -1005,6 +1076,7 @@ namespace Spv ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, + ShaderEnqueueAMDX = 5067, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, @@ -1046,6 +1118,7 @@ namespace Spv UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, + RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, @@ -1063,8 +1136,12 @@ namespace Spv FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, + DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, + ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, + RayQueryPositionFetchKHR = 5391, + RayTracingDisplacementMicromapNV = 5409, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, @@ -1097,10 +1174,13 @@ namespace Spv FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, + FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, + FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, + RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, @@ -1113,16 +1193,26 @@ namespace Spv DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, + CooperativeMatrixKHR = 6022, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, - LongConstantCompositeINTEL = 6089, + LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, + BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, + FPGAClusterAttributesV2INTEL = 6150, + FPGAKernelAttributesv2INTEL = 6161, + FPMaxErrorINTEL = 6169, + FPGALatencyControlINTEL = 6171, + FPGAArgumentInterfacesINTEL = 6174, + GlobalVariableHostAccessINTEL = 6187, + GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, + CacheControlsINTEL = 6441, } [AllowDuplicates, CRepr] public enum RayFlagsShift @@ -1230,6 +1320,69 @@ namespace Spv 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 { OpNop = 0, @@ -1576,6 +1729,9 @@ namespace Spv OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, + OpColorAttachmentReadEXT = 4160, + OpDepthAttachmentReadEXT = 4161, + OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, @@ -1601,6 +1757,11 @@ namespace Spv OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, + OpTypeCooperativeMatrixKHR = 4456, + OpCooperativeMatrixLoadKHR = 4457, + OpCooperativeMatrixStoreKHR = 4458, + OpCooperativeMatrixMulAddKHR = 4459, + OpCooperativeMatrixLengthKHR = 4460, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1608,6 +1769,10 @@ namespace Spv OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, + OpImageSampleWeightedQCOM = 4480, + OpImageBoxFilterQCOM = 4481, + OpImageBlockMatchSSDQCOM = 4482, + OpImageBlockMatchSADQCOM = 4483, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -1619,11 +1784,49 @@ namespace Spv OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, 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, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, + OpFetchMicroTriangleVertexPositionNV = 5300, + OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -1631,6 +1834,7 @@ namespace Spv OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, + OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1892,6 +2096,9 @@ namespace Spv OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, + OpCompositeConstructContinuedINTEL = 6096, + OpConvertFToBF16INTEL = 6116, + OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json index c6517c4..4de8edc 100644 --- a/include/spirv/unified1/spirv.core.grammar.json +++ b/include/spirv/unified1/spirv.core.grammar.json @@ -137,7 +137,8 @@ { "opname" : "OpNop", "class" : "Miscellaneous", - "opcode" : 0 + "opcode" : 0, + "version" : "1.0" }, { "opname" : "OpUndef", @@ -146,7 +147,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version" : "1.0" }, { "opname" : "OpSourceContinued", @@ -154,7 +156,8 @@ "opcode" : 2, "operands" : [ { "kind" : "LiteralString", "name" : "'Continued Source'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSource", @@ -165,7 +168,8 @@ { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" }, { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSourceExtension", @@ -173,7 +177,8 @@ "opcode" : 4, "operands" : [ { "kind" : "LiteralString", "name" : "'Extension'" } - ] + ], + "version": "1.0" }, { "opname" : "OpName", @@ -182,7 +187,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpMemberName", @@ -192,7 +198,8 @@ { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpString", @@ -201,7 +208,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'String'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLine", @@ -211,7 +219,8 @@ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExtension", @@ -219,7 +228,8 @@ "opcode" : 10, "operands" : [ { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExtInstImport", @@ -228,7 +238,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExtInst", @@ -240,7 +251,8 @@ { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpMemoryModel", @@ -249,7 +261,8 @@ "operands" : [ { "kind" : "AddressingModel" }, { "kind" : "MemoryModel" } - ] + ], + "version": "1.0" }, { "opname" : "OpEntryPoint", @@ -260,7 +273,8 @@ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExecutionMode", @@ -269,7 +283,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCapability", @@ -277,7 +292,8 @@ "opcode" : 17, "operands" : [ { "kind" : "Capability", "name" : "'Capability'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeVoid", @@ -285,7 +301,8 @@ "opcode" : 19, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeBool", @@ -293,7 +310,8 @@ "opcode" : 20, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeInt", @@ -303,7 +321,8 @@ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" }, { "kind" : "LiteralInteger", "name" : "'Signedness'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeFloat", @@ -312,7 +331,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeVector", @@ -322,7 +342,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeMatrix", @@ -333,7 +354,8 @@ { "kind" : "IdRef", "name" : "'Column Type'" }, { "kind" : "LiteralInteger", "name" : "'Column Count'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpTypeImage", @@ -349,7 +371,8 @@ { "kind" : "LiteralInteger", "name" : "'Sampled'" }, { "kind" : "ImageFormat" }, { "kind" : "AccessQualifier", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeSampler", @@ -357,7 +380,8 @@ "opcode" : 26, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeSampledImage", @@ -366,7 +390,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeArray", @@ -376,7 +401,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" }, { "kind" : "IdRef", "name" : "'Length'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeRuntimeArray", @@ -386,7 +412,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpTypeStruct", @@ -395,7 +422,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeOpaque", @@ -405,7 +433,8 @@ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "The name of the opaque type." } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpTypePointer", @@ -415,7 +444,8 @@ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "name" : "'Type'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeFunction", @@ -425,7 +455,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeEvent", @@ -434,7 +465,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpTypeDeviceEvent", @@ -443,7 +475,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpTypeReserveId", @@ -452,7 +485,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpTypeQueue", @@ -461,7 +495,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpTypePipe", @@ -471,7 +506,8 @@ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'Qualifier'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpTypeForwardPointer", @@ -484,7 +520,8 @@ "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpConstantTrue", @@ -493,7 +530,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstantFalse", @@ -502,7 +540,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstant", @@ -512,7 +551,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstantComposite", @@ -522,7 +562,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstantSampler", @@ -535,7 +576,8 @@ { "kind" : "LiteralInteger", "name" : "'Param'" }, { "kind" : "SamplerFilterMode" } ], - "capabilities" : [ "LiteralSampler" ] + "capabilities" : [ "LiteralSampler" ], + "version": "1.0" }, { "opname" : "OpConstantNull", @@ -544,7 +586,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantTrue", @@ -553,7 +596,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantFalse", @@ -562,7 +606,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstant", @@ -572,7 +617,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantComposite", @@ -582,7 +628,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantOp", @@ -592,7 +639,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFunction", @@ -603,7 +651,8 @@ { "kind" : "IdResult" }, { "kind" : "FunctionControl" }, { "kind" : "IdRef", "name" : "'Function Type'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFunctionParameter", @@ -612,12 +661,14 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpFunctionEnd", "class" : "Function", - "opcode" : 56 + "opcode" : 56, + "version" : "1.0" }, { "opname" : "OpFunctionCall", @@ -628,7 +679,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpVariable", @@ -639,7 +691,8 @@ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageTexelPointer", @@ -651,7 +704,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Sample'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLoad", @@ -662,7 +716,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpStore", @@ -672,7 +727,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpCopyMemory", @@ -683,7 +739,8 @@ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "MemoryAccess", "quantifier" : "?" }, { "kind" : "MemoryAccess", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpCopyMemorySized", @@ -696,7 +753,8 @@ { "kind" : "MemoryAccess", "quantifier" : "?" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "opname" : "OpAccessChain", @@ -707,7 +765,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpInBoundsAccessChain", @@ -718,7 +777,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpPtrAccessChain", @@ -736,7 +796,8 @@ "VariablePointers", "VariablePointersStorageBuffer", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpArrayLength", @@ -748,7 +809,8 @@ { "kind" : "IdRef", "name" : "'Structure'" }, { "kind" : "LiteralInteger", "name" : "'Array member'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpGenericPtrMemSemantics", @@ -759,7 +821,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpInBoundsPtrAccessChain", @@ -772,7 +835,8 @@ { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "opname" : "OpDecorate", @@ -781,7 +845,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } - ] + ], + "version": "1.0" }, { "opname" : "OpMemberDecorate", @@ -791,7 +856,8 @@ { "kind" : "IdRef", "name" : "'Structure Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } - ] + ], + "version": "1.0" }, { "opname" : "OpDecorationGroup", @@ -799,7 +865,8 @@ "opcode" : 73, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpGroupDecorate", @@ -808,7 +875,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" } - ] + ], + "version": "1.0" }, { "opname" : "OpGroupMemberDecorate", @@ -817,7 +885,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorExtractDynamic", @@ -828,7 +897,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Index'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorInsertDynamic", @@ -840,7 +910,8 @@ { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "IdRef", "name" : "'Index'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorShuffle", @@ -852,7 +923,8 @@ { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCompositeConstruct", @@ -862,7 +934,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCompositeExtract", @@ -873,7 +946,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCompositeInsert", @@ -885,7 +959,8 @@ { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCopyObject", @@ -895,7 +970,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTranspose", @@ -906,7 +982,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpSampledImage", @@ -917,7 +994,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Sampler'" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageSampleImplicitLod", @@ -930,7 +1008,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleExplicitLod", @@ -942,7 +1021,8 @@ { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageSampleDrefImplicitLod", @@ -956,7 +1036,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleDrefExplicitLod", @@ -970,7 +1051,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjImplicitLod", @@ -983,7 +1065,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjExplicitLod", @@ -996,7 +1079,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjDrefImplicitLod", @@ -1010,7 +1094,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjDrefExplicitLod", @@ -1024,7 +1109,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageFetch", @@ -1036,7 +1122,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageGather", @@ -1050,7 +1137,8 @@ { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageDrefGather", @@ -1064,7 +1152,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageRead", @@ -1076,7 +1165,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageWrite", @@ -1087,7 +1177,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Texel'" }, { "kind" : "ImageOperands", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpImage", @@ -1097,7 +1188,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageQueryFormat", @@ -1108,7 +1200,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpImageQueryOrder", @@ -1119,7 +1212,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpImageQuerySizeLod", @@ -1131,7 +1225,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Level of Detail'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQuerySize", @@ -1142,7 +1237,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQueryLod", @@ -1154,7 +1250,8 @@ { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], - "capabilities" : [ "ImageQuery" ] + "capabilities" : [ "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQueryLevels", @@ -1165,7 +1262,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQuerySamples", @@ -1176,7 +1274,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpConvertFToU", @@ -1186,7 +1285,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertFToS", @@ -1196,7 +1296,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertSToF", @@ -1206,7 +1307,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertUToF", @@ -1216,7 +1318,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUConvert", @@ -1226,7 +1329,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSConvert", @@ -1236,7 +1340,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFConvert", @@ -1246,7 +1351,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpQuantizeToF16", @@ -1256,7 +1362,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertPtrToU", @@ -1270,7 +1377,8 @@ "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpSatConvertSToU", @@ -1281,7 +1389,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpSatConvertUToS", @@ -1292,7 +1401,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpConvertUToPtr", @@ -1306,7 +1416,8 @@ "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpPtrCastToGeneric", @@ -1317,7 +1428,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGenericCastToPtr", @@ -1328,7 +1440,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGenericCastToPtrExplicit", @@ -1340,7 +1453,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "StorageClass", "name" : "'Storage'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpBitcast", @@ -1350,7 +1464,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSNegate", @@ -1360,7 +1475,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFNegate", @@ -1370,7 +1486,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIAdd", @@ -1381,7 +1498,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFAdd", @@ -1392,7 +1510,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpISub", @@ -1403,7 +1522,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFSub", @@ -1414,7 +1534,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIMul", @@ -1425,7 +1546,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFMul", @@ -1436,7 +1558,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUDiv", @@ -1447,7 +1570,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSDiv", @@ -1458,7 +1582,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFDiv", @@ -1469,7 +1594,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUMod", @@ -1480,7 +1606,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSRem", @@ -1491,7 +1618,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSMod", @@ -1502,7 +1630,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFRem", @@ -1513,7 +1642,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFMod", @@ -1524,7 +1654,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorTimesScalar", @@ -1535,7 +1666,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Scalar'" } - ] + ], + "version": "1.0" }, { "opname" : "OpMatrixTimesScalar", @@ -1547,7 +1679,8 @@ { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpVectorTimesMatrix", @@ -1559,7 +1692,8 @@ { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpMatrixTimesVector", @@ -1571,7 +1705,8 @@ { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Vector'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpMatrixTimesMatrix", @@ -1583,7 +1718,8 @@ { "kind" : "IdRef", "name" : "'LeftMatrix'" }, { "kind" : "IdRef", "name" : "'RightMatrix'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpOuterProduct", @@ -1595,7 +1731,8 @@ { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpDot", @@ -1606,7 +1743,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIAddCarry", @@ -1617,7 +1755,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpISubBorrow", @@ -1628,7 +1767,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUMulExtended", @@ -1639,7 +1779,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSMulExtended", @@ -1650,7 +1791,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAny", @@ -1660,7 +1802,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAll", @@ -1670,7 +1813,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIsNan", @@ -1680,7 +1824,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIsInf", @@ -1690,7 +1835,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIsFinite", @@ -1701,7 +1847,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpIsNormal", @@ -1712,7 +1859,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpSignBitSet", @@ -1723,7 +1871,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpLessOrGreater", @@ -1736,6 +1885,7 @@ { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ], + "version" : "1.0", "lastVersion" : "1.5" }, { @@ -1748,7 +1898,8 @@ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpUnordered", @@ -1760,7 +1911,8 @@ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpLogicalEqual", @@ -1771,7 +1923,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLogicalNotEqual", @@ -1782,7 +1935,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLogicalOr", @@ -1793,7 +1947,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLogicalAnd", @@ -1804,7 +1959,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version" : "1.0" }, { "opname" : "OpLogicalNot", @@ -1814,7 +1970,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSelect", @@ -1826,7 +1983,8 @@ { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'Object 1'" }, { "kind" : "IdRef", "name" : "'Object 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIEqual", @@ -1837,7 +1995,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpINotEqual", @@ -1848,7 +2007,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUGreaterThan", @@ -1859,7 +2019,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSGreaterThan", @@ -1870,7 +2031,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUGreaterThanEqual", @@ -1881,7 +2043,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSGreaterThanEqual", @@ -1892,7 +2055,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpULessThan", @@ -1903,7 +2067,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSLessThan", @@ -1914,7 +2079,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpULessThanEqual", @@ -1925,7 +2091,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSLessThanEqual", @@ -1936,7 +2103,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdEqual", @@ -1947,7 +2115,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordEqual", @@ -1958,7 +2127,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdNotEqual", @@ -1969,7 +2139,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordNotEqual", @@ -1980,7 +2151,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdLessThan", @@ -1991,7 +2163,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordLessThan", @@ -2002,7 +2175,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdGreaterThan", @@ -2013,7 +2187,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordGreaterThan", @@ -2024,7 +2199,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdLessThanEqual", @@ -2035,7 +2211,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordLessThanEqual", @@ -2046,7 +2223,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdGreaterThanEqual", @@ -2057,7 +2235,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordGreaterThanEqual", @@ -2068,7 +2247,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpShiftRightLogical", @@ -2079,7 +2259,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } - ] + ], + "version": "1.0" }, { "opname" : "OpShiftRightArithmetic", @@ -2090,7 +2271,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } - ] + ], + "version": "1.0" }, { "opname" : "OpShiftLeftLogical", @@ -2101,7 +2283,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitwiseOr", @@ -2112,7 +2295,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitwiseXor", @@ -2123,7 +2307,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitwiseAnd", @@ -2134,7 +2319,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpNot", @@ -2144,7 +2330,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitFieldInsert", @@ -2158,7 +2345,8 @@ { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitFieldSExtract", @@ -2171,7 +2359,8 @@ { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitFieldUExtract", @@ -2184,7 +2373,8 @@ { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitReverse", @@ -2195,7 +2385,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitCount", @@ -2205,7 +2396,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } - ] + ], + "version": "1.0" }, { "opname" : "OpDPdx", @@ -2216,7 +2408,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpDPdy", @@ -2227,7 +2420,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpFwidth", @@ -2238,7 +2432,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpDPdxFine", @@ -2249,7 +2444,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpDPdyFine", @@ -2260,7 +2456,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpFwidthFine", @@ -2271,7 +2468,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpDPdxCoarse", @@ -2282,7 +2480,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpDPdyCoarse", @@ -2293,7 +2492,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpFwidthCoarse", @@ -2304,19 +2504,22 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpEmitVertex", "class" : "Primitive", "opcode" : 218, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "opname" : "OpEndPrimitive", "class" : "Primitive", "opcode" : 219, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "opname" : "OpEmitStreamVertex", @@ -2325,7 +2528,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], - "capabilities" : [ "GeometryStreams" ] + "capabilities" : [ "GeometryStreams" ], + "version": "1.0" }, { "opname" : "OpEndStreamPrimitive", @@ -2334,7 +2538,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], - "capabilities" : [ "GeometryStreams" ] + "capabilities" : [ "GeometryStreams" ], + "version": "1.0" }, { "opname" : "OpControlBarrier", @@ -2344,7 +2549,8 @@ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpMemoryBarrier", @@ -2353,7 +2559,8 @@ "operands" : [ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicLoad", @@ -2365,7 +2572,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicStore", @@ -2376,7 +2584,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicExchange", @@ -2389,7 +2598,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicCompareExchange", @@ -2404,7 +2614,8 @@ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicCompareExchangeWeak", @@ -2421,6 +2632,7 @@ { "kind" : "IdRef", "name" : "'Comparator'" } ], "capabilities" : [ "Kernel" ], + "version" : "1.0", "lastVersion" : "1.3" }, { @@ -2433,7 +2645,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicIDecrement", @@ -2445,7 +2658,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicIAdd", @@ -2458,7 +2672,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicISub", @@ -2471,7 +2686,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicSMin", @@ -2484,7 +2700,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicUMin", @@ -2497,7 +2714,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicSMax", @@ -2510,7 +2728,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicUMax", @@ -2523,7 +2742,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicAnd", @@ -2536,7 +2756,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicOr", @@ -2549,7 +2770,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicXor", @@ -2562,7 +2784,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpPhi", @@ -2572,7 +2795,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLoopMerge", @@ -2582,7 +2806,8 @@ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "IdRef", "name" : "'Continue Target'" }, { "kind" : "LoopControl" } - ] + ], + "version": "1.0" }, { "opname" : "OpSelectionMerge", @@ -2591,7 +2816,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "SelectionControl" } - ] + ], + "version": "1.0" }, { "opname" : "OpLabel", @@ -2599,7 +2825,8 @@ "opcode" : 248, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpBranch", @@ -2607,7 +2834,8 @@ "opcode" : 249, "operands" : [ { "kind" : "IdRef", "name" : "'Target Label'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBranchConditional", @@ -2618,7 +2846,8 @@ { "kind" : "IdRef", "name" : "'True Label'" }, { "kind" : "IdRef", "name" : "'False Label'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSwitch", @@ -2628,18 +2857,21 @@ { "kind" : "IdRef", "name" : "'Selector'" }, { "kind" : "IdRef", "name" : "'Default'" }, { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" } - ] + ], + "version": "1.0" }, { "opname" : "OpKill", "class" : "Control-Flow", "opcode" : 252, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpReturn", "class" : "Control-Flow", - "opcode" : 253 + "opcode" : 253, + "version" : "1.0" }, { "opname" : "OpReturnValue", @@ -2647,12 +2879,14 @@ "opcode" : 254, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUnreachable", "class" : "Control-Flow", - "opcode" : 255 + "opcode" : 255, + "version" : "1.0" }, { "opname" : "OpLifetimeStart", @@ -2662,7 +2896,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpLifetimeStop", @@ -2672,7 +2907,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGroupAsyncCopy", @@ -2688,7 +2924,8 @@ { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGroupWaitEvents", @@ -2699,7 +2936,8 @@ { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Events List'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGroupAll", @@ -2711,7 +2949,8 @@ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupAny", @@ -2723,7 +2962,8 @@ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupBroadcast", @@ -2736,7 +2976,8 @@ { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'LocalId'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupIAdd", @@ -2749,7 +2990,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupFAdd", @@ -2762,7 +3004,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupFMin", @@ -2775,7 +3018,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupUMin", @@ -2788,7 +3032,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupSMin", @@ -2801,7 +3046,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupFMax", @@ -2814,7 +3060,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupUMax", @@ -2827,7 +3074,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupSMax", @@ -2840,7 +3088,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpReadPipe", @@ -2854,7 +3103,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpWritePipe", @@ -2868,7 +3118,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReservedReadPipe", @@ -2884,7 +3135,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReservedWritePipe", @@ -2900,7 +3152,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReserveReadPipePackets", @@ -2914,7 +3167,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReserveWritePipePackets", @@ -2928,7 +3182,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpCommitReadPipe", @@ -2940,7 +3195,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpCommitWritePipe", @@ -2952,7 +3208,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpIsValidReserveId", @@ -2963,7 +3220,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reserve Id'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGetNumPipePackets", @@ -2976,7 +3234,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGetMaxPipePackets", @@ -2989,7 +3248,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupReserveReadPipePackets", @@ -3004,7 +3264,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupReserveWritePipePackets", @@ -3019,7 +3280,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupCommitReadPipe", @@ -3032,7 +3294,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupCommitWritePipe", @@ -3045,7 +3308,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpEnqueueMarker", @@ -3059,7 +3323,8 @@ { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpEnqueueKernel", @@ -3080,7 +3345,8 @@ { "kind" : "IdRef", "name" : "'Param Align'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelNDrangeSubGroupCount", @@ -3095,7 +3361,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelNDrangeMaxSubGroupSize", @@ -3110,7 +3377,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelWorkGroupSize", @@ -3124,7 +3392,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple", @@ -3138,7 +3407,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpRetainEvent", @@ -3147,7 +3417,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpReleaseEvent", @@ -3156,7 +3427,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpCreateUserEvent", @@ -3166,7 +3438,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpIsValidEvent", @@ -3177,7 +3450,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpSetUserEventStatus", @@ -3187,7 +3461,8 @@ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Status'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpCaptureEventProfilingInfo", @@ -3198,7 +3473,8 @@ { "kind" : "IdRef", "name" : "'Profiling Info'" }, { "kind" : "IdRef", "name" : "'Value'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetDefaultQueue", @@ -3208,7 +3484,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpBuildNDRange", @@ -3221,7 +3498,8 @@ { "kind" : "IdRef", "name" : "'LocalWorkSize'" }, { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleImplicitLod", @@ -3234,7 +3512,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleExplicitLod", @@ -3247,7 +3526,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleDrefImplicitLod", @@ -3261,7 +3541,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleDrefExplicitLod", @@ -3275,7 +3556,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleProjImplicitLod", @@ -3346,7 +3628,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseGather", @@ -3360,7 +3643,8 @@ { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseDrefGather", @@ -3374,7 +3658,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseTexelsResident", @@ -3385,12 +3670,14 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Resident Code'" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpNoLine", "class" : "Debug", - "opcode" : 317 + "opcode" : 317, + "version" : "1.0" }, { "opname" : "OpAtomicFlagTestAndSet", @@ -3403,7 +3690,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpAtomicFlagClear", @@ -3414,7 +3702,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpImageSparseRead", @@ -3427,7 +3716,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpSizeOf", @@ -4102,6 +4392,43 @@ "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ], "version" : "1.4" }, + { + "opname" : "OpColorAttachmentReadEXT", + "class" : "Image", + "opcode" : 4160, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Attachment'" }, + { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" } + ], + "capabilities": [ "TileImageColorReadAccessEXT" ], + "version" : "None" + }, + { + "opname" : "OpDepthAttachmentReadEXT", + "class" : "Image", + "opcode" : 4161, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" } + ], + "capabilities" : [ "TileImageDepthReadAccessEXT" ], + "version" : "None" + }, + { + "opname" : "OpStencilAttachmentReadEXT", + "class" : "Image", + "opcode" : 4162, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" } + ], + "capabilities" : [ "TileImageStencilReadAccessEXT" ], + "version" : "None" + }, { "opname" : "OpTerminateInvocation", "class" : "Control-Flow", @@ -4456,9 +4783,80 @@ "extensions" : [ "SPV_KHR_integer_dot_product" ], "version" : "1.6" }, + { + "opname" : "OpTypeCooperativeMatrixKHR", + "class" : "Type-Declaration", + "opcode" : 4456, + "operands" : [ + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Component Type'" }, + { "kind" : "IdScope", "name" : "'Scope'" }, + { "kind" : "IdRef", "name" : "'Rows'" }, + { "kind" : "IdRef", "name" : "'Columns'" }, + { "kind" : "IdRef", "name" : "'Use'" } + ], + "capabilities" : [ "CooperativeMatrixKHR" ], + "version" : "None" + }, + { + "opname" : "OpCooperativeMatrixLoadKHR", + "class" : "Memory", + "opcode" : 4457, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Pointer'" }, + { "kind" : "IdRef", "name" : "'MemoryLayout'" }, + { "kind" : "IdRef", "name" : "'Stride'", "quantifier": "?" }, + { "kind" : "MemoryAccess", "name" : "'Memory Operand'", "quantifier" : "?" } + ], + "capabilities" : [ "CooperativeMatrixKHR" ], + "version" : "None" + }, + { + "opname" : "OpCooperativeMatrixStoreKHR", + "class" : "Memory", + "opcode" : 4458, + "operands" : [ + { "kind" : "IdRef", "name" : "'Pointer'" }, + { "kind" : "IdRef", "name" : "'Object'" }, + { "kind" : "IdRef", "name" : "'MemoryLayout'" }, + { "kind" : "IdRef", "name" : "'Stride'", "quantifier": "?" }, + { "kind" : "MemoryAccess", "name" : "'Memory Operand'", "quantifier" : "?" } + ], + "capabilities" : [ "CooperativeMatrixKHR" ], + "version" : "None" + }, + { + "opname" : "OpCooperativeMatrixMulAddKHR", + "class" : "Arithmetic", + "opcode" : 4459, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'A'" }, + { "kind" : "IdRef", "name" : "'B'" }, + { "kind" : "IdRef", "name" : "'C'" }, + { "kind" : "CooperativeMatrixOperands", "name" : "'Cooperative Matrix Operands'", "quantifier" : "?" } + ], + "capabilities" : [ "CooperativeMatrixKHR" ], + "version" : "None" + }, + { + "opname" : "OpCooperativeMatrixLengthKHR", + "class" : "Miscellaneous", + "opcode" : 4460, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Type'" } + ], + "capabilities" : [ "CooperativeMatrixKHR" ], + "version" : "None" + }, { "opname" : "OpTypeRayQueryKHR", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 4472, "operands" : [ { "kind" : "IdResult" } @@ -4592,6 +4990,66 @@ "extensions" : [ "SPV_KHR_ray_query" ], "version" : "None" }, + { + "opname" : "OpImageSampleWeightedQCOM", + "class" : "Image", + "opcode" : 4480, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Texture'" }, + { "kind" : "IdRef", "name" : "'Coordinates'" }, + { "kind" : "IdRef", "name" : "'Weights'" } + ], + "capabilities" : [ "TextureSampleWeightedQCOM" ], + "version" : "None" + }, + { + "opname" : "OpImageBoxFilterQCOM", + "class" : "Image", + "opcode" : 4481, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Texture'" }, + { "kind" : "IdRef", "name" : "'Coordinates'" }, + { "kind" : "IdRef", "name" : "'Box Size'" } + ], + "capabilities" : [ "TextureBoxFilterQCOM" ], + "version" : "None" + }, + { + "opname" : "OpImageBlockMatchSSDQCOM", + "class" : "Image", + "opcode" : 4482, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Target'" }, + { "kind" : "IdRef", "name" : "'Target Coordinates'" }, + { "kind" : "IdRef", "name" : "'Reference'" }, + { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, + { "kind" : "IdRef", "name" : "'Block Size'" } + ], + "capabilities" : [ "TextureBlockMatchQCOM" ], + "version" : "None" + }, + { + "opname" : "OpImageBlockMatchSADQCOM", + "class" : "Image", + "opcode" : 4483, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Target'" }, + { "kind" : "IdRef", "name" : "'Target Coordinates'" }, + { "kind" : "IdRef", "name" : "'Reference'" }, + { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, + { "kind" : "IdRef", "name" : "'Block Size'" } + ], + "capabilities" : [ "TextureBlockMatchQCOM" ], + "version" : "None" + }, { "opname" : "OpGroupIAddNonUniformAMD", "class" : "Group", @@ -4751,7 +5209,496 @@ { "kind" : "IdScope", "name" : "'Scope'" } ], "capabilities" : [ "ShaderClockKHR" ], - "extensions" : [ "SPV_KHR_shader_clock" ], + "version" : "None" + }, + { + "opname" : "OpFinalizeNodePayloadsAMDX", + "class" : "Reserved", + "opcode" : 5075, + "operands" : [ + { "kind" : "IdRef", "name": "'Payload Array'" } + ], + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "opname" : "OpFinishWritingNodePayloadAMDX", + "class" : "Reserved", + "opcode" : 5078, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name": "'Payload'" } + ], + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "opname" : "OpInitializeNodePayloadsAMDX", + "class" : "Reserved", + "opcode" : 5090, + "operands" : [ + { "kind" : "IdRef", "name": "'Payload Array'" }, + { "kind" : "IdScope", "name": "'Visibility'" }, + { "kind" : "IdRef", "name": "'Payload Count'" }, + { "kind" : "IdRef", "name": "'Node Index'" } + ], + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordHitMotionNV", + "class" : "Reserved", + "opcode" : 5249, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, + { "kind" : "IdRef", "name" : "'InstanceId'" }, + { "kind" : "IdRef", "name" : "'PrimitiveId'" }, + { "kind" : "IdRef", "name" : "'GeometryIndex'" }, + { "kind" : "IdRef", "name" : "'Hit Kind'" }, + { "kind" : "IdRef", "name" : "'SBT Record Offset'" }, + { "kind" : "IdRef", "name" : "'SBT Record Stride'" }, + { "kind" : "IdRef", "name" : "'Origin'" }, + { "kind" : "IdRef", "name" : "'TMin'" }, + { "kind" : "IdRef", "name" : "'Direction'" }, + { "kind" : "IdRef", "name" : "'TMax'" }, + { "kind" : "IdRef", "name" : "'Current Time'" }, + { "kind" : "IdRef", "name" : "'HitObject Attributes'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordHitWithIndexMotionNV", + "class" : "Reserved", + "opcode" : 5250, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, + { "kind" : "IdRef", "name" : "'InstanceId'" }, + { "kind" : "IdRef", "name" : "'PrimitiveId'" }, + { "kind" : "IdRef", "name" : "'GeometryIndex'" }, + { "kind" : "IdRef", "name" : "'Hit Kind'" }, + { "kind" : "IdRef", "name" : "'SBT Record Index'" }, + { "kind" : "IdRef", "name" : "'Origin'" }, + { "kind" : "IdRef", "name" : "'TMin'" }, + { "kind" : "IdRef", "name" : "'Direction'" }, + { "kind" : "IdRef", "name" : "'TMax'" }, + { "kind" : "IdRef", "name" : "'Current Time'" }, + { "kind" : "IdRef", "name" : "'HitObject Attributes'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordMissMotionNV", + "class" : "Reserved", + "opcode" : 5251, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'SBT Index'" }, + { "kind" : "IdRef", "name" : "'Origin'" }, + { "kind" : "IdRef", "name" : "'TMin'" }, + { "kind" : "IdRef", "name" : "'Direction'" }, + { "kind" : "IdRef", "name" : "'TMax'" }, + { "kind" : "IdRef", "name" : "'Current Time'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetWorldToObjectNV", + "class" : "Reserved", + "opcode" : 5252, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetObjectToWorldNV", + "class" : "Reserved", + "opcode" : 5253, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetObjectRayDirectionNV", + "class" : "Reserved", + "opcode" : 5254, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetObjectRayOriginNV", + "class" : "Reserved", + "opcode" : 5255, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectTraceRayMotionNV", + "class" : "Reserved", + "opcode" : 5256, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Acceleration Structure'"}, + { "kind" : "IdRef", "name" : "'RayFlags'"}, + { "kind" : "IdRef", "name" : "'Cullmask'"}, + { "kind" : "IdRef", "name" : "'SBT Record Offset'"}, + { "kind" : "IdRef", "name" : "'SBT Record Stride'"}, + { "kind" : "IdRef", "name" : "'Miss Index'"}, + { "kind" : "IdRef", "name" : "'Origin'"}, + { "kind" : "IdRef", "name" : "'TMin'"}, + { "kind" : "IdRef", "name" : "'Direction'"}, + { "kind" : "IdRef", "name" : "'TMax'"}, + { "kind" : "IdRef", "name" : "'Time'"}, + { "kind" : "IdRef", "name" : "'Payload'"} + ], + "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetShaderRecordBufferHandleNV", + "class" : "Reserved", + "opcode" : 5257, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetShaderBindingTableRecordIndexNV", + "class" : "Reserved", + "opcode" : 5258, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordEmptyNV", + "class" : "Reserved", + "opcode" : 5259, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectTraceRayNV", + "class" : "Reserved", + "opcode" : 5260, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Acceleration Structure'"}, + { "kind" : "IdRef", "name" : "'RayFlags'"}, + { "kind" : "IdRef", "name" : "'Cullmask'"}, + { "kind" : "IdRef", "name" : "'SBT Record Offset'"}, + { "kind" : "IdRef", "name" : "'SBT Record Stride'"}, + { "kind" : "IdRef", "name" : "'Miss Index'"}, + { "kind" : "IdRef", "name" : "'Origin'"}, + { "kind" : "IdRef", "name" : "'TMin'"}, + { "kind" : "IdRef", "name" : "'Direction'"}, + { "kind" : "IdRef", "name" : "'TMax'"}, + { "kind" : "IdRef", "name" : "'Payload'"} + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordHitNV", + "class" : "Reserved", + "opcode" : 5261, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, + { "kind" : "IdRef", "name" : "'InstanceId'" }, + { "kind" : "IdRef", "name" : "'PrimitiveId'" }, + { "kind" : "IdRef", "name" : "'GeometryIndex'" }, + { "kind" : "IdRef", "name" : "'Hit Kind'" }, + { "kind" : "IdRef", "name" : "'SBT Record Offset'" }, + { "kind" : "IdRef", "name" : "'SBT Record Stride'" }, + { "kind" : "IdRef", "name" : "'Origin'" }, + { "kind" : "IdRef", "name" : "'TMin'" }, + { "kind" : "IdRef", "name" : "'Direction'" }, + { "kind" : "IdRef", "name" : "'TMax'" }, + { "kind" : "IdRef", "name" : "'HitObject Attributes'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordHitWithIndexNV", + "class" : "Reserved", + "opcode" : 5262, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Acceleration Structure'" }, + { "kind" : "IdRef", "name" : "'InstanceId'" }, + { "kind" : "IdRef", "name" : "'PrimitiveId'" }, + { "kind" : "IdRef", "name" : "'GeometryIndex'" }, + { "kind" : "IdRef", "name" : "'Hit Kind'" }, + { "kind" : "IdRef", "name" : "'SBT Record Index'" }, + { "kind" : "IdRef", "name" : "'Origin'" }, + { "kind" : "IdRef", "name" : "'TMin'" }, + { "kind" : "IdRef", "name" : "'Direction'" }, + { "kind" : "IdRef", "name" : "'TMax'" }, + { "kind" : "IdRef", "name" : "'HitObject Attributes'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordMissNV", + "class" : "Reserved", + "opcode" : 5263, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'SBT Index'" }, + { "kind" : "IdRef", "name" : "'Origin'" }, + { "kind" : "IdRef", "name" : "'TMin'" }, + { "kind" : "IdRef", "name" : "'Direction'" }, + { "kind" : "IdRef", "name" : "'TMax'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectExecuteShaderNV", + "class" : "Reserved", + "opcode" : 5264, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Payload'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetCurrentTimeNV", + "class" : "Reserved", + "opcode" : 5265, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetAttributesNV", + "class" : "Reserved", + "opcode" : 5266, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "name" : "'Hit Object Attribute'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetHitKindNV", + "class" : "Reserved", + "opcode" : 5267, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetPrimitiveIndexNV", + "class" : "Reserved", + "opcode" : 5268, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetGeometryIndexNV", + "class" : "Reserved", + "opcode" : 5269, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetInstanceIdNV", + "class" : "Reserved", + "opcode" : 5270, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetInstanceCustomIndexNV", + "class" : "Reserved", + "opcode" : 5271, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetWorldRayDirectionNV", + "class" : "Reserved", + "opcode" : 5272, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetWorldRayOriginNV", + "class" : "Reserved", + "opcode" : 5273, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetRayTMaxNV", + "class" : "Reserved", + "opcode" : 5274, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetRayTMinNV", + "class" : "Reserved", + "opcode" : 5275, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectIsEmptyNV", + "class" : "Reserved", + "opcode" : 5276, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectIsHitNV", + "class" : "Reserved", + "opcode" : 5277, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectIsMissNV", + "class" : "Reserved", + "opcode" : 5278, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Hit Object'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpReorderThreadWithHitObjectNV", + "class" : "Reserved", + "opcode" : 5279, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hit Object'" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "'Hint'" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "'Bits'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpReorderThreadWithHintNV", + "class" : "Reserved", + "opcode" : 5280, + "operands" : [ + { "kind" : "IdRef", "name" : "'Hint'" }, + { "kind" : "IdRef", "name" : "'Bits'" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, + { + "opname" : "OpTypeHitObjectNV", + "class" : "Type-Declaration", + "opcode" : 5281, + "operands" : [ + { "kind" : "IdResult" } + ], + "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, { @@ -4820,6 +5767,38 @@ "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, + { + "opname" : "OpFetchMicroTriangleVertexPositionNV", + "class" : "Reserved", + "opcode" : 5300, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Accel'" }, + { "kind" : "IdRef", "name" : "'Instance Id'" }, + { "kind" : "IdRef", "name" : "'Geometry Index'" }, + { "kind" : "IdRef", "name" : "'Primitive Index'" }, + { "kind" : "IdRef", "name" : "'Barycentric'" } + ], + "capabilities" : [ "DisplacementMicromapNV" ], + "version" : "None" + }, + { + "opname" : "OpFetchMicroTriangleVertexBarycentricNV", + "class" : "Reserved", + "opcode" : 5301, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Accel'" }, + { "kind" : "IdRef", "name" : "'Instance Id'" }, + { "kind" : "IdRef", "name" : "'Geometry Index'" }, + { "kind" : "IdRef", "name" : "'Primitive Index'" }, + { "kind" : "IdRef", "name" : "'Barycentric'" } + ], + "capabilities" : [ "DisplacementMicromapNV" ], + "version" : "None" + }, { "opname" : "OpReportIntersectionNV", "class" : "Reserved", @@ -4933,8 +5912,27 @@ "version" : "None" }, { - "opname" : "OpTypeAccelerationStructureNV", + "opname" : "OpRayQueryGetIntersectionTriangleVertexPositionsKHR", "class" : "Reserved", + "opcode" : 5340, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { + "kind" : "IdRef", + "name" : "'RayQuery'" + }, + { + "kind" : "IdRef", + "name" : "'Intersection'" + } + ], + "capabilities" : [ "RayQueryPositionFetchKHR" ], + "version" : "None" + }, + { + "opname" : "OpTypeAccelerationStructureNV", + "class" : "Type-Declaration", "opcode" : 5341, "operands" : [ { "kind" : "IdResult" } @@ -4945,7 +5943,7 @@ }, { "opname" : "OpTypeAccelerationStructureKHR", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 5341, "operands" : [ { "kind" : "IdResult" } @@ -4969,7 +5967,7 @@ }, { "opname" : "OpTypeCooperativeMatrixNV", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 5358, "operands" : [ { "kind" : "IdResult" }, @@ -8566,7 +9564,7 @@ "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ], - "capabilities" : [ "LongConstantCompositeINTEL" ], + "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { @@ -8576,7 +9574,7 @@ "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], - "capabilities" : [ "LongConstantCompositeINTEL" ], + "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { @@ -8586,7 +9584,43 @@ "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], - "capabilities" : [ "LongConstantCompositeINTEL" ], + "capabilities" : [ "LongCompositesINTEL" ], + "version" : "None" + }, + { + "opname" : "OpCompositeConstructContinuedINTEL", + "class" : "Composite", + "opcode" : 6096, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } + ], + "capabilities" : [ "LongCompositesINTEL" ], + "version": "None" + }, + { + "opname" : "OpConvertFToBF16INTEL", + "class" : "Conversion", + "opcode" : 6116, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Float Value'" } + ], + "capabilities" : [ "BFloat16ConversionINTEL" ], + "version" : "None" + }, + { + "opname" : "OpConvertBF16ToFINTEL", + "class" : "Conversion", + "opcode" : 6117, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'BFloat16 Value'" } + ], + "capabilities" : [ "BFloat16ConversionINTEL" ], "version" : "None" }, { @@ -8741,14 +9775,16 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Lod", "value" : "0x0002", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Grad", @@ -8756,14 +9792,16 @@ "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "ConstOffset", "value" : "0x0008", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Offset", @@ -8771,7 +9809,8 @@ "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "ConstOffsets", @@ -8779,14 +9818,16 @@ "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Sample", "value" : "0x0040", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "MinLod", @@ -8794,7 +9835,8 @@ "capabilities" : [ "MinLod" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "MakeTexelAvailable", @@ -8880,7 +9922,8 @@ "value" : "0x10000", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" } ] }, @@ -8890,27 +9933,33 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "NotNaN", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "NotInf", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "NSZ", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "AllowRecip", - "value" : "0x0008" + "value" : "0x0008", + "version" : "1.0" }, { "enumerant" : "Fast", - "value" : "0x0010" + "value" : "0x0010", + "version" : "1.0" }, { "enumerant" : "AllowContractFastINTEL", @@ -8932,15 +9981,18 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Flatten", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "DontFlatten", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" } ] }, @@ -8950,15 +10002,18 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Unroll", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "DontUnroll", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "DependencyInfinite", @@ -9020,7 +10075,6 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -9030,7 +10084,6 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -9040,7 +10093,6 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -9050,7 +10102,6 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -9060,7 +10111,6 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -9070,7 +10120,6 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -9080,17 +10129,30 @@ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { "enumerant" : "NoFusionINTEL", "value" : "0x800000", + "capabilities" : [ "FPGALoopControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "LoopCountINTEL", + "value" : "0x1000000", + "parameters" : [ + { "kind" : "LiteralInteger" } + ], + "capabilities" : [ "FPGALoopControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "MaxReinvocationDelayINTEL", + "value" : "0x2000000", "parameters" : [ { "kind" : "LiteralInteger" } ], "capabilities" : [ "FPGALoopControlsINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], "version" : "None" } ] @@ -9101,23 +10163,28 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Inline", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "DontInline", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "Pure", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "Const", - "value" : "0x0008" + "value" : "0x0008", + "version" : "1.0" }, { "enumerant" : "OptNoneINTEL", @@ -9133,53 +10200,65 @@ "enumerants" : [ { "enumerant" : "Relaxed", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Acquire", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "Release", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "AcquireRelease", - "value" : "0x0008" + "value" : "0x0008", + "version" : "1.0" }, { "enumerant" : "SequentiallyConsistent", - "value" : "0x0010" + "value" : "0x0010", + "version" : "1.0" }, { "enumerant" : "UniformMemory", "value" : "0x0040", - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SubgroupMemory", - "value" : "0x0080" + "value" : "0x0080", + "version" : "1.0" }, { "enumerant" : "WorkgroupMemory", - "value" : "0x0100" + "value" : "0x0100", + "version" : "1.0" }, { "enumerant" : "CrossWorkgroupMemory", - "value" : "0x0200" + "value" : "0x0200", + "version" : "1.0" }, { "enumerant" : "AtomicCounterMemory", "value" : "0x0400", - "capabilities" : [ "AtomicStorage" ] + "capabilities" : [ "AtomicStorage" ], + "version": "1.0" }, { "enumerant" : "ImageMemory", - "value" : "0x0800" + "value" : "0x0800", + "version" : "1.0" }, { "enumerant" : "OutputMemory", @@ -9235,22 +10314,26 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Volatile", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "Aligned", "value" : "0x0002", "parameters" : [ { "kind" : "LiteralInteger" } - ] + ], + "version" : "1.0" }, { "enumerant" : "Nontemporal", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "MakePointerAvailable", @@ -9331,12 +10414,14 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "CmdExecTime", "value" : "0x0001", - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" } ] }, @@ -9454,35 +10539,63 @@ "enumerants" : [ { "enumerant" : "Unknown", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "ESSL", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "GLSL", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "OpenCL_C", - "value" : 3 + "value" : 3, + "version" : "1.0" }, { "enumerant" : "OpenCL_CPP", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "HLSL", - "value" : 5 + "value" : 5, + "version" : "1.0" }, { "enumerant" : "CPP_for_OpenCL", - "value" : 6 + "value" : 6, + "version" : "1.0" }, { "enumerant" : "SYCL", - "value" : 7 + "value" : 7, + "version" : "1.0" + }, + { + "enumerant" : "HERO_C", + "value" : 8, + "version" : "1.0" + }, + { + "enumerant" : "NZSL", + "value" : 9, + "version" : "1.0" + }, + { + "enumerant" : "WGSL", + "value" : 10, + "version" : "1.0" + }, + { + "enumerant" : "Slang", + "value" : 11, + "version" : "1.0" } ] }, @@ -9493,37 +10606,44 @@ { "enumerant" : "Vertex", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "TessellationControl", "value" : 1, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "TessellationEvaluation", "value" : 2, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Geometry", "value" : 3, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "Fragment", "value" : 4, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GLCompute", "value" : 5, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Kernel", "value" : 6, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "TaskNV", @@ -9629,17 +10749,20 @@ "enumerants" : [ { "enumerant" : "Logical", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Physical32", "value" : 1, - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "enumerant" : "Physical64", "value" : 2, - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "enumerant" : "PhysicalStorageBuffer64", @@ -9664,17 +10787,20 @@ { "enumerant" : "Simple", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GLSL450", "value" : 1, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "OpenCL", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Vulkan", @@ -9701,82 +10827,98 @@ "capabilities" : [ "Geometry" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of <>'" } - ] + ], + "version": "1.0" }, { "enumerant" : "SpacingEqual", "value" : 1, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "SpacingFractionalEven", "value" : 2, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "SpacingFractionalOdd", "value" : 3, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "VertexOrderCw", "value" : 4, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "VertexOrderCcw", "value" : 5, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "PixelCenterInteger", "value" : 6, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "OriginUpperLeft", "value" : 7, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "OriginLowerLeft", "value" : 8, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "EarlyFragmentTests", "value" : 9, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PointMode", "value" : 10, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Xfb", "value" : 11, - "capabilities" : [ "TransformFeedback" ] + "capabilities" : [ "TransformFeedback" ], + "version": "1.0" }, { "enumerant" : "DepthReplacing", "value" : 12, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DepthGreater", "value" : 14, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DepthLess", "value" : 15, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DepthUnchanged", "value" : 16, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "LocalSize", @@ -9785,7 +10927,8 @@ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } - ] + ], + "version": "1.0" }, { "enumerant" : "LocalSizeHint", @@ -9795,42 +10938,50 @@ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } - ] + ], + "version": "1.0" }, { "enumerant" : "InputPoints", "value" : 19, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "InputLines", "value" : 20, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "InputLinesAdjacency", "value" : 21, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "Triangles", "value" : 22, - "capabilities" : [ "Geometry", "Tessellation" ] + "capabilities" : [ "Geometry", "Tessellation" ], + "version": "1.0" }, { "enumerant" : "InputTrianglesAdjacency", "value" : 23, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "Quads", "value" : 24, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Isolines", "value" : 25, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "OutputVertices", @@ -9838,22 +10989,26 @@ "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vertex count'" } - ] + ], + "version": "1.0" }, { "enumerant" : "OutputPoints", "value" : 27, - "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "OutputLineStrip", "value" : 28, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "OutputTriangleStrip", "value" : 29, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "VecTypeHint", @@ -9861,12 +11016,14 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vector type'" } - ] + ], + "version": "1.0" }, { "enumerant" : "ContractionOff", "value" : 31, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Initializer", @@ -9928,6 +11085,24 @@ ], "version" : "1.2" }, + { + "enumerant" : "NonCoherentColorAttachmentReadEXT", + "value" : 4169, + "capabilities" : [ "TileImageColorReadAccessEXT" ], + "version" : "None" + }, + { + "enumerant" : "NonCoherentDepthAttachmentReadEXT", + "value" : 4170, + "capabilities" : [ "TileImageDepthReadAccessEXT" ], + "version" : "None" + }, + { + "enumerant" : "NonCoherentStencilAttachmentReadEXT", + "value" : 4171, + "capabilities" : [ "TileImageStencilReadAccessEXT" ], + "version" : "None" + }, { "enumerant" : "SubgroupUniformControlFlowKHR", "value" : 4421, @@ -10006,6 +11181,52 @@ "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, + { + "enumerant" : "CoalescingAMDX", + "value" : 5069, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "MaxNodeRecursionAMDX", + "value" : 5071, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Number of recursions'" } + ], + "version" : "None" + }, + { + "enumerant" : "StaticNumWorkgroupsAMDX", + "value" : 5072, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'x size'" }, + { "kind" : "IdRef", "name" : "'y size'" }, + { "kind" : "IdRef", "name" : "'z size'" } + ], + "version" : "None" + }, + { + "enumerant" : "ShaderIndexAMDX", + "value" : 5073, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Shader Index'" } + ], + "version" : "None" + }, + { + "enumerant" : "MaxNumWorkgroupsAMDX", + "value" : 5077, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'x size'" }, + { "kind" : "IdRef", "name" : "'y size'" }, + { "kind" : "IdRef", "name" : "'z size'" } + ], + "version" : "None" + }, { "enumerant": "StencilRefUnchangedFrontAMD", "value": 5079, @@ -10245,6 +11466,24 @@ "capabilities" : [ "FPGAKernelAttributesINTEL" ], "version" : "None" }, + { + "enumerant" : "StreamingInterfaceINTEL", + "value" : 6154, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'StallFreeReturn'" } + ], + "capabilities" : [ "FPGAKernelAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "RegisterMapInterfaceINTEL", + "value" : 6160, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'WaitForDoneWrite'" } + ], + "capabilities" : [ "FPGAKernelAttributesv2INTEL" ], + "version" : "None" + }, { "enumerant" : "NamedBarrierCountINTEL", "value" : 6417, @@ -10262,57 +11501,69 @@ "enumerants" : [ { "enumerant" : "UniformConstant", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Input", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "Uniform", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Output", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Workgroup", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "CrossWorkgroup", - "value" : 5 + "value" : 5, + "version" : "1.0" }, { "enumerant" : "Private", "value" : 6, - "capabilities" : [ "Shader", "VectorComputeINTEL" ] + "capabilities" : [ "Shader", "VectorComputeINTEL" ], + "version": "1.0" }, { "enumerant" : "Function", - "value" : 7 + "value" : 7, + "version" : "1.0" }, { "enumerant" : "Generic", "value" : 8, - "capabilities" : [ "GenericPointer" ] + "capabilities" : [ "GenericPointer" ], + "version": "1.0" }, { "enumerant" : "PushConstant", "value" : 9, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "AtomicCounter", "value" : 10, - "capabilities" : [ "AtomicStorage" ] + "capabilities" : [ "AtomicStorage" ], + "version": "1.0" }, { "enumerant" : "Image", - "value" : 11 + "value" : 11, + "version" : "1.0" }, { "enumerant" : "StorageBuffer", @@ -10324,6 +11575,24 @@ "capabilities" : [ "Shader" ], "version" : "1.3" }, + { + "enumerant" : "TileImageEXT", + "value" : 4172, + "capabilities" : [ "TileImageColorReadAccessEXT" ], + "version" : "None" + }, + { + "enumerant" : "NodePayloadAMDX", + "value" : 5068, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "NodeOutputPayloadAMDX", + "value" : 5076, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, { "enumerant" : "CallableDataNV", "value" : 5328, @@ -10422,6 +11691,12 @@ "capabilities" : [ "PhysicalStorageBufferAddresses" ], "version" : "1.5" }, + { + "enumerant" : "HitObjectAttributeNV", + "value" : 5385, + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, { "enumerant" : "TaskPayloadWorkgroupEXT", "value" : 5402, @@ -10463,36 +11738,48 @@ { "enumerant" : "1D", "value" : 0, - "capabilities" : [ "Sampled1D", "Image1D" ] + "capabilities" : [ "Sampled1D" ], + "version": "1.0" }, { "enumerant" : "2D", "value" : 1, - "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ] + "version" : "1.0" }, { "enumerant" : "3D", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "Cube", "value" : 3, - "capabilities" : [ "Shader", "ImageCubeArray" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rect", "value" : 4, - "capabilities" : [ "SampledRect", "ImageRect" ] + "capabilities" : [ "SampledRect" ], + "version": "1.0" }, { "enumerant" : "Buffer", "value" : 5, - "capabilities" : [ "SampledBuffer", "ImageBuffer" ] + "capabilities" : [ "SampledBuffer" ], + "version": "1.0" }, { "enumerant" : "SubpassData", "value" : 6, - "capabilities" : [ "InputAttachment" ] + "capabilities" : [ "InputAttachment" ], + "version": "1.0" + }, + { + "enumerant" : "TileImageDataEXT", + "value" : 4173, + "capabilities" : [ "TileImageColorReadAccessEXT" ], + "version" : "None" } ] }, @@ -10503,27 +11790,27 @@ { "enumerant" : "None", "value" : 0, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "ClampToEdge", "value" : 1, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Clamp", "value" : 2, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Repeat", "value" : 3, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RepeatMirrored", "value" : 4, - "capabilities" : [ "Kernel" ] + "version": "1.0" } ] }, @@ -10534,12 +11821,12 @@ { "enumerant" : "Nearest", "value" : 0, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Linear", "value" : 1, - "capabilities" : [ "Kernel" ] + "version": "1.0" } ] }, @@ -10549,212 +11836,254 @@ "enumerants" : [ { "enumerant" : "Unknown", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Rgba32f", "value" : 1, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba16f", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "R32f", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8", "value" : 4, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8Snorm", "value" : 5, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rg32f", "value" : 6, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16f", "value" : 7, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R11fG11fB10f", "value" : 8, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16f", "value" : 9, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba16", "value" : 10, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgb10A2", "value" : 11, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16", "value" : 12, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8", "value" : 13, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16", "value" : 14, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8", "value" : 15, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba16Snorm", "value" : 16, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16Snorm", "value" : 17, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8Snorm", "value" : 18, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16Snorm", "value" : 19, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8Snorm", "value" : 20, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba32i", "value" : 21, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba16i", "value" : 22, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8i", "value" : 23, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "R32i", "value" : 24, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rg32i", "value" : 25, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16i", "value" : 26, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8i", "value" : 27, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16i", "value" : 28, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8i", "value" : 29, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba32ui", "value" : 30, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba16ui", "value" : 31, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8ui", "value" : 32, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "R32ui", "value" : 33, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgb10a2ui", "value" : 34, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg32ui", "value" : 35, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16ui", "value" : 36, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8ui", "value" : 37, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16ui", "value" : 38, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8ui", "value" : 39, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, - { + { "enumerant" : "R64ui", "value" : 40, - "capabilities" : [ "Int64ImageEXT" ] + "capabilities" : [ "Int64ImageEXT" ], + "version": "1.0" }, { "enumerant" : "R64i", "value" : 41, - "capabilities" : [ "Int64ImageEXT" ] + "capabilities" : [ "Int64ImageEXT" ], + "version": "1.0" } ] }, @@ -10765,102 +12094,122 @@ { "enumerant" : "R", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "A", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RG", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RA", "value" : 3, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RGB", "value" : 4, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RGBA", "value" : 5, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "BGRA", "value" : 6, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ARGB", "value" : 7, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Intensity", "value" : 8, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Luminance", "value" : 9, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Rx", "value" : 10, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RGx", "value" : 11, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RGBx", "value" : 12, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Depth", "value" : 13, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "DepthStencil", "value" : 14, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "sRGB", "value" : 15, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "sRGBx", "value" : 16, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "sRGBA", "value" : 17, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "sBGRA", "value" : 18, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ABGR", "value" : 19, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" } ] }, @@ -10871,87 +12220,116 @@ { "enumerant" : "SnormInt8", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SnormInt16", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormInt8", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormInt16", "value" : 3, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormShort565", "value" : 4, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormShort555", "value" : 5, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormInt101010", "value" : 6, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SignedInt8", "value" : 7, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SignedInt16", "value" : 8, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SignedInt32", "value" : 9, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnsignedInt8", "value" : 10, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnsignedInt16", "value" : 11, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnsignedInt32", "value" : 12, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "HalfFloat", "value" : 13, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Float", "value" : 14, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormInt24", "value" : 15, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "UnormInt101010_2", "value" : 16, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" + }, + { + "enumerant" : "UnsignedIntRaw10EXT", + "value" : 19, + "capabilities" : [ "Kernel" ], + "version": "1.0" + }, + { + "enumerant" : "UnsignedIntRaw12EXT", + "value" : 20, + "capabilities" : [ "Kernel" ], + "version": "1.0" } ] }, @@ -10961,19 +12339,23 @@ "enumerants" : [ { "enumerant" : "RTE", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "RTZ", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "RTP", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "RTN", - "value" : 3 + "value" : 3, + "version" : "1.0" } ] }, @@ -10992,7 +12374,7 @@ "value" : 1, "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" - } + } ] }, { @@ -11104,12 +12486,14 @@ { "enumerant" : "Export", "value" : 0, - "capabilities" : [ "Linkage" ] + "capabilities" : [ "Linkage" ], + "version": "1.0" }, { "enumerant" : "Import", "value" : 1, - "capabilities" : [ "Linkage" ] + "capabilities" : [ "Linkage" ], + "version": "1.0" }, { "enumerant" : "LinkOnceODR", @@ -11127,17 +12511,50 @@ { "enumerant" : "ReadOnly", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "WriteOnly", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ReadWrite", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "HostAccessQualifier", + "enumerants" : [ + { + "enumerant" : "NoneINTEL", + "value" : 0, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ReadINTEL", + "value" : 1, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WriteINTEL", + "value" : 2, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ReadWriteINTEL", + "value" : 3, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" } ] }, @@ -11148,42 +12565,56 @@ { "enumerant" : "Zext", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Sext", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ByVal", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Sret", "value" : 3, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoAlias", "value" : 4, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoCapture", "value" : 5, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoWrite", "value" : 6, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoReadWrite", "value" : 7, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" + }, + { + "enumerant" : "RuntimeAlignedINTEL", + "value" : 5940, + "capabilities" : [ "RuntimeAlignedAttributeINTEL" ], + "version": "1.0" } ] }, @@ -11194,7 +12625,8 @@ { "enumerant" : "RelaxedPrecision", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SpecId", @@ -11202,28 +12634,33 @@ "capabilities" : [ "Shader", "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Block", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "BufferBlock", "value" : 3, "capabilities" : [ "Shader" ], + "version": "1.0", "lastVersion" : "1.3" }, { "enumerant" : "RowMajor", "value" : 4, - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "enumerant" : "ColMajor", "value" : 5, - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "enumerant" : "ArrayStride", @@ -11231,7 +12668,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Array Stride'" } - ] + ], + "version": "1.0" }, { "enumerant" : "MatrixStride", @@ -11239,93 +12677,112 @@ "capabilities" : [ "Matrix" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" } - ] + ], + "version": "1.0" }, { "enumerant" : "GLSLShared", "value" : 8, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GLSLPacked", "value" : 9, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "CPacked", "value" : 10, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "BuiltIn", "value" : 11, "parameters" : [ { "kind" : "BuiltIn" } - ] + ], + "version": "1.0" }, { "enumerant" : "NoPerspective", "value" : 13, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Flat", "value" : 14, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Patch", "value" : 15, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Centroid", "value" : 16, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Sample", "value" : 17, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "SampleRateShading" ], + "version": "1.0" }, { "enumerant" : "Invariant", "value" : 18, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Restrict", - "value" : 19 + "value" : 19, + "version" : "1.0" }, { "enumerant" : "Aliased", - "value" : 20 + "value" : 20, + "version" : "1.0" }, { "enumerant" : "Volatile", - "value" : 21 + "value" : 21, + "version" : "1.0" }, { "enumerant" : "Constant", "value" : 22, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Coherent", - "value" : 23 + "value" : 23, + "version": "1.0" }, { "enumerant" : "NonWritable", - "value" : 24 + "value" : 24, + "version": "1.0" }, { "enumerant" : "NonReadable", - "value" : 25 + "value" : 25, + "version": "1.0" }, { "enumerant" : "Uniform", "value" : 26, - "capabilities" : [ "Shader", "UniformDecoration" ] + "capabilities" : [ "Shader", "UniformDecoration" ], + "version": "1.0" }, { "enumerant" : "UniformId", @@ -11339,7 +12796,8 @@ { "enumerant" : "SaturatedConversion", "value" : 28, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Stream", @@ -11347,7 +12805,8 @@ "capabilities" : [ "GeometryStreams" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stream Number'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Location", @@ -11355,7 +12814,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Location'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Component", @@ -11363,7 +12823,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Component'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Index", @@ -11371,7 +12832,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Index'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Binding", @@ -11379,7 +12841,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Binding Point'" } - ] + ], + "version": "1.0" }, { "enumerant" : "DescriptorSet", @@ -11387,7 +12850,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Offset", @@ -11395,7 +12859,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" } - ] + ], + "version": "1.0" }, { "enumerant" : "XfbBuffer", @@ -11403,7 +12868,8 @@ "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" } - ] + ], + "version": "1.0" }, { "enumerant" : "XfbStride", @@ -11411,7 +12877,8 @@ "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" } - ] + ], + "version": "1.0" }, { "enumerant" : "FuncParamAttr", @@ -11419,14 +12886,16 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" } - ] + ], + "version": "1.0" }, { "enumerant" : "FPRoundingMode", "value" : 39, "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } - ] + ], + "version": "1.0" }, { "enumerant" : "FPFastMathMode", @@ -11434,7 +12903,8 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" } - ] + ], + "version": "1.0" }, { "enumerant" : "LinkageAttributes", @@ -11443,12 +12913,14 @@ "parameters" : [ { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "LinkageType", "name" : "'Linkage Type'" } - ] + ], + "version": "1.0" }, { "enumerant" : "NoContraction", "value" : 42, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InputAttachmentIndex", @@ -11456,7 +12928,8 @@ "capabilities" : [ "InputAttachment" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Alignment", @@ -11464,7 +12937,8 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Alignment'" } - ] + ], + "version": "1.0" }, { "enumerant" : "MaxByteOffset", @@ -11505,12 +12979,57 @@ "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ], "version" : "1.4" }, + { + "enumerant" : "WeightTextureQCOM", + "value" : 4487, + "extensions" : [ "SPV_QCOM_image_processing" ], + "version" : "None" + }, + { + "enumerant" : "BlockMatchTextureQCOM", + "value" : 4488, + "extensions" : [ "SPV_QCOM_image_processing" ], + "version" : "None" + }, { "enumerant" : "ExplicitInterpAMD", "value" : 4999, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, + { + "enumerant" : "NodeSharesPayloadLimitsWithAMDX", + "value" : 5019, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Payload Array'" } + ], + "version" : "None" + }, + { + "enumerant" : "NodeMaxPayloadsAMDX", + "value" : 5020, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Max number of payloads'" } + ], + "version" : "None" + }, + { + "enumerant" : "TrackFinishWritingAMDX", + "value" : 5078, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "PayloadNodeNameAMDX", + "value" : 5091, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "LiteralString", "name" : "'Node Name'" } + ], + "version" : "None" + }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, @@ -11624,6 +13143,12 @@ "extensions" : [ "SPV_EXT_physical_storage_buffer" ], "version" : "1.5" }, + { + "enumerant" : "HitObjectShaderRecordBufferNV", + "value" : 5386, + "capabilities" : [ "ShaderInvocationReorderNV" ], + "version" : "None" + }, { "enumerant" : "BindlessSamplerNV", "value" : 5398, @@ -11887,6 +13412,30 @@ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, + { + "enumerant" : "StridesizeINTEL", + "value" : 5883, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Stride Size'" } + ], + "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WordsizeINTEL", + "value" : 5884, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Word Size'" } + ], + "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "TrueDualPortINTEL", + "value" : 5885, + "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "version" : "None" + }, { "enumerant" : "BurstCoalesceINTEL", "value" : 5899, @@ -11929,6 +13478,16 @@ "capabilities" : [ "LoopFuseINTEL" ], "version" : "None" }, + { + "enumerant" : "MathOpDSPModeINTEL", + "value" : 5909, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Mode'" }, + { "kind" : "LiteralInteger", "name" : "'Propagate'" } + ], + "capabilities" : [ "FPGADSPControlINTEL" ], + "version" : "None" + }, { "enumerant" : "AliasScopeINTEL", "value" : 5914, @@ -11947,6 +13506,33 @@ "capabilities" : [ "MemoryAccessAliasingINTEL" ], "version" : "None" }, + { + "enumerant" : "InitiationIntervalINTEL", + "value" : 5917, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Cycles'" } + ], + "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "MaxConcurrencyINTEL", + "value" : 5918, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Invocations'" } + ], + "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "PipelineEnableINTEL", + "value" : 5919, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Enable'" } + ], + "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], + "version" : "None" + }, { "enumerant" : "BufferLocationINTEL", "value" : 5921, @@ -11992,6 +13578,161 @@ "value" : 6140, "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" + }, + { + "enumerant" : "StallFreeINTEL", + "value" : 6151, + "capabilities" : [ "FPGAClusterAttributesV2INTEL" ], + "version" : "None" + }, + { + "enumerant" : "FPMaxErrorDecorationINTEL", + "value" : 6170, + "parameters" : [ + { "kind" : "LiteralFloat", "name" : "'Max Error'" } + ], + "capabilities" : [ "FPMaxErrorINTEL" ], + "version" : "None" + }, + { + "enumerant" : "LatencyControlLabelINTEL", + "value" : 6172, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Latency Label'" } + ], + "capabilities" : [ "FPGALatencyControlINTEL" ], + "version" : "None" + }, + { + "enumerant" : "LatencyControlConstraintINTEL", + "value" : 6173, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Relative To'" }, + { "kind" : "LiteralInteger", "name" : "'Control Type'" }, + { "kind" : "LiteralInteger", "name" : "'Relative Cycle'" } + ], + "capabilities" : [ "FPGALatencyControlINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ConduitKernelArgumentINTEL", + "value" : 6175, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "RegisterMapKernelArgumentINTEL", + "value" : 6176, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "MMHostInterfaceAddressWidthINTEL", + "value" : 6177, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'AddressWidth'" } + ], + "version" : "None" + }, + { + "enumerant" : "MMHostInterfaceDataWidthINTEL", + "value" : 6178, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'DataWidth'" } + ], + "version" : "None" + }, + { + "enumerant" : "MMHostInterfaceLatencyINTEL", + "value" : 6179, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Latency'" } + ], + "version" : "None" + }, + { + "enumerant" : "MMHostInterfaceReadWriteModeINTEL", + "value" : 6180, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "parameters" : [ + { "kind" : "AccessQualifier", "name" : "'ReadWriteMode'" } + ], + "version" : "None" + }, + { + "enumerant" : "MMHostInterfaceMaxBurstINTEL", + "value" : 6181, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'MaxBurstCount'" } + ], + "version" : "None" + }, + { + "enumerant" : "MMHostInterfaceWaitRequestINTEL", + "value" : 6182, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Waitrequest'" } + ], + "version" : "None" + }, + { + "enumerant" : "StableKernelArgumentINTEL", + "value" : 6183, + "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "HostAccessINTEL", + "value" : 6188, + "parameters": [ + { "kind" : "HostAccessQualifier", "name" : "'Access'" }, + { "kind" : "LiteralString", "name" : "'Name'" } + ], + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "InitModeINTEL", + "value" : 6190, + "parameters": [ + { "kind" : "InitializationModeQualifier", "name" : "'Trigger'" } + ], + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ImplementInRegisterMapINTEL", + "value" : 6191, + "parameters": [ + { "kind" : "LiteralInteger", "name" : "Value" } + ], + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "CacheControlLoadINTEL", + "value" : 6442, + "capabilities" : [ "CacheControlsINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Cache Level'" }, + { "kind" : "LoadCacheControl", "name" : "'Cache Control'" } + ], + "version" : "None" + }, + { + "enumerant" : "CacheControlStoreINTEL", + "value" : 6443, + "capabilities" : [ "CacheControlsINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Cache Level'" }, + { "kind" : "StoreCacheControl", "name" : "'Cache Control'" } + ], + "version" : "None" } ] }, @@ -12002,226 +13743,272 @@ { "enumerant" : "Position", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PointSize", "value" : 1, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ClipDistance", "value" : 3, - "capabilities" : [ "ClipDistance" ] + "capabilities" : [ "ClipDistance" ], + "version": "1.0" }, { "enumerant" : "CullDistance", "value" : 4, - "capabilities" : [ "CullDistance" ] + "capabilities" : [ "CullDistance" ], + "version": "1.0" }, { "enumerant" : "VertexId", "value" : 5, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InstanceId", "value" : 6, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PrimitiveId", "value" : 7, - "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "InvocationId", "value" : 8, - "capabilities" : [ "Geometry", "Tessellation" ] + "capabilities" : [ "Geometry", "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Layer", "value" : 9, - "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "ViewportIndex", "value" : 10, - "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "TessLevelOuter", "value" : 11, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "TessLevelInner", "value" : 12, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "TessCoord", "value" : 13, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "PatchVertices", "value" : 14, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "FragCoord", "value" : 15, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PointCoord", "value" : 16, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "FrontFacing", "value" : 17, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SampleId", "value" : 18, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "SampleRateShading" ], + "version": "1.0" }, { "enumerant" : "SamplePosition", "value" : 19, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "SampleRateShading" ], + "version": "1.0" }, { "enumerant" : "SampleMask", "value" : 20, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "FragDepth", "value" : 22, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "HelperInvocation", "value" : 23, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "NumWorkgroups", - "value" : 24 + "value" : 24, + "version" : "1.0" }, { "enumerant" : "WorkgroupSize", - "value" : 25 + "value" : 25, + "version" : "1.0" }, { "enumerant" : "WorkgroupId", - "value" : 26 + "value" : 26, + "version" : "1.0" }, { "enumerant" : "LocalInvocationId", - "value" : 27 + "value" : 27, + "version" : "1.0" }, { "enumerant" : "GlobalInvocationId", - "value" : 28 + "value" : 28, + "version" : "1.0" }, { "enumerant" : "LocalInvocationIndex", - "value" : 29 + "value" : 29, + "version" : "1.0" }, { "enumerant" : "WorkDim", "value" : 30, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "GlobalSize", "value" : 31, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "EnqueuedWorkgroupSize", "value" : 32, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "GlobalOffset", "value" : 33, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "GlobalLinearId", "value" : 34, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SubgroupSize", "value" : 36, - "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ] + "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ], + "version": "1.0" }, { "enumerant" : "SubgroupMaxSize", "value" : 37, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NumSubgroups", "value" : 38, - "capabilities" : [ "Kernel", "GroupNonUniform" ] + "capabilities" : [ "Kernel", "GroupNonUniform" ], + "version": "1.0" }, { "enumerant" : "NumEnqueuedSubgroups", "value" : 39, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SubgroupId", "value" : 40, - "capabilities" : [ "Kernel", "GroupNonUniform" ] + "capabilities" : [ "Kernel", "GroupNonUniform" ], + "version": "1.0" }, { "enumerant" : "SubgroupLocalInvocationId", "value" : 41, - "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ] + "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ], + "version": "1.0" }, { "enumerant" : "VertexIndex", "value" : 42, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InstanceIndex", "value" : 43, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "CoreIDARM", "value" : 4160, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "CoreCountARM", "value" : 4161, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "CoreMaxIDARM", "value" : 4162, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "WarpIDARM", "value" : 4163, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "WarpMaxIDARM", "value" : 4164, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "SubgroupEqMask", @@ -12386,6 +14173,18 @@ "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, + { + "enumerant" : "CoalescedInputCountAMDX", + "value" : 5021, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "ShaderIndexAMDX", + "value" : 5073, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, { "enumerant" : "ViewportMaskNV", "value" : 5253, @@ -12750,6 +14549,24 @@ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ], "version" : "None" }, + { + "enumerant" : "HitTriangleVertexPositionsKHR", + "value" : 5335, + "capabilities" : [ "RayTracingPositionFetchKHR" ], + "version" : "None" + }, + { + "enumerant" : "HitMicroTriangleVertexPositionsNV", + "value" : 5337, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, + { + "enumerant" : "HitMicroTriangleVertexBarycentricsNV", + "value" : 5344, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, { "enumerant" : "IncomingRayFlagsNV", "value" : 5351, @@ -12799,6 +14616,18 @@ "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, + { + "enumerant" : "HitKindFrontFacingMicroTriangleNV", + "value" : 5405, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, + { + "enumerant" : "HitKindBackFacingMicroTriangleNV", + "value" : 5406, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, { "enumerant" : "CullMaskKHR", "value" : 6021, @@ -12814,23 +14643,28 @@ "enumerants" : [ { "enumerant" : "CrossDevice", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Device", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "Workgroup", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "Subgroup", - "value" : 3 + "value" : 3, + "version" : "1.0" }, { "enumerant" : "Invocation", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "QueueFamily", @@ -12859,17 +14693,20 @@ { "enumerant" : "Reduce", "value" : 0, - "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ] + "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], + "version": "1.0" }, { "enumerant" : "InclusiveScan", "value" : 1, - "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ] + "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], + "version": "1.0" }, { "enumerant" : "ExclusiveScan", "value" : 2, - "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ] + "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], + "version": "1.0" }, { "enumerant" : "ClusteredReduce", @@ -12907,17 +14744,20 @@ { "enumerant" : "NoWait", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "WaitKernel", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "WaitWorkGroup", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" } ] }, @@ -12927,272 +14767,328 @@ "enumerants" : [ { "enumerant" : "Matrix", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Shader", "value" : 1, - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "enumerant" : "Geometry", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Tessellation", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Addresses", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "Linkage", - "value" : 5 + "value" : 5, + "version" : "1.0" }, { "enumerant" : "Kernel", - "value" : 6 + "value" : 6, + "version" : "1.0" }, { "enumerant" : "Vector16", "value" : 7, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Float16Buffer", "value" : 8, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Float16", - "value" : 9 + "value" : 9, + "version" : "1.0" }, { "enumerant" : "Float64", - "value" : 10 + "value" : 10, + "version" : "1.0" }, { "enumerant" : "Int64", - "value" : 11 + "value" : 11, + "version" : "1.0" }, { "enumerant" : "Int64Atomics", "value" : 12, - "capabilities" : [ "Int64" ] + "capabilities" : [ "Int64" ], + "version": "1.0" }, { "enumerant" : "ImageBasic", "value" : 13, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ImageReadWrite", "value" : 14, - "capabilities" : [ "ImageBasic" ] + "capabilities" : [ "ImageBasic" ], + "version": "1.0" }, { "enumerant" : "ImageMipmap", "value" : 15, - "capabilities" : [ "ImageBasic" ] + "capabilities" : [ "ImageBasic" ], + "version": "1.0" }, { "enumerant" : "Pipes", "value" : 17, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Groups", "value" : 18, - "extensions" : [ "SPV_AMD_shader_ballot" ] + "extensions" : [ "SPV_AMD_shader_ballot" ], + "version": "1.0" }, { "enumerant" : "DeviceEnqueue", "value" : 19, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "LiteralSampler", "value" : 20, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "AtomicStorage", "value" : 21, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Int16", - "value" : 22 + "value" : 22, + "version" : "1.0" }, { "enumerant" : "TessellationPointSize", "value" : 23, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "GeometryPointSize", "value" : 24, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "ImageGatherExtended", "value" : 25, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageMultisample", "value" : 27, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "UniformBufferArrayDynamicIndexing", "value" : 28, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SampledImageArrayDynamicIndexing", "value" : 29, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageBufferArrayDynamicIndexing", "value" : 30, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageArrayDynamicIndexing", "value" : 31, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ClipDistance", "value" : 32, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "CullDistance", "value" : 33, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ImageCubeArray", "value" : 34, - "capabilities" : [ "SampledCubeArray" ] + "capabilities" : [ "SampledCubeArray" ], + "version": "1.0" }, { "enumerant" : "SampleRateShading", "value" : 35, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ImageRect", "value" : 36, - "capabilities" : [ "SampledRect" ] + "capabilities" : [ "SampledRect" ], + "version": "1.0" }, { "enumerant" : "SampledRect", "value" : 37, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GenericPointer", "value" : 38, - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "enumerant" : "Int8", - "value" : 39 + "value" : 39, + "version" : "1.0" }, { "enumerant" : "InputAttachment", "value" : 40, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SparseResidency", "value" : 41, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "MinLod", "value" : 42, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Sampled1D", - "value" : 43 + "value" : 43, + "version" : "1.0" }, { "enumerant" : "Image1D", "value" : 44, - "capabilities" : [ "Sampled1D" ] + "capabilities" : [ "Sampled1D" ], + "version": "1.0" }, { "enumerant" : "SampledCubeArray", "value" : 45, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SampledBuffer", - "value" : 46 + "value" : 46, + "version" : "1.0" }, { "enumerant" : "ImageBuffer", "value" : 47, - "capabilities" : [ "SampledBuffer" ] + "capabilities" : [ "SampledBuffer" ], + "version": "1.0" }, { "enumerant" : "ImageMSArray", "value" : 48, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageExtendedFormats", "value" : 49, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ImageQuery", "value" : 50, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DerivativeControl", "value" : 51, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InterpolationFunction", "value" : 52, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "TransformFeedback", "value" : 53, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GeometryStreams", "value" : 54, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "StorageImageReadWithoutFormat", "value" : 55, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageWriteWithoutFormat", "value" : 56, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "MultiViewport", "value" : 57, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "SubgroupDispatch", @@ -13277,7 +15173,26 @@ { "enumerant" : "CoreBuiltinsARM", "value" : 4165, - "extensions" : [ "SPV_ARM_core_builtins" ] + "extensions" : [ "SPV_ARM_core_builtins" ], + "version": "None" + }, + { + "enumerant" : "TileImageColorReadAccessEXT", + "value" : 4166, + "extensions" : [ "SPV_EXT_shader_tile_image" ], + "version" : "None" + }, + { + "enumerant" : "TileImageDepthReadAccessEXT", + "value" : 4167, + "extensions" : [ "SPV_EXT_shader_tile_image" ], + "version" : "None" + }, + { + "enumerant" : "TileImageStencilReadAccessEXT", + "value" : 4168, + "extensions" : [ "SPV_EXT_shader_tile_image" ], + "version" : "None" }, { "enumerant" : "FragmentShadingRateKHR", @@ -13316,7 +15231,7 @@ { "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR", "value" : 4430, - "capabilities" : [ "Shader" ], + "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ], "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ], "version" : "None" }, @@ -13486,6 +15401,24 @@ "extensions" : [ "SPV_KHR_ray_tracing" ], "version" : "None" }, + { + "enumerant" : "TextureSampleWeightedQCOM", + "value" : 4484, + "extensions" : [ "SPV_QCOM_image_processing" ], + "version" : "None" + }, + { + "enumerant" : "TextureBoxFilterQCOM", + "value" : 4485, + "extensions" : [ "SPV_QCOM_image_processing" ], + "version" : "None" + }, + { + "enumerant" : "TextureBlockMatchQCOM", + "value" : 4486, + "extensions" : [ "SPV_QCOM_image_processing" ], + "version" : "None" + }, { "enumerant" : "Float16ImageAMD", "value" : 5008, @@ -13531,10 +15464,16 @@ { "enumerant" : "ShaderClockKHR", "value" : 5055, - "capabilities" : [ "Shader" ], "extensions" : [ "SPV_KHR_shader_clock" ], "version" : "None" }, + { + "enumerant" : "ShaderEnqueueAMDX", + "value" : 5067, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_AMDX_shader_enqueue" ], + "version" : "None" + }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, @@ -13805,6 +15744,13 @@ "extensions" : [ "SPV_EXT_descriptor_indexing" ], "version" : "1.5" }, + { + "enumerant" : "RayTracingPositionFetchKHR", + "value" : 5336, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ], + "version" : "None" + }, { "enumerant" : "RayTracingNV", "value" : 5340, @@ -13916,6 +15862,13 @@ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ], "version" : "1.6" }, + { + "enumerant" : "DisplacementMicromapNV", + "value" : 5380, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_NV_displacement_micromap" ], + "version" : "None" + }, { "enumerant" : "RayTracingOpacityMicromapEXT", "value" : 5381, @@ -13923,12 +15876,33 @@ "extensions" : [ "SPV_EXT_opacity_micromap" ], "version" : "None" }, + { + "enumerant" : "ShaderInvocationReorderNV", + "value" : 5383, + "capabilities" : [ "RayTracingKHR" ], + "extensions" : [ "SPV_NV_shader_invocation_reorder" ], + "version" : "None" + }, { "enumerant" : "BindlessTextureNV", "value" : 5390, "extensions" : [ "SPV_NV_bindless_texture" ], "version" : "None" }, + { + "enumerant" : "RayQueryPositionFetchKHR", + "value" : 5391, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ], + "version" : "None" + }, + { + "enumerant" : "RayTracingDisplacementMicromapNV", + "value" : 5409, + "capabilities" : [ "RayTracingKHR" ], + "extensions" : [ "SPV_NV_displacement_micromap" ], + "version" : "None" + }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, @@ -14124,12 +16098,24 @@ "extensions" : [ "SPV_INTEL_loop_fuse" ], "version" : "None" }, + { + "enumerant" : "FPGADSPControlINTEL", + "value" : 5908, + "extensions" : [ "SPV_INTEL_fpga_dsp_control" ], + "version" : "None" + }, { "enumerant" : "MemoryAccessAliasingINTEL", "value" : 5910, "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], "version" : "None" }, + { + "enumerant" : "FPGAInvocationPipeliningAttributesINTEL", + "value" : 5916, + "extensions" : [ "SPV_INTEL_fpga_invocation_pipelining_attributes" ], + "version" : "None" + }, { "enumerant" : "FPGABufferLocationINTEL", "value" : 5920, @@ -14148,6 +16134,12 @@ "extensions" : [ "SPV_INTEL_usm_storage_classes" ], "version" : "None" }, + { + "enumerant" : "RuntimeAlignedAttributeINTEL", + "value" : 5939, + "extensions" : [ "SPV_INTEL_runtime_aligned" ], + "version" : "None" + }, { "enumerant" : "IOPipesINTEL", "value" : 5943, @@ -14218,6 +16210,12 @@ "extensions" : [ "SPV_KHR_ray_cull_mask" ], "version" : "None" }, + { + "enumerant" : "CooperativeMatrixKHR", + "value" : 6022, + "extensions" : [ "SPV_KHR_cooperative_matrix" ], + "version" : "None" + }, { "enumerant" : "BitInstructions", "value" : 6025, @@ -14244,9 +16242,9 @@ "version" : "None" }, { - "enumerant" : "LongConstantCompositeINTEL", + "enumerant" : "LongCompositesINTEL", "value" : 6089, - "extensions" : [ "SPV_INTEL_long_constant_composite" ], + "extensions" : [ "SPV_INTEL_long_composites" ], "version" : "None" }, { @@ -14267,17 +16265,73 @@ "extensions" : [ "SPV_INTEL_debug_module" ], "version" : "None" }, + { + "enumerant" : "BFloat16ConversionINTEL", + "value" : 6115, + "extensions" : [ "SPV_INTEL_bfloat16_conversion" ], + "version" : "None" + }, { "enumerant" : "SplitBarrierINTEL", "value" : 6141, "extensions" : [ "SPV_INTEL_split_barrier" ], "version" : "None" }, + { + "enumerant" : "FPGAClusterAttributesV2INTEL", + "value" : 6150, + "capabilities" : [ "FPGAClusterAttributesINTEL" ], + "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ], + "version" : "None" + }, + { + "enumerant" : "FPGAKernelAttributesv2INTEL", + "value" : 6161, + "capabilities" : [ "FPGAKernelAttributesINTEL" ], + "extensions" : [ "SPV_INTEL_kernel_attributes" ], + "version" : "None" + }, + { + "enumerant" : "FPMaxErrorINTEL", + "value" : 6169, + "extensions" : [ "SPV_INTEL_fp_max_error" ], + "version" : "None" + }, + { + "enumerant" : "FPGALatencyControlINTEL", + "value" : 6171, + "extensions" : [ "SPV_INTEL_fpga_latency_control" ], + "version" : "None" + }, + { + "enumerant" : "FPGAArgumentInterfacesINTEL", + "value" : 6174, + "extensions" : [ "SPV_INTEL_fpga_argument_interfaces" ], + "version" : "None" + }, + { + "enumerant" : "GlobalVariableHostAccessINTEL", + "value" : 6187, + "extensions": [ "SPV_INTEL_global_variable_host_access" ], + "version" : "None" + }, + { + "enumerant" : "GlobalVariableFPGADecorationsINTEL", + "value" : 6189, + "extensions": [ "SPV_INTEL_global_variable_fpga_decorations" ], + "version" : "None" + }, { "enumerant" : "GroupUniformArithmeticKHR", "value" : 6400, "extensions" : [ "SPV_KHR_uniform_group_instructions"], "version" : "None" + }, + { + "enumerant" : "CacheControlsINTEL", + "value" : 6441, + "extensions" : [ "SPV_INTEL_cache_controls" ], + "version" : "None" } ] }, @@ -14358,6 +16412,163 @@ } ] }, + { + "category" : "BitEnum", + "kind" : "CooperativeMatrixOperands", + "enumerants" : [ + { + "enumerant" : "NoneKHR", + "value" : "0x0000", + "version" : "None" + }, + { + "enumerant" : "MatrixASignedComponentsKHR", + "value" : "0x0001", + "version" : "None" + }, + { + "enumerant" : "MatrixBSignedComponentsKHR", + "value" : "0x0002", + "version" : "None" + }, + { + "enumerant" : "MatrixCSignedComponentsKHR", + "value" : "0x0004", + "version" : "None" + }, + { + "enumerant" : "MatrixResultSignedComponentsKHR", + "value" : "0x0008", + "version" : "None" + }, + { + "enumerant" : "SaturatingAccumulationKHR", + "value" : "0x0010", + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "CooperativeMatrixLayout", + "enumerants" : [ + { + "enumerant" : "RowMajorKHR", + "value" : 0, + "version" : "None" + }, + { + "enumerant" : "ColumnMajorKHR", + "value" : 1, + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "CooperativeMatrixUse", + "enumerants" : [ + { + "enumerant" : "MatrixAKHR", + "value" : 0, + "version" : "None" + }, + { + "enumerant" : "MatrixBKHR", + "value" : 1, + "version" : "None" + }, + { + "enumerant" : "MatrixAccumulatorKHR", + "value" : 2, + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "InitializationModeQualifier", + "enumerants" : [ + { + "enumerant" : "InitOnDeviceReprogramINTEL", + "value" : 0, + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "InitOnDeviceResetINTEL", + "value" : 1, + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "LoadCacheControl", + "enumerants" : [ + { + "enumerant" : "UncachedINTEL", + "value" : 0, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "CachedINTEL", + "value" : 1, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "StreamingINTEL", + "value" : 2, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "InvalidateAfterReadINTEL", + "value" : 3, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ConstCachedINTEL", + "value" : 4, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "StoreCacheControl", + "enumerants" : [ + { + "enumerant" : "UncachedINTEL", + "value" : 0, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WriteThroughINTEL", + "value" : 1, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WriteBackINTEL", + "value" : 2, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "StreamingINTEL", + "value" : 3, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + } + ] + }, { "category" : "Id", "kind" : "IdResultType", @@ -14393,6 +16604,11 @@ "kind" : "LiteralString", "doc" : "A null-terminated stream of characters consuming an integral number of words" }, + { + "category" : "Literal", + "kind" : "LiteralFloat", + "doc" : "A float consuming one word" + }, { "category" : "Literal", "kind" : "LiteralContextDependentNumber", diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs index 0cf3d34..686a588 100644 --- a/include/spirv/unified1/spirv.cs +++ b/include/spirv/unified1/spirv.cs @@ -65,6 +65,10 @@ namespace Spv HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, + HERO_C = 8, + NZSL = 9, + WGSL = 10, + Slang = 11, } public enum ExecutionModel @@ -152,6 +156,9 @@ namespace Spv SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, + NonCoherentColorAttachmentReadEXT = 4169, + NonCoherentDepthAttachmentReadEXT = 4170, + NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, @@ -161,6 +168,11 @@ namespace Spv RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, + CoalescingAMDX = 5069, + MaxNodeRecursionAMDX = 5071, + StaticNumWorkgroupsAMDX = 5072, + ShaderIndexAMDX = 5073, + MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, @@ -191,6 +203,8 @@ namespace Spv NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, + StreamingInterfaceINTEL = 6154, + RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, } @@ -209,6 +223,9 @@ namespace Spv AtomicCounter = 10, Image = 11, StorageBuffer = 12, + TileImageEXT = 4172, + NodePayloadAMDX = 5068, + NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, @@ -223,6 +240,7 @@ namespace Spv ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, @@ -238,6 +256,7 @@ namespace Spv Rect = 4, Buffer = 5, SubpassData = 6, + TileImageDataEXT = 4173, } public enum SamplerAddressingMode @@ -344,6 +363,8 @@ namespace Spv Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, + UnsignedIntRaw10EXT = 19, + UnsignedIntRaw12EXT = 20, } public enum ImageOperandsShift @@ -450,6 +471,7 @@ namespace Spv NoCapture = 5, NoWrite = 6, NoReadWrite = 7, + RuntimeAlignedINTEL = 5940, } public enum Decoration @@ -503,7 +525,13 @@ namespace Spv MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, + WeightTextureQCOM = 4487, + BlockMatchTextureQCOM = 4488, ExplicitInterpAMD = 4999, + NodeSharesPayloadLimitsWithAMDX = 5019, + NodeMaxPayloadsAMDX = 5020, + TrackFinishWritingAMDX = 5078, + PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, @@ -520,6 +548,7 @@ namespace Spv RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, + HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -552,20 +581,45 @@ namespace Spv MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, + StridesizeINTEL = 5883, + WordsizeINTEL = 5884, + TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, + MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, + InitiationIntervalINTEL = 5917, + MaxConcurrencyINTEL = 5918, + PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, + StallFreeINTEL = 6151, + FPMaxErrorDecorationINTEL = 6170, + LatencyControlLabelINTEL = 6172, + LatencyControlConstraintINTEL = 6173, + ConduitKernelArgumentINTEL = 6175, + RegisterMapKernelArgumentINTEL = 6176, + MMHostInterfaceAddressWidthINTEL = 6177, + MMHostInterfaceDataWidthINTEL = 6178, + MMHostInterfaceLatencyINTEL = 6179, + MMHostInterfaceReadWriteModeINTEL = 6180, + MMHostInterfaceMaxBurstINTEL = 6181, + MMHostInterfaceWaitRequestINTEL = 6182, + StableKernelArgumentINTEL = 6183, + HostAccessINTEL = 6188, + InitModeINTEL = 6190, + ImplementInRegisterMapINTEL = 6191, + CacheControlLoadINTEL = 6442, + CacheControlStoreINTEL = 6443, } public enum BuiltIn @@ -641,6 +695,8 @@ namespace Spv BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, + CoalescedInputCountAMDX = 5021, + ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, @@ -693,6 +749,9 @@ namespace Spv HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, + HitTriangleVertexPositionsKHR = 5335, + HitMicroTriangleVertexPositionsNV = 5337, + HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, @@ -700,6 +759,8 @@ namespace Spv SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, + HitKindFrontFacingMicroTriangleNV = 5405, + HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, } @@ -735,6 +796,8 @@ namespace Spv MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, + LoopCountINTEL = 24, + MaxReinvocationDelayINTEL = 25, } public enum LoopControlMask @@ -757,6 +820,8 @@ namespace Spv MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, + LoopCountINTEL = 0x01000000, + MaxReinvocationDelayINTEL = 0x02000000, } public enum FunctionControlShift @@ -966,6 +1031,9 @@ namespace Spv ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, + TileImageColorReadAccessEXT = 4166, + TileImageDepthReadAccessEXT = 4167, + TileImageStencilReadAccessEXT = 4168, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, @@ -997,6 +1065,9 @@ namespace Spv RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, + TextureSampleWeightedQCOM = 4484, + TextureBoxFilterQCOM = 4485, + TextureBlockMatchQCOM = 4486, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, @@ -1004,6 +1075,7 @@ namespace Spv ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, + ShaderEnqueueAMDX = 5067, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, @@ -1045,6 +1117,7 @@ namespace Spv UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, + RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, @@ -1062,8 +1135,12 @@ namespace Spv FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, + DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, + ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, + RayQueryPositionFetchKHR = 5391, + RayTracingDisplacementMicromapNV = 5409, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, @@ -1096,10 +1173,13 @@ namespace Spv FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, + FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, + FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, + RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, @@ -1112,16 +1192,26 @@ namespace Spv DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, + CooperativeMatrixKHR = 6022, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, - LongConstantCompositeINTEL = 6089, + LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, + BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, + FPGAClusterAttributesV2INTEL = 6150, + FPGAKernelAttributesv2INTEL = 6161, + FPMaxErrorINTEL = 6169, + FPGALatencyControlINTEL = 6171, + FPGAArgumentInterfacesINTEL = 6174, + GlobalVariableHostAccessINTEL = 6187, + GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, + CacheControlsINTEL = 6441, } public enum RayFlagsShift @@ -1229,6 +1319,69 @@ namespace Spv 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 { OpNop = 0, @@ -1575,6 +1728,9 @@ namespace Spv OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, + OpColorAttachmentReadEXT = 4160, + OpDepthAttachmentReadEXT = 4161, + OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, @@ -1600,6 +1756,11 @@ namespace Spv OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, + OpTypeCooperativeMatrixKHR = 4456, + OpCooperativeMatrixLoadKHR = 4457, + OpCooperativeMatrixStoreKHR = 4458, + OpCooperativeMatrixMulAddKHR = 4459, + OpCooperativeMatrixLengthKHR = 4460, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1607,6 +1768,10 @@ namespace Spv OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, + OpImageSampleWeightedQCOM = 4480, + OpImageBoxFilterQCOM = 4481, + OpImageBlockMatchSSDQCOM = 4482, + OpImageBlockMatchSADQCOM = 4483, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -1618,11 +1783,49 @@ namespace Spv OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, 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, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, + OpFetchMicroTriangleVertexPositionNV = 5300, + OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -1630,6 +1833,7 @@ namespace Spv OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, + OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1891,6 +2095,9 @@ namespace Spv OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, + OpCompositeConstructContinuedINTEL = 6096, + OpConvertFToBF16INTEL = 6116, + OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h index af4f06b..58b1932 100644 --- a/include/spirv/unified1/spirv.h +++ b/include/spirv/unified1/spirv.h @@ -73,6 +73,10 @@ typedef enum SpvSourceLanguage_ { SpvSourceLanguageHLSL = 5, SpvSourceLanguageCPP_for_OpenCL = 6, SpvSourceLanguageSYCL = 7, + SpvSourceLanguageHERO_C = 8, + SpvSourceLanguageNZSL = 9, + SpvSourceLanguageWGSL = 10, + SpvSourceLanguageSlang = 11, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; @@ -160,6 +164,9 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeSubgroupsPerWorkgroupId = 37, SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeHintId = 39, + SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169, + SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170, + SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171, SpvExecutionModeSubgroupUniformControlFlowKHR = 4421, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeDenormPreserve = 4459, @@ -169,6 +176,11 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeRoundingModeRTZ = 4463, SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017, SpvExecutionModeStencilRefReplacingEXT = 5027, + SpvExecutionModeCoalescingAMDX = 5069, + SpvExecutionModeMaxNodeRecursionAMDX = 5071, + SpvExecutionModeStaticNumWorkgroupsAMDX = 5072, + SpvExecutionModeShaderIndexAMDX = 5073, + SpvExecutionModeMaxNumWorkgroupsAMDX = 5077, SpvExecutionModeStencilRefUnchangedFrontAMD = 5079, SpvExecutionModeStencilRefGreaterFrontAMD = 5080, SpvExecutionModeStencilRefLessFrontAMD = 5081, @@ -199,6 +211,8 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeNoGlobalOffsetINTEL = 5895, SpvExecutionModeNumSIMDWorkitemsINTEL = 5896, SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, + SpvExecutionModeStreamingInterfaceINTEL = 6154, + SpvExecutionModeRegisterMapInterfaceINTEL = 6160, SpvExecutionModeNamedBarrierCountINTEL = 6417, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; @@ -217,6 +231,9 @@ typedef enum SpvStorageClass_ { SpvStorageClassAtomicCounter = 10, SpvStorageClassImage = 11, SpvStorageClassStorageBuffer = 12, + SpvStorageClassTileImageEXT = 4172, + SpvStorageClassNodePayloadAMDX = 5068, + SpvStorageClassNodeOutputPayloadAMDX = 5076, SpvStorageClassCallableDataKHR = 5328, SpvStorageClassCallableDataNV = 5328, SpvStorageClassIncomingCallableDataKHR = 5329, @@ -231,6 +248,7 @@ typedef enum SpvStorageClass_ { SpvStorageClassShaderRecordBufferNV = 5343, SpvStorageClassPhysicalStorageBuffer = 5349, SpvStorageClassPhysicalStorageBufferEXT = 5349, + SpvStorageClassHitObjectAttributeNV = 5385, SpvStorageClassTaskPayloadWorkgroupEXT = 5402, SpvStorageClassCodeSectionINTEL = 5605, SpvStorageClassDeviceOnlyINTEL = 5936, @@ -246,6 +264,7 @@ typedef enum SpvDim_ { SpvDimRect = 4, SpvDimBuffer = 5, SpvDimSubpassData = 6, + SpvDimTileImageDataEXT = 4173, SpvDimMax = 0x7fffffff, } SpvDim; @@ -352,6 +371,8 @@ typedef enum SpvImageChannelDataType_ { SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt101010_2 = 16, + SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19, + SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20, SpvImageChannelDataTypeMax = 0x7fffffff, } SpvImageChannelDataType; @@ -456,6 +477,7 @@ typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, + SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; @@ -509,7 +531,13 @@ typedef enum SpvDecoration_ { SpvDecorationMaxByteOffsetId = 47, SpvDecorationNoSignedWrap = 4469, SpvDecorationNoUnsignedWrap = 4470, + SpvDecorationWeightTextureQCOM = 4487, + SpvDecorationBlockMatchTextureQCOM = 4488, SpvDecorationExplicitInterpAMD = 4999, + SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019, + SpvDecorationNodeMaxPayloadsAMDX = 5020, + SpvDecorationTrackFinishWritingAMDX = 5078, + SpvDecorationPayloadNodeNameAMDX = 5091, SpvDecorationOverrideCoverageNV = 5248, SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, @@ -526,6 +554,7 @@ typedef enum SpvDecoration_ { SpvDecorationRestrictPointerEXT = 5355, SpvDecorationAliasedPointer = 5356, SpvDecorationAliasedPointerEXT = 5356, + SpvDecorationHitObjectShaderRecordBufferNV = 5386, SpvDecorationBindlessSamplerNV = 5398, SpvDecorationBindlessImageNV = 5399, SpvDecorationBoundSamplerNV = 5400, @@ -558,20 +587,45 @@ typedef enum SpvDecoration_ { SpvDecorationMergeINTEL = 5834, SpvDecorationBankBitsINTEL = 5835, SpvDecorationForcePow2DepthINTEL = 5836, + SpvDecorationStridesizeINTEL = 5883, + SpvDecorationWordsizeINTEL = 5884, + SpvDecorationTrueDualPortINTEL = 5885, SpvDecorationBurstCoalesceINTEL = 5899, SpvDecorationCacheSizeINTEL = 5900, SpvDecorationDontStaticallyCoalesceINTEL = 5901, SpvDecorationPrefetchINTEL = 5902, SpvDecorationStallEnableINTEL = 5905, SpvDecorationFuseLoopsInFunctionINTEL = 5907, + SpvDecorationMathOpDSPModeINTEL = 5909, SpvDecorationAliasScopeINTEL = 5914, SpvDecorationNoAliasINTEL = 5915, + SpvDecorationInitiationIntervalINTEL = 5917, + SpvDecorationMaxConcurrencyINTEL = 5918, + SpvDecorationPipelineEnableINTEL = 5919, SpvDecorationBufferLocationINTEL = 5921, SpvDecorationIOPipeStorageINTEL = 5944, SpvDecorationFunctionFloatingPointModeINTEL = 6080, SpvDecorationSingleElementVectorINTEL = 6085, SpvDecorationVectorComputeCallableFunctionINTEL = 6087, SpvDecorationMediaBlockIOINTEL = 6140, + SpvDecorationStallFreeINTEL = 6151, + SpvDecorationFPMaxErrorDecorationINTEL = 6170, + SpvDecorationLatencyControlLabelINTEL = 6172, + SpvDecorationLatencyControlConstraintINTEL = 6173, + SpvDecorationConduitKernelArgumentINTEL = 6175, + SpvDecorationRegisterMapKernelArgumentINTEL = 6176, + SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177, + SpvDecorationMMHostInterfaceDataWidthINTEL = 6178, + SpvDecorationMMHostInterfaceLatencyINTEL = 6179, + SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180, + SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181, + SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182, + SpvDecorationStableKernelArgumentINTEL = 6183, + SpvDecorationHostAccessINTEL = 6188, + SpvDecorationInitModeINTEL = 6190, + SpvDecorationImplementInRegisterMapINTEL = 6191, + SpvDecorationCacheControlLoadINTEL = 6442, + SpvDecorationCacheControlStoreINTEL = 6443, SpvDecorationMax = 0x7fffffff, } SpvDecoration; @@ -647,6 +701,8 @@ typedef enum SpvBuiltIn_ { SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInFragStencilRefEXT = 5014, + SpvBuiltInCoalescedInputCountAMDX = 5021, + SpvBuiltInShaderIndexAMDX = 5073, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, @@ -699,6 +755,9 @@ typedef enum SpvBuiltIn_ { SpvBuiltInHitKindKHR = 5333, SpvBuiltInHitKindNV = 5333, SpvBuiltInCurrentRayTimeNV = 5334, + SpvBuiltInHitTriangleVertexPositionsKHR = 5335, + SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337, + SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344, SpvBuiltInIncomingRayFlagsKHR = 5351, SpvBuiltInIncomingRayFlagsNV = 5351, SpvBuiltInRayGeometryIndexKHR = 5352, @@ -706,6 +765,8 @@ typedef enum SpvBuiltIn_ { SpvBuiltInSMCountNV = 5375, SpvBuiltInWarpIDNV = 5376, SpvBuiltInSMIDNV = 5377, + SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405, + SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406, SpvBuiltInCullMaskKHR = 6021, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; @@ -740,6 +801,8 @@ typedef enum SpvLoopControlShift_ { SpvLoopControlMaxInterleavingINTELShift = 21, SpvLoopControlSpeculatedIterationsINTELShift = 22, SpvLoopControlNoFusionINTELShift = 23, + SpvLoopControlLoopCountINTELShift = 24, + SpvLoopControlMaxReinvocationDelayINTELShift = 25, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; @@ -762,6 +825,8 @@ typedef enum SpvLoopControlMask_ { SpvLoopControlMaxInterleavingINTELMask = 0x00200000, SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000, SpvLoopControlNoFusionINTELMask = 0x00800000, + SpvLoopControlLoopCountINTELMask = 0x01000000, + SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { @@ -966,6 +1031,9 @@ typedef enum SpvCapability_ { SpvCapabilityShaderViewportIndex = 70, SpvCapabilityUniformDecoration = 71, SpvCapabilityCoreBuiltinsARM = 4165, + SpvCapabilityTileImageColorReadAccessEXT = 4166, + SpvCapabilityTileImageDepthReadAccessEXT = 4167, + SpvCapabilityTileImageStencilReadAccessEXT = 4168, SpvCapabilityFragmentShadingRateKHR = 4422, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, @@ -997,6 +1065,9 @@ typedef enum SpvCapability_ { SpvCapabilityRayQueryKHR = 4472, SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478, SpvCapabilityRayTracingKHR = 4479, + SpvCapabilityTextureSampleWeightedQCOM = 4484, + SpvCapabilityTextureBoxFilterQCOM = 4485, + SpvCapabilityTextureBlockMatchQCOM = 4486, SpvCapabilityFloat16ImageAMD = 5008, SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityFragmentMaskAMD = 5010, @@ -1004,6 +1075,7 @@ typedef enum SpvCapability_ { SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilityInt64ImageEXT = 5016, SpvCapabilityShaderClockKHR = 5055, + SpvCapabilityShaderEnqueueAMDX = 5067, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, @@ -1045,6 +1117,7 @@ typedef enum SpvCapability_ { SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, + SpvCapabilityRayTracingPositionFetchKHR = 5336, SpvCapabilityRayTracingNV = 5340, SpvCapabilityRayTracingMotionBlurNV = 5341, SpvCapabilityVulkanMemoryModel = 5345, @@ -1062,8 +1135,12 @@ typedef enum SpvCapability_ { SpvCapabilityFragmentShaderPixelInterlockEXT = 5378, SpvCapabilityDemoteToHelperInvocation = 5379, SpvCapabilityDemoteToHelperInvocationEXT = 5379, + SpvCapabilityDisplacementMicromapNV = 5380, SpvCapabilityRayTracingOpacityMicromapEXT = 5381, + SpvCapabilityShaderInvocationReorderNV = 5383, SpvCapabilityBindlessTextureNV = 5390, + SpvCapabilityRayQueryPositionFetchKHR = 5391, + SpvCapabilityRayTracingDisplacementMicromapNV = 5409, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, @@ -1096,10 +1173,13 @@ typedef enum SpvCapability_ { SpvCapabilityFPGAMemoryAccessesINTEL = 5898, SpvCapabilityFPGAClusterAttributesINTEL = 5904, SpvCapabilityLoopFuseINTEL = 5906, + SpvCapabilityFPGADSPControlINTEL = 5908, SpvCapabilityMemoryAccessAliasingINTEL = 5910, + SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916, SpvCapabilityFPGABufferLocationINTEL = 5920, SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922, SpvCapabilityUSMStorageClassesINTEL = 5935, + SpvCapabilityRuntimeAlignedAttributeINTEL = 5939, SpvCapabilityIOPipesINTEL = 5943, SpvCapabilityBlockingPipesINTEL = 5945, SpvCapabilityFPGARegINTEL = 5948, @@ -1112,16 +1192,26 @@ typedef enum SpvCapability_ { SpvCapabilityDotProduct = 6019, SpvCapabilityDotProductKHR = 6019, SpvCapabilityRayCullMaskKHR = 6020, + SpvCapabilityCooperativeMatrixKHR = 6022, SpvCapabilityBitInstructions = 6025, SpvCapabilityGroupNonUniformRotateKHR = 6026, SpvCapabilityAtomicFloat32AddEXT = 6033, SpvCapabilityAtomicFloat64AddEXT = 6034, - SpvCapabilityLongConstantCompositeINTEL = 6089, + SpvCapabilityLongCompositesINTEL = 6089, SpvCapabilityOptNoneINTEL = 6094, SpvCapabilityAtomicFloat16AddEXT = 6095, SpvCapabilityDebugInfoModuleINTEL = 6114, + SpvCapabilityBFloat16ConversionINTEL = 6115, SpvCapabilitySplitBarrierINTEL = 6141, + SpvCapabilityFPGAClusterAttributesV2INTEL = 6150, + SpvCapabilityFPGAKernelAttributesv2INTEL = 6161, + SpvCapabilityFPMaxErrorINTEL = 6169, + SpvCapabilityFPGALatencyControlINTEL = 6171, + SpvCapabilityFPGAArgumentInterfacesINTEL = 6174, + SpvCapabilityGlobalVariableHostAccessINTEL = 6187, + SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189, SpvCapabilityGroupUniformArithmeticKHR = 6400, + SpvCapabilityCacheControlsINTEL = 6441, SpvCapabilityMax = 0x7fffffff, } SpvCapability; @@ -1228,6 +1318,68 @@ typedef enum SpvPackedVectorFormat_ { SpvPackedVectorFormatMax = 0x7fffffff, } SpvPackedVectorFormat; +typedef enum SpvCooperativeMatrixOperandsShift_ { + SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0, + SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1, + SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2, + SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3, + SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4, + SpvCooperativeMatrixOperandsMax = 0x7fffffff, +} SpvCooperativeMatrixOperandsShift; + +typedef enum SpvCooperativeMatrixOperandsMask_ { + SpvCooperativeMatrixOperandsMaskNone = 0, + SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001, + SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002, + SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004, + SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008, + SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010, +} SpvCooperativeMatrixOperandsMask; + +typedef enum SpvCooperativeMatrixLayout_ { + SpvCooperativeMatrixLayoutRowMajorKHR = 0, + SpvCooperativeMatrixLayoutColumnMajorKHR = 1, + 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_ { SpvOpNop = 0, SpvOpUndef = 1, @@ -1573,6 +1725,9 @@ typedef enum SpvOp_ { SpvOpPtrEqual = 401, SpvOpPtrNotEqual = 402, SpvOpPtrDiff = 403, + SpvOpColorAttachmentReadEXT = 4160, + SpvOpDepthAttachmentReadEXT = 4161, + SpvOpStencilAttachmentReadEXT = 4162, SpvOpTerminateInvocation = 4416, SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupFirstInvocationKHR = 4422, @@ -1598,6 +1753,11 @@ typedef enum SpvOp_ { SpvOpUDotAccSatKHR = 4454, SpvOpSUDotAccSat = 4455, SpvOpSUDotAccSatKHR = 4455, + SpvOpTypeCooperativeMatrixKHR = 4456, + SpvOpCooperativeMatrixLoadKHR = 4457, + SpvOpCooperativeMatrixStoreKHR = 4458, + SpvOpCooperativeMatrixMulAddKHR = 4459, + SpvOpCooperativeMatrixLengthKHR = 4460, SpvOpTypeRayQueryKHR = 4472, SpvOpRayQueryInitializeKHR = 4473, SpvOpRayQueryTerminateKHR = 4474, @@ -1605,6 +1765,10 @@ typedef enum SpvOp_ { SpvOpRayQueryConfirmIntersectionKHR = 4476, SpvOpRayQueryProceedKHR = 4477, SpvOpRayQueryGetIntersectionTypeKHR = 4479, + SpvOpImageSampleWeightedQCOM = 4480, + SpvOpImageBoxFilterQCOM = 4481, + SpvOpImageBlockMatchSSDQCOM = 4482, + SpvOpImageBlockMatchSADQCOM = 4483, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, @@ -1616,11 +1780,49 @@ typedef enum SpvOp_ { SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentFetchAMD = 5012, 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, SpvOpEmitMeshTasksEXT = 5294, SpvOpSetMeshOutputsEXT = 5295, SpvOpGroupNonUniformPartitionNV = 5296, SpvOpWritePackedPrimitiveIndices4x8NV = 5299, + SpvOpFetchMicroTriangleVertexPositionNV = 5300, + SpvOpFetchMicroTriangleVertexBarycentricNV = 5301, SpvOpReportIntersectionKHR = 5334, SpvOpReportIntersectionNV = 5334, SpvOpIgnoreIntersectionNV = 5335, @@ -1628,6 +1830,7 @@ typedef enum SpvOp_ { SpvOpTraceNV = 5337, SpvOpTraceMotionNV = 5338, SpvOpTraceRayMotionNV = 5339, + SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, SpvOpTypeAccelerationStructureKHR = 5341, SpvOpTypeAccelerationStructureNV = 5341, SpvOpExecuteCallableNV = 5344, @@ -1889,6 +2092,9 @@ typedef enum SpvOp_ { SpvOpTypeStructContinuedINTEL = 6090, SpvOpConstantCompositeContinuedINTEL = 6091, SpvOpSpecConstantCompositeContinuedINTEL = 6092, + SpvOpCompositeConstructContinuedINTEL = 6096, + SpvOpConvertFToBF16INTEL = 6116, + SpvOpConvertBF16ToFINTEL = 6117, SpvOpControlBarrierArriveINTEL = 6142, SpvOpControlBarrierWaitINTEL = 6143, SpvOpGroupIMulKHR = 6401, @@ -2254,6 +2460,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break; + case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; @@ -2273,6 +2482,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break; + case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break; + case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break; + case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case SpvOpRayQueryInitializeKHR: *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 SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAddNonUniformAMD: *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 SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; + case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break; + case SpvOpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break; + case SpvOpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break; + case SpvOpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break; + case SpvOpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break; case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; + case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break; + case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; + case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case SpvOpExecuteCallableNV: *hasResult = false; *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 SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp index b7ec5d7..188e2f1 100644 --- a/include/spirv/unified1/spirv.hpp +++ b/include/spirv/unified1/spirv.hpp @@ -69,6 +69,10 @@ enum SourceLanguage { SourceLanguageHLSL = 5, SourceLanguageCPP_for_OpenCL = 6, SourceLanguageSYCL = 7, + SourceLanguageHERO_C = 8, + SourceLanguageNZSL = 9, + SourceLanguageWGSL = 10, + SourceLanguageSlang = 11, SourceLanguageMax = 0x7fffffff, }; @@ -156,6 +160,9 @@ enum ExecutionMode { ExecutionModeSubgroupsPerWorkgroupId = 37, ExecutionModeLocalSizeId = 38, ExecutionModeLocalSizeHintId = 39, + ExecutionModeNonCoherentColorAttachmentReadEXT = 4169, + ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170, + ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171, ExecutionModeSubgroupUniformControlFlowKHR = 4421, ExecutionModePostDepthCoverage = 4446, ExecutionModeDenormPreserve = 4459, @@ -165,6 +172,11 @@ enum ExecutionMode { ExecutionModeRoundingModeRTZ = 4463, ExecutionModeEarlyAndLateFragmentTestsAMD = 5017, ExecutionModeStencilRefReplacingEXT = 5027, + ExecutionModeCoalescingAMDX = 5069, + ExecutionModeMaxNodeRecursionAMDX = 5071, + ExecutionModeStaticNumWorkgroupsAMDX = 5072, + ExecutionModeShaderIndexAMDX = 5073, + ExecutionModeMaxNumWorkgroupsAMDX = 5077, ExecutionModeStencilRefUnchangedFrontAMD = 5079, ExecutionModeStencilRefGreaterFrontAMD = 5080, ExecutionModeStencilRefLessFrontAMD = 5081, @@ -195,6 +207,8 @@ enum ExecutionMode { ExecutionModeNoGlobalOffsetINTEL = 5895, ExecutionModeNumSIMDWorkitemsINTEL = 5896, ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, + ExecutionModeStreamingInterfaceINTEL = 6154, + ExecutionModeRegisterMapInterfaceINTEL = 6160, ExecutionModeNamedBarrierCountINTEL = 6417, ExecutionModeMax = 0x7fffffff, }; @@ -213,6 +227,9 @@ enum StorageClass { StorageClassAtomicCounter = 10, StorageClassImage = 11, StorageClassStorageBuffer = 12, + StorageClassTileImageEXT = 4172, + StorageClassNodePayloadAMDX = 5068, + StorageClassNodeOutputPayloadAMDX = 5076, StorageClassCallableDataKHR = 5328, StorageClassCallableDataNV = 5328, StorageClassIncomingCallableDataKHR = 5329, @@ -227,6 +244,7 @@ enum StorageClass { StorageClassShaderRecordBufferNV = 5343, StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBufferEXT = 5349, + StorageClassHitObjectAttributeNV = 5385, StorageClassTaskPayloadWorkgroupEXT = 5402, StorageClassCodeSectionINTEL = 5605, StorageClassDeviceOnlyINTEL = 5936, @@ -242,6 +260,7 @@ enum Dim { DimRect = 4, DimBuffer = 5, DimSubpassData = 6, + DimTileImageDataEXT = 4173, DimMax = 0x7fffffff, }; @@ -348,6 +367,8 @@ enum ImageChannelDataType { ImageChannelDataTypeFloat = 14, ImageChannelDataTypeUnormInt24 = 15, ImageChannelDataTypeUnormInt101010_2 = 16, + ImageChannelDataTypeUnsignedIntRaw10EXT = 19, + ImageChannelDataTypeUnsignedIntRaw12EXT = 20, ImageChannelDataTypeMax = 0x7fffffff, }; @@ -452,6 +473,7 @@ enum FunctionParameterAttribute { FunctionParameterAttributeNoCapture = 5, FunctionParameterAttributeNoWrite = 6, FunctionParameterAttributeNoReadWrite = 7, + FunctionParameterAttributeRuntimeAlignedINTEL = 5940, FunctionParameterAttributeMax = 0x7fffffff, }; @@ -505,7 +527,13 @@ enum Decoration { DecorationMaxByteOffsetId = 47, DecorationNoSignedWrap = 4469, DecorationNoUnsignedWrap = 4470, + DecorationWeightTextureQCOM = 4487, + DecorationBlockMatchTextureQCOM = 4488, DecorationExplicitInterpAMD = 4999, + DecorationNodeSharesPayloadLimitsWithAMDX = 5019, + DecorationNodeMaxPayloadsAMDX = 5020, + DecorationTrackFinishWritingAMDX = 5078, + DecorationPayloadNodeNameAMDX = 5091, DecorationOverrideCoverageNV = 5248, DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, @@ -522,6 +550,7 @@ enum Decoration { DecorationRestrictPointerEXT = 5355, DecorationAliasedPointer = 5356, DecorationAliasedPointerEXT = 5356, + DecorationHitObjectShaderRecordBufferNV = 5386, DecorationBindlessSamplerNV = 5398, DecorationBindlessImageNV = 5399, DecorationBoundSamplerNV = 5400, @@ -554,20 +583,45 @@ enum Decoration { DecorationMergeINTEL = 5834, DecorationBankBitsINTEL = 5835, DecorationForcePow2DepthINTEL = 5836, + DecorationStridesizeINTEL = 5883, + DecorationWordsizeINTEL = 5884, + DecorationTrueDualPortINTEL = 5885, DecorationBurstCoalesceINTEL = 5899, DecorationCacheSizeINTEL = 5900, DecorationDontStaticallyCoalesceINTEL = 5901, DecorationPrefetchINTEL = 5902, DecorationStallEnableINTEL = 5905, DecorationFuseLoopsInFunctionINTEL = 5907, + DecorationMathOpDSPModeINTEL = 5909, DecorationAliasScopeINTEL = 5914, DecorationNoAliasINTEL = 5915, + DecorationInitiationIntervalINTEL = 5917, + DecorationMaxConcurrencyINTEL = 5918, + DecorationPipelineEnableINTEL = 5919, DecorationBufferLocationINTEL = 5921, DecorationIOPipeStorageINTEL = 5944, DecorationFunctionFloatingPointModeINTEL = 6080, DecorationSingleElementVectorINTEL = 6085, DecorationVectorComputeCallableFunctionINTEL = 6087, DecorationMediaBlockIOINTEL = 6140, + DecorationStallFreeINTEL = 6151, + DecorationFPMaxErrorDecorationINTEL = 6170, + DecorationLatencyControlLabelINTEL = 6172, + DecorationLatencyControlConstraintINTEL = 6173, + DecorationConduitKernelArgumentINTEL = 6175, + DecorationRegisterMapKernelArgumentINTEL = 6176, + DecorationMMHostInterfaceAddressWidthINTEL = 6177, + DecorationMMHostInterfaceDataWidthINTEL = 6178, + DecorationMMHostInterfaceLatencyINTEL = 6179, + DecorationMMHostInterfaceReadWriteModeINTEL = 6180, + DecorationMMHostInterfaceMaxBurstINTEL = 6181, + DecorationMMHostInterfaceWaitRequestINTEL = 6182, + DecorationStableKernelArgumentINTEL = 6183, + DecorationHostAccessINTEL = 6188, + DecorationInitModeINTEL = 6190, + DecorationImplementInRegisterMapINTEL = 6191, + DecorationCacheControlLoadINTEL = 6442, + DecorationCacheControlStoreINTEL = 6443, DecorationMax = 0x7fffffff, }; @@ -643,6 +697,8 @@ enum BuiltIn { BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordPullModelAMD = 4998, BuiltInFragStencilRefEXT = 5014, + BuiltInCoalescedInputCountAMDX = 5021, + BuiltInShaderIndexAMDX = 5073, BuiltInViewportMaskNV = 5253, BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryViewportMaskNV = 5258, @@ -695,6 +751,9 @@ enum BuiltIn { BuiltInHitKindKHR = 5333, BuiltInHitKindNV = 5333, BuiltInCurrentRayTimeNV = 5334, + BuiltInHitTriangleVertexPositionsKHR = 5335, + BuiltInHitMicroTriangleVertexPositionsNV = 5337, + BuiltInHitMicroTriangleVertexBarycentricsNV = 5344, BuiltInIncomingRayFlagsKHR = 5351, BuiltInIncomingRayFlagsNV = 5351, BuiltInRayGeometryIndexKHR = 5352, @@ -702,6 +761,8 @@ enum BuiltIn { BuiltInSMCountNV = 5375, BuiltInWarpIDNV = 5376, BuiltInSMIDNV = 5377, + BuiltInHitKindFrontFacingMicroTriangleNV = 5405, + BuiltInHitKindBackFacingMicroTriangleNV = 5406, BuiltInCullMaskKHR = 6021, BuiltInMax = 0x7fffffff, }; @@ -736,6 +797,8 @@ enum LoopControlShift { LoopControlMaxInterleavingINTELShift = 21, LoopControlSpeculatedIterationsINTELShift = 22, LoopControlNoFusionINTELShift = 23, + LoopControlLoopCountINTELShift = 24, + LoopControlMaxReinvocationDelayINTELShift = 25, LoopControlMax = 0x7fffffff, }; @@ -758,6 +821,8 @@ enum LoopControlMask { LoopControlMaxInterleavingINTELMask = 0x00200000, LoopControlSpeculatedIterationsINTELMask = 0x00400000, LoopControlNoFusionINTELMask = 0x00800000, + LoopControlLoopCountINTELMask = 0x01000000, + LoopControlMaxReinvocationDelayINTELMask = 0x02000000, }; enum FunctionControlShift { @@ -962,6 +1027,9 @@ enum Capability { CapabilityShaderViewportIndex = 70, CapabilityUniformDecoration = 71, CapabilityCoreBuiltinsARM = 4165, + CapabilityTileImageColorReadAccessEXT = 4166, + CapabilityTileImageDepthReadAccessEXT = 4167, + CapabilityTileImageStencilReadAccessEXT = 4168, CapabilityFragmentShadingRateKHR = 4422, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, @@ -993,6 +1061,9 @@ enum Capability { CapabilityRayQueryKHR = 4472, CapabilityRayTraversalPrimitiveCullingKHR = 4478, CapabilityRayTracingKHR = 4479, + CapabilityTextureSampleWeightedQCOM = 4484, + CapabilityTextureBoxFilterQCOM = 4485, + CapabilityTextureBlockMatchQCOM = 4486, CapabilityFloat16ImageAMD = 5008, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, @@ -1000,6 +1071,7 @@ enum Capability { CapabilityImageReadWriteLodAMD = 5015, CapabilityInt64ImageEXT = 5016, CapabilityShaderClockKHR = 5055, + CapabilityShaderEnqueueAMDX = 5067, CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilityGeometryShaderPassthroughNV = 5251, CapabilityShaderViewportIndexLayerEXT = 5254, @@ -1041,6 +1113,7 @@ enum Capability { CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, + CapabilityRayTracingPositionFetchKHR = 5336, CapabilityRayTracingNV = 5340, CapabilityRayTracingMotionBlurNV = 5341, CapabilityVulkanMemoryModel = 5345, @@ -1058,8 +1131,12 @@ enum Capability { CapabilityFragmentShaderPixelInterlockEXT = 5378, CapabilityDemoteToHelperInvocation = 5379, CapabilityDemoteToHelperInvocationEXT = 5379, + CapabilityDisplacementMicromapNV = 5380, CapabilityRayTracingOpacityMicromapEXT = 5381, + CapabilityShaderInvocationReorderNV = 5383, CapabilityBindlessTextureNV = 5390, + CapabilityRayQueryPositionFetchKHR = 5391, + CapabilityRayTracingDisplacementMicromapNV = 5409, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, @@ -1092,10 +1169,13 @@ enum Capability { CapabilityFPGAMemoryAccessesINTEL = 5898, CapabilityFPGAClusterAttributesINTEL = 5904, CapabilityLoopFuseINTEL = 5906, + CapabilityFPGADSPControlINTEL = 5908, CapabilityMemoryAccessAliasingINTEL = 5910, + CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916, CapabilityFPGABufferLocationINTEL = 5920, CapabilityArbitraryPrecisionFixedPointINTEL = 5922, CapabilityUSMStorageClassesINTEL = 5935, + CapabilityRuntimeAlignedAttributeINTEL = 5939, CapabilityIOPipesINTEL = 5943, CapabilityBlockingPipesINTEL = 5945, CapabilityFPGARegINTEL = 5948, @@ -1108,16 +1188,26 @@ enum Capability { CapabilityDotProduct = 6019, CapabilityDotProductKHR = 6019, CapabilityRayCullMaskKHR = 6020, + CapabilityCooperativeMatrixKHR = 6022, CapabilityBitInstructions = 6025, CapabilityGroupNonUniformRotateKHR = 6026, CapabilityAtomicFloat32AddEXT = 6033, CapabilityAtomicFloat64AddEXT = 6034, - CapabilityLongConstantCompositeINTEL = 6089, + CapabilityLongCompositesINTEL = 6089, CapabilityOptNoneINTEL = 6094, CapabilityAtomicFloat16AddEXT = 6095, CapabilityDebugInfoModuleINTEL = 6114, + CapabilityBFloat16ConversionINTEL = 6115, CapabilitySplitBarrierINTEL = 6141, + CapabilityFPGAClusterAttributesV2INTEL = 6150, + CapabilityFPGAKernelAttributesv2INTEL = 6161, + CapabilityFPMaxErrorINTEL = 6169, + CapabilityFPGALatencyControlINTEL = 6171, + CapabilityFPGAArgumentInterfacesINTEL = 6174, + CapabilityGlobalVariableHostAccessINTEL = 6187, + CapabilityGlobalVariableFPGADecorationsINTEL = 6189, CapabilityGroupUniformArithmeticKHR = 6400, + CapabilityCacheControlsINTEL = 6441, CapabilityMax = 0x7fffffff, }; @@ -1224,6 +1314,68 @@ enum PackedVectorFormat { 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 { OpNop = 0, OpUndef = 1, @@ -1569,6 +1721,9 @@ enum Op { OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, + OpColorAttachmentReadEXT = 4160, + OpDepthAttachmentReadEXT = 4161, + OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, @@ -1594,6 +1749,11 @@ enum Op { OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, + OpTypeCooperativeMatrixKHR = 4456, + OpCooperativeMatrixLoadKHR = 4457, + OpCooperativeMatrixStoreKHR = 4458, + OpCooperativeMatrixMulAddKHR = 4459, + OpCooperativeMatrixLengthKHR = 4460, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1601,6 +1761,10 @@ enum Op { OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, + OpImageSampleWeightedQCOM = 4480, + OpImageBoxFilterQCOM = 4481, + OpImageBlockMatchSSDQCOM = 4482, + OpImageBlockMatchSADQCOM = 4483, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -1612,11 +1776,49 @@ enum Op { OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, 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, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, + OpFetchMicroTriangleVertexPositionNV = 5300, + OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -1624,6 +1826,7 @@ enum Op { OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, + OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1885,6 +2088,9 @@ enum Op { OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, + OpCompositeConstructContinuedINTEL = 6096, + OpConvertFToBF16INTEL = 6116, + OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, @@ -2250,6 +2456,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpPtrEqual: *hasResult = true; *hasResultType = true; break; case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case OpPtrDiff: *hasResult = true; *hasResultType = true; break; + case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; + case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; + case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; @@ -2269,6 +2478,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; + case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break; + case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break; + case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break; + case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break; + case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break; case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case OpRayQueryInitializeKHR: *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 OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; + case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break; + case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; + case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; + case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFAddNonUniformAMD: *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 OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; + case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; + case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break; + case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; + case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break; + case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break; + case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break; + case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break; + case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break; + case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break; case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; + case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break; + case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case OpTraceNV: *hasResult = false; *hasResultType = false; break; case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; + case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case OpExecuteCallableNV: *hasResult = false; *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 OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; + case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; @@ -2569,18 +2829,52 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { } #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) { return ImageOperandsMask(~unsigned(a)); } inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } +inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); } +inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); } +inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); } inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } +inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); } +inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); } +inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); } inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } +inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); } +inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); } +inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); } inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } +inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); } +inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); } +inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); } inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } +inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); } +inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); } +inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); } inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } +inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); } +inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); } +inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); } inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } +inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); } +inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); } +inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); } inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } +inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); } +inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); } +inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); } inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } +inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); } +inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); } +inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); } +inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); } +inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); } +inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); } +inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); } } // end namespace spv diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11 index f0f5871..cc2590c 100644 --- a/include/spirv/unified1/spirv.hpp11 +++ b/include/spirv/unified1/spirv.hpp11 @@ -69,6 +69,10 @@ enum class SourceLanguage : unsigned { HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, + HERO_C = 8, + NZSL = 9, + WGSL = 10, + Slang = 11, Max = 0x7fffffff, }; @@ -156,6 +160,9 @@ enum class ExecutionMode : unsigned { SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, + NonCoherentColorAttachmentReadEXT = 4169, + NonCoherentDepthAttachmentReadEXT = 4170, + NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, @@ -165,6 +172,11 @@ enum class ExecutionMode : unsigned { RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, + CoalescingAMDX = 5069, + MaxNodeRecursionAMDX = 5071, + StaticNumWorkgroupsAMDX = 5072, + ShaderIndexAMDX = 5073, + MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, @@ -195,6 +207,8 @@ enum class ExecutionMode : unsigned { NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, + StreamingInterfaceINTEL = 6154, + RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, Max = 0x7fffffff, }; @@ -213,6 +227,9 @@ enum class StorageClass : unsigned { AtomicCounter = 10, Image = 11, StorageBuffer = 12, + TileImageEXT = 4172, + NodePayloadAMDX = 5068, + NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, @@ -227,6 +244,7 @@ enum class StorageClass : unsigned { ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, @@ -242,6 +260,7 @@ enum class Dim : unsigned { Rect = 4, Buffer = 5, SubpassData = 6, + TileImageDataEXT = 4173, Max = 0x7fffffff, }; @@ -348,6 +367,8 @@ enum class ImageChannelDataType : unsigned { Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, + UnsignedIntRaw10EXT = 19, + UnsignedIntRaw12EXT = 20, Max = 0x7fffffff, }; @@ -452,6 +473,7 @@ enum class FunctionParameterAttribute : unsigned { NoCapture = 5, NoWrite = 6, NoReadWrite = 7, + RuntimeAlignedINTEL = 5940, Max = 0x7fffffff, }; @@ -505,7 +527,13 @@ enum class Decoration : unsigned { MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, + WeightTextureQCOM = 4487, + BlockMatchTextureQCOM = 4488, ExplicitInterpAMD = 4999, + NodeSharesPayloadLimitsWithAMDX = 5019, + NodeMaxPayloadsAMDX = 5020, + TrackFinishWritingAMDX = 5078, + PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, @@ -522,6 +550,7 @@ enum class Decoration : unsigned { RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, + HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -554,20 +583,45 @@ enum class Decoration : unsigned { MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, + StridesizeINTEL = 5883, + WordsizeINTEL = 5884, + TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, + MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, + InitiationIntervalINTEL = 5917, + MaxConcurrencyINTEL = 5918, + PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, + StallFreeINTEL = 6151, + FPMaxErrorDecorationINTEL = 6170, + LatencyControlLabelINTEL = 6172, + LatencyControlConstraintINTEL = 6173, + ConduitKernelArgumentINTEL = 6175, + RegisterMapKernelArgumentINTEL = 6176, + MMHostInterfaceAddressWidthINTEL = 6177, + MMHostInterfaceDataWidthINTEL = 6178, + MMHostInterfaceLatencyINTEL = 6179, + MMHostInterfaceReadWriteModeINTEL = 6180, + MMHostInterfaceMaxBurstINTEL = 6181, + MMHostInterfaceWaitRequestINTEL = 6182, + StableKernelArgumentINTEL = 6183, + HostAccessINTEL = 6188, + InitModeINTEL = 6190, + ImplementInRegisterMapINTEL = 6191, + CacheControlLoadINTEL = 6442, + CacheControlStoreINTEL = 6443, Max = 0x7fffffff, }; @@ -643,6 +697,8 @@ enum class BuiltIn : unsigned { BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, + CoalescedInputCountAMDX = 5021, + ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, @@ -695,6 +751,9 @@ enum class BuiltIn : unsigned { HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, + HitTriangleVertexPositionsKHR = 5335, + HitMicroTriangleVertexPositionsNV = 5337, + HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, @@ -702,6 +761,8 @@ enum class BuiltIn : unsigned { SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, + HitKindFrontFacingMicroTriangleNV = 5405, + HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, Max = 0x7fffffff, }; @@ -736,6 +797,8 @@ enum class LoopControlShift : unsigned { MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, + LoopCountINTEL = 24, + MaxReinvocationDelayINTEL = 25, Max = 0x7fffffff, }; @@ -758,6 +821,8 @@ enum class LoopControlMask : unsigned { MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, + LoopCountINTEL = 0x01000000, + MaxReinvocationDelayINTEL = 0x02000000, }; enum class FunctionControlShift : unsigned { @@ -962,6 +1027,9 @@ enum class Capability : unsigned { ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, + TileImageColorReadAccessEXT = 4166, + TileImageDepthReadAccessEXT = 4167, + TileImageStencilReadAccessEXT = 4168, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, @@ -993,6 +1061,9 @@ enum class Capability : unsigned { RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, + TextureSampleWeightedQCOM = 4484, + TextureBoxFilterQCOM = 4485, + TextureBlockMatchQCOM = 4486, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, @@ -1000,6 +1071,7 @@ enum class Capability : unsigned { ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, + ShaderEnqueueAMDX = 5067, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, @@ -1041,6 +1113,7 @@ enum class Capability : unsigned { UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, + RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, @@ -1058,8 +1131,12 @@ enum class Capability : unsigned { FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, + DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, + ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, + RayQueryPositionFetchKHR = 5391, + RayTracingDisplacementMicromapNV = 5409, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, @@ -1092,10 +1169,13 @@ enum class Capability : unsigned { FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, + FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, + FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, + RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, @@ -1108,16 +1188,26 @@ enum class Capability : unsigned { DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, + CooperativeMatrixKHR = 6022, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, - LongConstantCompositeINTEL = 6089, + LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, + BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, + FPGAClusterAttributesV2INTEL = 6150, + FPGAKernelAttributesv2INTEL = 6161, + FPMaxErrorINTEL = 6169, + FPGALatencyControlINTEL = 6171, + FPGAArgumentInterfacesINTEL = 6174, + GlobalVariableHostAccessINTEL = 6187, + GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, + CacheControlsINTEL = 6441, Max = 0x7fffffff, }; @@ -1224,6 +1314,68 @@ enum class PackedVectorFormat : unsigned { 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 { OpNop = 0, OpUndef = 1, @@ -1569,6 +1721,9 @@ enum class Op : unsigned { OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, + OpColorAttachmentReadEXT = 4160, + OpDepthAttachmentReadEXT = 4161, + OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, @@ -1594,6 +1749,11 @@ enum class Op : unsigned { OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, + OpTypeCooperativeMatrixKHR = 4456, + OpCooperativeMatrixLoadKHR = 4457, + OpCooperativeMatrixStoreKHR = 4458, + OpCooperativeMatrixMulAddKHR = 4459, + OpCooperativeMatrixLengthKHR = 4460, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1601,6 +1761,10 @@ enum class Op : unsigned { OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, + OpImageSampleWeightedQCOM = 4480, + OpImageBoxFilterQCOM = 4481, + OpImageBlockMatchSSDQCOM = 4482, + OpImageBlockMatchSADQCOM = 4483, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -1612,11 +1776,49 @@ enum class Op : unsigned { OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, 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, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, + OpFetchMicroTriangleVertexPositionNV = 5300, + OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -1624,6 +1826,7 @@ enum class Op : unsigned { OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, + OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1885,6 +2088,9 @@ enum class Op : unsigned { OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, + OpCompositeConstructContinuedINTEL = 6096, + OpConvertFToBF16INTEL = 6116, + OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, 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::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break; + case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break; case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; @@ -2269,6 +2478,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break; case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; + case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break; + case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break; + case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break; + case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break; + case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break; case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case Op::OpRayQueryInitializeKHR: *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::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; + case Op::OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break; + case Op::OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; + case Op::OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; + case Op::OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case Op::OpGroupFAddNonUniformAMD: *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::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break; + case Op::OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; + case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break; + case Op::OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break; + case Op::OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break; + case Op::OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break; + case Op::OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break; case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; + case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break; + case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; + case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case Op::OpExecuteCallableNV: *hasResult = false; *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::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; + case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; @@ -2569,18 +2829,52 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { } #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 FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } -inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } -inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } -inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } -inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } -inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } -inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } -inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } -inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } +constexpr ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } +constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); } +constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); } +constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); } +constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } +constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); } +constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); } +constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); } +constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } +constexpr SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); } +constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); } +constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); } +constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } +constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); } +constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); } +constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); } +constexpr FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } +constexpr FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); } +constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); } +constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); } +constexpr MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } +constexpr MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); } +constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); } +constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); } +constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } +constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); } +constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); } +constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); } +constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } +constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); } +constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); } +constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); } +constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } +constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); } +constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); } +constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); } +constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } +constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); } +constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); } +constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); } +constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); } +constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); } +constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); } +constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); } } // end namespace spv diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json index 466f0b0..505db1f 100644 --- a/include/spirv/unified1/spirv.json +++ b/include/spirv/unified1/spirv.json @@ -75,7 +75,11 @@ "OpenCL_CPP": 4, "HLSL": 5, "CPP_for_OpenCL": 6, - "SYCL": 7 + "SYCL": 7, + "HERO_C": 8, + "NZSL": 9, + "WGSL": 10, + "Slang": 11 } }, { @@ -175,6 +179,9 @@ "SubgroupsPerWorkgroupId": 37, "LocalSizeId": 38, "LocalSizeHintId": 39, + "NonCoherentColorAttachmentReadEXT": 4169, + "NonCoherentDepthAttachmentReadEXT": 4170, + "NonCoherentStencilAttachmentReadEXT": 4171, "SubgroupUniformControlFlowKHR": 4421, "PostDepthCoverage": 4446, "DenormPreserve": 4459, @@ -184,6 +191,11 @@ "RoundingModeRTZ": 4463, "EarlyAndLateFragmentTestsAMD": 5017, "StencilRefReplacingEXT": 5027, + "CoalescingAMDX": 5069, + "MaxNodeRecursionAMDX": 5071, + "StaticNumWorkgroupsAMDX": 5072, + "ShaderIndexAMDX": 5073, + "MaxNumWorkgroupsAMDX": 5077, "StencilRefUnchangedFrontAMD": 5079, "StencilRefGreaterFrontAMD": 5080, "StencilRefLessFrontAMD": 5081, @@ -214,6 +226,8 @@ "NoGlobalOffsetINTEL": 5895, "NumSIMDWorkitemsINTEL": 5896, "SchedulerTargetFmaxMhzINTEL": 5903, + "StreamingInterfaceINTEL": 6154, + "RegisterMapInterfaceINTEL": 6160, "NamedBarrierCountINTEL": 6417 } }, @@ -235,6 +249,9 @@ "AtomicCounter": 10, "Image": 11, "StorageBuffer": 12, + "TileImageEXT": 4172, + "NodePayloadAMDX": 5068, + "NodeOutputPayloadAMDX": 5076, "CallableDataKHR": 5328, "CallableDataNV": 5328, "IncomingCallableDataKHR": 5329, @@ -249,6 +266,7 @@ "ShaderRecordBufferNV": 5343, "PhysicalStorageBuffer": 5349, "PhysicalStorageBufferEXT": 5349, + "HitObjectAttributeNV": 5385, "TaskPayloadWorkgroupEXT": 5402, "CodeSectionINTEL": 5605, "DeviceOnlyINTEL": 5936, @@ -266,7 +284,8 @@ "Cube": 3, "Rect": 4, "Buffer": 5, - "SubpassData": 6 + "SubpassData": 6, + "TileImageDataEXT": 4173 } }, { @@ -387,7 +406,9 @@ "HalfFloat": 13, "Float": 14, "UnormInt24": 15, - "UnormInt101010_2": 16 + "UnormInt101010_2": 16, + "UnsignedIntRaw10EXT": 19, + "UnsignedIntRaw12EXT": 20 } }, { @@ -474,7 +495,8 @@ "NoAlias": 4, "NoCapture": 5, "NoWrite": 6, - "NoReadWrite": 7 + "NoReadWrite": 7, + "RuntimeAlignedINTEL": 5940 } }, { @@ -531,7 +553,13 @@ "MaxByteOffsetId": 47, "NoSignedWrap": 4469, "NoUnsignedWrap": 4470, + "WeightTextureQCOM": 4487, + "BlockMatchTextureQCOM": 4488, "ExplicitInterpAMD": 4999, + "NodeSharesPayloadLimitsWithAMDX": 5019, + "NodeMaxPayloadsAMDX": 5020, + "TrackFinishWritingAMDX": 5078, + "PayloadNodeNameAMDX": 5091, "OverrideCoverageNV": 5248, "PassthroughNV": 5250, "ViewportRelativeNV": 5252, @@ -548,6 +576,7 @@ "RestrictPointerEXT": 5355, "AliasedPointer": 5356, "AliasedPointerEXT": 5356, + "HitObjectShaderRecordBufferNV": 5386, "BindlessSamplerNV": 5398, "BindlessImageNV": 5399, "BoundSamplerNV": 5400, @@ -580,20 +609,45 @@ "MergeINTEL": 5834, "BankBitsINTEL": 5835, "ForcePow2DepthINTEL": 5836, + "StridesizeINTEL": 5883, + "WordsizeINTEL": 5884, + "TrueDualPortINTEL": 5885, "BurstCoalesceINTEL": 5899, "CacheSizeINTEL": 5900, "DontStaticallyCoalesceINTEL": 5901, "PrefetchINTEL": 5902, "StallEnableINTEL": 5905, "FuseLoopsInFunctionINTEL": 5907, + "MathOpDSPModeINTEL": 5909, "AliasScopeINTEL": 5914, "NoAliasINTEL": 5915, + "InitiationIntervalINTEL": 5917, + "MaxConcurrencyINTEL": 5918, + "PipelineEnableINTEL": 5919, "BufferLocationINTEL": 5921, "IOPipeStorageINTEL": 5944, "FunctionFloatingPointModeINTEL": 6080, "SingleElementVectorINTEL": 6085, "VectorComputeCallableFunctionINTEL": 6087, - "MediaBlockIOINTEL": 6140 + "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, "BaryCoordPullModelAMD": 4998, "FragStencilRefEXT": 5014, + "CoalescedInputCountAMDX": 5021, + "ShaderIndexAMDX": 5073, "ViewportMaskNV": 5253, "SecondaryPositionNV": 5257, "SecondaryViewportMaskNV": 5258, @@ -724,6 +780,9 @@ "HitKindKHR": 5333, "HitKindNV": 5333, "CurrentRayTimeNV": 5334, + "HitTriangleVertexPositionsKHR": 5335, + "HitMicroTriangleVertexPositionsNV": 5337, + "HitMicroTriangleVertexBarycentricsNV": 5344, "IncomingRayFlagsKHR": 5351, "IncomingRayFlagsNV": 5351, "RayGeometryIndexKHR": 5352, @@ -731,6 +790,8 @@ "SMCountNV": 5375, "WarpIDNV": 5376, "SMIDNV": 5377, + "HitKindFrontFacingMicroTriangleNV": 5405, + "HitKindBackFacingMicroTriangleNV": 5406, "CullMaskKHR": 6021 } }, @@ -764,7 +825,9 @@ "LoopCoalesceINTEL": 20, "MaxInterleavingINTEL": 21, "SpeculatedIterationsINTEL": 22, - "NoFusionINTEL": 23 + "NoFusionINTEL": 23, + "LoopCountINTEL": 24, + "MaxReinvocationDelayINTEL": 25 } }, { @@ -944,6 +1007,9 @@ "ShaderViewportIndex": 70, "UniformDecoration": 71, "CoreBuiltinsARM": 4165, + "TileImageColorReadAccessEXT": 4166, + "TileImageDepthReadAccessEXT": 4167, + "TileImageStencilReadAccessEXT": 4168, "FragmentShadingRateKHR": 4422, "SubgroupBallotKHR": 4423, "DrawParameters": 4427, @@ -975,6 +1041,9 @@ "RayQueryKHR": 4472, "RayTraversalPrimitiveCullingKHR": 4478, "RayTracingKHR": 4479, + "TextureSampleWeightedQCOM": 4484, + "TextureBoxFilterQCOM": 4485, + "TextureBlockMatchQCOM": 4486, "Float16ImageAMD": 5008, "ImageGatherBiasLodAMD": 5009, "FragmentMaskAMD": 5010, @@ -982,6 +1051,7 @@ "ImageReadWriteLodAMD": 5015, "Int64ImageEXT": 5016, "ShaderClockKHR": 5055, + "ShaderEnqueueAMDX": 5067, "SampleMaskOverrideCoverageNV": 5249, "GeometryShaderPassthroughNV": 5251, "ShaderViewportIndexLayerEXT": 5254, @@ -1023,6 +1093,7 @@ "UniformTexelBufferArrayNonUniformIndexingEXT": 5311, "StorageTexelBufferArrayNonUniformIndexing": 5312, "StorageTexelBufferArrayNonUniformIndexingEXT": 5312, + "RayTracingPositionFetchKHR": 5336, "RayTracingNV": 5340, "RayTracingMotionBlurNV": 5341, "VulkanMemoryModel": 5345, @@ -1040,8 +1111,12 @@ "FragmentShaderPixelInterlockEXT": 5378, "DemoteToHelperInvocation": 5379, "DemoteToHelperInvocationEXT": 5379, + "DisplacementMicromapNV": 5380, "RayTracingOpacityMicromapEXT": 5381, + "ShaderInvocationReorderNV": 5383, "BindlessTextureNV": 5390, + "RayQueryPositionFetchKHR": 5391, + "RayTracingDisplacementMicromapNV": 5409, "SubgroupShuffleINTEL": 5568, "SubgroupBufferBlockIOINTEL": 5569, "SubgroupImageBlockIOINTEL": 5570, @@ -1074,10 +1149,13 @@ "FPGAMemoryAccessesINTEL": 5898, "FPGAClusterAttributesINTEL": 5904, "LoopFuseINTEL": 5906, + "FPGADSPControlINTEL": 5908, "MemoryAccessAliasingINTEL": 5910, + "FPGAInvocationPipeliningAttributesINTEL": 5916, "FPGABufferLocationINTEL": 5920, "ArbitraryPrecisionFixedPointINTEL": 5922, "USMStorageClassesINTEL": 5935, + "RuntimeAlignedAttributeINTEL": 5939, "IOPipesINTEL": 5943, "BlockingPipesINTEL": 5945, "FPGARegINTEL": 5948, @@ -1090,16 +1168,26 @@ "DotProduct": 6019, "DotProductKHR": 6019, "RayCullMaskKHR": 6020, + "CooperativeMatrixKHR": 6022, "BitInstructions": 6025, "GroupNonUniformRotateKHR": 6026, "AtomicFloat32AddEXT": 6033, "AtomicFloat64AddEXT": 6034, - "LongConstantCompositeINTEL": 6089, + "LongCompositesINTEL": 6089, "OptNoneINTEL": 6094, "AtomicFloat16AddEXT": 6095, "DebugInfoModuleINTEL": 6114, + "BFloat16ConversionINTEL": 6115, "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 } }, + { + "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", "Type": "Value", @@ -1561,6 +1723,9 @@ "OpPtrEqual": 401, "OpPtrNotEqual": 402, "OpPtrDiff": 403, + "OpColorAttachmentReadEXT": 4160, + "OpDepthAttachmentReadEXT": 4161, + "OpStencilAttachmentReadEXT": 4162, "OpTerminateInvocation": 4416, "OpSubgroupBallotKHR": 4421, "OpSubgroupFirstInvocationKHR": 4422, @@ -1586,6 +1751,11 @@ "OpUDotAccSatKHR": 4454, "OpSUDotAccSat": 4455, "OpSUDotAccSatKHR": 4455, + "OpTypeCooperativeMatrixKHR": 4456, + "OpCooperativeMatrixLoadKHR": 4457, + "OpCooperativeMatrixStoreKHR": 4458, + "OpCooperativeMatrixMulAddKHR": 4459, + "OpCooperativeMatrixLengthKHR": 4460, "OpTypeRayQueryKHR": 4472, "OpRayQueryInitializeKHR": 4473, "OpRayQueryTerminateKHR": 4474, @@ -1593,6 +1763,10 @@ "OpRayQueryConfirmIntersectionKHR": 4476, "OpRayQueryProceedKHR": 4477, "OpRayQueryGetIntersectionTypeKHR": 4479, + "OpImageSampleWeightedQCOM": 4480, + "OpImageBoxFilterQCOM": 4481, + "OpImageBlockMatchSSDQCOM": 4482, + "OpImageBlockMatchSADQCOM": 4483, "OpGroupIAddNonUniformAMD": 5000, "OpGroupFAddNonUniformAMD": 5001, "OpGroupFMinNonUniformAMD": 5002, @@ -1604,11 +1778,49 @@ "OpFragmentMaskFetchAMD": 5011, "OpFragmentFetchAMD": 5012, "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, "OpEmitMeshTasksEXT": 5294, "OpSetMeshOutputsEXT": 5295, "OpGroupNonUniformPartitionNV": 5296, "OpWritePackedPrimitiveIndices4x8NV": 5299, + "OpFetchMicroTriangleVertexPositionNV": 5300, + "OpFetchMicroTriangleVertexBarycentricNV": 5301, "OpReportIntersectionKHR": 5334, "OpReportIntersectionNV": 5334, "OpIgnoreIntersectionNV": 5335, @@ -1616,6 +1828,7 @@ "OpTraceNV": 5337, "OpTraceMotionNV": 5338, "OpTraceRayMotionNV": 5339, + "OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340, "OpTypeAccelerationStructureKHR": 5341, "OpTypeAccelerationStructureNV": 5341, "OpExecuteCallableNV": 5344, @@ -1877,6 +2090,9 @@ "OpTypeStructContinuedINTEL": 6090, "OpConstantCompositeContinuedINTEL": 6091, "OpSpecConstantCompositeContinuedINTEL": 6092, + "OpCompositeConstructContinuedINTEL": 6096, + "OpConvertFToBF16INTEL": 6116, + "OpConvertBF16ToFINTEL": 6117, "OpControlBarrierArriveINTEL": 6142, "OpControlBarrierWaitINTEL": 6143, "OpGroupIMulKHR": 6401, diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua index b763c84..fb86460 100644 --- a/include/spirv/unified1/spirv.lua +++ b/include/spirv/unified1/spirv.lua @@ -60,6 +60,10 @@ spv = { HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, + HERO_C = 8, + NZSL = 9, + WGSL = 10, + Slang = 11, }, ExecutionModel = { @@ -143,6 +147,9 @@ spv = { SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, + NonCoherentColorAttachmentReadEXT = 4169, + NonCoherentDepthAttachmentReadEXT = 4170, + NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, @@ -152,6 +159,11 @@ spv = { RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, + CoalescingAMDX = 5069, + MaxNodeRecursionAMDX = 5071, + StaticNumWorkgroupsAMDX = 5072, + ShaderIndexAMDX = 5073, + MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, @@ -182,6 +194,8 @@ spv = { NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, + StreamingInterfaceINTEL = 6154, + RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, }, @@ -199,6 +213,9 @@ spv = { AtomicCounter = 10, Image = 11, StorageBuffer = 12, + TileImageEXT = 4172, + NodePayloadAMDX = 5068, + NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, @@ -213,6 +230,7 @@ spv = { ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, @@ -227,6 +245,7 @@ spv = { Rect = 4, Buffer = 5, SubpassData = 6, + TileImageDataEXT = 4173, }, SamplerAddressingMode = { @@ -328,6 +347,8 @@ spv = { Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, + UnsignedIntRaw10EXT = 19, + UnsignedIntRaw12EXT = 20, }, ImageOperandsShift = { @@ -426,6 +447,7 @@ spv = { NoCapture = 5, NoWrite = 6, NoReadWrite = 7, + RuntimeAlignedINTEL = 5940, }, Decoration = { @@ -478,7 +500,13 @@ spv = { MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, + WeightTextureQCOM = 4487, + BlockMatchTextureQCOM = 4488, ExplicitInterpAMD = 4999, + NodeSharesPayloadLimitsWithAMDX = 5019, + NodeMaxPayloadsAMDX = 5020, + TrackFinishWritingAMDX = 5078, + PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, @@ -495,6 +523,7 @@ spv = { RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, + HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -527,20 +556,45 @@ spv = { MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, + StridesizeINTEL = 5883, + WordsizeINTEL = 5884, + TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, + MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, + InitiationIntervalINTEL = 5917, + MaxConcurrencyINTEL = 5918, + PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, + StallFreeINTEL = 6151, + FPMaxErrorDecorationINTEL = 6170, + LatencyControlLabelINTEL = 6172, + LatencyControlConstraintINTEL = 6173, + ConduitKernelArgumentINTEL = 6175, + RegisterMapKernelArgumentINTEL = 6176, + MMHostInterfaceAddressWidthINTEL = 6177, + MMHostInterfaceDataWidthINTEL = 6178, + MMHostInterfaceLatencyINTEL = 6179, + MMHostInterfaceReadWriteModeINTEL = 6180, + MMHostInterfaceMaxBurstINTEL = 6181, + MMHostInterfaceWaitRequestINTEL = 6182, + StableKernelArgumentINTEL = 6183, + HostAccessINTEL = 6188, + InitModeINTEL = 6190, + ImplementInRegisterMapINTEL = 6191, + CacheControlLoadINTEL = 6442, + CacheControlStoreINTEL = 6443, }, BuiltIn = { @@ -615,6 +669,8 @@ spv = { BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, + CoalescedInputCountAMDX = 5021, + ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, @@ -667,6 +723,9 @@ spv = { HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, + HitTriangleVertexPositionsKHR = 5335, + HitMicroTriangleVertexPositionsNV = 5337, + HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, @@ -674,6 +733,8 @@ spv = { SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, + HitKindFrontFacingMicroTriangleNV = 5405, + HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, }, @@ -706,6 +767,8 @@ spv = { MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, + LoopCountINTEL = 24, + MaxReinvocationDelayINTEL = 25, }, LoopControlMask = { @@ -727,6 +790,8 @@ spv = { MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, + LoopCountINTEL = 0x01000000, + MaxReinvocationDelayINTEL = 0x02000000, }, FunctionControlShift = { @@ -924,6 +989,9 @@ spv = { ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, + TileImageColorReadAccessEXT = 4166, + TileImageDepthReadAccessEXT = 4167, + TileImageStencilReadAccessEXT = 4168, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, @@ -955,6 +1023,9 @@ spv = { RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, + TextureSampleWeightedQCOM = 4484, + TextureBoxFilterQCOM = 4485, + TextureBlockMatchQCOM = 4486, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, @@ -962,6 +1033,7 @@ spv = { ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, + ShaderEnqueueAMDX = 5067, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, @@ -1003,6 +1075,7 @@ spv = { UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, + RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, @@ -1020,8 +1093,12 @@ spv = { FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, + DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, + ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, + RayQueryPositionFetchKHR = 5391, + RayTracingDisplacementMicromapNV = 5409, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, @@ -1054,10 +1131,13 @@ spv = { FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, + FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, + FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, + RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, @@ -1070,16 +1150,26 @@ spv = { DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, + CooperativeMatrixKHR = 6022, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, - LongConstantCompositeINTEL = 6089, + LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, + BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, + FPGAClusterAttributesV2INTEL = 6150, + FPGAKernelAttributesv2INTEL = 6161, + FPMaxErrorINTEL = 6169, + FPGALatencyControlINTEL = 6171, + FPGAArgumentInterfacesINTEL = 6174, + GlobalVariableHostAccessINTEL = 6187, + GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, + CacheControlsINTEL = 6441, }, RayFlagsShift = { @@ -1175,6 +1265,61 @@ spv = { 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 = { OpNop = 0, OpUndef = 1, @@ -1520,6 +1665,9 @@ spv = { OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, + OpColorAttachmentReadEXT = 4160, + OpDepthAttachmentReadEXT = 4161, + OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, @@ -1545,6 +1693,11 @@ spv = { OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, + OpTypeCooperativeMatrixKHR = 4456, + OpCooperativeMatrixLoadKHR = 4457, + OpCooperativeMatrixStoreKHR = 4458, + OpCooperativeMatrixMulAddKHR = 4459, + OpCooperativeMatrixLengthKHR = 4460, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1552,6 +1705,10 @@ spv = { OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, + OpImageSampleWeightedQCOM = 4480, + OpImageBoxFilterQCOM = 4481, + OpImageBlockMatchSSDQCOM = 4482, + OpImageBlockMatchSADQCOM = 4483, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -1563,11 +1720,49 @@ spv = { OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, 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, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, + OpFetchMicroTriangleVertexPositionNV = 5300, + OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -1575,6 +1770,7 @@ spv = { OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, + OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1836,6 +2032,9 @@ spv = { OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, + OpCompositeConstructContinuedINTEL = 6096, + OpConvertFToBF16INTEL = 6116, + OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py index 12e3401..fd86fae 100644 --- a/include/spirv/unified1/spirv.py +++ b/include/spirv/unified1/spirv.py @@ -60,6 +60,10 @@ spv = { 'HLSL' : 5, 'CPP_for_OpenCL' : 6, 'SYCL' : 7, + 'HERO_C' : 8, + 'NZSL' : 9, + 'WGSL' : 10, + 'Slang' : 11, }, 'ExecutionModel' : { @@ -143,6 +147,9 @@ spv = { 'SubgroupsPerWorkgroupId' : 37, 'LocalSizeId' : 38, 'LocalSizeHintId' : 39, + 'NonCoherentColorAttachmentReadEXT' : 4169, + 'NonCoherentDepthAttachmentReadEXT' : 4170, + 'NonCoherentStencilAttachmentReadEXT' : 4171, 'SubgroupUniformControlFlowKHR' : 4421, 'PostDepthCoverage' : 4446, 'DenormPreserve' : 4459, @@ -152,6 +159,11 @@ spv = { 'RoundingModeRTZ' : 4463, 'EarlyAndLateFragmentTestsAMD' : 5017, 'StencilRefReplacingEXT' : 5027, + 'CoalescingAMDX' : 5069, + 'MaxNodeRecursionAMDX' : 5071, + 'StaticNumWorkgroupsAMDX' : 5072, + 'ShaderIndexAMDX' : 5073, + 'MaxNumWorkgroupsAMDX' : 5077, 'StencilRefUnchangedFrontAMD' : 5079, 'StencilRefGreaterFrontAMD' : 5080, 'StencilRefLessFrontAMD' : 5081, @@ -182,6 +194,8 @@ spv = { 'NoGlobalOffsetINTEL' : 5895, 'NumSIMDWorkitemsINTEL' : 5896, 'SchedulerTargetFmaxMhzINTEL' : 5903, + 'StreamingInterfaceINTEL' : 6154, + 'RegisterMapInterfaceINTEL' : 6160, 'NamedBarrierCountINTEL' : 6417, }, @@ -199,6 +213,9 @@ spv = { 'AtomicCounter' : 10, 'Image' : 11, 'StorageBuffer' : 12, + 'TileImageEXT' : 4172, + 'NodePayloadAMDX' : 5068, + 'NodeOutputPayloadAMDX' : 5076, 'CallableDataKHR' : 5328, 'CallableDataNV' : 5328, 'IncomingCallableDataKHR' : 5329, @@ -213,6 +230,7 @@ spv = { 'ShaderRecordBufferNV' : 5343, 'PhysicalStorageBuffer' : 5349, 'PhysicalStorageBufferEXT' : 5349, + 'HitObjectAttributeNV' : 5385, 'TaskPayloadWorkgroupEXT' : 5402, 'CodeSectionINTEL' : 5605, 'DeviceOnlyINTEL' : 5936, @@ -227,6 +245,7 @@ spv = { 'Rect' : 4, 'Buffer' : 5, 'SubpassData' : 6, + 'TileImageDataEXT' : 4173, }, 'SamplerAddressingMode' : { @@ -328,6 +347,8 @@ spv = { 'Float' : 14, 'UnormInt24' : 15, 'UnormInt101010_2' : 16, + 'UnsignedIntRaw10EXT' : 19, + 'UnsignedIntRaw12EXT' : 20, }, 'ImageOperandsShift' : { @@ -426,6 +447,7 @@ spv = { 'NoCapture' : 5, 'NoWrite' : 6, 'NoReadWrite' : 7, + 'RuntimeAlignedINTEL' : 5940, }, 'Decoration' : { @@ -478,7 +500,13 @@ spv = { 'MaxByteOffsetId' : 47, 'NoSignedWrap' : 4469, 'NoUnsignedWrap' : 4470, + 'WeightTextureQCOM' : 4487, + 'BlockMatchTextureQCOM' : 4488, 'ExplicitInterpAMD' : 4999, + 'NodeSharesPayloadLimitsWithAMDX' : 5019, + 'NodeMaxPayloadsAMDX' : 5020, + 'TrackFinishWritingAMDX' : 5078, + 'PayloadNodeNameAMDX' : 5091, 'OverrideCoverageNV' : 5248, 'PassthroughNV' : 5250, 'ViewportRelativeNV' : 5252, @@ -495,6 +523,7 @@ spv = { 'RestrictPointerEXT' : 5355, 'AliasedPointer' : 5356, 'AliasedPointerEXT' : 5356, + 'HitObjectShaderRecordBufferNV' : 5386, 'BindlessSamplerNV' : 5398, 'BindlessImageNV' : 5399, 'BoundSamplerNV' : 5400, @@ -527,20 +556,45 @@ spv = { 'MergeINTEL' : 5834, 'BankBitsINTEL' : 5835, 'ForcePow2DepthINTEL' : 5836, + 'StridesizeINTEL' : 5883, + 'WordsizeINTEL' : 5884, + 'TrueDualPortINTEL' : 5885, 'BurstCoalesceINTEL' : 5899, 'CacheSizeINTEL' : 5900, 'DontStaticallyCoalesceINTEL' : 5901, 'PrefetchINTEL' : 5902, 'StallEnableINTEL' : 5905, 'FuseLoopsInFunctionINTEL' : 5907, + 'MathOpDSPModeINTEL' : 5909, 'AliasScopeINTEL' : 5914, 'NoAliasINTEL' : 5915, + 'InitiationIntervalINTEL' : 5917, + 'MaxConcurrencyINTEL' : 5918, + 'PipelineEnableINTEL' : 5919, 'BufferLocationINTEL' : 5921, 'IOPipeStorageINTEL' : 5944, 'FunctionFloatingPointModeINTEL' : 6080, 'SingleElementVectorINTEL' : 6085, 'VectorComputeCallableFunctionINTEL' : 6087, 'MediaBlockIOINTEL' : 6140, + 'StallFreeINTEL' : 6151, + 'FPMaxErrorDecorationINTEL' : 6170, + 'LatencyControlLabelINTEL' : 6172, + 'LatencyControlConstraintINTEL' : 6173, + 'ConduitKernelArgumentINTEL' : 6175, + 'RegisterMapKernelArgumentINTEL' : 6176, + 'MMHostInterfaceAddressWidthINTEL' : 6177, + 'MMHostInterfaceDataWidthINTEL' : 6178, + 'MMHostInterfaceLatencyINTEL' : 6179, + 'MMHostInterfaceReadWriteModeINTEL' : 6180, + 'MMHostInterfaceMaxBurstINTEL' : 6181, + 'MMHostInterfaceWaitRequestINTEL' : 6182, + 'StableKernelArgumentINTEL' : 6183, + 'HostAccessINTEL' : 6188, + 'InitModeINTEL' : 6190, + 'ImplementInRegisterMapINTEL' : 6191, + 'CacheControlLoadINTEL' : 6442, + 'CacheControlStoreINTEL' : 6443, }, 'BuiltIn' : { @@ -615,6 +669,8 @@ spv = { 'BaryCoordSmoothSampleAMD' : 4997, 'BaryCoordPullModelAMD' : 4998, 'FragStencilRefEXT' : 5014, + 'CoalescedInputCountAMDX' : 5021, + 'ShaderIndexAMDX' : 5073, 'ViewportMaskNV' : 5253, 'SecondaryPositionNV' : 5257, 'SecondaryViewportMaskNV' : 5258, @@ -667,6 +723,9 @@ spv = { 'HitKindKHR' : 5333, 'HitKindNV' : 5333, 'CurrentRayTimeNV' : 5334, + 'HitTriangleVertexPositionsKHR' : 5335, + 'HitMicroTriangleVertexPositionsNV' : 5337, + 'HitMicroTriangleVertexBarycentricsNV' : 5344, 'IncomingRayFlagsKHR' : 5351, 'IncomingRayFlagsNV' : 5351, 'RayGeometryIndexKHR' : 5352, @@ -674,6 +733,8 @@ spv = { 'SMCountNV' : 5375, 'WarpIDNV' : 5376, 'SMIDNV' : 5377, + 'HitKindFrontFacingMicroTriangleNV' : 5405, + 'HitKindBackFacingMicroTriangleNV' : 5406, 'CullMaskKHR' : 6021, }, @@ -706,6 +767,8 @@ spv = { 'MaxInterleavingINTEL' : 21, 'SpeculatedIterationsINTEL' : 22, 'NoFusionINTEL' : 23, + 'LoopCountINTEL' : 24, + 'MaxReinvocationDelayINTEL' : 25, }, 'LoopControlMask' : { @@ -727,6 +790,8 @@ spv = { 'MaxInterleavingINTEL' : 0x00200000, 'SpeculatedIterationsINTEL' : 0x00400000, 'NoFusionINTEL' : 0x00800000, + 'LoopCountINTEL' : 0x01000000, + 'MaxReinvocationDelayINTEL' : 0x02000000, }, 'FunctionControlShift' : { @@ -924,6 +989,9 @@ spv = { 'ShaderViewportIndex' : 70, 'UniformDecoration' : 71, 'CoreBuiltinsARM' : 4165, + 'TileImageColorReadAccessEXT' : 4166, + 'TileImageDepthReadAccessEXT' : 4167, + 'TileImageStencilReadAccessEXT' : 4168, 'FragmentShadingRateKHR' : 4422, 'SubgroupBallotKHR' : 4423, 'DrawParameters' : 4427, @@ -955,6 +1023,9 @@ spv = { 'RayQueryKHR' : 4472, 'RayTraversalPrimitiveCullingKHR' : 4478, 'RayTracingKHR' : 4479, + 'TextureSampleWeightedQCOM' : 4484, + 'TextureBoxFilterQCOM' : 4485, + 'TextureBlockMatchQCOM' : 4486, 'Float16ImageAMD' : 5008, 'ImageGatherBiasLodAMD' : 5009, 'FragmentMaskAMD' : 5010, @@ -962,6 +1033,7 @@ spv = { 'ImageReadWriteLodAMD' : 5015, 'Int64ImageEXT' : 5016, 'ShaderClockKHR' : 5055, + 'ShaderEnqueueAMDX' : 5067, 'SampleMaskOverrideCoverageNV' : 5249, 'GeometryShaderPassthroughNV' : 5251, 'ShaderViewportIndexLayerEXT' : 5254, @@ -1003,6 +1075,7 @@ spv = { 'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311, 'StorageTexelBufferArrayNonUniformIndexing' : 5312, 'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312, + 'RayTracingPositionFetchKHR' : 5336, 'RayTracingNV' : 5340, 'RayTracingMotionBlurNV' : 5341, 'VulkanMemoryModel' : 5345, @@ -1020,8 +1093,12 @@ spv = { 'FragmentShaderPixelInterlockEXT' : 5378, 'DemoteToHelperInvocation' : 5379, 'DemoteToHelperInvocationEXT' : 5379, + 'DisplacementMicromapNV' : 5380, 'RayTracingOpacityMicromapEXT' : 5381, + 'ShaderInvocationReorderNV' : 5383, 'BindlessTextureNV' : 5390, + 'RayQueryPositionFetchKHR' : 5391, + 'RayTracingDisplacementMicromapNV' : 5409, 'SubgroupShuffleINTEL' : 5568, 'SubgroupBufferBlockIOINTEL' : 5569, 'SubgroupImageBlockIOINTEL' : 5570, @@ -1054,10 +1131,13 @@ spv = { 'FPGAMemoryAccessesINTEL' : 5898, 'FPGAClusterAttributesINTEL' : 5904, 'LoopFuseINTEL' : 5906, + 'FPGADSPControlINTEL' : 5908, 'MemoryAccessAliasingINTEL' : 5910, + 'FPGAInvocationPipeliningAttributesINTEL' : 5916, 'FPGABufferLocationINTEL' : 5920, 'ArbitraryPrecisionFixedPointINTEL' : 5922, 'USMStorageClassesINTEL' : 5935, + 'RuntimeAlignedAttributeINTEL' : 5939, 'IOPipesINTEL' : 5943, 'BlockingPipesINTEL' : 5945, 'FPGARegINTEL' : 5948, @@ -1070,16 +1150,26 @@ spv = { 'DotProduct' : 6019, 'DotProductKHR' : 6019, 'RayCullMaskKHR' : 6020, + 'CooperativeMatrixKHR' : 6022, 'BitInstructions' : 6025, 'GroupNonUniformRotateKHR' : 6026, 'AtomicFloat32AddEXT' : 6033, 'AtomicFloat64AddEXT' : 6034, - 'LongConstantCompositeINTEL' : 6089, + 'LongCompositesINTEL' : 6089, 'OptNoneINTEL' : 6094, 'AtomicFloat16AddEXT' : 6095, 'DebugInfoModuleINTEL' : 6114, + 'BFloat16ConversionINTEL' : 6115, 'SplitBarrierINTEL' : 6141, + 'FPGAClusterAttributesV2INTEL' : 6150, + 'FPGAKernelAttributesv2INTEL' : 6161, + 'FPMaxErrorINTEL' : 6169, + 'FPGALatencyControlINTEL' : 6171, + 'FPGAArgumentInterfacesINTEL' : 6174, + 'GlobalVariableHostAccessINTEL' : 6187, + 'GlobalVariableFPGADecorationsINTEL' : 6189, 'GroupUniformArithmeticKHR' : 6400, + 'CacheControlsINTEL' : 6441, }, 'RayFlagsShift' : { @@ -1175,6 +1265,61 @@ spv = { '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' : { 'OpNop' : 0, 'OpUndef' : 1, @@ -1520,6 +1665,9 @@ spv = { 'OpPtrEqual' : 401, 'OpPtrNotEqual' : 402, 'OpPtrDiff' : 403, + 'OpColorAttachmentReadEXT' : 4160, + 'OpDepthAttachmentReadEXT' : 4161, + 'OpStencilAttachmentReadEXT' : 4162, 'OpTerminateInvocation' : 4416, 'OpSubgroupBallotKHR' : 4421, 'OpSubgroupFirstInvocationKHR' : 4422, @@ -1545,6 +1693,11 @@ spv = { 'OpUDotAccSatKHR' : 4454, 'OpSUDotAccSat' : 4455, 'OpSUDotAccSatKHR' : 4455, + 'OpTypeCooperativeMatrixKHR' : 4456, + 'OpCooperativeMatrixLoadKHR' : 4457, + 'OpCooperativeMatrixStoreKHR' : 4458, + 'OpCooperativeMatrixMulAddKHR' : 4459, + 'OpCooperativeMatrixLengthKHR' : 4460, 'OpTypeRayQueryKHR' : 4472, 'OpRayQueryInitializeKHR' : 4473, 'OpRayQueryTerminateKHR' : 4474, @@ -1552,6 +1705,10 @@ spv = { 'OpRayQueryConfirmIntersectionKHR' : 4476, 'OpRayQueryProceedKHR' : 4477, 'OpRayQueryGetIntersectionTypeKHR' : 4479, + 'OpImageSampleWeightedQCOM' : 4480, + 'OpImageBoxFilterQCOM' : 4481, + 'OpImageBlockMatchSSDQCOM' : 4482, + 'OpImageBlockMatchSADQCOM' : 4483, 'OpGroupIAddNonUniformAMD' : 5000, 'OpGroupFAddNonUniformAMD' : 5001, 'OpGroupFMinNonUniformAMD' : 5002, @@ -1563,11 +1720,49 @@ spv = { 'OpFragmentMaskFetchAMD' : 5011, 'OpFragmentFetchAMD' : 5012, '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, 'OpEmitMeshTasksEXT' : 5294, 'OpSetMeshOutputsEXT' : 5295, 'OpGroupNonUniformPartitionNV' : 5296, 'OpWritePackedPrimitiveIndices4x8NV' : 5299, + 'OpFetchMicroTriangleVertexPositionNV' : 5300, + 'OpFetchMicroTriangleVertexBarycentricNV' : 5301, 'OpReportIntersectionKHR' : 5334, 'OpReportIntersectionNV' : 5334, 'OpIgnoreIntersectionNV' : 5335, @@ -1575,6 +1770,7 @@ spv = { 'OpTraceNV' : 5337, 'OpTraceMotionNV' : 5338, 'OpTraceRayMotionNV' : 5339, + 'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340, 'OpTypeAccelerationStructureKHR' : 5341, 'OpTypeAccelerationStructureNV' : 5341, 'OpExecuteCallableNV' : 5344, @@ -1836,6 +2032,9 @@ spv = { 'OpTypeStructContinuedINTEL' : 6090, 'OpConstantCompositeContinuedINTEL' : 6091, 'OpSpecConstantCompositeContinuedINTEL' : 6092, + 'OpCompositeConstructContinuedINTEL' : 6096, + 'OpConvertFToBF16INTEL' : 6116, + 'OpConvertBF16ToFINTEL' : 6117, 'OpControlBarrierArriveINTEL' : 6142, 'OpControlBarrierWaitINTEL' : 6143, 'OpGroupIMulKHR' : 6401, diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d index 6462405..1f56630 100644 --- a/include/spirv/unified1/spv.d +++ b/include/spirv/unified1/spv.d @@ -68,6 +68,10 @@ enum SourceLanguage : uint HLSL = 5, CPP_for_OpenCL = 6, SYCL = 7, + HERO_C = 8, + NZSL = 9, + WGSL = 10, + Slang = 11, } enum ExecutionModel : uint @@ -155,6 +159,9 @@ enum ExecutionMode : uint SubgroupsPerWorkgroupId = 37, LocalSizeId = 38, LocalSizeHintId = 39, + NonCoherentColorAttachmentReadEXT = 4169, + NonCoherentDepthAttachmentReadEXT = 4170, + NonCoherentStencilAttachmentReadEXT = 4171, SubgroupUniformControlFlowKHR = 4421, PostDepthCoverage = 4446, DenormPreserve = 4459, @@ -164,6 +171,11 @@ enum ExecutionMode : uint RoundingModeRTZ = 4463, EarlyAndLateFragmentTestsAMD = 5017, StencilRefReplacingEXT = 5027, + CoalescingAMDX = 5069, + MaxNodeRecursionAMDX = 5071, + StaticNumWorkgroupsAMDX = 5072, + ShaderIndexAMDX = 5073, + MaxNumWorkgroupsAMDX = 5077, StencilRefUnchangedFrontAMD = 5079, StencilRefGreaterFrontAMD = 5080, StencilRefLessFrontAMD = 5081, @@ -194,6 +206,8 @@ enum ExecutionMode : uint NoGlobalOffsetINTEL = 5895, NumSIMDWorkitemsINTEL = 5896, SchedulerTargetFmaxMhzINTEL = 5903, + StreamingInterfaceINTEL = 6154, + RegisterMapInterfaceINTEL = 6160, NamedBarrierCountINTEL = 6417, } @@ -212,6 +226,9 @@ enum StorageClass : uint AtomicCounter = 10, Image = 11, StorageBuffer = 12, + TileImageEXT = 4172, + NodePayloadAMDX = 5068, + NodeOutputPayloadAMDX = 5076, CallableDataKHR = 5328, CallableDataNV = 5328, IncomingCallableDataKHR = 5329, @@ -226,6 +243,7 @@ enum StorageClass : uint ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, @@ -241,6 +259,7 @@ enum Dim : uint Rect = 4, Buffer = 5, SubpassData = 6, + TileImageDataEXT = 4173, } enum SamplerAddressingMode : uint @@ -347,6 +366,8 @@ enum ImageChannelDataType : uint Float = 14, UnormInt24 = 15, UnormInt101010_2 = 16, + UnsignedIntRaw10EXT = 19, + UnsignedIntRaw12EXT = 20, } enum ImageOperandsShift : uint @@ -453,6 +474,7 @@ enum FunctionParameterAttribute : uint NoCapture = 5, NoWrite = 6, NoReadWrite = 7, + RuntimeAlignedINTEL = 5940, } enum Decoration : uint @@ -506,7 +528,13 @@ enum Decoration : uint MaxByteOffsetId = 47, NoSignedWrap = 4469, NoUnsignedWrap = 4470, + WeightTextureQCOM = 4487, + BlockMatchTextureQCOM = 4488, ExplicitInterpAMD = 4999, + NodeSharesPayloadLimitsWithAMDX = 5019, + NodeMaxPayloadsAMDX = 5020, + TrackFinishWritingAMDX = 5078, + PayloadNodeNameAMDX = 5091, OverrideCoverageNV = 5248, PassthroughNV = 5250, ViewportRelativeNV = 5252, @@ -523,6 +551,7 @@ enum Decoration : uint RestrictPointerEXT = 5355, AliasedPointer = 5356, AliasedPointerEXT = 5356, + HitObjectShaderRecordBufferNV = 5386, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -555,20 +584,45 @@ enum Decoration : uint MergeINTEL = 5834, BankBitsINTEL = 5835, ForcePow2DepthINTEL = 5836, + StridesizeINTEL = 5883, + WordsizeINTEL = 5884, + TrueDualPortINTEL = 5885, BurstCoalesceINTEL = 5899, CacheSizeINTEL = 5900, DontStaticallyCoalesceINTEL = 5901, PrefetchINTEL = 5902, StallEnableINTEL = 5905, FuseLoopsInFunctionINTEL = 5907, + MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, + InitiationIntervalINTEL = 5917, + MaxConcurrencyINTEL = 5918, + PipelineEnableINTEL = 5919, BufferLocationINTEL = 5921, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, + StallFreeINTEL = 6151, + FPMaxErrorDecorationINTEL = 6170, + LatencyControlLabelINTEL = 6172, + LatencyControlConstraintINTEL = 6173, + ConduitKernelArgumentINTEL = 6175, + RegisterMapKernelArgumentINTEL = 6176, + MMHostInterfaceAddressWidthINTEL = 6177, + MMHostInterfaceDataWidthINTEL = 6178, + MMHostInterfaceLatencyINTEL = 6179, + MMHostInterfaceReadWriteModeINTEL = 6180, + MMHostInterfaceMaxBurstINTEL = 6181, + MMHostInterfaceWaitRequestINTEL = 6182, + StableKernelArgumentINTEL = 6183, + HostAccessINTEL = 6188, + InitModeINTEL = 6190, + ImplementInRegisterMapINTEL = 6191, + CacheControlLoadINTEL = 6442, + CacheControlStoreINTEL = 6443, } enum BuiltIn : uint @@ -644,6 +698,8 @@ enum BuiltIn : uint BaryCoordSmoothSampleAMD = 4997, BaryCoordPullModelAMD = 4998, FragStencilRefEXT = 5014, + CoalescedInputCountAMDX = 5021, + ShaderIndexAMDX = 5073, ViewportMaskNV = 5253, SecondaryPositionNV = 5257, SecondaryViewportMaskNV = 5258, @@ -696,6 +752,9 @@ enum BuiltIn : uint HitKindKHR = 5333, HitKindNV = 5333, CurrentRayTimeNV = 5334, + HitTriangleVertexPositionsKHR = 5335, + HitMicroTriangleVertexPositionsNV = 5337, + HitMicroTriangleVertexBarycentricsNV = 5344, IncomingRayFlagsKHR = 5351, IncomingRayFlagsNV = 5351, RayGeometryIndexKHR = 5352, @@ -703,6 +762,8 @@ enum BuiltIn : uint SMCountNV = 5375, WarpIDNV = 5376, SMIDNV = 5377, + HitKindFrontFacingMicroTriangleNV = 5405, + HitKindBackFacingMicroTriangleNV = 5406, CullMaskKHR = 6021, } @@ -738,6 +799,8 @@ enum LoopControlShift : uint MaxInterleavingINTEL = 21, SpeculatedIterationsINTEL = 22, NoFusionINTEL = 23, + LoopCountINTEL = 24, + MaxReinvocationDelayINTEL = 25, } enum LoopControlMask : uint @@ -760,6 +823,8 @@ enum LoopControlMask : uint MaxInterleavingINTEL = 0x00200000, SpeculatedIterationsINTEL = 0x00400000, NoFusionINTEL = 0x00800000, + LoopCountINTEL = 0x01000000, + MaxReinvocationDelayINTEL = 0x02000000, } enum FunctionControlShift : uint @@ -969,6 +1034,9 @@ enum Capability : uint ShaderViewportIndex = 70, UniformDecoration = 71, CoreBuiltinsARM = 4165, + TileImageColorReadAccessEXT = 4166, + TileImageDepthReadAccessEXT = 4167, + TileImageStencilReadAccessEXT = 4168, FragmentShadingRateKHR = 4422, SubgroupBallotKHR = 4423, DrawParameters = 4427, @@ -1000,6 +1068,9 @@ enum Capability : uint RayQueryKHR = 4472, RayTraversalPrimitiveCullingKHR = 4478, RayTracingKHR = 4479, + TextureSampleWeightedQCOM = 4484, + TextureBoxFilterQCOM = 4485, + TextureBlockMatchQCOM = 4486, Float16ImageAMD = 5008, ImageGatherBiasLodAMD = 5009, FragmentMaskAMD = 5010, @@ -1007,6 +1078,7 @@ enum Capability : uint ImageReadWriteLodAMD = 5015, Int64ImageEXT = 5016, ShaderClockKHR = 5055, + ShaderEnqueueAMDX = 5067, SampleMaskOverrideCoverageNV = 5249, GeometryShaderPassthroughNV = 5251, ShaderViewportIndexLayerEXT = 5254, @@ -1048,6 +1120,7 @@ enum Capability : uint UniformTexelBufferArrayNonUniformIndexingEXT = 5311, StorageTexelBufferArrayNonUniformIndexing = 5312, StorageTexelBufferArrayNonUniformIndexingEXT = 5312, + RayTracingPositionFetchKHR = 5336, RayTracingNV = 5340, RayTracingMotionBlurNV = 5341, VulkanMemoryModel = 5345, @@ -1065,8 +1138,12 @@ enum Capability : uint FragmentShaderPixelInterlockEXT = 5378, DemoteToHelperInvocation = 5379, DemoteToHelperInvocationEXT = 5379, + DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, + ShaderInvocationReorderNV = 5383, BindlessTextureNV = 5390, + RayQueryPositionFetchKHR = 5391, + RayTracingDisplacementMicromapNV = 5409, SubgroupShuffleINTEL = 5568, SubgroupBufferBlockIOINTEL = 5569, SubgroupImageBlockIOINTEL = 5570, @@ -1099,10 +1176,13 @@ enum Capability : uint FPGAMemoryAccessesINTEL = 5898, FPGAClusterAttributesINTEL = 5904, LoopFuseINTEL = 5906, + FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, + FPGAInvocationPipeliningAttributesINTEL = 5916, FPGABufferLocationINTEL = 5920, ArbitraryPrecisionFixedPointINTEL = 5922, USMStorageClassesINTEL = 5935, + RuntimeAlignedAttributeINTEL = 5939, IOPipesINTEL = 5943, BlockingPipesINTEL = 5945, FPGARegINTEL = 5948, @@ -1115,16 +1195,26 @@ enum Capability : uint DotProduct = 6019, DotProductKHR = 6019, RayCullMaskKHR = 6020, + CooperativeMatrixKHR = 6022, BitInstructions = 6025, GroupNonUniformRotateKHR = 6026, AtomicFloat32AddEXT = 6033, AtomicFloat64AddEXT = 6034, - LongConstantCompositeINTEL = 6089, + LongCompositesINTEL = 6089, OptNoneINTEL = 6094, AtomicFloat16AddEXT = 6095, DebugInfoModuleINTEL = 6114, + BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, + FPGAClusterAttributesV2INTEL = 6150, + FPGAKernelAttributesv2INTEL = 6161, + FPMaxErrorINTEL = 6169, + FPGALatencyControlINTEL = 6171, + FPGAArgumentInterfacesINTEL = 6174, + GlobalVariableHostAccessINTEL = 6187, + GlobalVariableFPGADecorationsINTEL = 6189, GroupUniformArithmeticKHR = 6400, + CacheControlsINTEL = 6441, } enum RayFlagsShift : uint @@ -1232,6 +1322,69 @@ enum PackedVectorFormat : uint 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 { OpNop = 0, @@ -1578,6 +1731,9 @@ enum Op : uint OpPtrEqual = 401, OpPtrNotEqual = 402, OpPtrDiff = 403, + OpColorAttachmentReadEXT = 4160, + OpDepthAttachmentReadEXT = 4161, + OpStencilAttachmentReadEXT = 4162, OpTerminateInvocation = 4416, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, @@ -1603,6 +1759,11 @@ enum Op : uint OpUDotAccSatKHR = 4454, OpSUDotAccSat = 4455, OpSUDotAccSatKHR = 4455, + OpTypeCooperativeMatrixKHR = 4456, + OpCooperativeMatrixLoadKHR = 4457, + OpCooperativeMatrixStoreKHR = 4458, + OpCooperativeMatrixMulAddKHR = 4459, + OpCooperativeMatrixLengthKHR = 4460, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1610,6 +1771,10 @@ enum Op : uint OpRayQueryConfirmIntersectionKHR = 4476, OpRayQueryProceedKHR = 4477, OpRayQueryGetIntersectionTypeKHR = 4479, + OpImageSampleWeightedQCOM = 4480, + OpImageBoxFilterQCOM = 4481, + OpImageBlockMatchSSDQCOM = 4482, + OpImageBlockMatchSADQCOM = 4483, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -1621,11 +1786,49 @@ enum Op : uint OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, 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, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, + OpFetchMicroTriangleVertexPositionNV = 5300, + OpFetchMicroTriangleVertexBarycentricNV = 5301, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -1633,6 +1836,7 @@ enum Op : uint OpTraceNV = 5337, OpTraceMotionNV = 5338, OpTraceRayMotionNV = 5339, + OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1894,6 +2098,9 @@ enum Op : uint OpTypeStructContinuedINTEL = 6090, OpConstantCompositeContinuedINTEL = 6091, OpSpecConstantCompositeContinuedINTEL = 6092, + OpCompositeConstructContinuedINTEL = 6096, + OpConvertFToBF16INTEL = 6116, + OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpGroupIMulKHR = 6401, diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100755 index 0000000..6d86090 --- /dev/null +++ b/tests/CMakeLists.txt @@ -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() diff --git a/example/example.cpp b/tests/example.cpp old mode 100644 new mode 100755 similarity index 100% rename from example/example.cpp rename to tests/example.cpp diff --git a/tests/find_package/CMakeLists.txt b/tests/find_package/CMakeLists.txt new file mode 100755 index 0000000..4735db5 --- /dev/null +++ b/tests/find_package/CMakeLists.txt @@ -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}") diff --git a/tests/pkg_config/CMakeLists.txt b/tests/pkg_config/CMakeLists.txt new file mode 100755 index 0000000..b2897e2 --- /dev/null +++ b/tests/pkg_config/CMakeLists.txt @@ -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}") diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py index 9359747..8852d19 100755 --- a/tools/buildHeaders/bin/makeExtinstHeaders.py +++ b/tools/buildHeaders/bin/makeExtinstHeaders.py @@ -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('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json') mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json') +mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json') diff --git a/tools/buildHeaders/bin/makeHeaders b/tools/buildHeaders/bin/makeHeaders index 7b4959e..853c467 100755 --- a/tools/buildHeaders/bin/makeHeaders +++ b/tools/buildHeaders/bin/makeHeaders @@ -1,5 +1,7 @@ #!/usr/bin/env bash +set -ex + python3 bin/makeExtinstHeaders.py cd ../../include/spirv/unified1 diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp index f9e06fb..4ee358b 100644 --- a/tools/buildHeaders/header.cpp +++ b/tools/buildHeaders/header.cpp @@ -574,17 +574,11 @@ namespace { // C++ printer class TPrinterCPP : public TPrinterCBase { - private: - void printPrologue(std::ostream& out) const override { - TPrinterCBase::printPrologue(out); - out << "namespace spv {\n\n"; - } - - void printEpilogue(std::ostream& out) const override { + protected: + void printMaskOperators(std::ostream& out, const std::string& specifiers) const { const Json::Value& enums = spvRoot["spv"]["enum"]; - // Create overloaded operator| for mask types - out << "// Overload operator| for mask bit combining\n\n"; + out << "// Overload bitwise operators for mask bit combining\n\n"; for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) { const bool isMask = (*opClass)["Type"].asString() == "Bit"; @@ -593,11 +587,29 @@ namespace { if (isMask) { const auto typeName = opName + styleStr(enumMask); - out << "inline " + 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, " << typeName << " b) { return " << + typeName << "(unsigned(a) ^ unsigned(b)); }\n"; + // Overload operator~ + out << specifiers << " " << typeName << " operator~(" << typeName << " a) { return " << + typeName << "(~unsigned(a)); }\n"; } } + } + private: + void printPrologue(std::ostream& out) const override { + TPrinterCBase::printPrologue(out); + out << "namespace spv {\n\n"; + } + void printEpilogue(std::ostream& out) const override { + printMaskOperators(out, "inline"); out << "\n} // end namespace spv\n\n"; out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl; } @@ -633,6 +645,11 @@ namespace { // C++11 printer (uses enum classes) class TPrinterCPP11 final : public TPrinterCPP { private: + void printEpilogue(std::ostream& out) const override { + printMaskOperators(out, "constexpr"); + out << "\n} // end namespace spv\n\n"; + out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl; + } std::string enumBeg(const std::string& s, enumStyle_t style) const override { return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n"; } diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp index 67b5bce..ee396f0 100644 --- a/tools/buildHeaders/jsonToSpirv.cpp +++ b/tools/buildHeaders/jsonToSpirv.cpp @@ -36,8 +36,185 @@ #include "jsonToSpirv.h" +namespace { +// Returns true if the given string is a valid SPIR-V version. +bool validSpirvVersionString(const std::string s) { + return + s == "1.0" || + s == "1.1" || + s == "1.2" || + s == "1.3" || + s == "1.4" || + s == "1.5" || + s == "1.6"; +} + +// Returns true if the given string is a valid version +// specifier in the grammar file. +bool validSpirvVersionStringSpecifier(const std::string s) { + return s == "None" || validSpirvVersionString(s); +} +} // anonymous namespace + namespace spv { +bool IsLegacyDoublyEnabledInstruction(const std::string& instruction) { + static std::unordered_set allowed = { + "OpSubgroupBallotKHR", + "OpSubgroupFirstInvocationKHR", + "OpSubgroupAllKHR", + "OpSubgroupAnyKHR", + "OpSubgroupAllEqualKHR", + "OpSubgroupReadInvocationKHR", + "OpTraceRayKHR", + "OpExecuteCallableKHR", + "OpConvertUToAccelerationStructureKHR", + "OpIgnoreIntersectionKHR", + "OpTerminateRayKHR", + "OpTypeRayQueryKHR", + "OpRayQueryInitializeKHR", + "OpRayQueryTerminateKHR", + "OpRayQueryGenerateIntersectionKHR", + "OpRayQueryConfirmIntersectionKHR", + "OpRayQueryProceedKHR", + "OpRayQueryGetIntersectionTypeKHR", + "OpGroupIAddNonUniformAMD", + "OpGroupFAddNonUniformAMD", + "OpGroupFMinNonUniformAMD", + "OpGroupUMinNonUniformAMD", + "OpGroupSMinNonUniformAMD", + "OpGroupFMaxNonUniformAMD", + "OpGroupUMaxNonUniformAMD", + "OpGroupSMaxNonUniformAMD", + "OpFragmentMaskFetchAMD", + "OpFragmentFetchAMD", + "OpImageSampleFootprintNV", + "OpGroupNonUniformPartitionNV", + "OpWritePackedPrimitiveIndices4x8NV", + "OpReportIntersectionNV", + "OpReportIntersectionKHR", + "OpIgnoreIntersectionNV", + "OpTerminateRayNV", + "OpTraceNV", + "OpTraceMotionNV", + "OpTraceRayMotionNV", + "OpTypeAccelerationStructureNV", + "OpTypeAccelerationStructureKHR", + "OpExecuteCallableNV", + "OpTypeCooperativeMatrixNV", + "OpCooperativeMatrixLoadNV", + "OpCooperativeMatrixStoreNV", + "OpCooperativeMatrixMulAddNV", + "OpCooperativeMatrixLengthNV", + "OpBeginInvocationInterlockEXT", + "OpEndInvocationInterlockEXT", + "OpIsHelperInvocationEXT", + "OpConstantFunctionPointerINTEL", + "OpFunctionPointerCallINTEL", + "OpAssumeTrueKHR", + "OpExpectKHR", + "OpLoopControlINTEL", + "OpAliasDomainDeclINTEL", + "OpAliasScopeDeclINTEL", + "OpAliasScopeListDeclINTEL", + "OpReadPipeBlockingINTEL", + "OpWritePipeBlockingINTEL", + "OpFPGARegINTEL", + "OpRayQueryGetRayTMinKHR", + "OpRayQueryGetRayFlagsKHR", + "OpRayQueryGetIntersectionTKHR", + "OpRayQueryGetIntersectionInstanceCustomIndexKHR", + "OpRayQueryGetIntersectionInstanceIdKHR", + "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR", + "OpRayQueryGetIntersectionGeometryIndexKHR", + "OpRayQueryGetIntersectionPrimitiveIndexKHR", + "OpRayQueryGetIntersectionBarycentricsKHR", + "OpRayQueryGetIntersectionFrontFaceKHR", + "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR", + "OpRayQueryGetIntersectionObjectRayDirectionKHR", + "OpRayQueryGetIntersectionObjectRayOriginKHR", + "OpRayQueryGetWorldRayDirectionKHR", + "OpRayQueryGetWorldRayOriginKHR", + "OpRayQueryGetIntersectionObjectToWorldKHR", + "OpRayQueryGetIntersectionWorldToObjectKHR", + "OpAtomicFAddEXT", + }; + return allowed.count(instruction) != 0; +} + +bool EnumValue::IsValid(OperandClass oc, const std::string& context) const +{ + bool result = true; + if (firstVersion.empty()) { + std::cerr << "Error: " << context << " " << name << " \"version\" must be set, probably to \"None\"" << std::endl; + result = false; + } else if (!validSpirvVersionStringSpecifier(firstVersion)) { + std::cerr << "Error: " << context << " " << name << " \"version\" is invalid: " << firstVersion << std::endl; + result = false; + } + if (!lastVersion.empty() && !validSpirvVersionString(lastVersion)) { + std::cerr << "Error: " << context << " " << name << " \"lastVersion\" is invalid: " << lastVersion << std::endl; + result = false; + } + + // When a feature is introduced by an extension, the firstVersion is set to + // "None". There are three cases: + // - A new capability should be guarded/enabled by the extension + // - A new instruction should be: + // - Guarded/enabled by a new capability. + // - Not enabled by *both* a capability and an extension. + // There are many existing instructions that are already like this, + // and we grandparent them as allowed. + // - Other enums fall into two cases: + // 1. The enum is part of a new operand kind introduced by the extension. + // In this case we rely on transitivity: The use of the operand occurs + // in a new instruction that itself is guarded; or as the operand of + // another operand that itself is (recursively) guarded. + // 2. The enum is a new case in an existing operand kind. This case + // should be guarded by a capability. However, we do not check this + // here. Checking it requires more context than we have here. + if (oc == OperandOpcode) { + const bool instruction_unusable = + (firstVersion == "None") && extensions.empty() && capabilities.empty(); + if (instruction_unusable) { + std::cerr << "Error: " << context << " " << name << " is not usable: " + << "its version is set to \"None\", and it is not enabled by a " + << "capability or extension. Guard it with a capability." + << std::endl; + result = false; + } + // Complain if an instruction is not in any core version and also enabled by + // both an extension and a capability. + // It's important to check the "not in any core version" case, because, + // for example, OpTerminateInvocation is in SPIR-V 1.6 *and* enabled by an + // extension, and guarded by the Shader capability. + const bool instruction_doubly_enabled = (firstVersion == "None") && + !extensions.empty() && + !capabilities.empty(); + if (instruction_doubly_enabled && !IsLegacyDoublyEnabledInstruction(name)) { + std::cerr << "Error: " << context << " " << name << " is doubly-enabled: " + << "it is enabled by both a capability and an extension. " + << "Guard it with a capability only." << std::endl; + result = false; + } + } + if (oc == OperandCapability) { + // If capability X lists capabilities Y and Z, then Y and Z are *enabled* + // when X is enabled. They are not *guards* on X's use. + // Only versions and extensions can guard a capability. + const bool capability_unusable = + (firstVersion == "None") && extensions.empty(); + if (capability_unusable) { + std::cerr << "Error: " << context << " " << name << " is not usable: " + << "its version is set to \"None\", and it is not enabled by " + << "an extension. Guard it with an extension." << std::endl; + result = false; + } + } + + return result; +} + // The set of objects that hold all the instruction/operand // parameterization information. InstructionValues InstructionDesc; @@ -88,6 +265,13 @@ EnumValues RayQueryCommittedIntersectionTypeParams; EnumValues RayQueryCandidateIntersectionTypeParams; EnumValues FragmentShadingRateParams; EnumValues PackedVectorFormatParams; +EnumValues CooperativeMatrixOperandsParams; +EnumValues CooperativeMatrixLayoutParams; +EnumValues CooperativeMatrixUseParams; +EnumValues InitializationModeQualifierParams; +EnumValues HostAccessQualifierParams; +EnumValues LoadCacheControlParams; +EnumValues StoreCacheControlParams; std::pair ReadFile(const std::string& path) { @@ -158,6 +342,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co type = OperandLiteralNumber; } else if (operandKind == "LiteralContextDependentNumber") { type = OperandAnySizeLiteralNumber; + } else if (operandKind == "LiteralFloat") { + type = OperandLiteralNumber; } else if (operandKind == "SourceLanguage") { type = OperandSource; } else if (operandKind == "ExecutionModel") { @@ -234,6 +420,20 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co type = OperandFragmentShadingRate; } else if (operandKind == "PackedVectorFormat") { type = OperandPackedVectorFormat; + } else if (operandKind == "CooperativeMatrixOperands") { + type = OperandCooperativeMatrixOperands; + } else if (operandKind == "CooperativeMatrixLayout") { + type = OperandCooperativeMatrixLayout; + } else if (operandKind == "CooperativeMatrixUse") { + type = OperandCooperativeMatrixUse; + } else if (operandKind == "InitializationModeQualifier") { + type = OperandInitializationModeQualifier; + } else if (operandKind == "HostAccessQualifier") { + type = OperandHostAccessQualifier; + } else if (operandKind == "LoadCacheControl") { + type = OperandLoadCacheControl; + } else if (operandKind == "StoreCacheControl") { + type = OperandStoreCacheControl; } if (type == OperandNone) { @@ -273,6 +473,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders) return; initialized = true; + size_t errorCount = 0; + // Read the JSON grammar file. bool fileReadOk = false; std::string content; @@ -326,8 +528,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders) for (const auto& printingClass : printingClasses) { if (printingClass["tag"].asString().size() > 0) 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::exit(1); + } if (buildingHeaders || printingClass["tag"].asString() != "@exclude") { InstructionPrintingClasses.push_back({printingClass["tag"].asString(), printingClass["heading"].asString()}); @@ -343,6 +547,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders) if (printingClass.size() == 0) { std::cerr << "Error: " << inst["opname"].asString() << " requires a non-empty printing \"class\" tag" << std::endl; + std::exit(1); } if (!buildingHeaders && printingClass == "@exclude") continue; @@ -350,6 +555,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders) std::cerr << "Error: " << inst["opname"].asString() << " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\"" << std::endl; + std::exit(1); } const auto opcode = inst["opcode"].asUInt(); const std::string name = inst["opname"].asString(); @@ -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(operands))), printingClass, defTypeId, defResultId); + if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) { + errorCount++; + } } // Specific additional context-dependent operands // Populate dest with EnumValue objects constructed from source. - const auto populateEnumValues = [&getCaps,&getExts](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 // enumerant in JSON form, and whether that value is a 0 in a bitfield. 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, spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) { assert(category == "BitEnum" || category == "ValueEnum"); bool bitEnum = (category == "BitEnum"); + if (!operandEnum["version"].empty()) { + std::cerr << "Error: container for " << enumName << " operand_kind must not have a version field" << std::endl; + errorCount++; + } populateEnumValues(enumValues, operandEnum, bitEnum); + const std::string errContext = "enum " + enumName; + for (const auto& e: *enumValues) { + if (!e.IsValid(operandClass, errContext)) { + errorCount++; + } + } OperandClassParams[operandClass].set(enumName, enumValues, bitEnum); }; @@ -544,8 +763,26 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders) establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category); } else if (enumName == "PackedVectorFormat") { establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category); + } else if (enumName == "CooperativeMatrixOperands") { + establishOperandClass(enumName, OperandCooperativeMatrixOperands, &CooperativeMatrixOperandsParams, operandEnum, category); + } else if (enumName == "CooperativeMatrixLayout") { + establishOperandClass(enumName, OperandCooperativeMatrixLayout, &CooperativeMatrixLayoutParams, operandEnum, category); + } else if (enumName == "CooperativeMatrixUse") { + establishOperandClass(enumName, OperandCooperativeMatrixUse, &CooperativeMatrixUseParams, operandEnum, category); + } else if (enumName == "InitializationModeQualifier") { + establishOperandClass(enumName, OperandInitializationModeQualifier, &InitializationModeQualifierParams, operandEnum, category); + } else if (enumName == "HostAccessQualifier") { + establishOperandClass(enumName, OperandHostAccessQualifier, &HostAccessQualifierParams, operandEnum, category); + } else if (enumName == "LoadCacheControl") { + establishOperandClass(enumName, OperandLoadCacheControl, &LoadCacheControlParams, operandEnum, category); + } else if (enumName == "StoreCacheControl") { + establishOperandClass(enumName, OperandStoreCacheControl, &StoreCacheControlParams, operandEnum, category); } } + + if (errorCount > 0) { + std::exit(1); + } } }; // end namespace spv diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h index 3be6456..db4855b 100644 --- a/tools/buildHeaders/jsonToSpirv.h +++ b/tools/buildHeaders/jsonToSpirv.h @@ -96,6 +96,13 @@ enum OperandClass { OperandQuantizationModes, OperandOverflowModes, OperandPackedVectorFormat, + OperandCooperativeMatrixOperands, + OperandCooperativeMatrixLayout, + OperandCooperativeMatrixUse, + OperandInitializationModeQualifier, + OperandHostAccessQualifier, + OperandLoadCacheControl, + OperandStoreCacheControl, OperandOpcode, @@ -184,6 +191,7 @@ public: iterator begin() { return values.begin(); } iterator end() { return values.end(); } + EValue& back() { return values.back(); } private: ContainerType values; @@ -216,6 +224,10 @@ public: Extensions extensions; OperandParameters operands; const char* desc; + + // Returns true if this enum is valid, in isolation. + // Otherwise emits a diagnostic to std::cerr and returns false. + bool IsValid(OperandClass oc, const std::string& context) const; }; using EnumValues = EnumValuesContainer;