[Mesa-dev] [PATCH 0/8] Add DCC support.

Marek Olšák maraeo at gmail.com
Wed Sep 23 17:45:42 PDT 2015


FYI, I've reviewed all patches now.

Marek

On Sat, Sep 5, 2015 at 12:28 AM, Marek Olšák <maraeo at gmail.com> wrote:
> 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