diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index e066fa8d18..2e04e63212 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -2464,7 +2464,7 @@ static int prepare_frame(AVHWFramesContext *hwfc, FFVkExecPool *ectx, VkImageMemoryBarrier2 img_bar[AV_NUM_DATA_POINTERS]; int nb_img_bar = 0; - uint32_t dst_qf = VK_QUEUE_FAMILY_IGNORED; + uint32_t dst_qf = p->nb_img_qfs > 1 ? VK_QUEUE_FAMILY_IGNORED : p->img_qfs[0]; VkImageLayout new_layout; VkAccessFlags2 new_access; VkPipelineStageFlagBits2 src_stage = VK_PIPELINE_STAGE_2_NONE; @@ -4546,7 +4546,7 @@ static int vulkan_transfer_frame(AVHWFramesContext *hwfc, VK_ACCESS_TRANSFER_READ_BIT, upload ? VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL : VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - VK_QUEUE_FAMILY_IGNORED); + p->nb_img_qfs > 1 ? VK_QUEUE_FAMILY_IGNORED : p->img_qfs[0]); vk->CmdPipelineBarrier2(cmd_buf, &(VkDependencyInfo) { .sType = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,