[Mesa-dev] Question about EGL_KHR_partial_update implementation

Harish Krupo harish.krupo.kps at intel.com
Tue Jul 3 04:02:17 UTC 2018

Hi Qiang,

Qiang Yu <yuq825 at gmail.com> writes:

>> > For lima implementation, I want to use the damage region (buffer
>> > damage) provided
>> > by EGL_KHR_partial_update to skip rendering of un-damaged region when
>> > eglSwapBuffersXXX. And tell damage region (surface damage) to compositor should
>> > be left to eglSwapBuffersWithDamageKHR provided by
>> > EGL_KHR_swap_buffers_with_damage.
>> >
>> How do you plan to implement it?
> You mean the mesa framework part or the gpu driver part? For mesa
> framework part I'd like
> to add a driver callback to set damage region, and when flush, driver
> use the damage region
> to skip un-damage region's render. But I don't have a detail plan.

Nice. For the framework part, I was planning on adding a DRI interface
for this and let drivers implement it. If you want to have a look:


> Mali GPU split FBO into 16x16 tiles, it renders each tile into a tile
> buffer mem inside GPU, then
> GPU write this tile buffer into RAM FBO. If mali want to draw
> something based on the original
> content of the FBO tile or draw part of the FBO tile, we have to load
> the FBO tile into GPU tile
> buffer first. If we don't know the damage region before render like
> EGL_EXT_buffer_age,
> GPU has to load the whole FBO into tile buffer, which makes partial
> draw a whole FBO read/write.
> But with EGL_KHR_partial_update, we can skip load of un-damaged FBO
> tile which is really
> partial draw. I think this is the intention of this extension (which
> is also proposed by ARM guys)
> to benifit tile GPU rendering.
> Useful blog:
> https://community.arm.com/graphics/b/blog/posts/mali-performance-3-is-egl_5f00_buffer_5f00_preserved-a-good-thing

Thanks, will read it.

Harish Krupo

More information about the mesa-dev mailing list