git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commita04abb61e567d1159996ac5aaa5cc8ff06439c13
parenta110048fbe
authorLucas Galante <[email protected]>
date2026-07-14 10:56
fix(scenefx): re-enable blur artifact compensation around damage

Commit 092b91e added the cursor-history guard that punches holes in the
blur padding region so restored pixels can't resurrect stale software
cursors — but it also flipped should_compensate_blur to false in the
apply_blur_region branch, leaving the whole compensation block (guard
included) dead. Since then any damage over a blurred surface (e.g. the
software cursor crossing a status module backplate) re-blurs just the
damaged patch with clip-edge conditions that don't match the
surrounding cached blur, showing up as a lighter band around the
cursor.

Restore upstream's should_compensate_blur = true; the ghost-cursor
guard now actually runs.

Co-Authored-By: Claude Fable 5 <[email protected]>

 scenefx/types/scene/wlr_scene.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scenefx/types/scene/wlr_scene.c b/scenefx/types/scene/wlr_scene.c
index ef17f4a..9c9b3b3 100644
--- a/scenefx/types/scene/wlr_scene.c
+++ b/scenefx/types/scene/wlr_scene.c
@@ -3422,7 +3422,7 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output,
 
 			if (apply_blur_region(node, &blur_data, &render_data, state,
 						&original_damage, &blur_padding_region)) {
-				should_compensate_blur = false;
+				should_compensate_blur = true;
 				fx_pass->has_blur = true;
 			}
 		}