Skip to content

Avoid painting unchanged scene layers

David Edmundson requested to merge work/d_ed/layer_paint_optimise into master

Currently when we move the mouse the one render loop triggers a repaint. When the cursor layer needs a new update we end up in the compositor repainting the main content.

Even though painting should mostly no-op it still goes through all existing items and effects to collect damage, still potentially making the GL context current which could stall. A waste when we know we haven't got anything to do. It's enough to cause noticable mouse lag on some hardware.

In terms of longer term planning, building on this, we need to split RenderLoop into the part that happens on the output, and a thin wrapper round that with the journal that triggers on a per-layer basis.

Merge request reports