[FFmpeg-devel] [PATCH] avutil/hwcontext_vulkan: fix run on macOS

Zhao Zhili quinkblack at foxmail.com
Tue Nov 7 13:24:35 EET 2023


Ping.

> 在 2023年10月30日,下午4:17,Zhao Zhili <quinkblack at foxmail.com> 写道:
> 
> From: Zhao Zhili <zhilizhao at tencent.com>
> 
> VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME is required on macOS,
> and VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR flag should
> be set.
> ---
> libavutil/hwcontext_vulkan.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
> index 8481427b42..9fbf61ee70 100644
> --- a/libavutil/hwcontext_vulkan.c
> +++ b/libavutil/hwcontext_vulkan.c
> @@ -405,7 +405,6 @@ typedef struct VulkanOptExtension {
> } VulkanOptExtension;
> 
> static const VulkanOptExtension optional_instance_exts[] = {
> -    /* Pointless, here avoid zero-sized structs */
>     { VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,          FF_VK_EXT_NO_FLAG                },
> };
> 
> @@ -784,6 +783,14 @@ static int create_instance(AVHWDeviceContext *ctx, AVDictionary *opts)
>         inst_props.pNext = &validation_features;
>     }
> 
> +    for (int i = 0; i < inst_props.enabledExtensionCount; i++) {
> +        if (!strcmp(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
> +                    inst_props.ppEnabledExtensionNames[i])) {
> +            inst_props.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
> +            break;
> +        }
> +    }
> +
>     /* Try to create the instance */
>     ret = vk->CreateInstance(&inst_props, hwctx->alloc, &hwctx->inst);
> 
> --
> 2.42.0
> 



More information about the ffmpeg-devel mailing list