Renderer: Implement new render scheduling (#10936)

Implements a new render scheduling method, where we triple buffer when necessary.

Enabled by default, improves FPS on underpowered devices.

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
This commit is contained in:
Vaxry 2025-07-08 12:41:10 +02:00 committed by GitHub
parent 9856563f89
commit 8f948827a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 209 additions and 84 deletions

View file

@ -62,6 +62,7 @@
#include "hyprerror/HyprError.hpp"
#include "debug/HyprNotificationOverlay.hpp"
#include "debug/HyprDebugOverlay.hpp"
#include "helpers/MonitorFrameScheduler.hpp"
#include <hyprutils/string/String.hpp>
#include <aquamarine/input/Input.hpp>
@ -3097,7 +3098,7 @@ void CCompositor::onNewMonitor(SP<Aquamarine::IOutput> output) {
}
g_pHyprRenderer->damageMonitor(PNEWMONITOR);
PNEWMONITOR->onMonitorFrame();
PNEWMONITOR->m_frameScheduler->onFrame();
if (PROTO::colorManagement && shouldChangePreferredImageDescription()) {
Debug::log(ERR, "FIXME: color management protocol is enabled, need a preferred image description id");