These patches enable delta color compression (DCC) for Vulcanic Islands GPU's. This should reduce memory bandwidth to increase performance.
For the third version I incorporated the suggestions from Marek as well as fixed a bug with the fast clear. There is still no MSAA support yet, as I currently only get it to work correctly if I either use a DCC_DECOMPRESS instead of a normal DECOMPRESS or disable fast clears. Even if I set the CMASK to 0xCCCCCCCC while not fast-clearing it is still slower. v3: - use FLUSH_AND_INV_CB_DATA_TS instead of FLUSH_CACHE - decrease MAX_UNCOMPRESSED_BLOCK_SIZE as necessary - Rework fast clear to be more flexible for formats with < 4 components. - Add dcc_enabled check to DCC decompress. v2: - Rework fast clear not to use CMASK clear. - Rework cache flushes. - Drop MSAA support. - Remove unsupported KEY_CLEAR_ENABLE flag. - Use shader MSAA resolve if the destination is DCC compressed. - Only set ALPHA_IS_ON_MSB when needed. - Rework compression tracking and decompress to be optional. Bas Nieuwenhuizen (7): radeonsi: Allocate buffers for DCC. radeonsi: Disable operations that do not work with DCC. radeonsi: Add FLUSH_AND_INV_CB_DATA_TS for DCC. radeonsi: Enable DCC. radeonsi: Implement DCC fast clear. radeonsi: Add DCC decompression. radeonsi: Add DCC compression tracking machinery. src/gallium/drivers/radeon/r600_buffer_common.c | 21 ++++ src/gallium/drivers/radeon/r600_pipe_common.h | 8 ++ src/gallium/drivers/radeon/r600_texture.c | 125 ++++++++++++++++++++++-- src/gallium/drivers/radeon/r600d_common.h | 1 + src/gallium/drivers/radeon/radeon_winsys.h | 5 + src/gallium/drivers/radeonsi/cik_sdma.c | 3 +- src/gallium/drivers/radeonsi/si_blit.c | 41 +++++--- src/gallium/drivers/radeonsi/si_descriptors.c | 7 +- src/gallium/drivers/radeonsi/si_dma.c | 3 +- src/gallium/drivers/radeonsi/si_pipe.c | 2 + src/gallium/drivers/radeonsi/si_pipe.h | 3 + src/gallium/drivers/radeonsi/si_state.c | 53 ++++++++-- src/gallium/drivers/radeonsi/si_state_draw.c | 25 +++++ src/gallium/drivers/radeonsi/sid.h | 1 + src/gallium/winsys/amdgpu/drm/amdgpu_surface.c | 47 ++++++++- 15 files changed, 310 insertions(+), 35 deletions(-) -- 2.6.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev