gstreamer/subprojects/gst-plugins-base/gst-libs/gst/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
..
android
cocoa macos: Set activation policy in osxvideosink and glimagesink 2023-05-12 01:14:44 +02:00
dispmanx
eagl gl/eagl: ignore OpenGLES deprecation on ios 2023-07-27 13:05:37 +00:00
egl gl: add a method to check whether DMA modifier is supported in EGL 2023-08-03 20:58:23 +00:00
gbm libs: gl: drop use of GSlice 2023-01-24 15:25:06 +00:00
glprototypes
utils
viv-fb gl: provide a pkg-config/gir file for the viv-fb backend 2023-07-12 21:35:55 +10:00
wayland gl: wayland: fix memory leak when do egl_close 2023-08-22 20:39:06 +00:00
wgl glcontext_wgl: fix missing unref 2023-04-11 20:05:17 +00:00
win32 vulkan: gl: change symbols to static 2023-03-23 00:56:04 +00:00
winrt meson: Do hard build error for some MSVC warnings 2022-02-16 17:03:29 +00:00
x11 gstglwindow_x11.c: Fix colormap leak 2023-02-22 16:29:06 +00:00
gl-prelude.h gl: Add GST_GL_DEPRECATED 2022-02-21 21:26:43 +00:00
gl.h gl/mixer: make fbo instance field private and provide accessor function 2023-05-18 19:34:14 +00:00
gl_mkenum.py
gstgl_enums.h
gstgl_fwd.h
gstglapi.c
gstglapi.h
gstglbasefilter.c glbasefilter: use gst_display_ensure_context 2023-02-06 16:15:46 +01:00
gstglbasefilter.h
gstglbasememory.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglbasememory.h gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglbasemixer.c gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstglbasemixer.h gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstglbasesrc.c glbasesrc: Reverse order of error/debug messages 2023-04-11 12:28:27 +01:00
gstglbasesrc.h
gstglbuffer.c gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglbuffer.h gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglbufferpool.c gl/bufferpool: add configuration to extend buffer lifetime before reuse 2023-08-31 01:24:38 +00:00
gstglbufferpool.h gl/bufferpool: add configuration to extend buffer lifetime before reuse 2023-08-31 01:24:38 +00:00
gstglcolorconvert.c gl: add support for 16-bit A420/A422/A444 2023-08-24 12:13:19 +10:00
gstglcolorconvert.h gl: add support for 16-bit A420/A422/A444 2023-08-24 12:13:19 +10:00
gstglconfig.h.meson
gstglcontext.c gldisplay: Mark gst_gl_display_create_context() other_context parameter as nullable 2023-01-27 16:22:06 +02:00
gstglcontext.h
gstglcontext_private.h gl/context: disable timer queries for ARM Mali-G52 2022-05-12 00:22:21 +00:00
gstglcontextconfig.c docs/glcontextconfig: rename title to not be GstGLContext 2022-10-19 13:01:06 +00:00
gstglcontextconfig.h
gstglcontextquirks.c gl/context: disable timer queries for ARM Mali-G52 2022-05-12 00:22:21 +00:00
gstgldebug.c
gstgldebug.h
gstgldisplay.c gldisplay: Remove unused code 2023-03-01 08:23:37 +00:00
gstgldisplay.h gldisplay: Add gst_gl_display_ensure_context 2023-02-06 16:14:07 +01:00
gstglfeature.c
gstglfeature.h
gstglfeature_private.h
gstglfilter.c glfilter: add parent meta to output buffer for input buffer 2023-06-13 07:53:49 +00:00
gstglfilter.h
gstglformat.c gl: add support for 16-bit A420/A422/A444 2023-08-24 12:13:19 +10:00
gstglformat.h gl: expose calculating swizzle indices to/from RGBA/YUVA 2023-07-28 03:29:09 +00:00
gstglframebuffer.c
gstglframebuffer.h
gstglfuncs.h
gstglmemory.c video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
gstglmemory.h gl: add support for 16-bit A420/A422/A444 2023-08-24 12:13:19 +10:00
gstglmemorypbo.c gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglmemorypbo.h gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglmixer.c gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstglmixer.h gl: update docs for mixer move 2023-05-18 19:34:15 +00:00
gstgloverlaycompositor.c libs: gl: drop use of GSlice 2023-01-24 15:25:06 +00:00
gstgloverlaycompositor.h
gstglpixelformat.c
gstglquery.c
gstglquery.h
gstglrenderbuffer.c gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglrenderbuffer.h gl: Mark GL memory GType functions as deprecated 2022-02-21 21:26:43 +00:00
gstglshader.c Fix various warnings from gobject-introspection 2022-10-25 09:45:25 +03:00
gstglshader.h
gstglshaderstrings.c gl: Add #ifndef GST_REMOVE_DEPRECATED for existing deprecated API 2022-02-21 21:26:43 +00:00
gstglshaderstrings.h gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR 2022-02-21 21:26:43 +00:00
gstglsl.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglsl.h
gstglsl_private.h
gstglslstage.c
gstglslstage.h
gstglsyncmeta.c
gstglsyncmeta.h
gstglupload.c gl/bufferpool: add configuration to extend buffer lifetime before reuse 2023-08-31 01:24:38 +00:00
gstglupload.h
gstglutils.c video: Add arbitrary tile dimensions support 2022-11-18 22:59:29 +00:00
gstglutils.h
gstglutils_private.h
gstglviewconvert.c gl: Add/fix various annotations 2022-10-18 08:56:58 +00:00
gstglviewconvert.h
gstglwindow.c libs: gl: drop use of GSlice 2023-01-24 15:25:06 +00:00
gstglwindow.h
gstglwindow_private.h
meson.build gl: provide a pkg-config/gir file for the viv-fb backend 2023-07-12 21:35:55 +10:00