diff --git a/src/util/util_monitor.cpp b/src/util/util_monitor.cpp index 287677604..1b84714ff 100644 --- a/src/util/util_monitor.cpp +++ b/src/util/util_monitor.cpp @@ -25,6 +25,21 @@ namespace dxvk { pMode->dmPelsWidth, "x", pMode->dmPelsHeight, "@", pMode->dmDisplayFrequency)); + DEVMODEW curMode = { }; + curMode.dmSize = sizeof(curMode); + + if (GetMonitorDisplayMode(hMonitor, ENUM_CURRENT_SETTINGS, &curMode)) { + bool eq = curMode.dmPelsWidth == pMode->dmPelsWidth + && curMode.dmPelsHeight == pMode->dmPelsHeight + && curMode.dmBitsPerPel == pMode->dmBitsPerPel; + + if (pMode->dmFields & DM_DISPLAYFREQUENCY) + eq &= curMode.dmDisplayFrequency == pMode->dmDisplayFrequency; + + if (eq) + return true; + } + LONG status = ::ChangeDisplaySettingsExW(monInfo.szDevice, pMode, nullptr, CDS_FULLSCREEN, nullptr);