Update SPIR-V Headers to 268a06176

Changes:
    268a06176 Reserve a single block of opcodes and enumerants for Saarland University (#343)
    f7e1a2ef5 Merge pull request #336 from DBDuncan/shift-codeplay-range
    7f1d2f415 Merge pull request #344 from ewerness-nv/SPV_KHR_ray_tracing_position_fetch
    131fddea3 SPV_KHR_ray_tracing_position_fetch
    e08a279cf Merge pull request #340 from MrSidims/fix-tile-image-error
    a53bc4bf6 Merge pull request #342 from joycebrum/main
    d4461bc88 chore: Set minimal permissions to presubmit
    c8f869ffb Fix TileImage capabilities order
    cfbe4feef Merge pull request #335 from janharaldfredriksen-arm/SPV_EXT_shader_tile_image
    7c862b551 Shift Codeplay opcode range to preserve alignment of opcodes and non-opcodes
    80cea00f6 Add back version field for new enumerants and operands, but set to None.
    862efd55a Address feedback on incorrect use of version and extension fields.
    d218c4ab7 Add SPV_EXT_shader_tile_image.
    29ba24931 Merge pull request #329 from DBDuncan/reserve-ranges-codeplay
    90547c54e Merge pull request #331 from juan-lunarg/juaramos/fix_cmake_again_part_2
    295ac7e34 Reserve SPIR-V blocks for Codeplay
    e90684a05 cmake: Overally cleanup/testing update
    5b21f14b2 Merge pull request #330 from dneto0/revert-cmake-changes
    e0087ad2c Revert "Merge pull request #326 from juan-lunarg/juaramos/cmake"
    a41cf67df Merge pull request #326 from juan-lunarg/juaramos/cmake
    3834d4128 Merge pull request #327 from gnl21/gnl-image-dims
    2666ce79a Simplify enabling capabilities for image Dim
    4b5bf03e8 cmake: Overally cleanup/testing update
    1feaf4414 Merge pull request #320 from CodeLinaro/spv-qcom-image-processing
    9f8e16aa5 Merge pull request #321 from asudarsa/asudarsa/add_fpga_latency_control_ext
    647dec7f8 Merge pull request #322 from bashbaug/SPV_INTEL_bfloat16_conversion
    738a7cc08 Fix error in merge conflict resolution
    391c49035 Merge remote-tracking branch 'real-origin/main' into asudarsa/add_fpga_latency_control_ext
    e65c5d143 headers support for SPV_INTEL_bfloat16_conversion
    78a1e8aaa Add parameters
    0e9e42f65 Remove redundant extensions entry
    afe1c65aa Add support for SPV_INTEL_fpga_latency_control extension
    3228364ff SPV_QCOM_image_processing
    8917a8619 SPV_QCOM_image_processing
    2c3cfe20d Merge branch 'KhronosGroup:main' into spv-qcom-image-processing
    295cf5fb3 Merge pull request #317 from tiwaria1/register_map_interface
    317010351 update parameter name to match spec in grammar file
    8a0d0b6b7 move FPGAKernelAttributesv2INTEL to capability section in all files
    f5fc87239 SPV_QCOM_image_processing
    e01ade256 SPV_QCOM_image_processing
    e72e3c372 correct file entry position for FPGAKernelAttributesv2INTEL
    9e24e0684 Merge branch 'register_map_interface' of https://github.com/tiwaria1/SPIRV-Headers into register_map_interface
    606e22312 add FPGAKernelAttributesv2INTEL to all files
    29cd8f66a address review comment
    32a226085 add RegisterMapInterfaceINTEL

Commands:
    ./third_party/update-spirvheaders.sh

Bug: b/123642959
Change-Id: Icc82ef7bf1e62fb6b14272930bd2ace0aa51256f
diff --git a/third_party/SPIRV-Headers/.github/workflows/presubmit.yml b/third_party/SPIRV-Headers/.github/workflows/presubmit.yml
index d9c25fa..306f50e 100644
--- a/third_party/SPIRV-Headers/.github/workflows/presubmit.yml
+++ b/third_party/SPIRV-Headers/.github/workflows/presubmit.yml
@@ -1,6 +1,9 @@
 name: Presubmit
 on: [push, pull_request]
 
+permissions:
+  contents: read
+
 jobs:
   build:
     name: Build ${{ matrix.os }}
@@ -9,7 +12,7 @@
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Install Ubuntu packages
         if: matrix.os == 'ubuntu-latest'
         run: sudo apt install -y dos2unix
@@ -35,3 +38,86 @@
           ./bin/makeHeaders
       - name: Check generated headers
         run: git diff --exit-code
+
+  test_cmake_min_required:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.14.0
+      - name: CMake build
+        run: |
+          cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
+          cmake --build build --target install
+
+  test_cmake_latest:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: lukka/get-cmake@latest
+      - name: CMake build
+        run: |
+          cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja"
+          cmake --install build/ --prefix build/install
+
+  add_subdirectory:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Build spirv-headers with testing enabled
+        run: |
+          cmake -S . -B build/ -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=Debug -G "Ninja"
+          cmake --build build
+
+  find_package:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Install spirv-headers
+        run: |
+          cmake -S . -B build/
+          cmake --install build/ --prefix build/install
+      - name: Check spirv-headers find_package support
+        run: |
+          cmake -S tests/find_package -B tests/find_package/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
+          cmake --build tests/find_package/build/
+
+  find_pkg_config:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Install spirv-headers
+        run: |
+          cmake -S . -B build/ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
+          cmake --install build/
+      - name: Check spirv-headers pkg_config support
+        run: |
+          cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
+          cmake --build tests/pkg_config/build/
+
+  # https://github.com/KhronosGroup/SPIRV-Headers/issues/282
+  find_pkg_config_absolute:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Install spirv-headers with CMAKE_INSTALL_INCLUDEDIR being absolute
+        run: |
+          cmake -S . -B build/ -D CMAKE_INSTALL_INCLUDEDIR=${GITHUB_WORKSPACE}/build/install/include -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
+          cmake --install build/
+      - name: Check spirv-headers pkg_config support
+        run: |
+          cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
+          cmake --build tests/pkg_config/build/
diff --git a/third_party/SPIRV-Headers/CMakeLists.txt b/third_party/SPIRV-Headers/CMakeLists.txt
index 9cfba73..e3d76d9 100644
--- a/third_party/SPIRV-Headers/CMakeLists.txt
+++ b/third_party/SPIRV-Headers/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 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
 
-if (SPIRV_HEADERS_ENABLE_EXAMPLES)
-  message(STATUS "Building SPIRV-Header examples")
-  add_subdirectory(example)
-endif()
+if (PROJECT_IS_TOP_LEVEL)
+    option(BUILD_TESTS "Build the tests")
+    if (BUILD_TESTS)
+        add_subdirectory(tests)
+    endif()
 
-include(GNUInstallDirs)
-add_library(${PROJECT_NAME} INTERFACE)
-target_include_directories(${PROJECT_NAME} INTERFACE
-    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-)
-
-# Installation
-
-if (SPIRV_HEADERS_ENABLE_INSTALL)
-    message(STATUS "Installing SPIRV-Header")
-
-    set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
-
-    set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
-
-    set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
-    set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
-    set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
-    set(namespace "${PROJECT_NAME}::")
-
+    include(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/third_party/SPIRV-Headers/cmake/Config.cmake.in b/third_party/SPIRV-Headers/cmake/Config.cmake.in
deleted file mode 100644
index 38bbde7..0000000
--- a/third_party/SPIRV-Headers/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/third_party/SPIRV-Headers/SPIRV-Headers.pc.in b/third_party/SPIRV-Headers/cmake/SPIRV-Headers.pc.in
similarity index 65%
rename from third_party/SPIRV-Headers/SPIRV-Headers.pc.in
rename to third_party/SPIRV-Headers/cmake/SPIRV-Headers.pc.in
index 345f5f8..843b0a7 100644
--- a/third_party/SPIRV-Headers/SPIRV-Headers.pc.in
+++ b/third_party/SPIRV-Headers/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/third_party/SPIRV-Headers/example/CMakeLists.txt b/third_party/SPIRV-Headers/example/CMakeLists.txt
deleted file mode 100644
index 8b22f60..0000000
--- a/third_party/SPIRV-Headers/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/third_party/SPIRV-Headers/include/spirv/spir-v.xml b/third_party/SPIRV-Headers/include/spirv/spir-v.xml
index 642fdf3..9dea8d9 100644
--- a/third_party/SPIRV-Headers/include/spirv/spir-v.xml
+++ b/third_party/SPIRV-Headers/include/spirv/spir-v.xml
@@ -140,13 +140,16 @@
     <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
     <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
     <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+    <ids type="opcode" start="6464" end="6527" vendor="N/A" comment="Blank range to keep alignment with non-opcodes"/>
+    <ids type="opcode" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
+    <ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
     <!-- Opcode enumerants to reserve for future use. To get a block, allocate
          multiples of 64 starting at the lowest available point in this
          block and add a corresponding <ids> tag immediately above. Make
          sure to fill in the vendor attribute, and preferably add a contact
          person/address in a comment attribute. -->
     <!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
-    <ids type="opcode" start="6464" end="65535" comment="Opcode range reservable for future use by vendors"/>
+    <ids type="opcode" start="6656" end="65535" comment="Opcode range reservable for future use by vendors"/>
     <!-- End reservations of opcodes -->
 
 
@@ -170,13 +173,15 @@
     <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
     <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
     <ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
+    <ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
+    <ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
     <!-- Enumerants to reserve for future use. To get a block, allocate
          multiples of 64 starting at the lowest available point in this
          block and add a corresponding <ids> tag immediately above. Make
          sure to fill in the vendor attribute, and preferably add a contact
          person/address in a comment attribute. -->
     <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
-    <ids type="enumerant" start="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+    <ids type="enumerant" start="6656" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
     <!-- End reservations of enumerants -->
 
 
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.bf b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.bf
index ae17120..bd12062 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.bf
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.bf
@@ -153,6 +153,9 @@
             SubgroupsPerWorkgroupId = 37,
             LocalSizeId = 38,
             LocalSizeHintId = 39,
+            NonCoherentColorAttachmentReadEXT = 4169,
+            NonCoherentDepthAttachmentReadEXT = 4170,
+            NonCoherentStencilAttachmentReadEXT = 4171,
             SubgroupUniformControlFlowKHR = 4421,
             PostDepthCoverage = 4446,
             DenormPreserve = 4459,
@@ -193,6 +196,7 @@
             NumSIMDWorkitemsINTEL = 5896,
             SchedulerTargetFmaxMhzINTEL = 5903,
             StreamingInterfaceINTEL = 6154,
+            RegisterMapInterfaceINTEL = 6160,
             NamedBarrierCountINTEL = 6417,
         }
 
@@ -211,6 +215,7 @@
             AtomicCounter = 10,
             Image = 11,
             StorageBuffer = 12,
+            TileImageEXT = 4172,
             CallableDataKHR = 5328,
             CallableDataNV = 5328,
             IncomingCallableDataKHR = 5329,
@@ -241,6 +246,7 @@
             Rect = 4,
             Buffer = 5,
             SubpassData = 6,
+            TileImageDataEXT = 4173,
         }
 
         [AllowDuplicates, CRepr] public enum SamplerAddressingMode
@@ -507,6 +513,8 @@
             MaxByteOffsetId = 47,
             NoSignedWrap = 4469,
             NoUnsignedWrap = 4470,
+            WeightTextureQCOM = 4487,
+            BlockMatchTextureQCOM = 4488,
             ExplicitInterpAMD = 4999,
             OverrideCoverageNV = 5248,
             PassthroughNV = 5250,
@@ -575,6 +583,8 @@
             SingleElementVectorINTEL = 6085,
             VectorComputeCallableFunctionINTEL = 6087,
             MediaBlockIOINTEL = 6140,
+            LatencyControlLabelINTEL = 6172,
+            LatencyControlConstraintINTEL = 6173,
             ConduitKernelArgumentINTEL = 6175,
             RegisterMapKernelArgumentINTEL = 6176,
             MMHostInterfaceAddressWidthINTEL = 6177,
@@ -711,6 +721,7 @@
             HitKindKHR = 5333,
             HitKindNV = 5333,
             CurrentRayTimeNV = 5334,
+            HitTriangleVertexPositionsKHR = 5335,
             IncomingRayFlagsKHR = 5351,
             IncomingRayFlagsNV = 5351,
             RayGeometryIndexKHR = 5352,
@@ -988,6 +999,9 @@
             ShaderViewportIndex = 70,
             UniformDecoration = 71,
             CoreBuiltinsARM = 4165,
+            TileImageColorReadAccessEXT = 4166,
+            TileImageDepthReadAccessEXT = 4167,
+            TileImageStencilReadAccessEXT = 4168,
             FragmentShadingRateKHR = 4422,
             SubgroupBallotKHR = 4423,
             DrawParameters = 4427,
@@ -1019,6 +1033,9 @@
             RayQueryKHR = 4472,
             RayTraversalPrimitiveCullingKHR = 4478,
             RayTracingKHR = 4479,
+            TextureSampleWeightedQCOM = 4484,
+            TextureBoxFilterQCOM = 4485,
+            TextureBlockMatchQCOM = 4486,
             Float16ImageAMD = 5008,
             ImageGatherBiasLodAMD = 5009,
             FragmentMaskAMD = 5010,
@@ -1067,6 +1084,7 @@
             UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
             StorageTexelBufferArrayNonUniformIndexing = 5312,
             StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+            RayTracingPositionFetchKHR = 5336,
             RayTracingNV = 5340,
             RayTracingMotionBlurNV = 5341,
             VulkanMemoryModel = 5345,
@@ -1087,6 +1105,7 @@
             RayTracingOpacityMicromapEXT = 5381,
             ShaderInvocationReorderNV = 5383,
             BindlessTextureNV = 5390,
+            RayQueryPositionFetchKHR = 5391,
             SubgroupShuffleINTEL = 5568,
             SubgroupBufferBlockIOINTEL = 5569,
             SubgroupImageBlockIOINTEL = 5570,
@@ -1146,7 +1165,10 @@
             OptNoneINTEL = 6094,
             AtomicFloat16AddEXT = 6095,
             DebugInfoModuleINTEL = 6114,
+            BFloat16ConversionINTEL = 6115,
             SplitBarrierINTEL = 6141,
+            FPGAKernelAttributesv2INTEL = 6161,
+            FPGALatencyControlINTEL = 6171,
             FPGAArgumentInterfacesINTEL = 6174,
             GroupUniformArithmeticKHR = 6400,
         }
@@ -1602,6 +1624,9 @@
             OpPtrEqual = 401,
             OpPtrNotEqual = 402,
             OpPtrDiff = 403,
+            OpColorAttachmentReadEXT = 4160,
+            OpDepthAttachmentReadEXT = 4161,
+            OpStencilAttachmentReadEXT = 4162,
             OpTerminateInvocation = 4416,
             OpSubgroupBallotKHR = 4421,
             OpSubgroupFirstInvocationKHR = 4422,
@@ -1634,6 +1659,10 @@
             OpRayQueryConfirmIntersectionKHR = 4476,
             OpRayQueryProceedKHR = 4477,
             OpRayQueryGetIntersectionTypeKHR = 4479,
+            OpImageSampleWeightedQCOM = 4480,
+            OpImageBoxFilterQCOM = 4481,
+            OpImageBlockMatchSSDQCOM = 4482,
+            OpImageBlockMatchSADQCOM = 4483,
             OpGroupIAddNonUniformAMD = 5000,
             OpGroupFAddNonUniformAMD = 5001,
             OpGroupFMinNonUniformAMD = 5002,
@@ -1690,6 +1719,7 @@
             OpTraceNV = 5337,
             OpTraceMotionNV = 5338,
             OpTraceRayMotionNV = 5339,
+            OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
             OpTypeAccelerationStructureKHR = 5341,
             OpTypeAccelerationStructureNV = 5341,
             OpExecuteCallableNV = 5344,
@@ -1951,6 +1981,8 @@
             OpTypeStructContinuedINTEL = 6090,
             OpConstantCompositeContinuedINTEL = 6091,
             OpSpecConstantCompositeContinuedINTEL = 6092,
+            OpConvertFToBF16INTEL = 6116,
+            OpConvertBF16ToFINTEL = 6117,
             OpControlBarrierArriveINTEL = 6142,
             OpControlBarrierWaitINTEL = 6143,
             OpGroupIMulKHR = 6401,
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json
index 3e4f81e..377e2ec 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json
@@ -4103,6 +4103,43 @@
       "version" : "1.4"
     },
     {
+      "opname" : "OpColorAttachmentReadEXT",
+      "class"  : "Image",
+      "opcode" : 4160,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Attachment'" },
+        { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
+      ],
+      "capabilities": [ "TileImageColorReadAccessEXT" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpDepthAttachmentReadEXT",
+      "class"  : "Image",
+      "opcode" : 4161,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TileImageDepthReadAccessEXT" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpStencilAttachmentReadEXT",
+      "class"  : "Image",
+      "opcode" : 4162,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TileImageStencilReadAccessEXT" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpTerminateInvocation",
       "class"  : "Control-Flow",
       "opcode" : 4416,
@@ -4593,6 +4630,66 @@
         "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",
       "opcode" : 5000,
@@ -5387,6 +5484,25 @@
       "version" : "None"
     },
     {
+      "opname" : "OpRayQueryGetIntersectionTriangleVertexPositionsKHR",
+      "class"  : "Reserved",
+      "opcode" : 5340,
+        "operands" : [
+            { "kind" : "IdResultType" },
+            { "kind" : "IdResult" },
+            {
+                "kind" : "IdRef",
+                "name" : "'RayQuery'"
+            },
+            {
+                "kind" : "IdRef",
+                "name" : "'Intersection'"
+            }
+        ],
+      "capabilities" : [ "RayQueryPositionFetchKHR" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpTypeAccelerationStructureNV",
       "class"  : "Reserved",
       "opcode" : 5341,
@@ -9044,6 +9160,30 @@
       "version" : "None"
     },
     {
+      "opname" : "OpConvertFToBF16INTEL",
+      "class"  : "Conversion",
+      "opcode" : 6116,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "'Float Value'" }
+      ],
+      "capabilities" : [ "BFloat16ConversionINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpConvertBF16ToFINTEL",
+      "class"  : "Conversion",
+      "opcode" : 6117,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "'BFloat16 Value'" }
+      ],
+      "capabilities" : [ "BFloat16ConversionINTEL" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpControlBarrierArriveINTEL",
       "class"  : "Barrier",
       "opcode" : 6142,
@@ -10390,6 +10530,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,
           "capabilities" : [ "Shader" ],
@@ -10716,6 +10874,15 @@
           "version" : "None"
         },
         {
+          "enumerant" : "RegisterMapInterfaceINTEL",
+          "value" : 6160,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'WaitForDoneWrite'" }
+          ],
+          "capabilities" : [ "FPGAKernelAttributesv2INTEL" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "NamedBarrierCountINTEL",
           "value" : 6417,
           "parameters" : [
@@ -10795,6 +10962,12 @@
           "version" : "1.3"
         },
         {
+          "enumerant" : "TileImageEXT",
+          "value" : 4172,
+          "capabilities" : [ "TileImageColorReadAccessEXT" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "CallableDataNV",
           "value" : 5328,
           "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
@@ -10939,12 +11112,11 @@
         {
           "enumerant" : "1D",
           "value" : 0,
-          "capabilities" : [ "Sampled1D", "Image1D" ]
+          "capabilities" : [ "Sampled1D" ]
         },
         {
           "enumerant" : "2D",
-          "value" : 1,
-          "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
+          "value" : 1
         },
         {
           "enumerant" : "3D",
@@ -10953,22 +11125,28 @@
         {
           "enumerant" : "Cube",
           "value" : 3,
-          "capabilities" : [ "Shader", "ImageCubeArray" ]
+          "capabilities" : [ "Shader" ]
         },
         {
           "enumerant" : "Rect",
           "value" : 4,
-          "capabilities" : [ "SampledRect", "ImageRect" ]
+          "capabilities" : [ "SampledRect" ]
         },
         {
           "enumerant" : "Buffer",
           "value" : 5,
-          "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
+          "capabilities" : [ "SampledBuffer" ]
         },
         {
           "enumerant" : "SubpassData",
           "value" : 6,
           "capabilities" : [ "InputAttachment" ]
+        },
+        {
+          "enumerant" : "TileImageDataEXT",
+          "value" : 4173,
+          "capabilities" : [ "TileImageColorReadAccessEXT" ],
+          "version" : "None"
         }
       ]
     },
@@ -11987,6 +12165,18 @@
           "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" ],
@@ -12518,6 +12708,26 @@
           "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" ],
@@ -13347,6 +13557,12 @@
           "version" : "None"
         },
         {
+          "enumerant" : "HitTriangleVertexPositionsKHR",
+          "value" : 5335,
+          "capabilities" : [ "RayTracingPositionFetchKHR" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "IncomingRayFlagsNV",
           "value" : 5351,
           "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
@@ -13876,6 +14092,24 @@
           "extensions" : [ "SPV_ARM_core_builtins" ]
         },
         {
+          "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",
           "value" : 4422,
           "capabilities" : [ "Shader" ],
@@ -14083,6 +14317,24 @@
           "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,
           "capabilities" : [ "Shader" ],
@@ -14401,6 +14653,13 @@
           "version" : "1.5"
         },
         {
+          "enumerant" : "RayTracingPositionFetchKHR",
+          "value" : 5336,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "RayTracingNV",
           "value" : 5340,
           "capabilities" : [ "Shader" ],
@@ -14532,6 +14791,13 @@
           "version" : "None"
         },
         {
+          "enumerant" : "RayQueryPositionFetchKHR",
+          "value" : 5391,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "SubgroupShuffleINTEL",
           "value" : 5568,
           "extensions" : [ "SPV_INTEL_subgroups" ],
@@ -14888,12 +15154,31 @@
           "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" : "FPGAKernelAttributesv2INTEL",
+          "value" : 6161,
+          "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+          "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FPGALatencyControlINTEL",
+          "value" : 6171,
+          "extensions" : [ "SPV_INTEL_fpga_latency_control" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "FPGAArgumentInterfacesINTEL",
           "value" : 6174,
           "extensions" : [ "SPV_INTEL_fpga_argument_interfaces" ],
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.cs b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.cs
index 4f203a9..0e5d2df 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.cs
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.cs
@@ -152,6 +152,9 @@
             SubgroupsPerWorkgroupId = 37,
             LocalSizeId = 38,
             LocalSizeHintId = 39,
+            NonCoherentColorAttachmentReadEXT = 4169,
+            NonCoherentDepthAttachmentReadEXT = 4170,
+            NonCoherentStencilAttachmentReadEXT = 4171,
             SubgroupUniformControlFlowKHR = 4421,
             PostDepthCoverage = 4446,
             DenormPreserve = 4459,
@@ -192,6 +195,7 @@
             NumSIMDWorkitemsINTEL = 5896,
             SchedulerTargetFmaxMhzINTEL = 5903,
             StreamingInterfaceINTEL = 6154,
+            RegisterMapInterfaceINTEL = 6160,
             NamedBarrierCountINTEL = 6417,
         }
 
@@ -210,6 +214,7 @@
             AtomicCounter = 10,
             Image = 11,
             StorageBuffer = 12,
+            TileImageEXT = 4172,
             CallableDataKHR = 5328,
             CallableDataNV = 5328,
             IncomingCallableDataKHR = 5329,
@@ -240,6 +245,7 @@
             Rect = 4,
             Buffer = 5,
             SubpassData = 6,
+            TileImageDataEXT = 4173,
         }
 
         public enum SamplerAddressingMode
@@ -506,6 +512,8 @@
             MaxByteOffsetId = 47,
             NoSignedWrap = 4469,
             NoUnsignedWrap = 4470,
+            WeightTextureQCOM = 4487,
+            BlockMatchTextureQCOM = 4488,
             ExplicitInterpAMD = 4999,
             OverrideCoverageNV = 5248,
             PassthroughNV = 5250,
@@ -574,6 +582,8 @@
             SingleElementVectorINTEL = 6085,
             VectorComputeCallableFunctionINTEL = 6087,
             MediaBlockIOINTEL = 6140,
+            LatencyControlLabelINTEL = 6172,
+            LatencyControlConstraintINTEL = 6173,
             ConduitKernelArgumentINTEL = 6175,
             RegisterMapKernelArgumentINTEL = 6176,
             MMHostInterfaceAddressWidthINTEL = 6177,
@@ -710,6 +720,7 @@
             HitKindKHR = 5333,
             HitKindNV = 5333,
             CurrentRayTimeNV = 5334,
+            HitTriangleVertexPositionsKHR = 5335,
             IncomingRayFlagsKHR = 5351,
             IncomingRayFlagsNV = 5351,
             RayGeometryIndexKHR = 5352,
@@ -987,6 +998,9 @@
             ShaderViewportIndex = 70,
             UniformDecoration = 71,
             CoreBuiltinsARM = 4165,
+            TileImageColorReadAccessEXT = 4166,
+            TileImageDepthReadAccessEXT = 4167,
+            TileImageStencilReadAccessEXT = 4168,
             FragmentShadingRateKHR = 4422,
             SubgroupBallotKHR = 4423,
             DrawParameters = 4427,
@@ -1018,6 +1032,9 @@
             RayQueryKHR = 4472,
             RayTraversalPrimitiveCullingKHR = 4478,
             RayTracingKHR = 4479,
+            TextureSampleWeightedQCOM = 4484,
+            TextureBoxFilterQCOM = 4485,
+            TextureBlockMatchQCOM = 4486,
             Float16ImageAMD = 5008,
             ImageGatherBiasLodAMD = 5009,
             FragmentMaskAMD = 5010,
@@ -1066,6 +1083,7 @@
             UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
             StorageTexelBufferArrayNonUniformIndexing = 5312,
             StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+            RayTracingPositionFetchKHR = 5336,
             RayTracingNV = 5340,
             RayTracingMotionBlurNV = 5341,
             VulkanMemoryModel = 5345,
@@ -1086,6 +1104,7 @@
             RayTracingOpacityMicromapEXT = 5381,
             ShaderInvocationReorderNV = 5383,
             BindlessTextureNV = 5390,
+            RayQueryPositionFetchKHR = 5391,
             SubgroupShuffleINTEL = 5568,
             SubgroupBufferBlockIOINTEL = 5569,
             SubgroupImageBlockIOINTEL = 5570,
@@ -1145,7 +1164,10 @@
             OptNoneINTEL = 6094,
             AtomicFloat16AddEXT = 6095,
             DebugInfoModuleINTEL = 6114,
+            BFloat16ConversionINTEL = 6115,
             SplitBarrierINTEL = 6141,
+            FPGAKernelAttributesv2INTEL = 6161,
+            FPGALatencyControlINTEL = 6171,
             FPGAArgumentInterfacesINTEL = 6174,
             GroupUniformArithmeticKHR = 6400,
         }
@@ -1601,6 +1623,9 @@
             OpPtrEqual = 401,
             OpPtrNotEqual = 402,
             OpPtrDiff = 403,
+            OpColorAttachmentReadEXT = 4160,
+            OpDepthAttachmentReadEXT = 4161,
+            OpStencilAttachmentReadEXT = 4162,
             OpTerminateInvocation = 4416,
             OpSubgroupBallotKHR = 4421,
             OpSubgroupFirstInvocationKHR = 4422,
@@ -1633,6 +1658,10 @@
             OpRayQueryConfirmIntersectionKHR = 4476,
             OpRayQueryProceedKHR = 4477,
             OpRayQueryGetIntersectionTypeKHR = 4479,
+            OpImageSampleWeightedQCOM = 4480,
+            OpImageBoxFilterQCOM = 4481,
+            OpImageBlockMatchSSDQCOM = 4482,
+            OpImageBlockMatchSADQCOM = 4483,
             OpGroupIAddNonUniformAMD = 5000,
             OpGroupFAddNonUniformAMD = 5001,
             OpGroupFMinNonUniformAMD = 5002,
@@ -1689,6 +1718,7 @@
             OpTraceNV = 5337,
             OpTraceMotionNV = 5338,
             OpTraceRayMotionNV = 5339,
+            OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
             OpTypeAccelerationStructureKHR = 5341,
             OpTypeAccelerationStructureNV = 5341,
             OpExecuteCallableNV = 5344,
@@ -1950,6 +1980,8 @@
             OpTypeStructContinuedINTEL = 6090,
             OpConstantCompositeContinuedINTEL = 6091,
             OpSpecConstantCompositeContinuedINTEL = 6092,
+            OpConvertFToBF16INTEL = 6116,
+            OpConvertBF16ToFINTEL = 6117,
             OpControlBarrierArriveINTEL = 6142,
             OpControlBarrierWaitINTEL = 6143,
             OpGroupIMulKHR = 6401,
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.h b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.h
index f6b77ae..b8de1b8 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.h
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.h
@@ -160,6 +160,9 @@
     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
     SpvExecutionModeLocalSizeId = 38,
     SpvExecutionModeLocalSizeHintId = 39,
+    SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
+    SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
+    SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
     SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
     SpvExecutionModePostDepthCoverage = 4446,
     SpvExecutionModeDenormPreserve = 4459,
@@ -200,6 +203,7 @@
     SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
     SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
     SpvExecutionModeStreamingInterfaceINTEL = 6154,
+    SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
     SpvExecutionModeNamedBarrierCountINTEL = 6417,
     SpvExecutionModeMax = 0x7fffffff,
 } SpvExecutionMode;
@@ -218,6 +222,7 @@
     SpvStorageClassAtomicCounter = 10,
     SpvStorageClassImage = 11,
     SpvStorageClassStorageBuffer = 12,
+    SpvStorageClassTileImageEXT = 4172,
     SpvStorageClassCallableDataKHR = 5328,
     SpvStorageClassCallableDataNV = 5328,
     SpvStorageClassIncomingCallableDataKHR = 5329,
@@ -248,6 +253,7 @@
     SpvDimRect = 4,
     SpvDimBuffer = 5,
     SpvDimSubpassData = 6,
+    SpvDimTileImageDataEXT = 4173,
     SpvDimMax = 0x7fffffff,
 } SpvDim;
 
@@ -512,6 +518,8 @@
     SpvDecorationMaxByteOffsetId = 47,
     SpvDecorationNoSignedWrap = 4469,
     SpvDecorationNoUnsignedWrap = 4470,
+    SpvDecorationWeightTextureQCOM = 4487,
+    SpvDecorationBlockMatchTextureQCOM = 4488,
     SpvDecorationExplicitInterpAMD = 4999,
     SpvDecorationOverrideCoverageNV = 5248,
     SpvDecorationPassthroughNV = 5250,
@@ -580,6 +588,8 @@
     SpvDecorationSingleElementVectorINTEL = 6085,
     SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
     SpvDecorationMediaBlockIOINTEL = 6140,
+    SpvDecorationLatencyControlLabelINTEL = 6172,
+    SpvDecorationLatencyControlConstraintINTEL = 6173,
     SpvDecorationConduitKernelArgumentINTEL = 6175,
     SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
     SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
@@ -716,6 +726,7 @@
     SpvBuiltInHitKindKHR = 5333,
     SpvBuiltInHitKindNV = 5333,
     SpvBuiltInCurrentRayTimeNV = 5334,
+    SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
     SpvBuiltInIncomingRayFlagsKHR = 5351,
     SpvBuiltInIncomingRayFlagsNV = 5351,
     SpvBuiltInRayGeometryIndexKHR = 5352,
@@ -987,6 +998,9 @@
     SpvCapabilityShaderViewportIndex = 70,
     SpvCapabilityUniformDecoration = 71,
     SpvCapabilityCoreBuiltinsARM = 4165,
+    SpvCapabilityTileImageColorReadAccessEXT = 4166,
+    SpvCapabilityTileImageDepthReadAccessEXT = 4167,
+    SpvCapabilityTileImageStencilReadAccessEXT = 4168,
     SpvCapabilityFragmentShadingRateKHR = 4422,
     SpvCapabilitySubgroupBallotKHR = 4423,
     SpvCapabilityDrawParameters = 4427,
@@ -1018,6 +1032,9 @@
     SpvCapabilityRayQueryKHR = 4472,
     SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
     SpvCapabilityRayTracingKHR = 4479,
+    SpvCapabilityTextureSampleWeightedQCOM = 4484,
+    SpvCapabilityTextureBoxFilterQCOM = 4485,
+    SpvCapabilityTextureBlockMatchQCOM = 4486,
     SpvCapabilityFloat16ImageAMD = 5008,
     SpvCapabilityImageGatherBiasLodAMD = 5009,
     SpvCapabilityFragmentMaskAMD = 5010,
@@ -1066,6 +1083,7 @@
     SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
     SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    SpvCapabilityRayTracingPositionFetchKHR = 5336,
     SpvCapabilityRayTracingNV = 5340,
     SpvCapabilityRayTracingMotionBlurNV = 5341,
     SpvCapabilityVulkanMemoryModel = 5345,
@@ -1086,6 +1104,7 @@
     SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
     SpvCapabilityShaderInvocationReorderNV = 5383,
     SpvCapabilityBindlessTextureNV = 5390,
+    SpvCapabilityRayQueryPositionFetchKHR = 5391,
     SpvCapabilitySubgroupShuffleINTEL = 5568,
     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1145,7 +1164,10 @@
     SpvCapabilityOptNoneINTEL = 6094,
     SpvCapabilityAtomicFloat16AddEXT = 6095,
     SpvCapabilityDebugInfoModuleINTEL = 6114,
+    SpvCapabilityBFloat16ConversionINTEL = 6115,
     SpvCapabilitySplitBarrierINTEL = 6141,
+    SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
+    SpvCapabilityFPGALatencyControlINTEL = 6171,
     SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
     SpvCapabilityGroupUniformArithmeticKHR = 6400,
     SpvCapabilityMax = 0x7fffffff,
@@ -1599,6 +1621,9 @@
     SpvOpPtrEqual = 401,
     SpvOpPtrNotEqual = 402,
     SpvOpPtrDiff = 403,
+    SpvOpColorAttachmentReadEXT = 4160,
+    SpvOpDepthAttachmentReadEXT = 4161,
+    SpvOpStencilAttachmentReadEXT = 4162,
     SpvOpTerminateInvocation = 4416,
     SpvOpSubgroupBallotKHR = 4421,
     SpvOpSubgroupFirstInvocationKHR = 4422,
@@ -1631,6 +1656,10 @@
     SpvOpRayQueryConfirmIntersectionKHR = 4476,
     SpvOpRayQueryProceedKHR = 4477,
     SpvOpRayQueryGetIntersectionTypeKHR = 4479,
+    SpvOpImageSampleWeightedQCOM = 4480,
+    SpvOpImageBoxFilterQCOM = 4481,
+    SpvOpImageBlockMatchSSDQCOM = 4482,
+    SpvOpImageBlockMatchSADQCOM = 4483,
     SpvOpGroupIAddNonUniformAMD = 5000,
     SpvOpGroupFAddNonUniformAMD = 5001,
     SpvOpGroupFMinNonUniformAMD = 5002,
@@ -1687,6 +1716,7 @@
     SpvOpTraceNV = 5337,
     SpvOpTraceMotionNV = 5338,
     SpvOpTraceRayMotionNV = 5339,
+    SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     SpvOpTypeAccelerationStructureKHR = 5341,
     SpvOpTypeAccelerationStructureNV = 5341,
     SpvOpExecuteCallableNV = 5344,
@@ -1948,6 +1978,8 @@
     SpvOpTypeStructContinuedINTEL = 6090,
     SpvOpConstantCompositeContinuedINTEL = 6091,
     SpvOpSpecConstantCompositeContinuedINTEL = 6092,
+    SpvOpConvertFToBF16INTEL = 6116,
+    SpvOpConvertBF16ToFINTEL = 6117,
     SpvOpControlBarrierArriveINTEL = 6142,
     SpvOpControlBarrierWaitINTEL = 6143,
     SpvOpGroupIMulKHR = 6401,
@@ -2313,6 +2345,9 @@
     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;
@@ -2339,6 +2374,10 @@
     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;
@@ -2394,6 +2433,7 @@
     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;
@@ -2651,6 +2691,8 @@
     case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; 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/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp
index 1a901db..421d684 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp
@@ -156,6 +156,9 @@
     ExecutionModeSubgroupsPerWorkgroupId = 37,
     ExecutionModeLocalSizeId = 38,
     ExecutionModeLocalSizeHintId = 39,
+    ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
+    ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
+    ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
     ExecutionModeSubgroupUniformControlFlowKHR = 4421,
     ExecutionModePostDepthCoverage = 4446,
     ExecutionModeDenormPreserve = 4459,
@@ -196,6 +199,7 @@
     ExecutionModeNumSIMDWorkitemsINTEL = 5896,
     ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
     ExecutionModeStreamingInterfaceINTEL = 6154,
+    ExecutionModeRegisterMapInterfaceINTEL = 6160,
     ExecutionModeNamedBarrierCountINTEL = 6417,
     ExecutionModeMax = 0x7fffffff,
 };
@@ -214,6 +218,7 @@
     StorageClassAtomicCounter = 10,
     StorageClassImage = 11,
     StorageClassStorageBuffer = 12,
+    StorageClassTileImageEXT = 4172,
     StorageClassCallableDataKHR = 5328,
     StorageClassCallableDataNV = 5328,
     StorageClassIncomingCallableDataKHR = 5329,
@@ -244,6 +249,7 @@
     DimRect = 4,
     DimBuffer = 5,
     DimSubpassData = 6,
+    DimTileImageDataEXT = 4173,
     DimMax = 0x7fffffff,
 };
 
@@ -508,6 +514,8 @@
     DecorationMaxByteOffsetId = 47,
     DecorationNoSignedWrap = 4469,
     DecorationNoUnsignedWrap = 4470,
+    DecorationWeightTextureQCOM = 4487,
+    DecorationBlockMatchTextureQCOM = 4488,
     DecorationExplicitInterpAMD = 4999,
     DecorationOverrideCoverageNV = 5248,
     DecorationPassthroughNV = 5250,
@@ -576,6 +584,8 @@
     DecorationSingleElementVectorINTEL = 6085,
     DecorationVectorComputeCallableFunctionINTEL = 6087,
     DecorationMediaBlockIOINTEL = 6140,
+    DecorationLatencyControlLabelINTEL = 6172,
+    DecorationLatencyControlConstraintINTEL = 6173,
     DecorationConduitKernelArgumentINTEL = 6175,
     DecorationRegisterMapKernelArgumentINTEL = 6176,
     DecorationMMHostInterfaceAddressWidthINTEL = 6177,
@@ -712,6 +722,7 @@
     BuiltInHitKindKHR = 5333,
     BuiltInHitKindNV = 5333,
     BuiltInCurrentRayTimeNV = 5334,
+    BuiltInHitTriangleVertexPositionsKHR = 5335,
     BuiltInIncomingRayFlagsKHR = 5351,
     BuiltInIncomingRayFlagsNV = 5351,
     BuiltInRayGeometryIndexKHR = 5352,
@@ -983,6 +994,9 @@
     CapabilityShaderViewportIndex = 70,
     CapabilityUniformDecoration = 71,
     CapabilityCoreBuiltinsARM = 4165,
+    CapabilityTileImageColorReadAccessEXT = 4166,
+    CapabilityTileImageDepthReadAccessEXT = 4167,
+    CapabilityTileImageStencilReadAccessEXT = 4168,
     CapabilityFragmentShadingRateKHR = 4422,
     CapabilitySubgroupBallotKHR = 4423,
     CapabilityDrawParameters = 4427,
@@ -1014,6 +1028,9 @@
     CapabilityRayQueryKHR = 4472,
     CapabilityRayTraversalPrimitiveCullingKHR = 4478,
     CapabilityRayTracingKHR = 4479,
+    CapabilityTextureSampleWeightedQCOM = 4484,
+    CapabilityTextureBoxFilterQCOM = 4485,
+    CapabilityTextureBlockMatchQCOM = 4486,
     CapabilityFloat16ImageAMD = 5008,
     CapabilityImageGatherBiasLodAMD = 5009,
     CapabilityFragmentMaskAMD = 5010,
@@ -1062,6 +1079,7 @@
     CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
     CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    CapabilityRayTracingPositionFetchKHR = 5336,
     CapabilityRayTracingNV = 5340,
     CapabilityRayTracingMotionBlurNV = 5341,
     CapabilityVulkanMemoryModel = 5345,
@@ -1082,6 +1100,7 @@
     CapabilityRayTracingOpacityMicromapEXT = 5381,
     CapabilityShaderInvocationReorderNV = 5383,
     CapabilityBindlessTextureNV = 5390,
+    CapabilityRayQueryPositionFetchKHR = 5391,
     CapabilitySubgroupShuffleINTEL = 5568,
     CapabilitySubgroupBufferBlockIOINTEL = 5569,
     CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1141,7 +1160,10 @@
     CapabilityOptNoneINTEL = 6094,
     CapabilityAtomicFloat16AddEXT = 6095,
     CapabilityDebugInfoModuleINTEL = 6114,
+    CapabilityBFloat16ConversionINTEL = 6115,
     CapabilitySplitBarrierINTEL = 6141,
+    CapabilityFPGAKernelAttributesv2INTEL = 6161,
+    CapabilityFPGALatencyControlINTEL = 6171,
     CapabilityFPGAArgumentInterfacesINTEL = 6174,
     CapabilityGroupUniformArithmeticKHR = 6400,
     CapabilityMax = 0x7fffffff,
@@ -1595,6 +1617,9 @@
     OpPtrEqual = 401,
     OpPtrNotEqual = 402,
     OpPtrDiff = 403,
+    OpColorAttachmentReadEXT = 4160,
+    OpDepthAttachmentReadEXT = 4161,
+    OpStencilAttachmentReadEXT = 4162,
     OpTerminateInvocation = 4416,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
@@ -1627,6 +1652,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1683,6 +1712,7 @@
     OpTraceNV = 5337,
     OpTraceMotionNV = 5338,
     OpTraceRayMotionNV = 5339,
+    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -1944,6 +1974,8 @@
     OpTypeStructContinuedINTEL = 6090,
     OpConstantCompositeContinuedINTEL = 6091,
     OpSpecConstantCompositeContinuedINTEL = 6092,
+    OpConvertFToBF16INTEL = 6116,
+    OpConvertBF16ToFINTEL = 6117,
     OpControlBarrierArriveINTEL = 6142,
     OpControlBarrierWaitINTEL = 6143,
     OpGroupIMulKHR = 6401,
@@ -2309,6 +2341,9 @@
     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;
@@ -2335,6 +2370,10 @@
     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;
@@ -2390,6 +2429,7 @@
     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;
@@ -2647,6 +2687,8 @@
     case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; 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;
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp11 b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp11
index b7d041a..5b643ae 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp11
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.hpp11
@@ -156,6 +156,9 @@
     SubgroupsPerWorkgroupId = 37,
     LocalSizeId = 38,
     LocalSizeHintId = 39,
+    NonCoherentColorAttachmentReadEXT = 4169,
+    NonCoherentDepthAttachmentReadEXT = 4170,
+    NonCoherentStencilAttachmentReadEXT = 4171,
     SubgroupUniformControlFlowKHR = 4421,
     PostDepthCoverage = 4446,
     DenormPreserve = 4459,
@@ -196,6 +199,7 @@
     NumSIMDWorkitemsINTEL = 5896,
     SchedulerTargetFmaxMhzINTEL = 5903,
     StreamingInterfaceINTEL = 6154,
+    RegisterMapInterfaceINTEL = 6160,
     NamedBarrierCountINTEL = 6417,
     Max = 0x7fffffff,
 };
@@ -214,6 +218,7 @@
     AtomicCounter = 10,
     Image = 11,
     StorageBuffer = 12,
+    TileImageEXT = 4172,
     CallableDataKHR = 5328,
     CallableDataNV = 5328,
     IncomingCallableDataKHR = 5329,
@@ -244,6 +249,7 @@
     Rect = 4,
     Buffer = 5,
     SubpassData = 6,
+    TileImageDataEXT = 4173,
     Max = 0x7fffffff,
 };
 
@@ -508,6 +514,8 @@
     MaxByteOffsetId = 47,
     NoSignedWrap = 4469,
     NoUnsignedWrap = 4470,
+    WeightTextureQCOM = 4487,
+    BlockMatchTextureQCOM = 4488,
     ExplicitInterpAMD = 4999,
     OverrideCoverageNV = 5248,
     PassthroughNV = 5250,
@@ -576,6 +584,8 @@
     SingleElementVectorINTEL = 6085,
     VectorComputeCallableFunctionINTEL = 6087,
     MediaBlockIOINTEL = 6140,
+    LatencyControlLabelINTEL = 6172,
+    LatencyControlConstraintINTEL = 6173,
     ConduitKernelArgumentINTEL = 6175,
     RegisterMapKernelArgumentINTEL = 6176,
     MMHostInterfaceAddressWidthINTEL = 6177,
@@ -712,6 +722,7 @@
     HitKindKHR = 5333,
     HitKindNV = 5333,
     CurrentRayTimeNV = 5334,
+    HitTriangleVertexPositionsKHR = 5335,
     IncomingRayFlagsKHR = 5351,
     IncomingRayFlagsNV = 5351,
     RayGeometryIndexKHR = 5352,
@@ -983,6 +994,9 @@
     ShaderViewportIndex = 70,
     UniformDecoration = 71,
     CoreBuiltinsARM = 4165,
+    TileImageColorReadAccessEXT = 4166,
+    TileImageDepthReadAccessEXT = 4167,
+    TileImageStencilReadAccessEXT = 4168,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
     DrawParameters = 4427,
@@ -1014,6 +1028,9 @@
     RayQueryKHR = 4472,
     RayTraversalPrimitiveCullingKHR = 4478,
     RayTracingKHR = 4479,
+    TextureSampleWeightedQCOM = 4484,
+    TextureBoxFilterQCOM = 4485,
+    TextureBlockMatchQCOM = 4486,
     Float16ImageAMD = 5008,
     ImageGatherBiasLodAMD = 5009,
     FragmentMaskAMD = 5010,
@@ -1062,6 +1079,7 @@
     UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     StorageTexelBufferArrayNonUniformIndexing = 5312,
     StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    RayTracingPositionFetchKHR = 5336,
     RayTracingNV = 5340,
     RayTracingMotionBlurNV = 5341,
     VulkanMemoryModel = 5345,
@@ -1082,6 +1100,7 @@
     RayTracingOpacityMicromapEXT = 5381,
     ShaderInvocationReorderNV = 5383,
     BindlessTextureNV = 5390,
+    RayQueryPositionFetchKHR = 5391,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
     SubgroupImageBlockIOINTEL = 5570,
@@ -1141,7 +1160,10 @@
     OptNoneINTEL = 6094,
     AtomicFloat16AddEXT = 6095,
     DebugInfoModuleINTEL = 6114,
+    BFloat16ConversionINTEL = 6115,
     SplitBarrierINTEL = 6141,
+    FPGAKernelAttributesv2INTEL = 6161,
+    FPGALatencyControlINTEL = 6171,
     FPGAArgumentInterfacesINTEL = 6174,
     GroupUniformArithmeticKHR = 6400,
     Max = 0x7fffffff,
@@ -1595,6 +1617,9 @@
     OpPtrEqual = 401,
     OpPtrNotEqual = 402,
     OpPtrDiff = 403,
+    OpColorAttachmentReadEXT = 4160,
+    OpDepthAttachmentReadEXT = 4161,
+    OpStencilAttachmentReadEXT = 4162,
     OpTerminateInvocation = 4416,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
@@ -1627,6 +1652,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1683,6 +1712,7 @@
     OpTraceNV = 5337,
     OpTraceMotionNV = 5338,
     OpTraceRayMotionNV = 5339,
+    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -1944,6 +1974,8 @@
     OpTypeStructContinuedINTEL = 6090,
     OpConstantCompositeContinuedINTEL = 6091,
     OpSpecConstantCompositeContinuedINTEL = 6092,
+    OpConvertFToBF16INTEL = 6116,
+    OpConvertBF16ToFINTEL = 6117,
     OpControlBarrierArriveINTEL = 6142,
     OpControlBarrierWaitINTEL = 6143,
     OpGroupIMulKHR = 6401,
@@ -2309,6 +2341,9 @@
     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;
@@ -2335,6 +2370,10 @@
     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;
@@ -2390,6 +2429,7 @@
     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;
@@ -2647,6 +2687,8 @@
     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::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;
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.json b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.json
index 06e3a90..908fe05 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.json
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.json
@@ -175,6 +175,9 @@
                     "SubgroupsPerWorkgroupId": 37,
                     "LocalSizeId": 38,
                     "LocalSizeHintId": 39,
+                    "NonCoherentColorAttachmentReadEXT": 4169,
+                    "NonCoherentDepthAttachmentReadEXT": 4170,
+                    "NonCoherentStencilAttachmentReadEXT": 4171,
                     "SubgroupUniformControlFlowKHR": 4421,
                     "PostDepthCoverage": 4446,
                     "DenormPreserve": 4459,
@@ -215,6 +218,7 @@
                     "NumSIMDWorkitemsINTEL": 5896,
                     "SchedulerTargetFmaxMhzINTEL": 5903,
                     "StreamingInterfaceINTEL": 6154,
+                    "RegisterMapInterfaceINTEL": 6160,
                     "NamedBarrierCountINTEL": 6417
                 }
             },
@@ -236,6 +240,7 @@
                     "AtomicCounter": 10,
                     "Image": 11,
                     "StorageBuffer": 12,
+                    "TileImageEXT": 4172,
                     "CallableDataKHR": 5328,
                     "CallableDataNV": 5328,
                     "IncomingCallableDataKHR": 5329,
@@ -268,7 +273,8 @@
                     "Cube": 3,
                     "Rect": 4,
                     "Buffer": 5,
-                    "SubpassData": 6
+                    "SubpassData": 6,
+                    "TileImageDataEXT": 4173
                 }
             },
             {
@@ -534,6 +540,8 @@
                     "MaxByteOffsetId": 47,
                     "NoSignedWrap": 4469,
                     "NoUnsignedWrap": 4470,
+                    "WeightTextureQCOM": 4487,
+                    "BlockMatchTextureQCOM": 4488,
                     "ExplicitInterpAMD": 4999,
                     "OverrideCoverageNV": 5248,
                     "PassthroughNV": 5250,
@@ -602,6 +610,8 @@
                     "SingleElementVectorINTEL": 6085,
                     "VectorComputeCallableFunctionINTEL": 6087,
                     "MediaBlockIOINTEL": 6140,
+                    "LatencyControlLabelINTEL": 6172,
+                    "LatencyControlConstraintINTEL": 6173,
                     "ConduitKernelArgumentINTEL": 6175,
                     "RegisterMapKernelArgumentINTEL": 6176,
                     "MMHostInterfaceAddressWidthINTEL": 6177,
@@ -741,6 +751,7 @@
                     "HitKindKHR": 5333,
                     "HitKindNV": 5333,
                     "CurrentRayTimeNV": 5334,
+                    "HitTriangleVertexPositionsKHR": 5335,
                     "IncomingRayFlagsKHR": 5351,
                     "IncomingRayFlagsNV": 5351,
                     "RayGeometryIndexKHR": 5352,
@@ -963,6 +974,9 @@
                     "ShaderViewportIndex": 70,
                     "UniformDecoration": 71,
                     "CoreBuiltinsARM": 4165,
+                    "TileImageColorReadAccessEXT": 4166,
+                    "TileImageDepthReadAccessEXT": 4167,
+                    "TileImageStencilReadAccessEXT": 4168,
                     "FragmentShadingRateKHR": 4422,
                     "SubgroupBallotKHR": 4423,
                     "DrawParameters": 4427,
@@ -994,6 +1008,9 @@
                     "RayQueryKHR": 4472,
                     "RayTraversalPrimitiveCullingKHR": 4478,
                     "RayTracingKHR": 4479,
+                    "TextureSampleWeightedQCOM": 4484,
+                    "TextureBoxFilterQCOM": 4485,
+                    "TextureBlockMatchQCOM": 4486,
                     "Float16ImageAMD": 5008,
                     "ImageGatherBiasLodAMD": 5009,
                     "FragmentMaskAMD": 5010,
@@ -1042,6 +1059,7 @@
                     "UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
                     "StorageTexelBufferArrayNonUniformIndexing": 5312,
                     "StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
+                    "RayTracingPositionFetchKHR": 5336,
                     "RayTracingNV": 5340,
                     "RayTracingMotionBlurNV": 5341,
                     "VulkanMemoryModel": 5345,
@@ -1062,6 +1080,7 @@
                     "RayTracingOpacityMicromapEXT": 5381,
                     "ShaderInvocationReorderNV": 5383,
                     "BindlessTextureNV": 5390,
+                    "RayQueryPositionFetchKHR": 5391,
                     "SubgroupShuffleINTEL": 5568,
                     "SubgroupBufferBlockIOINTEL": 5569,
                     "SubgroupImageBlockIOINTEL": 5570,
@@ -1121,7 +1140,10 @@
                     "OptNoneINTEL": 6094,
                     "AtomicFloat16AddEXT": 6095,
                     "DebugInfoModuleINTEL": 6114,
+                    "BFloat16ConversionINTEL": 6115,
                     "SplitBarrierINTEL": 6141,
+                    "FPGAKernelAttributesv2INTEL": 6161,
+                    "FPGALatencyControlINTEL": 6171,
                     "FPGAArgumentInterfacesINTEL": 6174,
                     "GroupUniformArithmeticKHR": 6400
                 }
@@ -1585,6 +1607,9 @@
                     "OpPtrEqual": 401,
                     "OpPtrNotEqual": 402,
                     "OpPtrDiff": 403,
+                    "OpColorAttachmentReadEXT": 4160,
+                    "OpDepthAttachmentReadEXT": 4161,
+                    "OpStencilAttachmentReadEXT": 4162,
                     "OpTerminateInvocation": 4416,
                     "OpSubgroupBallotKHR": 4421,
                     "OpSubgroupFirstInvocationKHR": 4422,
@@ -1617,6 +1642,10 @@
                     "OpRayQueryConfirmIntersectionKHR": 4476,
                     "OpRayQueryProceedKHR": 4477,
                     "OpRayQueryGetIntersectionTypeKHR": 4479,
+                    "OpImageSampleWeightedQCOM": 4480,
+                    "OpImageBoxFilterQCOM": 4481,
+                    "OpImageBlockMatchSSDQCOM": 4482,
+                    "OpImageBlockMatchSADQCOM": 4483,
                     "OpGroupIAddNonUniformAMD": 5000,
                     "OpGroupFAddNonUniformAMD": 5001,
                     "OpGroupFMinNonUniformAMD": 5002,
@@ -1673,6 +1702,7 @@
                     "OpTraceNV": 5337,
                     "OpTraceMotionNV": 5338,
                     "OpTraceRayMotionNV": 5339,
+                    "OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340,
                     "OpTypeAccelerationStructureKHR": 5341,
                     "OpTypeAccelerationStructureNV": 5341,
                     "OpExecuteCallableNV": 5344,
@@ -1934,6 +1964,8 @@
                     "OpTypeStructContinuedINTEL": 6090,
                     "OpConstantCompositeContinuedINTEL": 6091,
                     "OpSpecConstantCompositeContinuedINTEL": 6092,
+                    "OpConvertFToBF16INTEL": 6116,
+                    "OpConvertBF16ToFINTEL": 6117,
                     "OpControlBarrierArriveINTEL": 6142,
                     "OpControlBarrierWaitINTEL": 6143,
                     "OpGroupIMulKHR": 6401,
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.lua b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.lua
index 42e295f..7e64fa6 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.lua
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.lua
@@ -143,6 +143,9 @@
         SubgroupsPerWorkgroupId = 37,
         LocalSizeId = 38,
         LocalSizeHintId = 39,
+        NonCoherentColorAttachmentReadEXT = 4169,
+        NonCoherentDepthAttachmentReadEXT = 4170,
+        NonCoherentStencilAttachmentReadEXT = 4171,
         SubgroupUniformControlFlowKHR = 4421,
         PostDepthCoverage = 4446,
         DenormPreserve = 4459,
@@ -183,6 +186,7 @@
         NumSIMDWorkitemsINTEL = 5896,
         SchedulerTargetFmaxMhzINTEL = 5903,
         StreamingInterfaceINTEL = 6154,
+        RegisterMapInterfaceINTEL = 6160,
         NamedBarrierCountINTEL = 6417,
     },
 
@@ -200,6 +204,7 @@
         AtomicCounter = 10,
         Image = 11,
         StorageBuffer = 12,
+        TileImageEXT = 4172,
         CallableDataKHR = 5328,
         CallableDataNV = 5328,
         IncomingCallableDataKHR = 5329,
@@ -229,6 +234,7 @@
         Rect = 4,
         Buffer = 5,
         SubpassData = 6,
+        TileImageDataEXT = 4173,
     },
 
     SamplerAddressingMode = {
@@ -481,6 +487,8 @@
         MaxByteOffsetId = 47,
         NoSignedWrap = 4469,
         NoUnsignedWrap = 4470,
+        WeightTextureQCOM = 4487,
+        BlockMatchTextureQCOM = 4488,
         ExplicitInterpAMD = 4999,
         OverrideCoverageNV = 5248,
         PassthroughNV = 5250,
@@ -549,6 +557,8 @@
         SingleElementVectorINTEL = 6085,
         VectorComputeCallableFunctionINTEL = 6087,
         MediaBlockIOINTEL = 6140,
+        LatencyControlLabelINTEL = 6172,
+        LatencyControlConstraintINTEL = 6173,
         ConduitKernelArgumentINTEL = 6175,
         RegisterMapKernelArgumentINTEL = 6176,
         MMHostInterfaceAddressWidthINTEL = 6177,
@@ -684,6 +694,7 @@
         HitKindKHR = 5333,
         HitKindNV = 5333,
         CurrentRayTimeNV = 5334,
+        HitTriangleVertexPositionsKHR = 5335,
         IncomingRayFlagsKHR = 5351,
         IncomingRayFlagsNV = 5351,
         RayGeometryIndexKHR = 5352,
@@ -945,6 +956,9 @@
         ShaderViewportIndex = 70,
         UniformDecoration = 71,
         CoreBuiltinsARM = 4165,
+        TileImageColorReadAccessEXT = 4166,
+        TileImageDepthReadAccessEXT = 4167,
+        TileImageStencilReadAccessEXT = 4168,
         FragmentShadingRateKHR = 4422,
         SubgroupBallotKHR = 4423,
         DrawParameters = 4427,
@@ -976,6 +990,9 @@
         RayQueryKHR = 4472,
         RayTraversalPrimitiveCullingKHR = 4478,
         RayTracingKHR = 4479,
+        TextureSampleWeightedQCOM = 4484,
+        TextureBoxFilterQCOM = 4485,
+        TextureBlockMatchQCOM = 4486,
         Float16ImageAMD = 5008,
         ImageGatherBiasLodAMD = 5009,
         FragmentMaskAMD = 5010,
@@ -1024,6 +1041,7 @@
         UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
         StorageTexelBufferArrayNonUniformIndexing = 5312,
         StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+        RayTracingPositionFetchKHR = 5336,
         RayTracingNV = 5340,
         RayTracingMotionBlurNV = 5341,
         VulkanMemoryModel = 5345,
@@ -1044,6 +1062,7 @@
         RayTracingOpacityMicromapEXT = 5381,
         ShaderInvocationReorderNV = 5383,
         BindlessTextureNV = 5390,
+        RayQueryPositionFetchKHR = 5391,
         SubgroupShuffleINTEL = 5568,
         SubgroupBufferBlockIOINTEL = 5569,
         SubgroupImageBlockIOINTEL = 5570,
@@ -1103,7 +1122,10 @@
         OptNoneINTEL = 6094,
         AtomicFloat16AddEXT = 6095,
         DebugInfoModuleINTEL = 6114,
+        BFloat16ConversionINTEL = 6115,
         SplitBarrierINTEL = 6141,
+        FPGAKernelAttributesv2INTEL = 6161,
+        FPGALatencyControlINTEL = 6171,
         FPGAArgumentInterfacesINTEL = 6174,
         GroupUniformArithmeticKHR = 6400,
     },
@@ -1546,6 +1568,9 @@
         OpPtrEqual = 401,
         OpPtrNotEqual = 402,
         OpPtrDiff = 403,
+        OpColorAttachmentReadEXT = 4160,
+        OpDepthAttachmentReadEXT = 4161,
+        OpStencilAttachmentReadEXT = 4162,
         OpTerminateInvocation = 4416,
         OpSubgroupBallotKHR = 4421,
         OpSubgroupFirstInvocationKHR = 4422,
@@ -1578,6 +1603,10 @@
         OpRayQueryConfirmIntersectionKHR = 4476,
         OpRayQueryProceedKHR = 4477,
         OpRayQueryGetIntersectionTypeKHR = 4479,
+        OpImageSampleWeightedQCOM = 4480,
+        OpImageBoxFilterQCOM = 4481,
+        OpImageBlockMatchSSDQCOM = 4482,
+        OpImageBlockMatchSADQCOM = 4483,
         OpGroupIAddNonUniformAMD = 5000,
         OpGroupFAddNonUniformAMD = 5001,
         OpGroupFMinNonUniformAMD = 5002,
@@ -1634,6 +1663,7 @@
         OpTraceNV = 5337,
         OpTraceMotionNV = 5338,
         OpTraceRayMotionNV = 5339,
+        OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
         OpTypeAccelerationStructureKHR = 5341,
         OpTypeAccelerationStructureNV = 5341,
         OpExecuteCallableNV = 5344,
@@ -1895,6 +1925,8 @@
         OpTypeStructContinuedINTEL = 6090,
         OpConstantCompositeContinuedINTEL = 6091,
         OpSpecConstantCompositeContinuedINTEL = 6092,
+        OpConvertFToBF16INTEL = 6116,
+        OpConvertBF16ToFINTEL = 6117,
         OpControlBarrierArriveINTEL = 6142,
         OpControlBarrierWaitINTEL = 6143,
         OpGroupIMulKHR = 6401,
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.py b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.py
index f032cc9..7a9e8ee 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spirv.py
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spirv.py
@@ -143,6 +143,9 @@
         'SubgroupsPerWorkgroupId' : 37,
         'LocalSizeId' : 38,
         'LocalSizeHintId' : 39,
+        'NonCoherentColorAttachmentReadEXT' : 4169,
+        'NonCoherentDepthAttachmentReadEXT' : 4170,
+        'NonCoherentStencilAttachmentReadEXT' : 4171,
         'SubgroupUniformControlFlowKHR' : 4421,
         'PostDepthCoverage' : 4446,
         'DenormPreserve' : 4459,
@@ -183,6 +186,7 @@
         'NumSIMDWorkitemsINTEL' : 5896,
         'SchedulerTargetFmaxMhzINTEL' : 5903,
         'StreamingInterfaceINTEL' : 6154,
+        'RegisterMapInterfaceINTEL' : 6160,
         'NamedBarrierCountINTEL' : 6417,
     },
 
@@ -200,6 +204,7 @@
         'AtomicCounter' : 10,
         'Image' : 11,
         'StorageBuffer' : 12,
+        'TileImageEXT' : 4172,
         'CallableDataKHR' : 5328,
         'CallableDataNV' : 5328,
         'IncomingCallableDataKHR' : 5329,
@@ -229,6 +234,7 @@
         'Rect' : 4,
         'Buffer' : 5,
         'SubpassData' : 6,
+        'TileImageDataEXT' : 4173,
     },
 
     'SamplerAddressingMode' : {
@@ -481,6 +487,8 @@
         'MaxByteOffsetId' : 47,
         'NoSignedWrap' : 4469,
         'NoUnsignedWrap' : 4470,
+        'WeightTextureQCOM' : 4487,
+        'BlockMatchTextureQCOM' : 4488,
         'ExplicitInterpAMD' : 4999,
         'OverrideCoverageNV' : 5248,
         'PassthroughNV' : 5250,
@@ -549,6 +557,8 @@
         'SingleElementVectorINTEL' : 6085,
         'VectorComputeCallableFunctionINTEL' : 6087,
         'MediaBlockIOINTEL' : 6140,
+        'LatencyControlLabelINTEL' : 6172,
+        'LatencyControlConstraintINTEL' : 6173,
         'ConduitKernelArgumentINTEL' : 6175,
         'RegisterMapKernelArgumentINTEL' : 6176,
         'MMHostInterfaceAddressWidthINTEL' : 6177,
@@ -684,6 +694,7 @@
         'HitKindKHR' : 5333,
         'HitKindNV' : 5333,
         'CurrentRayTimeNV' : 5334,
+        'HitTriangleVertexPositionsKHR' : 5335,
         'IncomingRayFlagsKHR' : 5351,
         'IncomingRayFlagsNV' : 5351,
         'RayGeometryIndexKHR' : 5352,
@@ -945,6 +956,9 @@
         'ShaderViewportIndex' : 70,
         'UniformDecoration' : 71,
         'CoreBuiltinsARM' : 4165,
+        'TileImageColorReadAccessEXT' : 4166,
+        'TileImageDepthReadAccessEXT' : 4167,
+        'TileImageStencilReadAccessEXT' : 4168,
         'FragmentShadingRateKHR' : 4422,
         'SubgroupBallotKHR' : 4423,
         'DrawParameters' : 4427,
@@ -976,6 +990,9 @@
         'RayQueryKHR' : 4472,
         'RayTraversalPrimitiveCullingKHR' : 4478,
         'RayTracingKHR' : 4479,
+        'TextureSampleWeightedQCOM' : 4484,
+        'TextureBoxFilterQCOM' : 4485,
+        'TextureBlockMatchQCOM' : 4486,
         'Float16ImageAMD' : 5008,
         'ImageGatherBiasLodAMD' : 5009,
         'FragmentMaskAMD' : 5010,
@@ -1024,6 +1041,7 @@
         'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
         'StorageTexelBufferArrayNonUniformIndexing' : 5312,
         'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
+        'RayTracingPositionFetchKHR' : 5336,
         'RayTracingNV' : 5340,
         'RayTracingMotionBlurNV' : 5341,
         'VulkanMemoryModel' : 5345,
@@ -1044,6 +1062,7 @@
         'RayTracingOpacityMicromapEXT' : 5381,
         'ShaderInvocationReorderNV' : 5383,
         'BindlessTextureNV' : 5390,
+        'RayQueryPositionFetchKHR' : 5391,
         'SubgroupShuffleINTEL' : 5568,
         'SubgroupBufferBlockIOINTEL' : 5569,
         'SubgroupImageBlockIOINTEL' : 5570,
@@ -1103,7 +1122,10 @@
         'OptNoneINTEL' : 6094,
         'AtomicFloat16AddEXT' : 6095,
         'DebugInfoModuleINTEL' : 6114,
+        'BFloat16ConversionINTEL' : 6115,
         'SplitBarrierINTEL' : 6141,
+        'FPGAKernelAttributesv2INTEL' : 6161,
+        'FPGALatencyControlINTEL' : 6171,
         'FPGAArgumentInterfacesINTEL' : 6174,
         'GroupUniformArithmeticKHR' : 6400,
     },
@@ -1546,6 +1568,9 @@
         'OpPtrEqual' : 401,
         'OpPtrNotEqual' : 402,
         'OpPtrDiff' : 403,
+        'OpColorAttachmentReadEXT' : 4160,
+        'OpDepthAttachmentReadEXT' : 4161,
+        'OpStencilAttachmentReadEXT' : 4162,
         'OpTerminateInvocation' : 4416,
         'OpSubgroupBallotKHR' : 4421,
         'OpSubgroupFirstInvocationKHR' : 4422,
@@ -1578,6 +1603,10 @@
         'OpRayQueryConfirmIntersectionKHR' : 4476,
         'OpRayQueryProceedKHR' : 4477,
         'OpRayQueryGetIntersectionTypeKHR' : 4479,
+        'OpImageSampleWeightedQCOM' : 4480,
+        'OpImageBoxFilterQCOM' : 4481,
+        'OpImageBlockMatchSSDQCOM' : 4482,
+        'OpImageBlockMatchSADQCOM' : 4483,
         'OpGroupIAddNonUniformAMD' : 5000,
         'OpGroupFAddNonUniformAMD' : 5001,
         'OpGroupFMinNonUniformAMD' : 5002,
@@ -1634,6 +1663,7 @@
         'OpTraceNV' : 5337,
         'OpTraceMotionNV' : 5338,
         'OpTraceRayMotionNV' : 5339,
+        'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340,
         'OpTypeAccelerationStructureKHR' : 5341,
         'OpTypeAccelerationStructureNV' : 5341,
         'OpExecuteCallableNV' : 5344,
@@ -1895,6 +1925,8 @@
         'OpTypeStructContinuedINTEL' : 6090,
         'OpConstantCompositeContinuedINTEL' : 6091,
         'OpSpecConstantCompositeContinuedINTEL' : 6092,
+        'OpConvertFToBF16INTEL' : 6116,
+        'OpConvertBF16ToFINTEL' : 6117,
         'OpControlBarrierArriveINTEL' : 6142,
         'OpControlBarrierWaitINTEL' : 6143,
         'OpGroupIMulKHR' : 6401,
diff --git a/third_party/SPIRV-Headers/include/spirv/unified1/spv.d b/third_party/SPIRV-Headers/include/spirv/unified1/spv.d
index 9a79c2f..8c85024 100644
--- a/third_party/SPIRV-Headers/include/spirv/unified1/spv.d
+++ b/third_party/SPIRV-Headers/include/spirv/unified1/spv.d
@@ -155,6 +155,9 @@
     SubgroupsPerWorkgroupId = 37,
     LocalSizeId = 38,
     LocalSizeHintId = 39,
+    NonCoherentColorAttachmentReadEXT = 4169,
+    NonCoherentDepthAttachmentReadEXT = 4170,
+    NonCoherentStencilAttachmentReadEXT = 4171,
     SubgroupUniformControlFlowKHR = 4421,
     PostDepthCoverage = 4446,
     DenormPreserve = 4459,
@@ -195,6 +198,7 @@
     NumSIMDWorkitemsINTEL = 5896,
     SchedulerTargetFmaxMhzINTEL = 5903,
     StreamingInterfaceINTEL = 6154,
+    RegisterMapInterfaceINTEL = 6160,
     NamedBarrierCountINTEL = 6417,
 }
 
@@ -213,6 +217,7 @@
     AtomicCounter = 10,
     Image = 11,
     StorageBuffer = 12,
+    TileImageEXT = 4172,
     CallableDataKHR = 5328,
     CallableDataNV = 5328,
     IncomingCallableDataKHR = 5329,
@@ -243,6 +248,7 @@
     Rect = 4,
     Buffer = 5,
     SubpassData = 6,
+    TileImageDataEXT = 4173,
 }
 
 enum SamplerAddressingMode : uint
@@ -509,6 +515,8 @@
     MaxByteOffsetId = 47,
     NoSignedWrap = 4469,
     NoUnsignedWrap = 4470,
+    WeightTextureQCOM = 4487,
+    BlockMatchTextureQCOM = 4488,
     ExplicitInterpAMD = 4999,
     OverrideCoverageNV = 5248,
     PassthroughNV = 5250,
@@ -577,6 +585,8 @@
     SingleElementVectorINTEL = 6085,
     VectorComputeCallableFunctionINTEL = 6087,
     MediaBlockIOINTEL = 6140,
+    LatencyControlLabelINTEL = 6172,
+    LatencyControlConstraintINTEL = 6173,
     ConduitKernelArgumentINTEL = 6175,
     RegisterMapKernelArgumentINTEL = 6176,
     MMHostInterfaceAddressWidthINTEL = 6177,
@@ -713,6 +723,7 @@
     HitKindKHR = 5333,
     HitKindNV = 5333,
     CurrentRayTimeNV = 5334,
+    HitTriangleVertexPositionsKHR = 5335,
     IncomingRayFlagsKHR = 5351,
     IncomingRayFlagsNV = 5351,
     RayGeometryIndexKHR = 5352,
@@ -990,6 +1001,9 @@
     ShaderViewportIndex = 70,
     UniformDecoration = 71,
     CoreBuiltinsARM = 4165,
+    TileImageColorReadAccessEXT = 4166,
+    TileImageDepthReadAccessEXT = 4167,
+    TileImageStencilReadAccessEXT = 4168,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
     DrawParameters = 4427,
@@ -1021,6 +1035,9 @@
     RayQueryKHR = 4472,
     RayTraversalPrimitiveCullingKHR = 4478,
     RayTracingKHR = 4479,
+    TextureSampleWeightedQCOM = 4484,
+    TextureBoxFilterQCOM = 4485,
+    TextureBlockMatchQCOM = 4486,
     Float16ImageAMD = 5008,
     ImageGatherBiasLodAMD = 5009,
     FragmentMaskAMD = 5010,
@@ -1069,6 +1086,7 @@
     UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     StorageTexelBufferArrayNonUniformIndexing = 5312,
     StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    RayTracingPositionFetchKHR = 5336,
     RayTracingNV = 5340,
     RayTracingMotionBlurNV = 5341,
     VulkanMemoryModel = 5345,
@@ -1089,6 +1107,7 @@
     RayTracingOpacityMicromapEXT = 5381,
     ShaderInvocationReorderNV = 5383,
     BindlessTextureNV = 5390,
+    RayQueryPositionFetchKHR = 5391,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
     SubgroupImageBlockIOINTEL = 5570,
@@ -1148,7 +1167,10 @@
     OptNoneINTEL = 6094,
     AtomicFloat16AddEXT = 6095,
     DebugInfoModuleINTEL = 6114,
+    BFloat16ConversionINTEL = 6115,
     SplitBarrierINTEL = 6141,
+    FPGAKernelAttributesv2INTEL = 6161,
+    FPGALatencyControlINTEL = 6171,
     FPGAArgumentInterfacesINTEL = 6174,
     GroupUniformArithmeticKHR = 6400,
 }
@@ -1604,6 +1626,9 @@
     OpPtrEqual = 401,
     OpPtrNotEqual = 402,
     OpPtrDiff = 403,
+    OpColorAttachmentReadEXT = 4160,
+    OpDepthAttachmentReadEXT = 4161,
+    OpStencilAttachmentReadEXT = 4162,
     OpTerminateInvocation = 4416,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
@@ -1636,6 +1661,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1692,6 +1721,7 @@
     OpTraceNV = 5337,
     OpTraceMotionNV = 5338,
     OpTraceRayMotionNV = 5339,
+    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -1953,6 +1983,8 @@
     OpTypeStructContinuedINTEL = 6090,
     OpConstantCompositeContinuedINTEL = 6091,
     OpSpecConstantCompositeContinuedINTEL = 6092,
+    OpConvertFToBF16INTEL = 6116,
+    OpConvertBF16ToFINTEL = 6117,
     OpControlBarrierArriveINTEL = 6142,
     OpControlBarrierWaitINTEL = 6143,
     OpGroupIMulKHR = 6401,
diff --git a/third_party/SPIRV-Headers/tests/CMakeLists.txt b/third_party/SPIRV-Headers/tests/CMakeLists.txt
new file mode 100644
index 0000000..6d86090
--- /dev/null
+++ b/third_party/SPIRV-Headers/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/third_party/SPIRV-Headers/example/example.cpp b/third_party/SPIRV-Headers/tests/example.cpp
similarity index 100%
rename from third_party/SPIRV-Headers/example/example.cpp
rename to third_party/SPIRV-Headers/tests/example.cpp
diff --git a/third_party/SPIRV-Headers/tests/find_package/CMakeLists.txt b/third_party/SPIRV-Headers/tests/find_package/CMakeLists.txt
new file mode 100644
index 0000000..4735db5
--- /dev/null
+++ b/third_party/SPIRV-Headers/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/third_party/SPIRV-Headers/tests/pkg_config/CMakeLists.txt b/third_party/SPIRV-Headers/tests/pkg_config/CMakeLists.txt
new file mode 100644
index 0000000..b2897e2
--- /dev/null
+++ b/third_party/SPIRV-Headers/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}")