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

@ -20,6 +20,8 @@
#include <aquamarine/allocator/Swapchain.hpp>
#include <hyprutils/os/FileDescriptor.hpp>
class CMonitorFrameScheduler;
// Enum for the different types of auto directions, e.g. auto-left, auto-up.
enum eAutoDirs : uint8_t {
DIR_AUTO_NONE = 0, /* None will be treated as right. */
@ -160,6 +162,8 @@ class CMonitor {
PHLMONITORREF m_self;
UP<CMonitorFrameScheduler> m_frameScheduler;
// mirroring
PHLMONITORREF m_mirrorOf;
std::vector<PHLMONITORREF> m_mirrors;
@ -228,7 +232,6 @@ class CMonitor {
void onCursorMovedOnMonitor();
void debugLastPresentation(const std::string& message);
void onMonitorFrame();
bool supportsWideColor();
bool supportsHDR();