Stéphane Cerveau
0dd706a420
vkutils: add gst_vulkan_ensure_element_device
...
In order to keep the same device across
the elements in the pipeline, use either the device id
to create the device or get the device from the context
set by the peer elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843 >
2024-11-15 20:32:24 +00:00
Sebastian Dröge
b7b24573ce
common: Use more efficient versions of GstCapsFeatures API where possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Víctor Manuel Jáquez Leal
ef9875640e
vulkanupload: honor downstream pool allocation parameters
...
If a downstream buffer pool is offered, vulkanupload checks its allocation
parameters to honor them. Only adds to usage the TRANSFER bits, which are
required to upload buffers.
Also, fail if the buffer pool cannot be configured with the current parameters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7219 >
2024-07-31 12:15:43 +00:00
Víctor Manuel Jáquez Leal
bff24e5ab7
vulkanupload: comment zero value usage with VK_ACCESS_NONE
...
Zero is used only for Vulkan version prior to 1.3, because it wasn't defined
before.
Just for readability.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:15 +02:00
Stéphane Cerveau
9736b9e7b7
vulkan{up,down}load: check for a graphics family queue
...
Vulkan queue retrieved from peer elements should be a graphics family one.
Otherwise, get a compatible queue from the given device.
Co-Authored-By: Víctor Jáquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7162 >
2024-07-22 15:18:35 +00:00
Víctor Manuel Jáquez Leal
2990cc5f71
vulkan: add source pipeline stage to _operation_add_frame_barrier()
...
Instead of dragging the last destination pipeline stage as current barrier
source pipeline stage (which isn't a valid semantic) this patch adds a parameter
to gst_vulkan_operation_add_frame_barrier() to set the source pipeline stage to
define the barrier.
The previous logic brought problems particularly with queue transfers, when the
new queue doesn't support the stage set during a previous operation in a
different queue.
Now the operation API is closer to Vulkan semantics.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7165 >
2024-07-19 14:45:39 +02:00
Víctor Manuel Jáquez Leal
dd4027388e
vulkan: fix wrong stages or access in barriers
...
While working on !7165 we found out that some parameters for barriers were wrong
or the destination pipeline stage was too coarse.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7200 >
2024-07-19 12:44:51 +02:00
Víctor Manuel Jáquez Leal
17f3a22130
vulkanupload: request storage usage for bufferpool
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 >
2024-07-11 10:52:19 +02:00
Víctor Manuel Jáquez Leal
2c660ee8f5
vkupload: remove unused parameter fetching
...
It's not required to create a vulkan buffer to fetch its size since all this
handled by internally by the allocator and it was never needed, so it looks like
dead code. Let's delete it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6028 >
2024-02-05 10:38:54 +00:00
Víctor Manuel Jáquez Leal
394aaa6a59
vulkan: early return if gst_buffer_pool_set_config() fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6013 >
2024-01-30 11:58:04 +00:00
Stéphane Cerveau
44ba107715
vkupload: unref vkimagebufferpool
...
Since the vkupload pool refacto, the pool
was not properly unrefed leading to a leak.
Fix for fd5c344fb6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5729 >
2023-11-29 12:10:11 +00:00
Stéphane Cerveau
7ac98ce598
vkupload: browse over the input buffer mems
...
To upload/convert the GstBuffer to vkImage, need to
browse over the input mems to fill the out gst buffer vkImage.
This patch is fixing a missing plane/mem with encoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5651 >
2023-11-28 13:53:54 +00:00
Stéphane Cerveau
fd5c344fb6
vkupload: implement decide_allocation vmethod
...
in the case of an upstream element proposing a buffer pool,
use it to allocate the buffer image with the given parameters
set by the upstream element.
Besides the buffer pool handling is sync'd with GstBaseTransform
base class.
See the case of vulkanupload ! vulkanh264enc
Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5651 >
2023-11-28 13:53:54 +00:00
Stéphane Cerveau
159f24c07f
vulkan: use gst_vulkan_device_select_queue
...
Use gst_vulkan_device_select_queue api to retrieve a valid queue
in vkupload, vkdownload, vkimagebufferpool, and vkvideofilter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5656 >
2023-11-21 13:51:21 +00:00
Víctor Manuel Jáquez Leal
11c8c002a5
vulkanupload: use GstVulkanOperation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:23 +00:00
Matthew Waters
b82a402bf1
vkformat: also check configured usage flags
...
This does also mean that if the primary format fails this check, we need
to try the secondary format before returning an error
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2957
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 16:09:33 +00:00
Víctor Manuel Jáquez Leal
e177080bec
vulkan: number of memories in buffer rather than number of planes
...
New vulkan formats don't match the number of planes with the number of memories
attached to the buffer. This patch changes the pattern of using planes for
traverse the memories with the number of attached memories.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
f12e052e54
vulkan: use VK_QUEUE_FAMILY_IGNORED in barriers
...
Instead of using the valid queue family 0 (zero) if there aren't queue transfers
there's no need to specify a not validated queue family, but just
VK_QUEUE_FAMILY_IGNORED.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4501 >
2023-04-28 00:59:57 +00:00
Thibault Saunier
019971a3c7
Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
2021-09-24 16:14:36 -03:00