path: root/DOCS
diff options
authorJames Ross-Gowan <>2017-02-04 19:16:02 +1100
committerJames Ross-Gowan <>2017-02-07 22:45:07 +1100
commite0250b9604b24f32d53b409d8c48d16faa2caebc (patch)
tree2cc257cbc78b4d949feace4356d487869de20e3d /DOCS
parent5fbad204a6d059a1ee997567d0ff470384736820 (diff)
vo_opengl: angle: rewrite with custom swap chain
This replaces the old backend that exclusively used EGL windowing with one that can also use ANGLE's ability to render to directly to a texture. The advantage of this is that it allows mpv to create the swap chain itself and this allows mpv to use a flip-mode swap chain on a HWND (which avoids problems with DirectComposition) and to use a longer swap chain that has six backbuffers by default (which reportedly fixes problems with rendering 24fps video on 24Hz monitors.) Also, "screenshot window" should now work on DXGI 1.2 and up (Windows 8 and up.)
Diffstat (limited to 'DOCS')
1 files changed, 61 insertions, 7 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 3c205b9da5..13fd4351ca 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -4331,16 +4331,70 @@ The following video options are currently all specific to ``--vo=opengl`` and
Windows only.
- Allows DirectComposition when using the ANGLE backend (default: yes).
- DirectComposition implies flip-model presentation, which can improve
- rendering efficiency on Windows 8+ by avoiding a copy of the video frame.
- mpv uses it by default where possible, but it can cause poor behaviour with
- some drivers, such as a black screen or graphical corruption when leaving
- full-screen mode. Use "no" to disable it.
+ Selects a specific feature level when using the ANGLE backend with D3D11.
+ By default, the highest available feature level is used. This option can be
+ used to select a lower feature level, which is mainly useful for debugging.
+ Note that OpenGL ES 3.0 is only supported at feature level 10_1 or higher.
+ Most extended OpenGL features will not work at lower feature levels
+ (similar to ``--opengl-dumb-mode``).
Windows with ANGLE only.
+ Use WARP (Windows Advanced Rasterization Platform) when using the ANGLE
+ backend with D3D11 (default: auto). This is a high performance software
+ renderer. By default, it is used when the Direct3D hardware does not
+ support Direct3D 11 feature level 9_3. While the extended OpenGL features
+ will work with WARP, they can be very slow.
+ Windows with ANGLE only.
+ Use ANGLE's built in EGL windowing functions to create a swap chain
+ (default: auto). If this is set to ``no`` and the D3D11 renderer is in use,
+ ANGLE's built in swap chain will not be used and a custom swap chain that
+ is optimized for video rendering will be created instead. If set to
+ ``auto``, a custom swap chain will be used for D3D11 and the built in swap
+ chain will be used for D3D9. This option is mainly for debugging purposes,
+ in case the custom swap chain has poor performance or does not work.
+ If set to ``yes``, the ``--angle-max-frame-latency`` and
+ ``--angle-swapchain-length`` options will have no effect.
+ Windows with ANGLE only.
+ Sets the maximum number of frames that the system is allowed to queue for
+ rendering with the ANGLE backend (default: 3). Lower values should make
+ VSync timing more accurate, but a value of ``1`` requires powerful
+ hardware, since the CPU will not be able to "render ahead" of the GPU.
+ Windows with ANGLE only.
+ Forces a specific renderer when using the ANGLE backend (default: auto). In
+ auto mode this will pick D3D11 for systems that support Direct3D 11 feature
+ level 9_3 or higher, and D3D9 otherwise. This option is mainly for
+ debugging purposes. Normally there is no reason to force a specific
+ renderer, though ``--angle-renderer=d3d9`` may give slightly better
+ performance on old hardware. Note that the D3D9 renderer only supports
+ OpenGL ES 2.0, so most extended OpenGL features will not work if this
+ renderer is selected (similar to ``--opengl-dumb-mode``).
+ Windows with ANGLE only.
+ Sets the number of buffers in the D3D11 presentation queue when using the
+ ANGLE backend (default: 6). At least 2 are required, since one is the back
+ buffer that mpv renders to and the other is the front buffer that is
+ presented by the DWM. Additional buffers can improve performance, because
+ for example, mpv will not have to wait on the DWM to release the front
+ buffer before rendering a new frame to it. For this reason, Microsoft
+ recommends at least 4.
+ Windows 8+ with ANGLE only.
Continue even if a software renderer is detected.