[Mesa-dev] [PATCH v2 6/7] radeonsi: Add DCC decompress.
axel.davy at ens.fr
Mon Oct 12 16:20:33 PDT 2015
On 13/10/2015 00:42, Bas Nieuwenhuizen wrote:
> Hi Axel,
> Using DCC for scanout surfaces is problematic because as far as I
> understand the display hardware does not support it. We could solve
> that partially by decompressing when displaying.
> However, the X server can also use these surfaces as a front buffer
> and for that case we cannot just use decompression without performance
> regressions for decompressing often.
> Furthermore, when using such a surface as back buffer, we would still
> need a single decompression before displaying it. It really depends on
> the application whether that improves performances or regresses it.
> For example, Xonotic regresses for me if I enable DCC for scanout
> Yours sincerely,
> Bas Nieuwenhuizen
When the application is fullscreen, the backbuffer can be reused as is
for the display.
This is not done in practice in all scenario. DRI2 with vsync does it,
Wayland and DRI3 do it.
In X world that also depends whether the compositor enforces compositing
for fullscreen applications or not.
The backbuffer needs to be scanout able in case the backbuffer is used
for the display.
When a backbuffer is used for displaying, we use another one for rendering.
Given usually apps do render to backbuffer directly, it seems good to me
to have the backbuffer compressed during rendering, and then
decompressed before presenting the buffer.
I guess some scenarios can be hit, for example if application is
rendering everything to a framebuffer, and then copying to backbuffer in
the end before presenting. Perhaps it is what Xonotic does ? I suggest
to use commercial games for testing.
Is the card able to use the dma engine to decompress dcc ? That should
solve the performance hits when decompressing.
More information about the mesa-dev