avutil/hwcontext_vulkan: fix run on macOS
VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME is required on macOS, and VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR flag should be set. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
f16900bda2
commit
6f39dee974
@ -405,7 +405,6 @@ typedef struct VulkanOptExtension {
|
|||||||
} VulkanOptExtension;
|
} VulkanOptExtension;
|
||||||
|
|
||||||
static const VulkanOptExtension optional_instance_exts[] = {
|
static const VulkanOptExtension optional_instance_exts[] = {
|
||||||
/* Pointless, here avoid zero-sized structs */
|
|
||||||
{ VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
|
{ VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -784,6 +783,16 @@ static int create_instance(AVHWDeviceContext *ctx, AVDictionary *opts)
|
|||||||
inst_props.pNext = &validation_features;
|
inst_props.pNext = &validation_features;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Try to create the instance */
|
/* Try to create the instance */
|
||||||
ret = vk->CreateInstance(&inst_props, hwctx->alloc, &hwctx->inst);
|
ret = vk->CreateInstance(&inst_props, hwctx->alloc, &hwctx->inst);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user