mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
gallium/radeon: don't disable DCC because of SDMA
We want to keep DCC enabled to save bandwidth. It was a bad idea to disable it here. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
2fd74a05bb
commit
c65361763c
1 changed files with 3 additions and 20 deletions
|
|
@ -32,8 +32,6 @@
|
|||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
static bool r600_texture_discard_dcc(struct r600_common_screen *rscreen,
|
||||
struct r600_texture *rtex);
|
||||
static void r600_texture_discard_cmask(struct r600_common_screen *rscreen,
|
||||
struct r600_texture *rtex);
|
||||
static unsigned r600_choose_tiling(struct r600_common_screen *rscreen,
|
||||
|
|
@ -69,27 +67,12 @@ bool r600_prepare_for_dma_blit(struct r600_common_context *rctx,
|
|||
|
||||
/* DCC as:
|
||||
* src: Use the 3D path. DCC decompression is expensive.
|
||||
* dst: If overwriting the whole texture, discard DCC and use SDMA.
|
||||
* Otherwise, use the 3D path.
|
||||
* dst: Use the 3D path to compress the pixels with DCC.
|
||||
*/
|
||||
if (rsrc->dcc_offset && rsrc->surface.level[src_level].dcc_enabled)
|
||||
if ((rsrc->dcc_offset && rsrc->surface.level[src_level].dcc_enabled) ||
|
||||
(rdst->dcc_offset && rdst->surface.level[dst_level].dcc_enabled))
|
||||
return false;
|
||||
|
||||
if (rdst->dcc_offset && rdst->surface.level[dst_level].dcc_enabled) {
|
||||
/* We can't discard DCC if the texture has been exported.
|
||||
* We can only discard DCC for the entire texture.
|
||||
*/
|
||||
if (rdst->resource.is_shared ||
|
||||
rdst->resource.b.b.last_level > 0 ||
|
||||
!util_texrange_covers_whole_level(&rdst->resource.b.b, dst_level,
|
||||
dstx, dsty, dstz, src_box->width,
|
||||
src_box->height, src_box->depth))
|
||||
return false;
|
||||
|
||||
if (!r600_texture_discard_dcc(rctx->screen, rdst))
|
||||
return false;
|
||||
}
|
||||
|
||||
/* CMASK as:
|
||||
* src: Both texture and SDMA paths need decompression. Use SDMA.
|
||||
* dst: If overwriting the whole texture, discard CMASK and use
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue