summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-06-21 16:09:33 +0200
committerMarek Olšák <[email protected]>2016-06-29 20:12:00 +0200
commitfa7c927625ec1904a659edfdd677b5752165590a (patch)
treefe1c7fae97cadaae40befe646972999effc9ae78
parentebb9c7d7c48c78f3a50654ec6385d9065c1eb7b7 (diff)
radeonsi: always calculate DCC info even if it's not used immediately
for a later use Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/gallium/drivers/radeon/r600_texture.c3
-rw-r--r--src/gallium/winsys/amdgpu/drm/amdgpu_surface.c1
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
index 81acd42a330..50f50257ebf 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1040,7 +1040,8 @@ r600_texture_create_object(struct pipe_screen *screen,
* apply_opaque_metadata later.
*/
if (rtex->surface.dcc_size &&
- (buf || !(rscreen->debug_flags & DBG_NO_DCC))) {
+ (buf || !(rscreen->debug_flags & DBG_NO_DCC)) &&
+ !(rtex->surface.flags & RADEON_SURF_SCANOUT)) {
/* Reserve space for the DCC buffer. */
rtex->dcc_offset = align64(rtex->size, rtex->surface.dcc_alignment);
rtex->size = rtex->dcc_offset + rtex->surface.dcc_size;
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c b/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c
index a45bcb0f776..081f0e1bcb6 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_surface.c
@@ -365,7 +365,6 @@ static int amdgpu_surface_init(struct radeon_winsys *rws,
* driver team).
*/
AddrSurfInfoIn.flags.dccCompatible = !(surf->flags & RADEON_SURF_Z_OR_SBUFFER) &&
- !(surf->flags & RADEON_SURF_SCANOUT) &&
!(surf->flags & RADEON_SURF_DISABLE_DCC) &&
!compressed && AddrDccIn.numSamples <= 1 &&
((surf->array_size == 1 && surf->npix_z == 1) ||