summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Ekström <jeebjp@gmail.com>2019-10-14 20:01:11 +0300
committerJan Ekström <jeebjp@gmail.com>2019-10-15 22:12:48 +0300
commit684ffd13b4940eb7a5d4228f850d903a72570242 (patch)
treee1853de57e1d871e19a5686947c76ae036c727c0
parentf0f13871453504767e0e9fed470853108cb8bbac (diff)
downloadmpv-684ffd13b4940eb7a5d4228f850d903a72570242.tar.bz2
mpv-684ffd13b4940eb7a5d4228f850d903a72570242.tar.xz
vo_gpu/d3d11: fixup adapter selection by switching it all to bstr
I did ponder if I should have done this right away, and it seems like not doing it at first was a mistake.
-rw-r--r--video/out/d3d11/context.c2
-rw-r--r--video/out/gpu/d3d11_helpers.c16
-rw-r--r--video/out/gpu/d3d11_helpers.h2
3 files changed, 8 insertions, 12 deletions
diff --git a/video/out/d3d11/context.c b/video/out/d3d11/context.c
index d2062a5619..be595eff3d 100644
--- a/video/out/d3d11/context.c
+++ b/video/out/d3d11/context.c
@@ -106,7 +106,7 @@ static int d3d11_validate_adapter(struct mp_log *log,
}
adapter_matched = mp_d3d11_list_or_verify_adapters(log,
- help ? NULL : &param,
+ help ? bstr0(NULL) : param,
help ? &listing : NULL);
if (help) {
diff --git a/video/out/gpu/d3d11_helpers.c b/video/out/gpu/d3d11_helpers.c
index 9e05b7b878..6ea778a875 100644
--- a/video/out/gpu/d3d11_helpers.c
+++ b/video/out/gpu/d3d11_helpers.c
@@ -160,7 +160,7 @@ static int get_feature_levels(int max_fl, int min_fl,
}
static IDXGIAdapter1 *get_d3d11_adapter(struct mp_log *log,
- char *requested_adapter_name,
+ struct bstr requested_adapter_name,
struct bstr *listing)
{
HRESULT hr = S_OK;
@@ -204,8 +204,8 @@ static IDXGIAdapter1 *get_d3d11_adapter(struct mp_log *log,
adapter_description ? adapter_description : "<No Description>");
}
- if (requested_adapter_name && adapter_description &&
- !strcmp(requested_adapter_name, adapter_description))
+ if (adapter_description &&
+ bstr_equals0(requested_adapter_name, adapter_description))
{
picked_adapter = adapter;
break;
@@ -239,7 +239,7 @@ static HRESULT create_device(struct mp_log *log, IDXGIAdapter1 *adapter,
}
bool mp_d3d11_list_or_verify_adapters(struct mp_log *log,
- bstr *adapter_name,
+ bstr adapter_name,
bstr *listing)
{
IDXGIAdapter1 *picked_adapter = NULL;
@@ -248,11 +248,7 @@ bool mp_d3d11_list_or_verify_adapters(struct mp_log *log,
return false;
}
- if ((picked_adapter = get_d3d11_adapter(log,
- adapter_name ?
- (char *)adapter_name->start : NULL,
- listing)))
- {
+ if ((picked_adapter = get_d3d11_adapter(log, adapter_name, listing))) {
SAFE_RELEASE(picked_adapter);
return true;
}
@@ -283,7 +279,7 @@ bool mp_d3d11_create_present_device(struct mp_log *log,
goto done;
}
- adapter = get_d3d11_adapter(log, adapter_name, NULL);
+ adapter = get_d3d11_adapter(log, bstr0(adapter_name), NULL);
if (adapter_name && !adapter) {
mp_warn(log, "Adapter '%s' was not found in the system! "
diff --git a/video/out/gpu/d3d11_helpers.h b/video/out/gpu/d3d11_helpers.h
index cd22d4b145..2ffc4ec40d 100644
--- a/video/out/gpu/d3d11_helpers.h
+++ b/video/out/gpu/d3d11_helpers.h
@@ -60,7 +60,7 @@ struct d3d11_device_opts {
};
bool mp_d3d11_list_or_verify_adapters(struct mp_log *log,
- bstr *adapter_name,
+ bstr adapter_name,
bstr *listing);
bool mp_d3d11_create_present_device(struct mp_log *log,