[Mesa-dev] [PATCH 0/8] Add DCC support.
Marek Olšák
maraeo at gmail.com
Fri Sep 4 15:28:14 PDT 2015
Thank you very much. I'm impressed.
Sorry, but this will take some time for me to review because I'm very
busy currently. I will have to check with internal documentation if
everything is correct. The idea of not using DCC for scanout/shared
buffers is great.
Marek
On Fri, Sep 4, 2015 at 9:47 PM, Bas Nieuwenhuizen
<bas at basnieuwenhuizen.nl> wrote:
> This patch series enables delta color compression (DCC) for Vulcanic
> Islands GPU's. This should reduce memory bandwidth to increase
> performance.
>
> I have found no documentation on this feature, so most of the work is
> based on guesswork, register names and Catalyst traces.
>
> Some benchmarks I've ran:
>
> nexuiz 68.83 -> 81.62
> openarena 50.90 -> 50.80
> heaven 5.47 -> 6.26
> valley 9.58 -> 10.40
> xonotic 60.32 -> 60.27
>
> Note that DCC for SCANOUT surfaces is still disabled, as the X server
> can be rendering to it as front buffer, which has no resource flush.
>
> As a side effect, the main framebuffers of clients (at least on DRI2)
> are also not DCC enabled. As passing a surface to the X server and
> display are the most common reasons for decompressing, games should not
> pretty much never trigger the DCC decompression path. We therefore
> should have only very minor performance regressions. If I enable DCC
> for SCANOUT buffers in applications I get
>
> nexuiz 68.83 -> 78.81
> openarena 50.90 -> 56.10
> heaven 5.47 -> 6.28
> valley 9.58 -> 10.54
> xonotic 60.32 -> 56.26
>
> This change would have somewhat mixed results, with a regression for
> xonotic.
>
> As for testing, I run this systemwide for a few days now and a piglit
> test minus a few tests that locked up on the baseline or
> seemingly gave random results, did not result in regressions.
>
>
> Bas Nieuwenhuizen (8):
> radeonsi: Allocate buffers for DCC.
> radeonsi: Add DCC compression tracking machinery.
> radeonsi: Enable DCC.
> radeonsi: Add DCC fast clear.
> radeonsi: Invalidate the L2 cache on framebuffer change.
> radeonsi: Add sampling of DCC compressed textures.
> radeonsi: Do not decompress DCC textures for sampling.
> radeonsi: Add DCC for multisampled textures.
>
> src/gallium/drivers/radeon/r600_buffer_common.c | 20 +++++++
> src/gallium/drivers/radeon/r600_pipe_common.h | 9 ++++
> src/gallium/drivers/radeon/r600_texture.c | 69 +++++++++++++++++++++----
> src/gallium/drivers/radeon/r600d_common.h | 1 +
> src/gallium/drivers/radeon/radeon_winsys.h | 5 ++
> src/gallium/drivers/radeonsi/cik_sdma.c | 6 ++-
> src/gallium/drivers/radeonsi/si_blit.c | 39 +++++++++-----
> src/gallium/drivers/radeonsi/si_descriptors.c | 5 ++
> src/gallium/drivers/radeonsi/si_dma.c | 6 ++-
> src/gallium/drivers/radeonsi/si_pipe.c | 2 +
> src/gallium/drivers/radeonsi/si_pipe.h | 3 ++
> src/gallium/drivers/radeonsi/si_state.c | 47 ++++++++++++++---
> src/gallium/drivers/radeonsi/si_state_draw.c | 14 +++++
> src/gallium/drivers/radeonsi/sid.h | 1 +
> src/gallium/winsys/amdgpu/drm/amdgpu_surface.c | 47 +++++++++++++++--
> 15 files changed, 237 insertions(+), 37 deletions(-)
>
> --
> 2.5.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list