gstreamer/subprojects/gst-plugins-bad/gst-libs/gst/vulkan
Víctor Manuel Jáquez Leal 1458c31031 vkdevice: enable multiple queues per device
Originally the opened device only created one queue of one family queue, to say
graphics one. This approach felt short when other queue family is required not
shared with the graphics queue family, for example video decoding.

This new approach proposes to create those queues with supported families. For
now, only video decoding and encoder are created, if they are available.

In order to hold multiple queues opened, an array of VkDeviceQueueCreateInfo is
held along the live the device object, because it's used to traverse or get the
opened queues.

The algorithm to choose which queues create (or open) is to look for the queue
with more family bits, which also supports the one we are requesting, thus
minimizing the number of global queues of a certain family to create.
Nonetheless, the number of queues to open per family is set to be all of them,
widening the possibility of parallelism.

Also, this commit do a cosmetic refactor the assigning the physical device
nearer where it's used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351>
2023-05-19 04:26:29 +00:00
..
android vulkan: Add/fix various annotations 2022-10-18 13:51:17 +03:00
cocoa macos: Remove old NSApp workaround related code 2023-05-11 20:30:19 +02:00
ios gl/vulkan: Fix static linking on macOS 2022-10-24 00:48:08 +00:00
wayland vulkan/wayland: use xdg_wm_base when available 2023-04-03 02:36:38 +00:00
win32 vulkan: gl: change symbols to static 2023-03-23 00:56:04 +00:00
xcb vulkan: Add/fix various annotations 2022-10-18 13:51:17 +03:00
gstvkapi.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkbarrier.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkbuffermemory.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkbuffermemory.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkbufferpool.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkbufferpool.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkcommandbuffer.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkcommandbuffer.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkcommandpool-private.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkcommandpool.c vulkan: Remove unnecessary null checks 2022-11-01 15:19:51 +01:00
gstvkcommandpool.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkconfig.h.meson vulkan: detect vulkan video extensions 2023-05-19 04:26:28 +00:00
gstvkdebug-private.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkdebug.c vkdebug: add video queue flags strings 2023-05-19 04:26:28 +00:00
gstvkdebug.h vulkan/swapper: add some debug logging for surface size and present modes 2021-10-21 11:32:04 +00:00
gstvkdescriptorcache.c vulkan: Add missing array length and (out) annotation to parameters 2022-11-01 15:19:51 +01:00
gstvkdescriptorcache.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkdescriptorpool.c vulkan: Remove unnecessary null checks 2022-11-01 15:19:51 +01:00
gstvkdescriptorpool.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkdescriptorset.c vulkan: Add missing array length and (out) annotation to parameters 2022-11-01 15:19:51 +01:00
gstvkdescriptorset.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkdevice.c vkdevice: enable multiple queues per device 2023-05-19 04:26:29 +00:00
gstvkdevice.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkdisplay.c vulkan: Add missing (nullable) annotation to Returns 2022-11-01 15:19:51 +01:00
gstvkdisplay.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkerror.c Fix various warnings from gobject-introspection 2022-10-25 09:45:25 +03:00
gstvkerror.h gstvulkan: Expose gst_vulkan_result_to_string 2022-02-05 16:33:04 +00:00
gstvkfence.c vulkan: silence gobject-instrospection warnings 2023-03-22 14:19:13 +00:00
gstvkfence.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkformat.c vulkan: Add/fix various annotations 2022-10-18 13:51:17 +03:00
gstvkformat.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkfullscreenquad.c vulkan: use VK_QUEUE_FAMILY_IGNORED in barriers 2023-04-28 00:59:57 +00:00
gstvkfullscreenquad.h vkfullscreenquad: add support for disabling clearing 2022-06-14 03:34:05 +00:00
gstvkhandle.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkhandle.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkhandlepool.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkhandlepool.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkimagebufferpool.c vulkan: imagebufferpool: Remove video meta handling. 2023-01-26 11:49:00 +00:00
gstvkimagebufferpool.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkimagememory.c vulkan: Use new GLib APIs as suggested by comments 2023-04-06 00:26:13 +00:00
gstvkimagememory.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkimageview.c vulkan: Mark gst_vulkan_image_view_new create_info as constant pointer 2022-11-01 15:19:51 +01:00
gstvkimageview.h vulkan: Mark gst_vulkan_image_view_new create_info as constant pointer 2022-11-01 15:19:51 +01:00
gstvkinstance.c vulkan: Use new GLib APIs as suggested by comments 2023-04-06 00:26:13 +00:00
gstvkinstance.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkmemory.c vkmemory: flush whole size 2023-03-30 00:03:05 +00:00
gstvkmemory.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkphysicaldevice-private.h vkphysicaldevice: add gst_vulkan_physical_device_get_features() 2023-05-19 04:26:28 +00:00
gstvkphysicaldevice.c vkphysicaldevice: add gst_vulkan_physical_device_get_features() 2023-05-19 04:26:28 +00:00
gstvkphysicaldevice.h vkphysicaldevice: fetch queue family video codec operations 2023-05-19 04:26:28 +00:00
gstvkqueue.c vulkan: silence gobject-instrospection warnings 2023-03-22 14:19:13 +00:00
gstvkqueue.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkswapper.c vkswapper: missing image barrier after vkCmdClearColorImage 2023-04-28 00:59:57 +00:00
gstvkswapper.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvktrash.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvktrash.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstvkutils.c vulkan: silence gobject-instrospection warnings 2023-03-22 14:19:13 +00:00
gstvkutils.h gstvulkan: Constify code in create_shader 2021-10-21 23:35:41 -03:00
gstvkvideofilter.c vulkan: imagebufferpool: Remove video meta handling. 2023-01-26 11:49:00 +00:00
gstvkvideofilter.h vulkan: add some missing GAutoPtr definitions 2022-06-14 03:34:05 +00:00
gstvkwindow.c vulkan: Add missing array length and (out) annotation to parameters 2022-11-01 15:19:51 +01:00
gstvkwindow.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build vulkan: detect vulkan video extensions 2023-05-19 04:26:28 +00:00
vulkan-prelude.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
vulkan.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
vulkan_fwd.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
vulkan_mkenum.py Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00