SDL: update khronos headers from mainstream.

From 4bebbec9d442a63f592cdb310b1172f535f72e7d Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Fri, 26 Jun 2026 21:32:02 +0300
Subject: [PATCH] update khronos headers from mainstream.

---
 include/SDL3/SDL_opengl_glext.h               |  6 +-
 .../vk_video/vulkan_video_codec_av1std.h      |  2 +-
 .../vulkan_video_codec_av1std_decode.h        |  2 +-
 .../vulkan_video_codec_av1std_encode.h        |  2 +-
 .../vk_video/vulkan_video_codec_h264std.h     |  2 +-
 .../vulkan_video_codec_h264std_decode.h       |  2 +-
 .../vulkan_video_codec_h264std_encode.h       |  2 +-
 .../vk_video/vulkan_video_codec_h265std.h     |  2 +-
 .../vulkan_video_codec_h265std_decode.h       |  2 +-
 .../vulkan_video_codec_h265std_encode.h       |  2 +-
 .../vk_video/vulkan_video_codec_vp9std.h      |  2 +-
 .../vulkan_video_codec_vp9std_decode.h        |  2 +-
 .../vk_video/vulkan_video_codecs_common.h     |  2 +-
 src/video/khronos/vulkan/vk_platform.h        |  3 +-
 src/video/khronos/vulkan/vulkan.h             |  3 +-
 src/video/khronos/vulkan/vulkan_android.h     |  2 +-
 src/video/khronos/vulkan/vulkan_beta.h        |  2 +-
 src/video/khronos/vulkan/vulkan_core.h        | 43 +++++++++++++-
 src/video/khronos/vulkan/vulkan_directfb.h    |  2 +-
 src/video/khronos/vulkan/vulkan_fuchsia.h     |  2 +-
 src/video/khronos/vulkan/vulkan_ggp.h         |  2 +-
 src/video/khronos/vulkan/vulkan_ios.h         |  2 +-
 src/video/khronos/vulkan/vulkan_macos.h       |  2 +-
 src/video/khronos/vulkan/vulkan_metal.h       |  2 +-
 src/video/khronos/vulkan/vulkan_ohos.h        |  2 +-
 src/video/khronos/vulkan/vulkan_screen.h      |  2 +-
 src/video/khronos/vulkan/vulkan_ubm.h         | 59 +++++++++++++++++++
 src/video/khronos/vulkan/vulkan_vi.h          |  2 +-
 src/video/khronos/vulkan/vulkan_wayland.h     |  2 +-
 src/video/khronos/vulkan/vulkan_win32.h       |  2 +-
 src/video/khronos/vulkan/vulkan_xcb.h         |  2 +-
 src/video/khronos/vulkan/vulkan_xlib.h        |  2 +-
 src/video/khronos/vulkan/vulkan_xlib_xrandr.h |  2 +-
 33 files changed, 133 insertions(+), 37 deletions(-)
 create mode 100644 src/video/khronos/vulkan/vulkan_ubm.h

diff --git a/include/SDL3/SDL_opengl_glext.h b/include/SDL3/SDL_opengl_glext.h
index e09862592f77b..28314682cb006 100644
--- a/include/SDL3/SDL_opengl_glext.h
+++ b/include/SDL3/SDL_opengl_glext.h
@@ -36,7 +36,7 @@ extern "C" {
 #define GLAPI extern
 #endif
 
-#define GL_GLEXT_VERSION 20260319
+#define GL_GLEXT_VERSION 20260609
 
 /*#include <KHR/khrplatform.h>*/
 #ifndef __khrplatform_h_
@@ -9822,10 +9822,10 @@ GLAPI void APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname
 #define GL_MESA_map_buffer_client_pointer 1
 #define GL_MAP_CLIENT_POINTER_BIT_MESA    0x4000
 #define GL_BUFFER_CLIENT_POINTER_SIZE_MESA 0x9790
-typedef void (APIENTRYP PFNGLADDCLIENTPOINTERRANGEMESAPROC) (GLvoid *addr, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLADDCLIENTPOINTERRANGEMESAPROC) (void *addr, GLsizeiptr size);
 typedef void* (APIENTRYP PFNGLRELEASECLIENTPOINTERRANGEMESAPROC) (GLsizeiptr *size);
 #ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glAddClientPointerRangeMESA (GLvoid *addr, GLsizeiptr size);
+GLAPI void APIENTRY glAddClientPointerRangeMESA (void *addr, GLsizeiptr size);
 GLAPI void* APIENTRY glReleaseClientPointerRangeMESA (GLsizeiptr *size);
 #endif
 #endif /* GL_MESA_map_buffer_client_pointer */
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_av1std.h b/src/video/khronos/vk_video/vulkan_video_codec_av1std.h
index 75cebd74cbfe4..5347b3639505d 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_av1std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_av1std.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_av1std_decode.h b/src/video/khronos/vk_video/vulkan_video_codec_av1std_decode.h
index 60bf2c0398761..e262e961ac04d 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_av1std_decode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_av1std_decode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_av1std_encode.h b/src/video/khronos/vk_video/vulkan_video_codec_av1std_encode.h
index 3602fe1250214..8afb2537f165a 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_av1std_encode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_av1std_encode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_h264std.h b/src/video/khronos/vk_video/vulkan_video_codec_h264std.h
index 48621b6954d70..3db81affc7e7d 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h264std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h264std.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_h264std_decode.h b/src/video/khronos/vk_video/vulkan_video_codec_h264std_decode.h
index a6bfe9d8228a0..fa1140586bbde 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h264std_decode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h264std_decode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_h264std_encode.h b/src/video/khronos/vk_video/vulkan_video_codec_h264std_encode.h
index 2d42ac321b8d6..aba6fbf3a1d0b 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h264std_encode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h264std_encode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_h265std.h b/src/video/khronos/vk_video/vulkan_video_codec_h265std.h
index 23617b8f962f3..cf0cbefc088c6 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h265std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h265std.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_h265std_decode.h b/src/video/khronos/vk_video/vulkan_video_codec_h265std_decode.h
index 1758d4a88ddaf..7cfe54f284340 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h265std_decode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h265std_decode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_h265std_encode.h b/src/video/khronos/vk_video/vulkan_video_codec_h265std_encode.h
index e584a7262b957..fd8ee03b6980f 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h265std_encode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h265std_encode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h b/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h
index 3c62f287e76ec..312a78574ef80 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_vp9std_decode.h b/src/video/khronos/vk_video/vulkan_video_codec_vp9std_decode.h
index ac7fa7be8c6b5..2a7ecdc977637 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_vp9std_decode.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_vp9std_decode.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vk_video/vulkan_video_codecs_common.h b/src/video/khronos/vk_video/vulkan_video_codecs_common.h
index 3c4d0553d086e..faedbef4673c1 100644
--- a/src/video/khronos/vk_video/vulkan_video_codecs_common.h
+++ b/src/video/khronos/vk_video/vulkan_video_codecs_common.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vk_platform.h b/src/video/khronos/vulkan/vk_platform.h
index ad849d7ee3c6f..a036bab539d33 100644
--- a/src/video/khronos/vulkan/vk_platform.h
+++ b/src/video/khronos/vulkan/vk_platform.h
@@ -3,8 +3,7 @@
 //
 /*
 ** Copyright 2014-2026 The Khronos Group Inc.
-**
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 
diff --git a/src/video/khronos/vulkan/vulkan.h b/src/video/khronos/vulkan/vulkan.h
index 2ed8d9c7abb69..934d9b1ecbd3f 100644
--- a/src/video/khronos/vulkan/vulkan.h
+++ b/src/video/khronos/vulkan/vulkan.h
@@ -3,8 +3,7 @@
 
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
-**
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 #include "vk_platform.h"
diff --git a/src/video/khronos/vulkan/vulkan_android.h b/src/video/khronos/vulkan/vulkan_android.h
index 1d8265e87e79e..1e318dc71faf6 100644
--- a/src/video/khronos/vulkan/vulkan_android.h
+++ b/src/video/khronos/vulkan/vulkan_android.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_beta.h b/src/video/khronos/vulkan/vulkan_beta.h
index 147a3f3cc1fc5..c84b1d48e6dcd 100644
--- a/src/video/khronos/vulkan/vulkan_beta.h
+++ b/src/video/khronos/vulkan/vulkan_beta.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_core.h b/src/video/khronos/vulkan/vulkan_core.h
index 720a85df572dc..a3ab00cf7c056 100644
--- a/src/video/khronos/vulkan/vulkan_core.h
+++ b/src/video/khronos/vulkan/vulkan_core.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
@@ -66,7 +66,7 @@ extern "C" {
 //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 353
+#define VK_HEADER_VERSION 355
 
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
@@ -1343,6 +1343,8 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
+    VK_STRUCTURE_TYPE_TENSOR_EXPLICIT_TILING_FORMAT_PROPERTIES_ARM = 1000565000,
+    VK_STRUCTURE_TYPE_TENSOR_ROLLING_BACKING_CREATE_INFO_ARM = 1000565001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
@@ -1823,6 +1825,7 @@ typedef enum VkVendorId {
     VK_VENDOR_ID_MESA = 0x10005,
     VK_VENDOR_ID_POCL = 0x10006,
     VK_VENDOR_ID_MOBILEYE = 0x10007,
+    VK_VENDOR_ID_APE = 0x10008,
     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
 } VkVendorId;
 
@@ -6366,6 +6369,7 @@ typedef enum VkDriverId {
     VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
     VK_DRIVER_ID_MESA_KOSMICKRISP = 28,
     VK_DRIVER_ID_MESA_GFXSTREAM = 29,
+    VK_DRIVER_ID_APE_SOFT = 30,
     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
@@ -7375,6 +7379,7 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_2D_BIT_IMG = 0x200000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
@@ -22905,6 +22910,11 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
 typedef enum VkTensorTilingARM {
     VK_TENSOR_TILING_OPTIMAL_ARM = 0,
     VK_TENSOR_TILING_LINEAR_ARM = 1,
+    VK_TENSOR_TILING_BRICK_16_WIDE_ARM = 1000565000,
+    VK_TENSOR_TILING_BRICK_8_WIDE_ARM = 1000565001,
+    VK_TENSOR_TILING_BRICK_4_WIDE_ARM = 1000565002,
+    VK_TENSOR_TILING_BLOCK_U_INTERLEAVED_ARM = 1000565003,
+    VK_TENSOR_TILING_BLOCK_U_INTERLEAVED_64K_ARM = 1000565004,
     VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
 } VkTensorTilingARM;
 typedef VkFlags64 VkTensorCreateFlagsARM;
@@ -24834,6 +24844,29 @@ typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
 
 
 
+// VK_ARM_tensor_controls is a preprocessor guard. Do not pass it to API calls.
+#define VK_ARM_tensor_controls 1
+#define VK_MAX_TENSOR_CREATE_INFO_ROLLING_BACKING_WRAP_COUNT_ARM 4U
+#define VK_ARM_TENSOR_CONTROLS_SPEC_VERSION 1
+#define VK_ARM_TENSOR_CONTROLS_EXTENSION_NAME "VK_ARM_tensor_controls"
+typedef struct VkTensorRollingBackingCreateInfoARM {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           wraps[VK_MAX_TENSOR_CREATE_INFO_ROLLING_BACKING_WRAP_COUNT_ARM];
+} VkTensorRollingBackingCreateInfoARM;
+
+typedef struct VkTensorExplicitTilingFormatPropertiesARM {
+    VkStructureType          sType;
+    void*                    pNext;
+    VkFormatFeatureFlags2    brick16TilingTensorFeatures;
+    VkFormatFeatureFlags2    brick8TilingTensorFeatures;
+    VkFormatFeatureFlags2    brick4TilingTensorFeatures;
+    VkFormatFeatureFlags2    blockUTilingTensorFeatures;
+    VkFormatFeatureFlags2    blockU64kTilingTensorFeatures;
+} VkTensorExplicitTilingFormatPropertiesARM;
+
+
+
 // VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
 #define VK_EXT_shader_float8 1
 #define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
@@ -25697,6 +25730,12 @@ typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
 
 
 
+// VK_IMG_filter_linear_2d is a preprocessor guard. Do not pass it to API calls.
+#define VK_IMG_filter_linear_2d 1
+#define VK_IMG_FILTER_LINEAR_2D_SPEC_VERSION 1
+#define VK_IMG_FILTER_LINEAR_2D_EXTENSION_NAME "VK_IMG_filter_linear_2d"
+
+
 // VK_ARM_performance_counters_by_region is a preprocessor guard. Do not pass it to API calls.
 #define VK_ARM_performance_counters_by_region 1
 #define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION 1
diff --git a/src/video/khronos/vulkan/vulkan_directfb.h b/src/video/khronos/vulkan/vulkan_directfb.h
index b96e957e14bdd..527331a61f434 100644
--- a/src/video/khronos/vulkan/vulkan_directfb.h
+++ b/src/video/khronos/vulkan/vulkan_directfb.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_fuchsia.h b/src/video/khronos/vulkan/vulkan_fuchsia.h
index ccca6271f34de..bfeee3943021f 100644
--- a/src/video/khronos/vulkan/vulkan_fuchsia.h
+++ b/src/video/khronos/vulkan/vulkan_fuchsia.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_ggp.h b/src/video/khronos/vulkan/vulkan_ggp.h
index f8a48ec87695c..b8961089b5243 100644
--- a/src/video/khronos/vulkan/vulkan_ggp.h
+++ b/src/video/khronos/vulkan/vulkan_ggp.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_ios.h b/src/video/khronos/vulkan/vulkan_ios.h
index 089991a4f60ff..d6f1ed53b423f 100644
--- a/src/video/khronos/vulkan/vulkan_ios.h
+++ b/src/video/khronos/vulkan/vulkan_ios.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_macos.h b/src/video/khronos/vulkan/vulkan_macos.h
index 7d5d8a1b31a3b..2459e69fb06c9 100644
--- a/src/video/khronos/vulkan/vulkan_macos.h
+++ b/src/video/khronos/vulkan/vulkan_macos.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_metal.h b/src/video/khronos/vulkan/vulkan_metal.h
index 92f0c9a76499c..ce1f6f53b72e0 100644
--- a/src/video/khronos/vulkan/vulkan_metal.h
+++ b/src/video/khronos/vulkan/vulkan_metal.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_ohos.h b/src/video/khronos/vulkan/vulkan_ohos.h
index 3bde0114f5ab1..e5cdd2d499600 100644
--- a/src/video/khronos/vulkan/vulkan_ohos.h
+++ b/src/video/khronos/vulkan/vulkan_ohos.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_screen.h b/src/video/khronos/vulkan/vulkan_screen.h
index 15e9d09028ff0..460432a442738 100644
--- a/src/video/khronos/vulkan/vulkan_screen.h
+++ b/src/video/khronos/vulkan/vulkan_screen.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_ubm.h b/src/video/khronos/vulkan/vulkan_ubm.h
new file mode 100644
index 0000000000000..37cf6609bc69b
--- /dev/null
+++ b/src/video/khronos/vulkan/vulkan_ubm.h
@@ -0,0 +1,59 @@
+#ifndef VULKAN_UBM_H_
+#define VULKAN_UBM_H_ 1
+
+/*
+** Copyright 2015-2026 The Khronos Group Inc.
+**
+** SPDX-License-Identifier: Apache-2.0 OR MIT
+*/
+
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+// VK_SEC_ubm_surface is a preprocessor guard. Do not pass it to API calls.
+#define VK_SEC_ubm_surface 1
+#define VK_SEC_UBM_SURFACE_SPEC_VERSION   1
+#define VK_SEC_UBM_SURFACE_EXTENSION_NAME "VK_SEC_ubm_surface"
+typedef VkFlags VkUbmSurfaceCreateFlagsSEC;
+typedef struct VkUbmSurfaceCreateInfoSEC {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkUbmSurfaceCreateFlagsSEC    flags;
+    struct ubm_device*            device;
+    struct ubm_surface*           surface;
+} VkUbmSurfaceCreateInfoSEC;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateUbmSurfaceSEC)(VkInstance instance, const VkUbmSurfaceCreateInfoSEC* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct ubm_device* device);
+
+#ifndef VK_NO_PROTOTYPES
+#ifndef VK_ONLY_EXPORTED_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateUbmSurfaceSEC(
+    VkInstance                                  instance,
+    const VkUbmSurfaceCreateInfoSEC*            pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkSurfaceKHR*                               pSurface);
+#endif
+
+#ifndef VK_ONLY_EXPORTED_PROTOTYPES
+VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceUbmPresentationSupportSEC(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t                                    queueFamilyIndex,
+    struct ubm_device*                          device);
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/video/khronos/vulkan/vulkan_vi.h b/src/video/khronos/vulkan/vulkan_vi.h
index 97d1a3c5f9e35..f5237e47b7ae4 100644
--- a/src/video/khronos/vulkan/vulkan_vi.h
+++ b/src/video/khronos/vulkan/vulkan_vi.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_wayland.h b/src/video/khronos/vulkan/vulkan_wayland.h
index 41025db43b2b0..16645625f1a50 100644
--- a/src/video/khronos/vulkan/vulkan_wayland.h
+++ b/src/video/khronos/vulkan/vulkan_wayland.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_win32.h b/src/video/khronos/vulkan/vulkan_win32.h
index 5c7e8bd6d7e36..0750692779d74 100644
--- a/src/video/khronos/vulkan/vulkan_win32.h
+++ b/src/video/khronos/vulkan/vulkan_win32.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_xcb.h b/src/video/khronos/vulkan/vulkan_xcb.h
index 473f8c2887a78..439f65d54ab61 100644
--- a/src/video/khronos/vulkan/vulkan_xcb.h
+++ b/src/video/khronos/vulkan/vulkan_xcb.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_xlib.h b/src/video/khronos/vulkan/vulkan_xlib.h
index dfd107c3e2f16..7394bf7c79bb7 100644
--- a/src/video/khronos/vulkan/vulkan_xlib.h
+++ b/src/video/khronos/vulkan/vulkan_xlib.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*
diff --git a/src/video/khronos/vulkan/vulkan_xlib_xrandr.h b/src/video/khronos/vulkan/vulkan_xlib_xrandr.h
index a272e246ceb58..4aabd64426a01 100644
--- a/src/video/khronos/vulkan/vulkan_xlib_xrandr.h
+++ b/src/video/khronos/vulkan/vulkan_xlib_xrandr.h
@@ -4,7 +4,7 @@
 /*
 ** Copyright 2015-2026 The Khronos Group Inc.
 **
-** SPDX-License-Identifier: Apache-2.0
+** SPDX-License-Identifier: Apache-2.0 OR MIT
 */
 
 /*