summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2014-06-02 16:14:09 +0200
committerMarek Olšák <marek.olsak@amd.com>2014-06-03 13:33:14 +0200
commit0423513c6195c5fbe36462e8818c606731c959a0 (patch)
treea61d908d1164d86c9e7c78ddb41fe102de82e643
parent3a92fc1bddf465bd523447eef783edccd83f2e15 (diff)
radeonsi: BlitFramebuffer should follow render condition
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
-rw-r--r--src/gallium/drivers/radeonsi/si_blit.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
index 6bc89ab76d1..0a4a660d2ac 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -38,12 +38,11 @@ enum si_blitter_op /* bitmask */
SI_COPY = SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES |
SI_DISABLE_RENDER_COND,
- SI_BLIT = SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES |
- SI_DISABLE_RENDER_COND,
+ SI_BLIT = SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES,
SI_DECOMPRESS = SI_SAVE_FRAMEBUFFER | SI_DISABLE_RENDER_COND,
- SI_COLOR_RESOLVE = SI_SAVE_FRAMEBUFFER | SI_DISABLE_RENDER_COND
+ SI_COLOR_RESOLVE = SI_SAVE_FRAMEBUFFER
};
static void si_blitter_begin(struct pipe_context *ctx, enum si_blitter_op op)
@@ -690,7 +689,8 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx,
info->src.box.depth == 1 &&
dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D &&
!(dst->surface.flags & RADEON_SURF_SCANOUT)) {
- si_blitter_begin(ctx, SI_COLOR_RESOLVE);
+ si_blitter_begin(ctx, SI_COLOR_RESOLVE |
+ (info->render_condition_enable ? 0 : SI_DISABLE_RENDER_COND));
util_blitter_custom_resolve_color(sctx->blitter,
info->dst.resource, info->dst.level,
info->dst.box.z,
@@ -720,7 +720,8 @@ static void si_blit(struct pipe_context *ctx,
info->src.box.z,
info->src.box.z + info->src.box.depth - 1);
- si_blitter_begin(ctx, SI_BLIT);
+ si_blitter_begin(ctx, SI_BLIT |
+ (info->render_condition_enable ? 0 : SI_DISABLE_RENDER_COND));
util_blitter_blit(sctx->blitter, info);
si_blitter_end(ctx);
}