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

epirat07 at gmail.com epirat07 at gmail.com
Tue Nov 7 14:46:53 EET 2023



On 7 Nov 2023, at 12:42, Lynne wrote:

> Nov 7, 2023, 12:25 by quinkblack at foxmail.com:
>
>> 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);
>>>
>
> Pong. It is a bit incorrect - from memory,
> VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR requires that
> only Vulkan 1.1 features are enabled, while we require 1.3.
> But if it works, sure. Could you ifdef it out everywhere outside of OSX?

I wonder, how is this working given that MoltenVK does not provide Vulkan 1.3
but only 1.2?

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list