Skip to content

Add support for EGL_KHR_partial_update

Erico Nunes requested to merge enunes/mutter:partial-update into main

Mutter already calculates and tracks the damage rectangles to redraw only areas of the screen that change since the last time a buffer was used. This is extended here by using the EGL_KHR_partial_update extension to inform the GPU in advance that only those areas will be changed, which may allow for further optimization by the driver.

I checked the impact of this with the lima driver using the hardware performance counters for number of memory reads and writes done by the GPU. There is a drop in those numbers, sometimes significant, but it seems that with mutter only a few frames benefit from this. It is not clear to me yet why other frames are not affected. If there are any hints, please let me know.

I will proceed to do some more investigation on why most frames are not affected, but for now I think this is already ready for a code review and so far I haven't observed any negative impact from using it.

Merge request reports