swayfx-mosaic/tooling/probes/step20c-effects-damage/effect-trace.patch

24 lines
1.1 KiB
Diff

--- a/types/scene/wlr_scene.c
+++ b/types/scene/wlr_scene.c
@@ -2117,6 +2117,21 @@
};
scene_node_get_size(node, &dst_box.width, &dst_box.height);
transform_output_box(&dst_box, data);
+
+ // WHY: prove real effect-node presence separately from accepted IPC.
+ // CONTRACT: trace only a private copy; identities are process-local.
+ // INVARIANT: read-only logging changes no render or cache decision.
+ if (node->type == WLR_SCENE_NODE_SHADOW || node->type == WLR_SCENE_NODE_BLUR
+ || node->type == WLR_SCENE_NODE_OPTIMIZED_BLUR) {
+ const pixman_box32_t *box = pixman_region32_extents(&render_region);
+ int dirty = node->type == WLR_SCENE_NODE_OPTIMIZED_BLUR
+ ? wlr_scene_optimized_blur_from_node(node)->dirty : -1;
+ wlr_log(WLR_INFO, "FX_TRACE output=%s type=%d node=%p enabled=%d "
+ "dst=%d,%d %dx%d draw=%d,%d..%d,%d dirty=%d",
+ data->output->output->name, node->type, (void *)node, node->enabled,
+ dst_box.x, dst_box.y, dst_box.width, dst_box.height,
+ box->x1, box->y1, box->x2, box->y2, dirty);
+ }
pixman_region32_t opaque;
pixman_region32_init(&opaque);