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; }); }