summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2025-10-02 13:05:54 +0300
committerGitHub <noreply@github.com>2025-10-02 12:05:54 +0200
commit3bcfa94ee4189faaa4daf661949e88cf28c00d94 (patch)
tree61faa9b18554f0578bb51feaa8f665a627a8c26f /src/render/Renderer.cpp
parentc467bb26406a35b8bbfac6478e6382d1d79b6664 (diff)
renderer: add render:non_shader_cm and fixes (#11900)
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 0626271e..f8f4cec5 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -1483,9 +1483,10 @@ static hdr_output_metadata createHDRMetadata(SImageDescription settings, S
}
bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) {
- static auto PCT = CConfigValue<Hyprlang::INT>("render:send_content_type");
- static auto PPASS = CConfigValue<Hyprlang::INT>("render:cm_fs_passthrough");
- static auto PAUTOHDR = CConfigValue<Hyprlang::INT>("render:cm_auto_hdr");
+ static auto PCT = CConfigValue<Hyprlang::INT>("render:send_content_type");
+ static auto PPASS = CConfigValue<Hyprlang::INT>("render:cm_fs_passthrough");
+ static auto PAUTOHDR = CConfigValue<Hyprlang::INT>("render:cm_auto_hdr");
+ static auto PNONSHADER = CConfigValue<Hyprlang::INT>("render:non_shader_cm");
static bool needsHDRupdate = false;
@@ -1570,7 +1571,7 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) {
pMonitor->m_output->state->setContentType(NContentType::toDRM(FS_WINDOW ? FS_WINDOW->getContentType() : CONTENT_TYPE_NONE));
if (FS_WINDOW != pMonitor->m_previousFSWindow) {
- if (!FS_WINDOW || !pMonitor->needsCM() || !pMonitor->canNoShaderCM()) {
+ if (!FS_WINDOW || !pMonitor->needsCM() || !pMonitor->canNoShaderCM() || (*PNONSHADER == CM_NS_ONDEMAND && pMonitor->m_lastScanout.expired() && *PPASS != 1)) {
if (pMonitor->m_noShaderCTM) {
Debug::log(INFO, "[CM] No fullscreen CTM, restoring previous one");
pMonitor->m_noShaderCTM = false;