mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
hwcontext_vulkan: use VkPhysicalDeviceTimelineSemaphoreFeatures
VkPhysicalDeviceVulkan12Features isn't implemented on MoltenVK yet. VkPhysicalDeviceTimelineSemaphoreFeatures is less versatile but simple. None of device_features_1_1 nor device_features_1_2 has real usage yet, keep the code for future.
This commit is contained in:
parent
61b104caaa
commit
b5a8b3d45a
@ -1321,8 +1321,18 @@ static int vulkan_device_create_internal(AVHWDeviceContext *ctx,
|
||||
VulkanDevicePriv *p = ctx->internal->priv;
|
||||
FFVulkanFunctions *vk = &p->vkfn;
|
||||
AVVulkanDeviceContext *hwctx = ctx->hwctx;
|
||||
|
||||
/*
|
||||
* VkPhysicalDeviceVulkan12Features has a timelineSemaphore field, but
|
||||
* MoltenVK doesn't implement VkPhysicalDeviceVulkan12Features yet, so we
|
||||
* use VkPhysicalDeviceTimelineSemaphoreFeatures directly.
|
||||
*/
|
||||
VkPhysicalDeviceTimelineSemaphoreFeatures timeline_features = {
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
|
||||
};
|
||||
VkPhysicalDeviceVulkan12Features dev_features_1_2 = {
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
|
||||
.pNext = &timeline_features,
|
||||
};
|
||||
VkPhysicalDeviceVulkan11Features dev_features_1_1 = {
|
||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
|
||||
@ -1366,7 +1376,7 @@ static int vulkan_device_create_internal(AVHWDeviceContext *ctx,
|
||||
#undef COPY_FEATURE
|
||||
|
||||
/* We require timeline semaphores */
|
||||
if (!dev_features_1_2.timelineSemaphore) {
|
||||
if (!timeline_features.timelineSemaphore) {
|
||||
av_log(ctx, AV_LOG_ERROR, "Device does not support timeline semaphores!\n");
|
||||
err = AVERROR(ENOSYS);
|
||||
goto end;
|
||||
|
Loading…
Reference in New Issue
Block a user