[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