diff options
author | Philip Langdale <philipl@overt.org> | 2019-12-02 10:37:40 +0800 |
---|---|---|
committer | Philip Langdale <github.philipl@overt.org> | 2021-06-11 09:54:16 -0700 |
commit | dbbf4a415de7866c6fe2dce10142d8a185eb0660 (patch) | |
tree | 7d98e0dc93f36bf8c80363831bb0430a571d5671 /DOCS | |
parent | dbf0fd7d60fa7b4996a3dd96101abd627768e9df (diff) | |
download | mpv-dbbf4a415de7866c6fe2dce10142d8a185eb0660.tar.bz2 mpv-dbbf4a415de7866c6fe2dce10142d8a185eb0660.tar.xz |
vo_gpu: vulkan: implement a VkDisplayKHR backed context
This is the Vulkan equivalent of the drm context for OpenGL, with
the big difference that it's implemented purely in terms of Vulkan
calls and doesn't actually require drm or kms.
The basic idea is to identify a display, mode, and plane on a device,
and then create a display backed surface for the swapchain. In theory,
past that point, everything is the same, and this is in fact the case
on Intel hardware. I can get a video playing on a vt.
On nvidia, naturally, things don't work that way. Instead, nvidia only
implemented the extension for scenarios where a VR application is
stealing a display from a running window system, and not for
standalone scenarios. With additional code, I've got this scenario to
work but that's a separate incremental change.
Other people have tested on AMD, and report roughly the same behaviour
as on Intel.
Note, that in this change, the VT will not be correctly restored after
qutting. The only way to restore the VT is to introduce some drm
specific code which I will illustrate in a separate change.
Diffstat (limited to 'DOCS')
-rw-r--r-- | DOCS/man/options.rst | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 6bbf6a3366..3f258101f3 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -5289,6 +5289,12 @@ The following video options are currently all specific to ``--vo=gpu`` and results, as can missing or incorrect display FPS information (see ``--override-display-fps``). +``--vulkan-device=<device name>`` + The name of the Vulkan device to use for rendering and presentation. Use + ``--vulkan-device=help`` to see the list of available devices and their + names. If left unspecified, the first enumerated hardware Vulkan device will + be used. + ``--vulkan-swap-mode=<mode>`` Controls the presentation mode of the vulkan swapchain. This is similar to the ``--opengl-swapinterval`` option. @@ -5333,6 +5339,25 @@ The following video options are currently all specific to ``--vo=gpu`` and with some older drivers / vulkan portability layers that don't provide working VkEvent support. +``--vulkan-display-display=<n>`` + The index of the display, on the selected Vulkan device, to present on when + using the ``displayvk`` GPU context. Use ``--vulkan-display-display=help`` + to see the list of available displays. If left unspecified, the first + enumerated display will be used. + + +``--vulkan-display-mode=<n>`` + The index of the display mode, of the selected Vulkan display, to use when + using the ``displayvk`` GPU context. Use ``--vulkan-display-mode=help`` + to see the list of available modes. If left unspecified, the first + enumerated mode will be used. + +``--vulkan-display-plane=<n>`` + The index of the plane, on the selected Vulkan device, to present on when + using the ``displayvk`` GPU context. Use ``--vulkan-display-plane=help`` + to see the list of available planes. If left unspecified, the first + enumerated plane will be used. + ``--d3d11-exclusive-fs=<yes|no>`` Switches the D3D11 swap chain fullscreen state to 'fullscreen' when fullscreen video is requested. Also known as "exclusive fullscreen" or @@ -5979,6 +6004,10 @@ The following video options are currently all specific to ``--vo=gpu`` and VK_KHR_wayland_surface drm DRM/EGL + displayvk + VK_KHR_display. This backend is roughly the Vukan equivalent of + DRM/EGL, allowing for direct rendering via Vulkan without a display + manager. x11egl X11/EGL android |