Disable GLX/EGL_EXT_buffer_age for lima

Closed Qiang Yu requested to merge yuq825/mesa:topic/buffer-age into master

Mali Utgard GPU wants to disable this extension all the time and use EGL_KHR_partial_update instead.

Without knowing damage region first, some tile buffer based GPU like ARM Mali Utgard has to load whole render target to tile buffer before partitial update, then write them back. Expose this extension will mis-lead application to use it which will make performance worse for this kind of GPU. EGL_KHR_partial_update is better choice for this kind of GPU.

We have some discussion before:

There's a drirc config glx_disable_ext_buffer_age which is used by vmware driver to disable this extension for some application. But this way driver still need to implement the buffer reload case as the drirc config could be changed by user. This is not a problem for non-tile buffer GPUs which reserve buffer across swap is their default behavior, but for tile buffer GPUs like Mali Utgard, reserve/drop buffer need two different path. So these two options serve different needs.

As left user to decide whether to use this extension, unfortunately there's no API in these two extensions for user to know the cost of using this extension (whether need to reload whole buffer). So application will always use it when this extension is present.

Merge request reports