gstreamer/subprojects/gst-plugins-base/tests/check/elements
Matthew Waters 9d867356df gl/bufferpool: add configuration to extend buffer lifetime before reuse
Fixes a potential GPU stall if an immediately freed texture/buffer is
attempted to be reused immediately by the CPU, e.g. when uploading.

Problematic scenario is this:
1. element does GPU processing reading from texture
2. frees the buffer back to the pool
3. pool acquire returns the just released buffer
4. GPU processing then has to wait for the previous GPU operation to
   complete causing a stall

If there was a reliable way to know whether a buffer had been finished
with across all GPU drivers, we would use it.  However as that does not
exist, this workaround is to keep the released buffer unusable until the
next released buffer.

This is the same approach as is used in the qml (Qt5) elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5144>
2023-08-31 01:24:38 +00:00
..
adder.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
appsink.c appsink: add propose_allocation support 2023-03-27 12:34:16 +03:00
appsrc.c appsrc: properly handle events received before sending the segment 2023-04-05 11:11:46 +00:00
audioconvert.c gst-plugins-base: re-indent with GNU indent 2.2.12 2023-03-17 03:18:53 +00:00
audiointerleave.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
audiomixer.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
audiorate.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
audioresample.c Bump GLib requirement to >= 2.62 2022-06-10 06:01:41 +00:00
audiotestsrc.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
compositor.c tests: compositor: Fix race in buffer unref 2023-07-21 00:59:59 +09:00
decodebin.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
encodebin.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
glbin.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
glfilter.c ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads 2022-04-04 15:49:02 +08:00
glimagesink.c gl/bufferpool: add configuration to extend buffer lifetime before reuse 2023-08-31 01:24:38 +00:00
glmixer.c ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads 2022-04-04 15:49:02 +08:00
glstereo.c ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads 2022-04-04 15:49:02 +08:00
libvisual.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
multifdsink.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
multisocketsink.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
opus.c gst-plugins-base: re-indent with GNU indent 2.2.12 2023-03-17 03:18:53 +00:00
overlaycomposition.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
playbin-complex.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
playbin.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
playsink.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
rawaudioparse.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
rawvideoparse.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
streamsynchronizer.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
subparse.c samiparse: fix handling of self-closing tags 2022-07-01 17:24:52 +00:00
textoverlay.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
theoradec.c theoradec: make sure the selected pool accepts the new config 2023-05-12 14:37:06 +02:00
urisourcebin.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
videoconvert.c test: Update all video related tests because of adding DMA_DRM format 2023-07-19 09:57:50 +00:00
videorate.c videorate: properly handle variable framerate input and drop-only=true 2023-07-05 19:33:59 +00:00
videoscale.c video: Add Mediatek 10bit formats 2023-08-08 16:08:16 +00:00
videotestsrc.c gst-plugins-base: re-indent with GNU indent 2.2.12 2023-03-17 03:18:53 +00:00
volume.c volume: support arbitrarily-large positive gains 2023-08-07 13:17:45 +00:00
vorbisdec.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
vorbistag.c Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00