Nov 7, 2023, 12:25 by quinkbl...@foxmail.com: > Ping. > >> 在 2023年10月30日,下午4:17,Zhao Zhili <quinkbl...@foxmail.com> 写道: >> >> From: Zhao Zhili <zhiliz...@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? _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".