diff options
| author | UjinT34 <41110182+UjinT34@users.noreply.github.com> | 2025-10-02 13:05:54 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-02 12:05:54 +0200 |
| commit | 3bcfa94ee4189faaa4daf661949e88cf28c00d94 (patch) | |
| tree | 61faa9b18554f0578bb51feaa8f665a627a8c26f /src/render/Renderer.cpp | |
| parent | c467bb26406a35b8bbfac6478e6382d1d79b6664 (diff) | |
renderer: add render:non_shader_cm and fixes (#11900)
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 9 |
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; |
