DRI

Comment 47 for bug 1714178

Revision history for this message
In , Martin-peres-n (martin-peres-n) wrote :

I am working on the this feature request.

First, we need to be able to lift the limit that comment #0 proposed. To do so, we need to make sure we never exceed the maximum stride supported by the display controllers used by all the active CRTCs. If we exceed one of them, we need to enable per-CRTC framebuffers. This is a good base for tear-free anyway, and will enable this feature for all vendors.

I got a naive version of the proper patch to work as expected. I will keep on working on it to improve the performance and make it work with rotated displays and all the other options. I will then work on making the enabling of this feature dynamic, so as not to negatively affect the performance in the general case.

Once this is done, I will work with a kernel engineer to work-around the maximum-stride limit by internally creating another buffer that would be a read-only view of the big buffer, but limited to the size of the crtc. This would be done through GTT pages reshuffling (like what is done for rotation). If all goes well, the performance loss should be ~0 for the tearing implementation.

The tear-free implementation will however still require blitting, but this is not blocking this bug so we'll not talk about it here.

I'll keep you up to date.