[FFmpeg-cvslog] hwcontext_vulkan: check for non-flagged transfer queue families

Lynne git at videolan.org
Sat Nov 20 03:39:34 EET 2021


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Sat Nov 20 02:36:21 2021 +0100| [b159975e8027a1fa7cd4ad89aba98ab5fb2e65f9] | committer: Lynne

hwcontext_vulkan: check for non-flagged transfer queue families

"All commands that are allowed on a queue that supports transfer
operations are also allowed on a queue that supports either
graphics or compute operations. Thus, if the capabilities of a
queue family include VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT,
then reporting the VK_QUEUE_TRANSFER_BIT capability separately for
that queue family is optional."

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b159975e8027a1fa7cd4ad89aba98ab5fb2e65f9
---

 libavutil/hwcontext_vulkan.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 1e352d5ef7..f1e750cd3e 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -832,6 +832,13 @@ static int setup_queue_families(AVHWDeviceContext *ctx, VkDeviceCreateInfo *cd)
     enc_index   = pick_queue_family(qf, num, VK_QUEUE_VIDEO_ENCODE_BIT_KHR);
     dec_index   = pick_queue_family(qf, num, VK_QUEUE_VIDEO_DECODE_BIT_KHR);
 
+    /* Signalling the transfer capabilities on a queue family is optional */
+    if (tx_index < 0) {
+        tx_index = pick_queue_family(qf, num, VK_QUEUE_COMPUTE_BIT);
+        if (tx_index < 0)
+            tx_index = pick_queue_family(qf, num, VK_QUEUE_GRAPHICS_BIT);
+    }
+
     hwctx->queue_family_index        = -1;
     hwctx->queue_family_comp_index   = -1;
     hwctx->queue_family_tx_index     = -1;



More information about the ffmpeg-cvslog mailing list