27 Jan 2022, 04:39 by quinkbl...@foxmail.com: > 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. > --- > libavutil/hwcontext_vulkan.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c > index ae19fc2ab6..2e219511c9 100644 > --- a/libavutil/hwcontext_vulkan.c > +++ b/libavutil/hwcontext_vulkan.c > @@ -1321,8 +1321,16 @@ 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 +1374,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; >
I didn't have a strong opinion on this, and on my nvidia testing machine, VkPhysicalDeviceVulkan12Features.timelineSemaphore isn't set for some reason (despite alleged 1.2 compliance), so this may help there. Pushed, thanks. _______________________________________________ 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".