path: root/
diff options
authorJames Ross-Gowan <>2015-12-01 00:56:02 +1100
committerMartin Herkt <>2015-12-11 18:29:18 +0100
commit3d12312806e7d54e7bb6b4b2a5981999735f6233 (patch)
tree8aa8908b1727a314860bfeb6a3752272e3bbc4b4 /
parenta6521f394122ee1ce097ceba5d0fc18ad4fd7e7a (diff)
vo_opengl: add dxinterop backend
WGL_NV_DX_interop is widely supported by Nvidia and AMD drivers. It allows a texture to be shared between Direct3D and WGL, so that rendering can be done with WGL and presentation can be done with Direct3D. This should allow us to work around some persistent WGL issues, such as dropped frames with some driver/OS combos, drivers that buffer frames to increase performance at the cost of latency, and the inability to disable exclusive fullscreen mode when using WGL to render to a fullscreen window. The addition of a DX_interop backend might also enable some cool Direct3D-specific enhancements in the future, such as using the GetPresentStatistics API to get accurate frame presentation timestamps. Note that due to a driver bug, this backend is currently broken on Intel. It will appear to work as long as the window is not resized too often, but after a few changes of size it will be unable to share the newly created renderbuffer with GL. See:
Diffstat (limited to '')
1 files changed, 1 insertions, 0 deletions
diff --git a/ b/
index 3cd0d9fad0..12199f1e86 100644
--- a/
+++ b/
@@ -333,6 +333,7 @@ def build(ctx):
( "video/out/opengl/video_shaders.c", "gl" ),
( "video/out/opengl/w32.c", "gl-win32" ),
( "video/out/opengl/angle.c", "egl-angle" ),
+ ( "video/out/opengl/dxinterop.c", "gl-dxinterop" ),
( "video/out/opengl/wayland.c", "gl-wayland" ),
( "video/out/opengl/x11.c", "gl-x11" ),
( "video/out/opengl/x11egl.c", "egl-x11" ),