0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00

vo_gpu/d3d11: switch adapter selection to case-insensitive startswith

This lets users set values such as "intel" or "nvidia" as the
adapter vendor is generally noted in the beginning of the
description string.
This commit is contained in:
Jan Ekström 2019-10-14 20:30:09 +03:00
parent 684ffd13b4
commit 89f4ce9d6f
3 changed files with 9 additions and 4 deletions

View File

@ -4705,6 +4705,10 @@ The following video options are currently all specific to ``--vo=gpu`` and
Will pick the default adapter if unset. Alternatives are listed
when the name "help" is given.
Checks for matches based on the start of the string, case
insensitive. Thus, if the description of the adapter starts with
the vendor name, that can be utilized as the selection parameter.
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.

View File

@ -117,7 +117,7 @@ static int d3d11_validate_adapter(struct mp_log *log,
}
if (!adapter_matched) {
mp_err(log, "No adapter with name '%.*s'!\n", BSTR_P(param));
mp_err(log, "No adapter matching '%.*s'!\n", BSTR_P(param));
}
return adapter_matched ? 0 : M_OPT_INVALID;

View File

@ -204,8 +204,9 @@ static IDXGIAdapter1 *get_d3d11_adapter(struct mp_log *log,
adapter_description ? adapter_description : "<No Description>");
}
if (adapter_description &&
bstr_equals0(requested_adapter_name, adapter_description))
if (adapter_description && requested_adapter_name.len &&
bstr_case_startswith(bstr0(adapter_description),
requested_adapter_name))
{
picked_adapter = adapter;
break;
@ -282,7 +283,7 @@ bool mp_d3d11_create_present_device(struct mp_log *log,
adapter = get_d3d11_adapter(log, bstr0(adapter_name), NULL);
if (adapter_name && !adapter) {
mp_warn(log, "Adapter '%s' was not found in the system! "
mp_warn(log, "Adapter matching '%s' was not found in the system! "
"Will fall back to the default adapter.\n",
adapter_name);
}