[Mesa-dev] [PATCH v3 0/7] Add DCC support
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Tue Oct 20 15:10:35 PDT 2015
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
More information about the mesa-dev
mailing list