From 322dfd3adae15e4985d58522bf2a1abf6659bf4c Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Sun, 17 May 2026 11:55:50 +0300
Subject: [PATCH] update vulkan headers from khronos.
---
.../vk_video/vulkan_video_codec_av1std.h | 48 +-
.../vulkan_video_codec_av1std_decode.h | 2 +-
.../vulkan_video_codec_av1std_encode.h | 143 +
.../vk_video/vulkan_video_codec_h264std.h | 18 +-
.../vulkan_video_codec_h264std_decode.h | 4 +-
.../vulkan_video_codec_h264std_encode.h | 2 +-
.../vk_video/vulkan_video_codec_h265std.h | 48 +-
.../vulkan_video_codec_h265std_decode.h | 4 +-
.../vulkan_video_codec_h265std_encode.h | 2 +-
.../vk_video/vulkan_video_codec_vp9std.h | 151 +
.../vulkan_video_codec_vp9std_decode.h | 68 +
.../vk_video/vulkan_video_codecs_common.h | 2 +-
src/video/khronos/vulkan/vk_icd.h | 3 +-
src/video/khronos/vulkan/vk_layer.h | 3 +
src/video/khronos/vulkan/vk_platform.h | 2 +-
src/video/khronos/vulkan/vulkan.h | 6 +-
src/video/khronos/vulkan/vulkan_android.h | 8 +-
src/video/khronos/vulkan/vulkan_beta.h | 181 +-
src/video/khronos/vulkan/vulkan_core.h | 30289 ++++++++++------
src/video/khronos/vulkan/vulkan_directfb.h | 6 +-
src/video/khronos/vulkan/vulkan_fuchsia.h | 22 +-
src/video/khronos/vulkan/vulkan_ggp.h | 4 +-
src/video/khronos/vulkan/vulkan_ios.h | 4 +-
src/video/khronos/vulkan/vulkan_macos.h | 4 +-
src/video/khronos/vulkan/vulkan_metal.h | 51 +-
src/video/khronos/vulkan/vulkan_ohos.h | 120 +
src/video/khronos/vulkan/vulkan_screen.h | 8 +-
src/video/khronos/vulkan/vulkan_vi.h | 4 +-
src/video/khronos/vulkan/vulkan_wayland.h | 6 +-
src/video/khronos/vulkan/vulkan_win32.h | 32 +-
src/video/khronos/vulkan/vulkan_xcb.h | 6 +-
src/video/khronos/vulkan/vulkan_xlib.h | 6 +-
src/video/khronos/vulkan/vulkan_xlib_xrandr.h | 6 +-
33 files changed, 19569 insertions(+), 11694 deletions(-)
create mode 100644 src/video/khronos/vk_video/vulkan_video_codec_av1std_encode.h
create mode 100644 src/video/khronos/vk_video/vulkan_video_codec_vp9std.h
create mode 100644 src/video/khronos/vk_video/vulkan_video_codec_vp9std_decode.h
create mode 100644 src/video/khronos/vulkan/vulkan_ohos.h
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 8ce283e8a8a4f..75cebd74cbfe4 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_av1std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_av1std.h
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
@@ -22,27 +22,27 @@ extern "C" {
// vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_av1std 1
#include "vulkan_video_codecs_common.h"
-#define STD_VIDEO_AV1_NUM_REF_FRAMES 8
-#define STD_VIDEO_AV1_REFS_PER_FRAME 7
-#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8
-#define STD_VIDEO_AV1_MAX_TILE_COLS 64
-#define STD_VIDEO_AV1_MAX_TILE_ROWS 64
-#define STD_VIDEO_AV1_MAX_SEGMENTS 8
-#define STD_VIDEO_AV1_SEG_LVL_MAX 8
-#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7
-#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2
-#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2
-#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2
-#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4
-#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2
-#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8
-#define STD_VIDEO_AV1_MAX_NUM_PLANES 3
-#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6
-#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14
-#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10
-#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10
-#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24
-#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25
+#define STD_VIDEO_AV1_NUM_REF_FRAMES 8U
+#define STD_VIDEO_AV1_REFS_PER_FRAME 7U
+#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8U
+#define STD_VIDEO_AV1_MAX_TILE_COLS 64U
+#define STD_VIDEO_AV1_MAX_TILE_ROWS 64U
+#define STD_VIDEO_AV1_MAX_SEGMENTS 8U
+#define STD_VIDEO_AV1_SEG_LVL_MAX 8U
+#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7U
+#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2U
+#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2U
+#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2U
+#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4U
+#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2U
+#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8U
+#define STD_VIDEO_AV1_MAX_NUM_PLANES 3U
+#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6U
+#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14U
+#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10U
+#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10U
+#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24U
+#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25U
typedef enum StdVideoAV1Profile {
STD_VIDEO_AV1_PROFILE_MAIN = 0,
@@ -132,7 +132,7 @@ typedef enum StdVideoAV1FrameRestorationType {
typedef enum StdVideoAV1ColorPrimaries {
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,
- STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED = 2,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,
@@ -144,6 +144,8 @@ typedef enum StdVideoAV1ColorPrimaries {
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
+ // STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a legacy alias
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
} StdVideoAV1ColorPrimaries;
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 6b8130cd9fcf7..60bf2c0398761 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
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
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
new file mode 100644
index 0000000000000..3602fe1250214
--- /dev/null
+++ b/src/video/khronos/vk_video/vulkan_video_codec_av1std_encode.h
@@ -0,0 +1,143 @@
+#ifndef VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_
+#define VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ 1
+
+/*
+** Copyright 2015-2026 The Khronos Group Inc.
+**
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+// vulkan_video_codec_av1std_encode is a preprocessor guard. Do not pass it to API calls.
+#define vulkan_video_codec_av1std_encode 1
+#include "vulkan_video_codec_av1std.h"
+
+#define VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0
+#define VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_encode"
+typedef struct StdVideoEncodeAV1DecoderModelInfo {
+ uint8_t buffer_delay_length_minus_1;
+ uint8_t buffer_removal_time_length_minus_1;
+ uint8_t frame_presentation_time_length_minus_1;
+ uint8_t reserved1;
+ uint32_t num_units_in_decoding_tick;
+} StdVideoEncodeAV1DecoderModelInfo;
+
+typedef struct StdVideoEncodeAV1ExtensionHeader {
+ uint8_t temporal_id;
+ uint8_t spatial_id;
+} StdVideoEncodeAV1ExtensionHeader;
+
+typedef struct StdVideoEncodeAV1OperatingPointInfoFlags {
+ uint32_t decoder_model_present_for_this_op : 1;
+ uint32_t low_delay_mode_flag : 1;
+ uint32_t initial_display_delay_present_for_this_op : 1;
+ uint32_t reserved : 29;
+} StdVideoEncodeAV1OperatingPointInfoFlags;
+
+typedef struct StdVideoEncodeAV1OperatingPointInfo {
+ StdVideoEncodeAV1OperatingPointInfoFlags flags;
+ uint16_t operating_point_idc;
+ uint8_t seq_level_idx;
+ uint8_t seq_tier;
+ uint32_t decoder_buffer_delay;
+ uint32_t encoder_buffer_delay;
+ uint8_t initial_display_delay_minus_1;
+} StdVideoEncodeAV1OperatingPointInfo;
+
+typedef struct StdVideoEncodeAV1PictureInfoFlags {
+ uint32_t error_resilient_mode : 1;
+ uint32_t disable_cdf_update : 1;
+ uint32_t use_superres : 1;
+ uint32_t render_and_frame_size_different : 1;
+ uint32_t allow_screen_content_tools : 1;
+ uint32_t is_filter_switchable : 1;
+ uint32_t force_integer_mv : 1;
+ uint32_t frame_size_override_flag : 1;
+ uint32_t buffer_removal_time_present_flag : 1;
+ uint32_t allow_intrabc : 1;
+ uint32_t frame_refs_short_signaling : 1;
+ uint32_t allow_high_precision_mv : 1;
+ uint32_t is_motion_mode_switchable : 1;
+ uint32_t use_ref_frame_mvs : 1;
+ uint32_t disable_frame_end_update_cdf : 1;
+ uint32_t allow_warped_motion : 1;
+ uint32_t reduced_tx_set : 1;
+ uint32_t skip_mode_present : 1;
+ uint32_t delta_q_present : 1;
+ uint32_t delta_lf_present : 1;
+ uint32_t delta_lf_multi : 1;
+ uint32_t segmentation_enabled : 1;
+ uint32_t segmentation_update_map : 1;
+ uint32_t segmentation_temporal_update : 1;
+ uint32_t segmentation_update_data : 1;
+ uint32_t UsesLr : 1;
+ uint32_t usesChromaLr : 1;
+ uint32_t show_frame : 1;
+ uint32_t showable_frame : 1;
+ uint32_t reserved : 3;
+} StdVideoEncodeAV1PictureInfoFlags;
+
+typedef struct StdVideoEncodeAV1PictureInfo {
+ StdVideoEncodeAV1PictureInfoFlags flags;
+ StdVideoAV1FrameType frame_type;
+ uint32_t frame_presentation_time;
+ uint32_t current_frame_id;
+ uint8_t order_hint;
+ uint8_t primary_ref_frame;
+ uint8_t refresh_frame_flags;
+ uint8_t coded_denom;
+ uint16_t render_width_minus_1;
+ uint16_t render_height_minus_1;
+ StdVideoAV1InterpolationFilter interpolation_filter;
+ StdVideoAV1TxMode TxMode;
+ uint8_t delta_q_res;
+ uint8_t delta_lf_res;
+ uint8_t ref_order_hint[STD_VIDEO_AV1_NUM_REF_FRAMES];
+ int8_t ref_frame_idx[STD_VIDEO_AV1_REFS_PER_FRAME];
+ uint8_t reserved1[3];
+ uint32_t delta_frame_id_minus_1[STD_VIDEO_AV1_REFS_PER_FRAME];
+ const StdVideoAV1TileInfo* pTileInfo;
+ const StdVideoAV1Quantization* pQuantization;
+ const StdVideoAV1Segmentation* pSegmentation;
+ const StdVideoAV1LoopFilter* pLoopFilter;
+ const StdVideoAV1CDEF* pCDEF;
+ const StdVideoAV1LoopRestoration* pLoopRestoration;
+ const StdVideoAV1GlobalMotion* pGlobalMotion;
+ const StdVideoEncodeAV1ExtensionHeader* pExtensionHeader;
+ const uint32_t* pBufferRemovalTimes;
+} StdVideoEncodeAV1PictureInfo;
+
+typedef struct StdVideoEncodeAV1ReferenceInfoFlags {
+ uint32_t disable_frame_end_update_cdf : 1;
+ uint32_t segmentation_enabled : 1;
+ uint32_t reserved : 30;
+} StdVideoEncodeAV1ReferenceInfoFlags;
+
+typedef struct StdVideoEncodeAV1ReferenceInfo {
+ StdVideoEncodeAV1ReferenceInfoFlags flags;
+ uint32_t RefFrameId;
+ StdVideoAV1FrameType frame_type;
+ uint8_t OrderHint;
+ uint8_t reserved1[3];
+ const StdVideoEncodeAV1ExtensionHeader* pExtensionHeader;
+} StdVideoEncodeAV1ReferenceInfo;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
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 6d27af37b7334..48621b6954d70 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h264std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h264std.h
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H264STD_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
@@ -22,14 +22,14 @@ extern "C" {
// vulkan_video_codec_h264std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_h264std 1
#include "vulkan_video_codecs_common.h"
-#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
-#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
-#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
-#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6
-#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
-#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
-#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
-#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF
+#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32U
+#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6U
+#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16U
+#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6U
+#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64U
+#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32U
+#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2U
+#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFFU
typedef enum StdVideoH264ChromaFormatIdc {
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
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 439cb885e71b7..a6bfe9d8228a0 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
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
@@ -27,7 +27,7 @@ extern "C" {
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
-#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
+#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2U
typedef enum StdVideoDecodeH264FieldOrderCount {
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
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 9e24aa5d991d3..2d42ac321b8d6 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
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
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 d0a1bacbea378..23617b8f962f3 100644
--- a/src/video/khronos/vk_video/vulkan_video_codec_h265std.h
+++ b/src/video/khronos/vk_video/vulkan_video_codec_h265std.h
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H265STD_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
@@ -22,29 +22,29 @@ extern "C" {
// vulkan_video_codec_h265std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_h265std 1
#include "vulkan_video_codecs_common.h"
-#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
-#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
-#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
-#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
-#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
-#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64
-#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6
-#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
-#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
-#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
-#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
-#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
-#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
-#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
-#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
-#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15
-#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2
-#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64
-#define STD_VIDEO_H265_MAX_DPB_SIZE 16
-#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
-#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
-#define STD_VIDEO_H265_MAX_DELTA_POC 48
-#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF
+#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32U
+#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7U
+#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6U
+#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16U
+#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6U
+#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64U
+#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6U
+#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64U
+#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2U
+#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64U
+#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6U
+#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19U
+#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21U
+#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3U
+#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128U
+#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15U
+#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2U
+#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64U
+#define STD_VIDEO_H265_MAX_DPB_SIZE 16U
+#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32U
+#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16U
+#define STD_VIDEO_H265_MAX_DELTA_POC 48U
+#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFFU
typedef enum StdVideoH265ChromaFormatIdc {
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
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 0178793e5111a..1758d4a88ddaf 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
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
@@ -27,7 +27,7 @@ extern "C" {
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
-#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
+#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8U
typedef struct StdVideoDecodeH265PictureInfoFlags {
uint32_t IrapPicFlag : 1;
uint32_t IdrPicFlag : 1;
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 ee34491f4e9c0..e584a7262b957 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
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
diff --git a/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h b/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h
new file mode 100644
index 0000000000000..3c62f287e76ec
--- /dev/null
+++ b/src/video/khronos/vk_video/vulkan_video_codec_vp9std.h
@@ -0,0 +1,151 @@
+#ifndef VULKAN_VIDEO_CODEC_VP9STD_H_
+#define VULKAN_VIDEO_CODEC_VP9STD_H_ 1
+
+/*
+** Copyright 2015-2026 The Khronos Group Inc.
+**
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+// vulkan_video_codec_vp9std is a preprocessor guard. Do not pass it to API calls.
+#define vulkan_video_codec_vp9std 1
+#include "vulkan_video_codecs_common.h"
+#define STD_VIDEO_VP9_NUM_REF_FRAMES 8U
+#define STD_VIDEO_VP9_REFS_PER_FRAME 3U
+#define STD_VIDEO_VP9_MAX_REF_FRAMES 4U
+#define STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS 2U
+#define STD_VIDEO_VP9_MAX_SEGMENTS 8U
+#define STD_VIDEO_VP9_SEG_LVL_MAX 4U
+#define STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS 7U
+#define STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB 3U
+
+typedef enum StdVideoVP9Profile {
+ STD_VIDEO_VP9_PROFILE_0 = 0,
+ STD_VIDEO_VP9_PROFILE_1 = 1,
+ STD_VIDEO_VP9_PROFILE_2 = 2,
+ STD_VIDEO_VP9_PROFILE_3 = 3,
+ STD_VIDEO_VP9_PROFILE_INVALID = 0x7FFFFFFF,
+ STD_VIDEO_VP9_PROFILE_MAX_ENUM = 0x7FFFFFFF
+} StdVideoVP9Profile;
+
+typedef enum StdVideoVP9Level {
+ STD_VIDEO_VP9_LEVEL_1_0 = 0,
+ STD_VIDEO_VP9_LEVEL_1_1 = 1,
+ STD_VIDEO_VP9_LEVEL_2_0 = 2,
+ STD_VIDEO_VP9_LEVEL_2_1 = 3,
+ STD_VIDEO_VP9_LEVEL_3_0 = 4,
+ STD_VIDEO_VP9_LEVEL_3_1 = 5,
+ STD_VIDEO_VP9_LEVEL_4_0 = 6,
+ STD_VIDEO_VP9_LEVEL_4_1 = 7,
+ STD_VIDEO_VP9_LEVEL_5_0 = 8,
+ STD_VIDEO_VP9_LEVEL_5_1 = 9,
+ STD_VIDEO_VP9_LEVEL_5_2 = 10,
+ STD_VIDEO_VP9_LEVEL_6_0 = 11,
+ STD_VIDEO_VP9_LEVEL_6_1 = 12,
+ STD_VIDEO_VP9_LEVEL_6_2 = 13,
+ STD_VIDEO_VP9_LEVEL_INVALID = 0x7FFFFFFF,
+ STD_VIDEO_VP9_LEVEL_MAX_ENUM = 0x7FFFFFFF
+} StdVideoVP9Level;
+
+typedef enum StdVideoVP9FrameType {
+ STD_VIDEO_VP9_FRAME_TYPE_KEY = 0,
+ STD_VIDEO_VP9_FRAME_TYPE_NON_KEY = 1,
+ STD_VIDEO_VP9_FRAME_TYPE_INVALID = 0x7FFFFFFF,
+ STD_VIDEO_VP9_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF
+} StdVideoVP9FrameType;
+
+typedef enum StdVideoVP9ReferenceName {
+ STD_VIDEO_VP9_REFERENCE_NAME_INTRA_FRAME = 0,
+ STD_VIDEO_VP9_REFERENCE_NAME_LAST_FRAME = 1,
+ STD_VIDEO_VP9_REFERENCE_NAME_GOLDEN_FRAME = 2,
+ STD_VIDEO_VP9_REFERENCE_NAME_ALTREF_FRAME = 3,
+ STD_VIDEO_VP9_REFERENCE_NAME_INVALID = 0x7FFFFFFF,
+ STD_VIDEO_VP9_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF
+} StdVideoVP9ReferenceName;
+
+typedef enum StdVideoVP9InterpolationFilter {
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP = 0,
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR = 3,
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE = 4,
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF,
+ STD_VIDEO_VP9_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF
+} StdVideoVP9InterpolationFilter;
+
+typedef enum StdVideoVP9ColorSpace {
+ STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN = 0,
+ STD_VIDEO_VP9_COLOR_SPACE_BT_601 = 1,
+ STD_VIDEO_VP9_COLOR_SPACE_BT_709 = 2,
+ STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170 = 3,
+ STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240 = 4,
+ STD_VIDEO_VP9_COLOR_SPACE_BT_2020 = 5,
+ STD_VIDEO_VP9_COLOR_SPACE_RESERVED = 6,
+ STD_VIDEO_VP9_COLOR_SPACE_RGB = 7,
+ STD_VIDEO_VP9_COLOR_SPACE_INVALID = 0x7FFFFFFF,
+ STD_VIDEO_VP9_COLOR_SPACE_MAX_ENUM = 0x7FFFFFFF
+} StdVideoVP9ColorSpace;
+typedef struct StdVideoVP9ColorConfigFlags {
+ uint32_t color_range : 1;
+ uint32_t reserved : 31;
+} StdVideoVP9ColorConfigFlags;
+
+typedef struct StdVideoVP9ColorConfig {
+ StdVideoVP9ColorConfigFlags flags;
+ uint8_t BitDepth;
+ uint8_t subsampling_x;
+ uint8_t subsampling_y;
+ uint8_t reserved1;
+ StdVideoVP9ColorSpace color_space;
+} StdVideoVP9ColorConfig;
+
+typedef struct StdVideoVP9LoopFilterFlags {
+ uint32_t loop_filter_delta_enabled : 1;
+ uint32_t loop_filter_delta_update : 1;
+ uint32_t reserved : 30;
+} StdVideoVP9LoopFilterFlags;
+
+typedef struct StdVideoVP9LoopFilter {
+ StdVideoVP9LoopFilterFlags flags;
+ uint8_t loop_filter_level;
+ uint8_t loop_filter_sharpness;
+ uint8_t update_ref_delta;
+ int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES];
+ uint8_t update_mode_delta;
+ int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS];
+} StdVideoVP9LoopFilter;
+
+typedef struct StdVideoVP9SegmentationFlags {
+ uint32_t segmentation_update_map : 1;
+ uint32_t segmentation_temporal_update : 1;
+ uint32_t segmentation_update_data : 1;
+ uint32_t segmentation_abs_or_delta_update : 1;
+ uint32_t reserved : 28;
+} StdVideoVP9SegmentationFlags;
+
+typedef struct StdVideoVP9Segmentation {
+ StdVideoVP9SegmentationFlags flags;
+ uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS];
+ uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB];
+ uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS];
+ int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX];
+} StdVideoVP9Segmentation;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
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
new file mode 100644
index 0000000000000..ac7fa7be8c6b5
--- /dev/null
+++ b/src/video/khronos/vk_video/vulkan_video_codec_vp9std_decode.h
@@ -0,0 +1,68 @@
+#ifndef VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_
+#define VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ 1
+
+/*
+** Copyright 2015-2026 The Khronos Group Inc.
+**
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+// vulkan_video_codec_vp9std_decode is a preprocessor guard. Do not pass it to API calls.
+#define vulkan_video_codec_vp9std_decode 1
+#include "vulkan_video_codec_vp9std.h"
+
+#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0
+#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_vp9_decode"
+typedef struct StdVideoDecodeVP9PictureInfoFlags {
+ uint32_t error_resilient_mode : 1;
+ uint32_t intra_only : 1;
+ uint32_t allow_high_precision_mv : 1;
+ uint32_t refresh_frame_context : 1;
+ uint32_t frame_parallel_decoding_mode : 1;
+ uint32_t segmentation_enabled : 1;
+ uint32_t show_frame : 1;
+ uint32_t UsePrevFrameMvs : 1;
+ uint32_t reserved : 24;
+} StdVideoDecodeVP9PictureInfoFlags;
+
+typedef struct StdVideoDecodeVP9PictureInfo {
+ StdVideoDecodeVP9PictureInfoFlags flags;
+ StdVideoVP9Profile profile;
+ StdVideoVP9FrameType frame_type;
+ uint8_t frame_context_idx;
+ uint8_t reset_frame_context;
+ uint8_t refresh_frame_flags;
+ uint8_t ref_frame_sign_bias_mask;
+ StdVideoVP9InterpolationFilter interpolation_filter;
+ uint8_t base_q_idx;
+ int8_t delta_q_y_dc;
+ int8_t delta_q_uv_dc;
+ int8_t delta_q_uv_ac;
+ uint8_t tile_cols_log2;
+ uint8_t tile_rows_log2;
+ uint16_t reserved1[3];
+ const StdVideoVP9ColorConfig* pColorConfig;
+ const StdVideoVP9LoopFilter* pLoopFilter;
+ const StdVideoVP9Segmentation* pSegmentation;
+} StdVideoDecodeVP9PictureInfo;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
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 5e6ef1db48ee5..3c4d0553d086e 100644
--- a/src/video/khronos/vk_video/vulkan_video_codecs_common.h
+++ b/src/video/khronos/vk_video/vulkan_video_codecs_common.h
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODECS_COMMON_H_ 1
/*
-** Copyright 2015-2024 The Khronos Group Inc.
+** Copyright 2015-2026 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
diff --git a/src/video/khronos/vulkan/vk_icd.h b/src/video/khronos/vulkan/vk_icd.h
index 59204a3419f53..d71f5682abb0c 100644
--- a/src/video/khronos/vulkan/vk_icd.h
+++ b/src/video/khronos/vulkan/vk_icd.h
@@ -44,8 +44,9 @@
typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this
// file directly, it won't be found.
-#ifndef PFN_GetPhysicalDeviceProcAddr
+#ifndef IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName);
+#define IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
#endif
// Typedefs for loader/ICD interface
diff --git a/src/video/khronos/vulkan/vk_layer.h b/src/video/khronos/vulkan/vk_layer.h
index 19d88fce4bac2..19cf5880c82ac 100644
--- a/src/video/khronos/vulkan/vk_layer.h
+++ b/src/video/khronos/vulkan/vk_layer.h
@@ -27,7 +27,10 @@
#define VK_CURRENT_CHAIN_VERSION 1
// Typedef for use in the interfaces below
+#ifndef IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName);
+#define IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
+#endif
// Version negotiation values
typedef enum VkNegotiateLayerStructType {
diff --git a/src/video/khronos/vulkan/vk_platform.h b/src/video/khronos/vulkan/vk_platform.h
index 7d3ecfd277b8e..ad849d7ee3c6f 100644
--- a/src/video/khronos/vulkan/vk_platform.h
+++ b/src/video/khronos/vulkan/vk_platform.h
@@ -2,7 +2,7 @@
// File: vk_platform.h
(Patch may be truncated, please check the link at the top of this post.)