aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorvaxerski <[email protected]>2023-04-09 17:59:24 +0100
committervaxerski <[email protected]>2023-04-09 17:59:24 +0100
commit3ade6c4a9635a035ea243eab780e53d60e6897c3 (patch)
treed8bcc9ec246c5751b493ed58c8f07038a281789e
parent046ad79d11dbccc90ade48d63aaa340655d999fb (diff)
downloadHyprland-3ade6c4a9635a035ea243eab780e53d60e6897c3.tar.gz
Hyprland-3ade6c4a9635a035ea243eab780e53d60e6897c3.zip
renderer: fixup damage repaintv0.24.1
-rw-r--r--src/render/Renderer.cpp20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 75546d6b..b6a8499c 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -815,9 +815,12 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
// check the damage
pixman_region32_t damage;
- bool hasChanged = pMonitor->output->needs_frame || !pixman_region32_not_empty(&pMonitor->damage.current);
+ bool hasChanged = pMonitor->output->needs_frame || pixman_region32_not_empty(&pMonitor->damage.current);
int bufferAge;
+ if (!hasChanged && *PDAMAGETRACKINGMODE != DAMAGE_TRACKING_NONE && pMonitor->forceFullFrames == 0 && damageBlinkCleanup == 0)
+ return;
+
if (*PDAMAGETRACKINGMODE == -1) {
Debug::log(CRIT, "Damage tracking mode -1 ????");
return;
@@ -844,21 +847,6 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
// we need to cleanup fading out when rendering the appropriate context
g_pCompositor->cleanupFadingOut(pMonitor->ID);
- if (!hasChanged && *PDAMAGETRACKINGMODE != DAMAGE_TRACKING_NONE && pMonitor->forceFullFrames == 0 && damageBlinkCleanup == 0) {
- pixman_region32_fini(&damage);
- wlr_output_rollback(pMonitor->output);
-
- if (*PDAMAGEBLINK || *PVFR == 0)
- g_pCompositor->scheduleFrameForMonitor(pMonitor);
-
- pMonitor->renderingActive = false;
-
- if (UNLOCK_SC)
- wlr_output_lock_software_cursors(pMonitor->output, false);
-
- return;
- }
-
// if we have no tracking or full tracking, invalidate the entire monitor
if (*PDAMAGETRACKINGMODE == DAMAGE_TRACKING_NONE || *PDAMAGETRACKINGMODE == DAMAGE_TRACKING_MONITOR || pMonitor->forceFullFrames > 0 || damageBlinkCleanup > 0 ||
pMonitor->isMirror() /* why??? */) {