glbuffer: support persistent buffer mappings
authorMatthew Waters <matthew@centricular.com>
Fri, 4 Jun 2021 08:32:07 +0000 (18:32 +1000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 10 Aug 2021 08:34:46 +0000 (08:34 +0000)
commit04856a3828411fe23fc043787b7687c0416e51fc
treed8c6dacfedae417f06f90edf7c237762676d9ac3
parent8593e1517ec22fb98683cb805da0610b959a3b96
glbuffer: support persistent buffer mappings

Requires OpenGL 4.4 or EXT_buffer_storage

Current mesa exposes GL_ARB_buffer_storage when retrieving the relevant
functions returns no-ops and causes failures.

Improves throughput of uploads by roughly 30%-60% and download throughput by
roughly 10-30% across depending on the exact scenario and hardware.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1191>
gst-libs/gst/gl/glprototypes/all_functions.h
gst-libs/gst/gl/glprototypes/buffer_storage.h [new file with mode: 0644]
gst-libs/gst/gl/gstglbuffer.c
gst-libs/gst/gl/gstglfuncs.h
gst-libs/gst/gl/gstglmemorypbo.c
gst-libs/gst/gl/meson.build