vulkanh264dec: don't remove graphics queue if it's the same as decoder

Since graphics queue is used for the context transference. So lets' keep it with
its own reference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
This commit is contained in:
Víctor Manuel Jáquez Leal 2024-02-09 11:30:58 +01:00 committed by GStreamer Marge Bot
parent 5d27f09740
commit 50791d66e1

View file

@ -111,7 +111,6 @@ _find_queues (GstVulkanDevice * device, GstVulkanQueue * queue, gpointer data)
device->physical_device->queue_family_props[queue->family].queueFlags; device->physical_device->queue_family_props[queue->family].queueFlags;
guint32 codec = guint32 codec =
device->physical_device->queue_family_ops[queue->family].video; device->physical_device->queue_family_ops[queue->family].video;
gboolean ret;
if (!self->graphic_queue if (!self->graphic_queue
&& ((flags & VK_QUEUE_GRAPHICS_BIT) == VK_QUEUE_GRAPHICS_BIT)) { && ((flags & VK_QUEUE_GRAPHICS_BIT) == VK_QUEUE_GRAPHICS_BIT)) {
@ -126,13 +125,7 @@ _find_queues (GstVulkanDevice * device, GstVulkanQueue * queue, gpointer data)
self->decode_queue = gst_object_ref (queue); self->decode_queue = gst_object_ref (queue);
} }
ret = self->decode_queue && self->graphic_queue; return !(self->decode_queue && self->graphic_queue);
/* if graphic and decoder queues are the same, just keep one */
if (ret && (self->decode_queue == self->graphic_queue))
gst_clear_object (&self->graphic_queue);
return !ret;
} }
static gboolean static gboolean