From adb443f0d1d83f203240860869212fed924c4348 Mon Sep 17 00:00:00 2001 From: StringWeaver <55291103+StringWeaver@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:53:23 +0800 Subject: [PATCH] fix(win): Windows.Graphics.Capture API frame rate capped at 60fps (#4424) --- src/platform/windows/display_wgc.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/platform/windows/display_wgc.cpp b/src/platform/windows/display_wgc.cpp index e70720eb..15cab763 100644 --- a/src/platform/windows/display_wgc.cpp +++ b/src/platform/windows/display_wgc.cpp @@ -137,6 +137,15 @@ namespace platf::dxgi { } catch (winrt::hresult_error &e) { BOOST_LOG(warning) << "Screen capture may not be fully supported on this device for this release of Windows: failed to disable border around capture area: [0x"sv << util::hex(e.code()).to_string_view() << ']'; } + try { + if (winrt::ApiInformation::IsPropertyPresent(L"Windows.Graphics.Capture.GraphicsCaptureSession", L"MinUpdateInterval")) { + capture_session.MinUpdateInterval(4ms); // 250Hz + } else { + BOOST_LOG(warning) << "Can't set MinUpdateInterval on this version of Windows"; + } + } catch (winrt::hresult_error &e) { + BOOST_LOG(warning) << "Screen capture may be capped to 60fps on this device for this release of Windows: failed to set MinUpdateInterval: [0x"sv << util::hex(e.code()).to_string_view() << ']'; + } try { capture_session.StartCapture(); } catch (winrt::hresult_error &e) {