From ac7e9247b236ee48a138a8ddb332c1c3f9923abb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Thu, 10 Oct 2024 17:58:00 +0200 Subject: [PATCH] vulkan/context: make use of VK_EXT_shader_object only if available VK_EXT_shader_object was added in 1.3.246, mpv currently requires 1.3.238. Debian stable is at 1.3.239. Fixes build on Debian stable (Bookworm). Fixes: #15041 Fixes: 2ac1d6db329a129f9f35dba0e679e9044fc05ee6 --- video/out/vulkan/context.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/video/out/vulkan/context.c b/video/out/vulkan/context.c index bb70a28d60..e2998cd16f 100644 --- a/video/out/vulkan/context.c +++ b/video/out/vulkan/context.c @@ -185,7 +185,9 @@ pl_vulkan mppl_create_vulkan(struct vulkan_opts *opts, const char *opt_extensions[] = { VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, +#ifdef VK_EXT_SHADER_OBJECT_EXTENSION_NAME VK_EXT_SHADER_OBJECT_EXTENSION_NAME, +#endif VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME, VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME, @@ -193,15 +195,18 @@ pl_vulkan mppl_create_vulkan(struct vulkan_opts *opts, "VK_KHR_video_decode_av1", /* VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME */ }; +#ifdef VK_EXT_SHADER_OBJECT_EXTENSION_NAME VkPhysicalDeviceShaderObjectFeaturesEXT shader_object_feature = { .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, - .pNext = NULL, .shaderObject = true, }; +#endif VkPhysicalDeviceDescriptorBufferFeaturesEXT descriptor_buffer_feature = { .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT, +#ifdef VK_EXT_SHADER_OBJECT_EXTENSION_NAME .pNext = &shader_object_feature, +#endif .descriptorBuffer = true, .descriptorBufferPushDescriptors = true, };