summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/context.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-03-18 17:43:57 +0100
committerwm4 <wm4@nowhere>2017-03-18 17:43:57 +0100
commitc3248369ac501efb70f0142b909e85a19aed77d2 (patch)
tree5972dadcf264ffd2eff237a18b2c31a4c3063880 /video/out/opengl/context.c
parentbe8c9485b65f085e79f9e00689a721eb8fbdc7f8 (diff)
downloadmpv-c3248369ac501efb70f0142b909e85a19aed77d2.tar.bz2
mpv-c3248369ac501efb70f0142b909e85a19aed77d2.tar.xz
vo_opengl: add experimental vdpauglx backend
As the manpage says, this has no value other than adding bugs. It uses code based on context_x11.c, and basically does very stripped down context creation (no alpha support etc.). It uses vdpau for display, and maps vdpau output surfaces as FBOs to render into them. This might be good to experiment with asynchronous presentation. For now, it presents synchronously, with a 4 frame delay (which should whack off A/V sync). The forced 4 frame delay is probably also why interaction feels slower. There are some weird vdpau errors on resizing and uninit. No idea what causes them.
Diffstat (limited to 'video/out/opengl/context.c')
-rw-r--r--video/out/opengl/context.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/video/out/opengl/context.c b/video/out/opengl/context.c
index 63fed40de2..4985c8a326 100644
--- a/video/out/opengl/context.c
+++ b/video/out/opengl/context.c
@@ -47,6 +47,7 @@ extern const struct mpgl_driver mpgl_driver_angle_es2;
extern const struct mpgl_driver mpgl_driver_dxinterop;
extern const struct mpgl_driver mpgl_driver_rpi;
extern const struct mpgl_driver mpgl_driver_mali;
+extern const struct mpgl_driver mpgl_driver_vdpauglx;
static const struct mpgl_driver *const backends[] = {
#if HAVE_RPI
@@ -83,6 +84,9 @@ static const struct mpgl_driver *const backends[] = {
#if HAVE_MALI_FBDEV
&mpgl_driver_mali,
#endif
+#if HAVE_VDPAU_GL_X11
+ &mpgl_driver_vdpauglx,
+#endif
};
// 0-terminated list of desktop GL versions a backend should try to