gstreamer/subprojects/gst-plugins-base/ext/gl
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
..
effects
caopengllayersink.h
caopengllayersink.m
gltestsrc.c
gltestsrc.h
gstglalpha.c
gstglalpha.h
gstglbumper.c
gstglbumper.h
gstglcolorbalance.c
gstglcolorbalance.h
gstglcolorconvertelement.c
gstglcolorconvertelement.h
gstglcolorscale.c doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
gstglcolorscale.h
gstgldeinterlace.c
gstgldeinterlace.h
gstgldifferencematte.c
gstgldifferencematte.h
gstgldownloadelement.c gl/bufferpool: add configuration to extend buffer lifetime before reuse 2023-08-31 01:24:38 +00:00
gstgldownloadelement.h
gstgleffects.c
gstgleffects.h
gstglelement.c ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads 2022-04-04 15:49:02 +08:00
gstglelements.h
gstglfilterapp.c
gstglfilterapp.h
gstglfilterbin.c
gstglfilterbin.h
gstglfiltercube.c
gstglfiltercube.h
gstglfilterglass.c plugins: Fix various trivial clang compiler warnings 2023-03-18 16:16:55 +02:00
gstglfilterglass.h
gstglfilterreflectedscreen.c
gstglfilterreflectedscreen.h
gstglfiltershader.c
gstglfiltershader.h
gstglimagesink.c glimagesink: Fix render rect assertion 2022-11-28 07:52:25 +00:00
gstglimagesink.h
gstglmixerbin.c glvideomixer: Implement force-live and min-upstream-latency properties 2023-05-02 22:47:38 +00:00
gstglmixerbin.h glvideomixer: Implement force-live and min-upstream-latency properties 2023-05-02 22:47:38 +00:00
gstglmosaic.c glmixer: don't add rgba templates by default 2023-05-18 19:34:15 +00:00
gstglmosaic.h gl: move gl(base)mixer to library 2023-05-18 19:34:14 +00:00
gstgloverlay.c
gstgloverlay.h
gstgloverlaycompositorelement.c
gstgloverlaycompositorelement.h
gstglsinkbin.c docs: mark GstGLSinkBin as plugin API 2023-04-13 21:46:59 +00:00
gstglsinkbin.h
gstglsrcbin.c
gstglsrcbin.h
gstglstereomix.c gl/mixer: make fbo instance field private and provide accessor function 2023-05-18 19:34:14 +00:00
gstglstereomix.h gl/mixer: make fbo instance field private and provide accessor function 2023-05-18 19:34:14 +00:00
gstglstereosplit.c doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
gstglstereosplit.h
gstgltestsrc.c Replace gst-i18n-*.h with gi18n-lib.h 2022-04-19 18:01:06 +00:00
gstgltestsrc.h
gstgltransformation.c doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
gstgltransformation.h gltransformation: let graphene alloc its structures memory aligned 2022-04-06 18:14:53 +02:00
gstgluploadelement.c
gstgluploadelement.h gluploadelement: Delete unused types 2023-03-13 06:15:03 +00:00
gstglutils.c glutils: Export affine transformation functions for gtkglsink 2021-10-12 20:27:34 +00:00
gstglutils.h glutils: Export affine transformation functions for gtkglsink 2021-10-12 20:27:34 +00:00
gstglvideoflip.c glvideoflip: fix leaked caps 2023-04-11 21:31:45 +00:00
gstglvideoflip.h glvideoflip: Replace GstVideoFlipMethod -> GstVideoOrientationMethod 2021-10-12 20:27:34 +00:00
gstglvideomixer.c glmixer: don't add rgba templates by default 2023-05-18 19:34:15 +00:00
gstglvideomixer.h gl: move gl(base)mixer to library 2023-05-18 19:34:14 +00:00
gstglviewconvert.c doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
gstglviewconvert.h
gstopengl.c
meson.build gl: move gl(base)mixer to library 2023-05-18 19:34:14 +00:00