mirror of
https://github.com/Blinue/Magpie.git
synced 2026-06-24 02:04:10 +00:00
fix: 修复有时显卡顺序错误的问题
This commit is contained in:
parent
a072bf08f4
commit
a56ecbd61e
1 changed files with 7 additions and 4 deletions
|
|
@ -113,18 +113,21 @@ bool AdaptersService::_GatherAdapterInfos(
|
|||
}
|
||||
|
||||
// 删除不支持功能级别 11 的显卡
|
||||
std::vector<AdapterInfo> compatibleAdapterInfos;
|
||||
wil::srwlock writeLock;
|
||||
Win32Helper::RunParallel([&](uint32_t i) {
|
||||
D3D_FEATURE_LEVEL fl = D3D_FEATURE_LEVEL_11_0;
|
||||
if (SUCCEEDED(D3D11CreateDevice(adapters[i].get(), D3D_DRIVER_TYPE_UNKNOWN,
|
||||
if (FAILED(D3D11CreateDevice(adapters[i].get(), D3D_DRIVER_TYPE_UNKNOWN,
|
||||
NULL, 0, &fl, 1, D3D11_SDK_VERSION, nullptr, nullptr, nullptr))) {
|
||||
auto lock = writeLock.lock_exclusive();
|
||||
compatibleAdapterInfos.push_back(std::move(adapterInfos[i]));
|
||||
adapterInfos[i].idx = std::numeric_limits<uint32_t>::max();
|
||||
}
|
||||
}, (uint32_t)adapters.size());
|
||||
|
||||
App::Get().Dispatcher().RunAsync(CoreDispatcherPriority::Normal, [this, adapterInfos(std::move(compatibleAdapterInfos))]() {
|
||||
std::erase_if(adapterInfos, [](const AdapterInfo& info) {
|
||||
return info.idx == std::numeric_limits<uint32_t>::max();
|
||||
});
|
||||
|
||||
App::Get().Dispatcher().RunAsync(CoreDispatcherPriority::Normal, [this, adapterInfos(std::move(adapterInfos))]() {
|
||||
_adapterInfos = std::move(adapterInfos);
|
||||
_UpdateProfiles();
|
||||
AdaptersChanged.Invoke();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue