mirror of
https://github.com/brl/mutter.git
synced 2024-12-22 19:12:04 +00:00
c2c4f74923
Compare, tile by tile, whether actual damage actually changed any pixels. While this requires mmap():ing DMA buffers and comparing their content, we should only ever use shadow buffers when we're using the software renderer, meaning mmap() is cheap as it doesn't involve any downloading. This works by making the shadow framebuffer double buffered, while keeping track of damage history. When we're about to swap the onscreen buffer, we compare what part of the posted damage actually changed, records that into a damage history, then given the onscreen buffer age, collect all actual damage for that age. The intersection of these tiles, and the actual damage, is then used when blitting the shadow buffer to the onscreen framebuffer. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1157 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1237 |
||
---|---|---|
.. | ||
clutter | ||
.gitignore | ||
meson.build |