gallium/radeon: handle render_condition_enable for clear_rt/ds

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák 2016-08-09 00:42:14 +02:00
parent a909210131
commit 7df15389af
3 changed files with 12 additions and 6 deletions

View File

@ -435,7 +435,8 @@ static void r300_clear_render_target(struct pipe_context *pipe,
{
struct r300_context *r300 = r300_context(pipe);
r300_blitter_begin(r300, R300_CLEAR_SURFACE);
r300_blitter_begin(r300, R300_CLEAR_SURFACE |
(render_condition_enabled ? 0 : R300_IGNORE_RENDER_COND));
util_blitter_clear_render_target(r300->blitter, dst, color,
dstx, dsty, width, height);
r300_blitter_end(r300);
@ -462,7 +463,8 @@ static void r300_clear_depth_stencil(struct pipe_context *pipe,
}
/* XXX Do not decompress ZMask of the currently-set zbuffer. */
r300_blitter_begin(r300, R300_CLEAR_SURFACE);
r300_blitter_begin(r300, R300_CLEAR_SURFACE |
(render_condition_enabled ? 0 : R300_IGNORE_RENDER_COND));
util_blitter_clear_depth_stencil(r300->blitter, dst, clear_flags, depth, stencil,
dstx, dsty, width, height);
r300_blitter_end(r300);

View File

@ -478,7 +478,8 @@ static void r600_clear_render_target(struct pipe_context *ctx,
{
struct r600_context *rctx = (struct r600_context *)ctx;
r600_blitter_begin(ctx, R600_CLEAR_SURFACE);
r600_blitter_begin(ctx, R600_CLEAR_SURFACE |
(render_condition_enabled ? 0 : R600_DISABLE_RENDER_COND));
util_blitter_clear_render_target(rctx->blitter, dst, color,
dstx, dsty, width, height);
r600_blitter_end(ctx);
@ -495,7 +496,8 @@ static void r600_clear_depth_stencil(struct pipe_context *ctx,
{
struct r600_context *rctx = (struct r600_context *)ctx;
r600_blitter_begin(ctx, R600_CLEAR_SURFACE);
r600_blitter_begin(ctx, R600_CLEAR_SURFACE |
(render_condition_enabled ? 0 : R600_DISABLE_RENDER_COND));
util_blitter_clear_depth_stencil(rctx->blitter, dst, clear_flags, depth, stencil,
dstx, dsty, width, height);
r600_blitter_end(ctx);

View File

@ -764,7 +764,8 @@ static void si_clear_render_target(struct pipe_context *ctx,
{
struct si_context *sctx = (struct si_context *)ctx;
si_blitter_begin(ctx, SI_CLEAR_SURFACE);
si_blitter_begin(ctx, SI_CLEAR_SURFACE |
(render_condition_enabled ? 0 : SI_DISABLE_RENDER_COND));
util_blitter_clear_render_target(sctx->blitter, dst, color,
dstx, dsty, width, height);
si_blitter_end(ctx);
@ -781,7 +782,8 @@ static void si_clear_depth_stencil(struct pipe_context *ctx,
{
struct si_context *sctx = (struct si_context *)ctx;
si_blitter_begin(ctx, SI_CLEAR_SURFACE);
si_blitter_begin(ctx, SI_CLEAR_SURFACE |
(render_condition_enabled ? 0 : SI_DISABLE_RENDER_COND));
util_blitter_clear_depth_stencil(sctx->blitter, dst, clear_flags, depth, stencil,
dstx, dsty, width, height);
si_blitter_end(ctx);