aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvytskalt <vytskalt@protonmail.com>2025-08-19 17:14:15 +0300
committerLynne <dev@lynne.ee>2025-08-19 14:34:17 +0000
commita6b5a382dd7ecdd27c5d0ebba688e1db409d18fd (patch)
tree1fdea5a7d04e8d4192f64d6b5dfdd3ac9db686e4
parentc05fc27dd33b361eb0105157ab7d3a01c2ffa782 (diff)
downloadffmpeg-a6b5a382dd7ecdd27c5d0ebba688e1db409d18fd.tar.gz
hwcontext_vulkan: transfer EXCLUSIVE images to correct queue families
-rw-r--r--libavutil/hwcontext_vulkan.c4
1 files changed, 2 insertions, 2 deletions
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,