summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2014-06-02 16:13:43 +0200
committerMarek Olšák <marek.olsak@amd.com>2014-06-03 13:33:14 +0200
commit3a92fc1bddf465bd523447eef783edccd83f2e15 (patch)
treee1599ea4a65e818b58de4b2902c7a764dc7db8b2 /src/gallium
parentd929a30e9a4605cf735a1a1ea8e51daaca01de44 (diff)
r600g: BlitFramebuffer should follow render condition
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r600/r600_blit.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 1a2a9112631..a2e7fa34353 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -42,12 +42,11 @@ enum r600_blitter_op /* bitmask */
R600_COPY_TEXTURE = R600_SAVE_FRAGMENT_STATE | R600_SAVE_FRAMEBUFFER | R600_SAVE_TEXTURES |
R600_DISABLE_RENDER_COND,
- R600_BLIT = R600_SAVE_FRAGMENT_STATE | R600_SAVE_FRAMEBUFFER | R600_SAVE_TEXTURES |
- R600_DISABLE_RENDER_COND,
+ R600_BLIT = R600_SAVE_FRAGMENT_STATE | R600_SAVE_FRAMEBUFFER | R600_SAVE_TEXTURES,
R600_DECOMPRESS = R600_SAVE_FRAGMENT_STATE | R600_SAVE_FRAMEBUFFER | R600_DISABLE_RENDER_COND,
- R600_COLOR_RESOLVE = R600_SAVE_FRAGMENT_STATE | R600_SAVE_FRAMEBUFFER | R600_DISABLE_RENDER_COND
+ R600_COLOR_RESOLVE = R600_SAVE_FRAGMENT_STATE | R600_SAVE_FRAMEBUFFER
};
static void r600_blitter_begin(struct pipe_context *ctx, enum r600_blitter_op op)
@@ -790,7 +789,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) {
- r600_blitter_begin(ctx, R600_COLOR_RESOLVE);
+ r600_blitter_begin(ctx, R600_COLOR_RESOLVE |
+ (info->render_condition_enable ? 0 : R600_DISABLE_RENDER_COND));
util_blitter_custom_resolve_color(rctx->blitter,
info->dst.resource, info->dst.level,
info->dst.box.z,
@@ -822,7 +822,8 @@ static void r600_blit(struct pipe_context *ctx,
return; /* error */
}
- r600_blitter_begin(ctx, R600_BLIT);
+ r600_blitter_begin(ctx, R600_BLIT |
+ (info->render_condition_enable ? 0 : R600_DISABLE_RENDER_COND));
util_blitter_blit(rctx->blitter, info);
r600_blitter_end(ctx);
}