mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-08-09 15:24:47 +00:00
vulkan: enable VK_KHR_shader_maximal_reconvergence when available
This commit is contained in:
@@ -99,6 +99,10 @@ typedef struct VulkanDeviceFeatures {
|
||||
VkPhysicalDeviceShaderExpectAssumeFeaturesKHR expect_assume;
|
||||
#endif
|
||||
|
||||
#ifdef VK_KHR_shader_maximal_reconvergence
|
||||
VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR maximal_reconvergence;
|
||||
#endif
|
||||
|
||||
VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance_1;
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
VkPhysicalDeviceVideoMaintenance2FeaturesKHR video_maintenance_2;
|
||||
@@ -265,6 +269,11 @@ static void device_features_init(AVHWDeviceContext *ctx, VulkanDeviceFeatures *f
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR);
|
||||
#endif
|
||||
|
||||
#ifdef VK_KHR_shader_maximal_reconvergence
|
||||
FF_VK_STRUCT_EXT(s, &feats->device, &feats->maximal_reconvergence, FF_VK_EXT_MAXIMAL_RECONVERGENCE,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR);
|
||||
#endif
|
||||
|
||||
FF_VK_STRUCT_EXT(s, &feats->device, &feats->video_maintenance_1, FF_VK_EXT_VIDEO_MAINTENANCE_1,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR);
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
@@ -403,6 +412,10 @@ static void device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF
|
||||
COPY_VAL(expect_assume.shaderExpectAssume);
|
||||
#endif
|
||||
|
||||
#ifdef VK_KHR_shader_maximal_reconvergence
|
||||
COPY_VAL(maximal_reconvergence.shaderMaximalReconvergence);
|
||||
#endif
|
||||
|
||||
#ifdef VK_KHR_internally_synchronized_queues
|
||||
COPY_VAL(internal_queue_sync.internallySynchronizedQueues);
|
||||
#endif
|
||||
@@ -722,6 +735,9 @@ static const VulkanOptExtension optional_device_exts[] = {
|
||||
#endif
|
||||
#ifdef VK_KHR_shader_expect_assume
|
||||
{ VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME, FF_VK_EXT_EXPECT_ASSUME },
|
||||
#endif
|
||||
#ifdef VK_KHR_shader_maximal_reconvergence
|
||||
{ VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME, FF_VK_EXT_MAXIMAL_RECONVERGENCE },
|
||||
#endif
|
||||
{ VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, FF_VK_EXT_VIDEO_MAINTENANCE_1 },
|
||||
#ifdef VK_KHR_video_maintenance2
|
||||
|
||||
@@ -54,6 +54,7 @@ typedef uint64_t FFVulkanExtensions;
|
||||
#define FF_VK_EXT_REPLICATED_COMPOSITES (1ULL << 21) /* VK_EXT_shader_replicated_composites */
|
||||
#define FF_VK_EXT_LONG_VECTOR (1ULL << 22) /* VK_EXT_shader_long_vector */
|
||||
#define FF_VK_EXT_INTERNAL_QUEUE_SYNC (1ULL << 23) /* VK_KHR_internally_synchronized_queues */
|
||||
#define FF_VK_EXT_MAXIMAL_RECONVERGENCE (1ULL << 24) /* VK_KHR_shader_maximal_reconvergence */
|
||||
|
||||
/* Video extensions */
|
||||
#define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36) /* VK_KHR_video_queue */
|
||||
|
||||
@@ -93,6 +93,9 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions,
|
||||
#ifdef VK_KHR_shader_expect_assume
|
||||
{ VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME, FF_VK_EXT_EXPECT_ASSUME },
|
||||
#endif
|
||||
#ifdef VK_KHR_shader_maximal_reconvergence
|
||||
{ VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME, FF_VK_EXT_MAXIMAL_RECONVERGENCE },
|
||||
#endif
|
||||
#ifdef VK_KHR_video_encode_av1
|
||||
{ VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_ENCODE_AV1 },
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user