diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 55e8d910a2..8fe5b01f14 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -20,6 +20,8 @@ Interface changes :: --- mpv 0.30.0 --- + - add `--d3d11-adapter` to enable explicit selection of a D3D11 rendering + adapter by name. - rename `--drm-osd-plane-id` to `--drm-draw-plane`, `--drm-video-plane-id` to `--drm-drmprime-video-plane` and `--drm-osd-size` to `--drm-draw-surface-size` to better reflect what the options actually control, that the values they diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 0037f8e40a..44695e4659 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -4675,6 +4675,16 @@ The following video options are currently all specific to ``--vo=gpu`` and Schedule each frame to be presented for this number of VBlank intervals. (default: 1) Setting to 1 will enable VSync, setting to 0 will disable it. +``--d3d11-adapter=`` + Select a specific D3D11 adapter to utilize for D3D11 rendering. + Will pick the default adapter if unset. Alternatives are listed + when the d3d11 back-end is initialized with verbosity level verbose + or higher. + + Hardware decoders utilizing the D3D11 rendering abstraction's helper + functionality to receive a device, such as D3D11VA or DXVA2's DXGI + mode, will be affected by this choice. + ``--d3d11va-zero-copy=`` By default, when using hardware decoding with ``--gpu-api=d3d11``, the video image will be copied (GPU-to-GPU) from the decoder surface to a diff --git a/video/out/d3d11/context.c b/video/out/d3d11/context.c index 062fdd2061..aa11f46d59 100644 --- a/video/out/d3d11/context.c +++ b/video/out/d3d11/context.c @@ -31,6 +31,7 @@ struct d3d11_opts { int warp; int flip; int sync_interval; + char *adapter_name; }; #define OPT_BASE_STRUCT struct d3d11_opts @@ -52,6 +53,7 @@ const struct m_sub_options d3d11_conf = { {"9_1", D3D_FEATURE_LEVEL_9_1})), OPT_FLAG("d3d11-flip", flip, 0), OPT_INTRANGE("d3d11-sync-interval", sync_interval, 0, 0, 4), + OPT_STRING("d3d11-adapter", adapter_name, 0), {0} }, .defaults = &(const struct d3d11_opts) { @@ -59,6 +61,7 @@ const struct m_sub_options d3d11_conf = { .warp = -1, .flip = 1, .sync_interval = 1, + .adapter_name = NULL, }, .size = sizeof(struct d3d11_opts) };