mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 00:50:07 +01:00
d3d12: fallback to integrated adapter instead of arbitrary one
Using the integrated adapter when none is specified uses less power by default and doesn't break scenarios on Optimus systems (for example, on Surface Books, detaching the screen gets prohibited because the GPU on the performance base is in use) Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17005>
This commit is contained in:
parent
3b867ae69b
commit
4622e99e10
1 changed files with 11 additions and 1 deletions
|
|
@ -110,7 +110,17 @@ choose_dxcore_adapter(IDXCoreAdapterFactory *factory, LUID *adapter_luid)
|
|||
}
|
||||
#endif
|
||||
|
||||
// No adapter specified or not found, pick 0 as the default
|
||||
// Adapter not specified or not found, so pick an integrated adapter if possible
|
||||
for (unsigned i = 0; i < list->GetAdapterCount(); ++i) {
|
||||
if (SUCCEEDED(list->GetAdapter(i, &adapter))) {
|
||||
bool is_integrated;
|
||||
if (SUCCEEDED(adapter->GetProperty(DXCoreAdapterProperty::IsIntegrated, &is_integrated)) && is_integrated)
|
||||
return adapter;
|
||||
adapter->Release();
|
||||
}
|
||||
}
|
||||
|
||||
// No integrated GPUs, so pick the first valid one
|
||||
if (list->GetAdapterCount() > 0 && SUCCEEDED(list->GetAdapter(0, &adapter)))
|
||||
return adapter;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue