diff --git a/src/dxvk/dxvk_instance.cpp b/src/dxvk/dxvk_instance.cpp index 5dc6d7cab..e4c0df357 100644 --- a/src/dxvk/dxvk_instance.cpp +++ b/src/dxvk/dxvk_instance.cpp @@ -1,5 +1,7 @@ #include "dxvk_instance.h" +#include + namespace dxvk { DxvkInstance::DxvkInstance() @@ -26,6 +28,13 @@ namespace dxvk { std::vector> result; for (uint32_t i = 0; i < numAdapters; i++) result.push_back(new DxvkAdapter(this, adapters[i])); + + std::sort(result.begin(), result.end(), + [this] (const Rc& a, const Rc& b) -> bool { + return a->deviceProperties().deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU + && b->deviceProperties().deviceType != VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU; + }); + return result; }