From f74b2cd6c6a7c299ce72e4ad3f8718fed1ee5443 Mon Sep 17 00:00:00 2001 From: WinterSnowfall Date: Wed, 30 Oct 2024 23:38:11 +0200 Subject: [PATCH] [d3d9] Order modes descending by refresh rate --- src/d3d9/d3d9_adapter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/d3d9/d3d9_adapter.cpp b/src/d3d9/d3d9_adapter.cpp index 75120417b..5ae10210a 100644 --- a/src/d3d9/d3d9_adapter.cpp +++ b/src/d3d9/d3d9_adapter.cpp @@ -817,8 +817,9 @@ namespace dxvk { m_modes.push_back(mode); } - // Sort display modes by width, height and refresh rate, - // in that order. Some games rely on correct ordering. + // Sort display modes by width, height and refresh rate (descending), in that order. + // Some games rely on correct ordering, e.g. Prince of Persia (2008) expects the highest + // refresh rate to be listed first for a particular resolution. std::sort(m_modes.begin(), m_modes.end(), [](const D3DDISPLAYMODEEX& a, const D3DDISPLAYMODEEX& b) { if (a.Width < b.Width) return true; @@ -827,7 +828,7 @@ namespace dxvk { if (a.Height < b.Height) return true; if (a.Height > b.Height) return false; - return a.RefreshRate < b.RefreshRate; + return b.RefreshRate < a.RefreshRate; }); }