[Mesa-dev] [PATCH 5/5] r600g, radeonsi: don't use hardware MSAA resolve if dst is fast-cleared
Marek Olšák
maraeo at gmail.com
Mon Jun 2 08:19:32 PDT 2014
From: Marek Olšák <marek.olsak at amd.com>
It doesn't work and our docs say so too.
Cc: mesa-stable at lists.freedesktop.org
---
src/gallium/drivers/r600/r600_blit.c | 3 ++-
src/gallium/drivers/radeonsi/si_blit.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index a2e7fa3..3269c47 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -788,7 +788,8 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx,
info->src.box.width == dst_width &&
info->src.box.height == dst_height &&
info->src.box.depth == 1 &&
- dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D) {
+ dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D &&
+ (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) {
r600_blitter_begin(ctx, R600_COLOR_RESOLVE |
(info->render_condition_enable ? 0 : R600_DISABLE_RENDER_COND));
util_blitter_custom_resolve_color(rctx->blitter,
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
index 0a4a660..e02615f 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -688,7 +688,8 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx,
info->src.box.height == dst_height &&
info->src.box.depth == 1 &&
dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D &&
- !(dst->surface.flags & RADEON_SURF_SCANOUT)) {
+ !(dst->surface.flags & RADEON_SURF_SCANOUT) &&
+ (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) {
si_blitter_begin(ctx, SI_COLOR_RESOLVE |
(info->render_condition_enable ? 0 : SI_DISABLE_RENDER_COND));
util_blitter_custom_resolve_color(sctx->blitter,
--
1.9.1
More information about the mesa-dev
mailing list