Skip to content

Commit 8679bdd

Browse files
authored
Merge pull request #19881 from hrydgard/upgrade-vulkan-sdk
Update the Vulkan headers to the latest version
2 parents 2502d7b + 6e0cafc commit 8679bdd

7 files changed

+2574
-1137
lines changed

Common/GPU/Vulkan/VulkanContext.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ VkResult VulkanContext::CreateInstance(const CreateInfo &info) {
106106
if (vkEnumerateInstanceVersion) {
107107
vkEnumerateInstanceVersion(&vulkanInstanceApiVersion_);
108108
vulkanInstanceApiVersion_ &= 0xFFFFF000; // Remove patch version.
109-
vulkanInstanceApiVersion_ = std::min(VK_API_VERSION_1_3, vulkanInstanceApiVersion_);
109+
vulkanInstanceApiVersion_ = std::min(VK_API_VERSION_1_4, vulkanInstanceApiVersion_);
110110
std::string versionString = FormatAPIVersion(vulkanInstanceApiVersion_);
111111
INFO_LOG(Log::G3D, "Detected Vulkan API version: %s", versionString.c_str());
112112
}

ext/vulkan/vk_video/vulkan_video_codec_av1std.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ typedef enum StdVideoAV1FrameRestorationType {
132132

133133
typedef enum StdVideoAV1ColorPrimaries {
134134
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,
135-
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2,
135+
STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED = 2,
136136
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,
137137
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,
138138
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,
@@ -144,6 +144,8 @@ typedef enum StdVideoAV1ColorPrimaries {
144144
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
145145
STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
146146
STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
147+
// STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a deprecated alias
148+
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
147149
STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
148150
} StdVideoAV1ColorPrimaries;
149151

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
#ifndef VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_
2+
#define VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ 1
3+
4+
/*
5+
** Copyright 2015-2024 The Khronos Group Inc.
6+
**
7+
** SPDX-License-Identifier: Apache-2.0
8+
*/
9+
10+
/*
11+
** This header is generated from the Khronos Vulkan XML API Registry.
12+
**
13+
*/
14+
15+
16+
#ifdef __cplusplus
17+
extern "C" {
18+
#endif
19+
20+
21+
22+
// vulkan_video_codec_av1std_encode is a preprocessor guard. Do not pass it to API calls.
23+
#define vulkan_video_codec_av1std_encode 1
24+
#include "vulkan_video_codec_av1std.h"
25+
26+
#define VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
27+
28+
#define VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0
29+
#define VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_encode"
30+
typedef struct StdVideoEncodeAV1DecoderModelInfo {
31+
uint8_t buffer_delay_length_minus_1;
32+
uint8_t buffer_removal_time_length_minus_1;
33+
uint8_t frame_presentation_time_length_minus_1;
34+
uint8_t reserved1;
35+
uint32_t num_units_in_decoding_tick;
36+
} StdVideoEncodeAV1DecoderModelInfo;
37+
38+
typedef struct StdVideoEncodeAV1ExtensionHeader {
39+
uint8_t temporal_id;
40+
uint8_t spatial_id;
41+
} StdVideoEncodeAV1ExtensionHeader;
42+
43+
typedef struct StdVideoEncodeAV1OperatingPointInfoFlags {
44+
uint32_t decoder_model_present_for_this_op : 1;
45+
uint32_t low_delay_mode_flag : 1;
46+
uint32_t initial_display_delay_present_for_this_op : 1;
47+
uint32_t reserved : 29;
48+
} StdVideoEncodeAV1OperatingPointInfoFlags;
49+
50+
typedef struct StdVideoEncodeAV1OperatingPointInfo {
51+
StdVideoEncodeAV1OperatingPointInfoFlags flags;
52+
uint16_t operating_point_idc;
53+
uint8_t seq_level_idx;
54+
uint8_t seq_tier;
55+
uint32_t decoder_buffer_delay;
56+
uint32_t encoder_buffer_delay;
57+
uint8_t initial_display_delay_minus_1;
58+
} StdVideoEncodeAV1OperatingPointInfo;
59+
60+
typedef struct StdVideoEncodeAV1PictureInfoFlags {
61+
uint32_t error_resilient_mode : 1;
62+
uint32_t disable_cdf_update : 1;
63+
uint32_t use_superres : 1;
64+
uint32_t render_and_frame_size_different : 1;
65+
uint32_t allow_screen_content_tools : 1;
66+
uint32_t is_filter_switchable : 1;
67+
uint32_t force_integer_mv : 1;
68+
uint32_t frame_size_override_flag : 1;
69+
uint32_t buffer_removal_time_present_flag : 1;
70+
uint32_t allow_intrabc : 1;
71+
uint32_t frame_refs_short_signaling : 1;
72+
uint32_t allow_high_precision_mv : 1;
73+
uint32_t is_motion_mode_switchable : 1;
74+
uint32_t use_ref_frame_mvs : 1;
75+
uint32_t disable_frame_end_update_cdf : 1;
76+
uint32_t allow_warped_motion : 1;
77+
uint32_t reduced_tx_set : 1;
78+
uint32_t skip_mode_present : 1;
79+
uint32_t delta_q_present : 1;
80+
uint32_t delta_lf_present : 1;
81+
uint32_t delta_lf_multi : 1;
82+
uint32_t segmentation_enabled : 1;
83+
uint32_t segmentation_update_map : 1;
84+
uint32_t segmentation_temporal_update : 1;
85+
uint32_t segmentation_update_data : 1;
86+
uint32_t UsesLr : 1;
87+
uint32_t usesChromaLr : 1;
88+
uint32_t show_frame : 1;
89+
uint32_t showable_frame : 1;
90+
uint32_t reserved : 3;
91+
} StdVideoEncodeAV1PictureInfoFlags;
92+
93+
typedef struct StdVideoEncodeAV1PictureInfo {
94+
StdVideoEncodeAV1PictureInfoFlags flags;
95+
StdVideoAV1FrameType frame_type;
96+
uint32_t frame_presentation_time;
97+
uint32_t current_frame_id;
98+
uint8_t order_hint;
99+
uint8_t primary_ref_frame;
100+
uint8_t refresh_frame_flags;
101+
uint8_t coded_denom;
102+
uint16_t render_width_minus_1;
103+
uint16_t render_height_minus_1;
104+
StdVideoAV1InterpolationFilter interpolation_filter;
105+
StdVideoAV1TxMode TxMode;
106+
uint8_t delta_q_res;
107+
uint8_t delta_lf_res;
108+
uint8_t ref_order_hint[STD_VIDEO_AV1_NUM_REF_FRAMES];
109+
int8_t ref_frame_idx[STD_VIDEO_AV1_REFS_PER_FRAME];
110+
uint8_t reserved1[3];
111+
uint32_t delta_frame_id_minus_1[STD_VIDEO_AV1_REFS_PER_FRAME];
112+
const StdVideoAV1TileInfo* pTileInfo;
113+
const StdVideoAV1Quantization* pQuantization;
114+
const StdVideoAV1Segmentation* pSegmentation;
115+
const StdVideoAV1LoopFilter* pLoopFilter;
116+
const StdVideoAV1CDEF* pCDEF;
117+
const StdVideoAV1LoopRestoration* pLoopRestoration;
118+
const StdVideoAV1GlobalMotion* pGlobalMotion;
119+
const StdVideoEncodeAV1ExtensionHeader* pExtensionHeader;
120+
const uint32_t* pBufferRemovalTimes;
121+
} StdVideoEncodeAV1PictureInfo;
122+
123+
typedef struct StdVideoEncodeAV1ReferenceInfoFlags {
124+
uint32_t disable_frame_end_update_cdf : 1;
125+
uint32_t segmentation_enabled : 1;
126+
uint32_t reserved : 30;
127+
} StdVideoEncodeAV1ReferenceInfoFlags;
128+
129+
typedef struct StdVideoEncodeAV1ReferenceInfo {
130+
StdVideoEncodeAV1ReferenceInfoFlags flags;
131+
uint32_t RefFrameId;
132+
StdVideoAV1FrameType frame_type;
133+
uint8_t OrderHint;
134+
uint8_t reserved1[3];
135+
const StdVideoEncodeAV1ExtensionHeader* pExtensionHeader;
136+
} StdVideoEncodeAV1ReferenceInfo;
137+
138+
139+
#ifdef __cplusplus
140+
}
141+
#endif
142+
143+
#endif

ext/vulkan/vulkan_beta.h

+19-9
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,14 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
5353

5454
// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
5555
#define VK_AMDX_shader_enqueue 1
56-
#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1
56+
#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 2
5757
#define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue"
5858
#define VK_SHADER_INDEX_UNUSED_AMDX (~0U)
5959
typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX {
6060
VkStructureType sType;
6161
void* pNext;
6262
VkBool32 shaderEnqueue;
63+
VkBool32 shaderMeshEnqueue;
6364
} VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
6465

6566
typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
@@ -70,12 +71,16 @@ typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
7071
uint32_t maxExecutionGraphShaderPayloadSize;
7172
uint32_t maxExecutionGraphShaderPayloadCount;
7273
uint32_t executionGraphDispatchAddressAlignment;
74+
uint32_t maxExecutionGraphWorkgroupCount[3];
75+
uint32_t maxExecutionGraphWorkgroups;
7376
} VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
7477

7578
typedef struct VkExecutionGraphPipelineScratchSizeAMDX {
7679
VkStructureType sType;
7780
void* pNext;
78-
VkDeviceSize size;
81+
VkDeviceSize minSize;
82+
VkDeviceSize maxSize;
83+
VkDeviceSize sizeGranularity;
7984
} VkExecutionGraphPipelineScratchSizeAMDX;
8085

8186
typedef struct VkExecutionGraphPipelineCreateInfoAMDX {
@@ -116,12 +121,12 @@ typedef struct VkPipelineShaderStageNodeCreateInfoAMDX {
116121
} VkPipelineShaderStageNodeCreateInfoAMDX;
117122

118123
typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
119-
typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo);
120-
typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex);
121-
typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch);
122-
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo);
123-
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo);
124-
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo);
124+
typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo);
125+
typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex);
126+
typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkPipeline executionGraph, VkDeviceAddress scratch, VkDeviceSize scratchSize);
127+
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo);
128+
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo);
129+
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, VkDeviceAddress countInfo);
125130

126131
#ifndef VK_NO_PROTOTYPES
127132
VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX(
@@ -145,21 +150,26 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX(
145150

146151
VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX(
147152
VkCommandBuffer commandBuffer,
148-
VkDeviceAddress scratch);
153+
VkPipeline executionGraph,
154+
VkDeviceAddress scratch,
155+
VkDeviceSize scratchSize);
149156

150157
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX(
151158
VkCommandBuffer commandBuffer,
152159
VkDeviceAddress scratch,
160+
VkDeviceSize scratchSize,
153161
const VkDispatchGraphCountInfoAMDX* pCountInfo);
154162

155163
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX(
156164
VkCommandBuffer commandBuffer,
157165
VkDeviceAddress scratch,
166+
VkDeviceSize scratchSize,
158167
const VkDispatchGraphCountInfoAMDX* pCountInfo);
159168

160169
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX(
161170
VkCommandBuffer commandBuffer,
162171
VkDeviceAddress scratch,
172+
VkDeviceSize scratchSize,
163173
VkDeviceAddress countInfo);
164174
#endif
165175

0 commit comments

Comments
 (0)