Browse Source

Merge pull request #12781 from goldenx86/dozen

Demote dozen to the bottom of the device list
nce_cpp
Matías Locatti 2 years ago
committed by GitHub
parent
commit
4a97e15458
  1. 10
      src/video_core/vulkan_common/vulkan_wrapper.cpp

10
src/video_core/vulkan_common/vulkan_wrapper.cpp

@ -39,6 +39,10 @@ void SortPhysicalDevicesPerVendor(std::vector<VkPhysicalDevice>& devices,
} }
} }
bool IsMicrosoftDozen(const char* device_name) {
return std::strstr(device_name, "Microsoft") != nullptr;
}
void SortPhysicalDevices(std::vector<VkPhysicalDevice>& devices, const InstanceDispatch& dld) { void SortPhysicalDevices(std::vector<VkPhysicalDevice>& devices, const InstanceDispatch& dld) {
// Sort by name, this will set a base and make GPUs with higher numbers appear first // Sort by name, this will set a base and make GPUs with higher numbers appear first
// (e.g. GTX 1650 will intentionally be listed before a GTX 1080). // (e.g. GTX 1650 will intentionally be listed before a GTX 1080).
@ -52,6 +56,12 @@ void SortPhysicalDevices(std::vector<VkPhysicalDevice>& devices, const InstanceD
}); });
// Prefer Nvidia over AMD, AMD over Intel, Intel over the rest. // Prefer Nvidia over AMD, AMD over Intel, Intel over the rest.
SortPhysicalDevicesPerVendor(devices, dld, {0x10DE, 0x1002, 0x8086}); SortPhysicalDevicesPerVendor(devices, dld, {0x10DE, 0x1002, 0x8086});
// Demote Microsoft's Dozen devices to the bottom.
SortPhysicalDevices(
devices, dld,
[](const VkPhysicalDeviceProperties& lhs, const VkPhysicalDeviceProperties& rhs) {
return IsMicrosoftDozen(rhs.deviceName) && !IsMicrosoftDozen(lhs.deviceName);
});
} }
template <typename T> template <typename T>

Loading…
Cancel
Save