diff options
Diffstat (limited to 'lib/mesa/src/gallium/drivers/r300/r300_blit.c')
-rw-r--r-- | lib/mesa/src/gallium/drivers/r300/r300_blit.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/mesa/src/gallium/drivers/r300/r300_blit.c b/lib/mesa/src/gallium/drivers/r300/r300_blit.c index b8cc316c2..b5c3ae5ac 100644 --- a/lib/mesa/src/gallium/drivers/r300/r300_blit.c +++ b/lib/mesa/src/gallium/drivers/r300/r300_blit.c @@ -382,7 +382,7 @@ static void r300_clear(struct pipe_context* pipe, r300_get_num_cs_end_dwords(r300); /* Reserve CS space. */ - if (dwords > (r300->cs->max_dw - r300->cs->cdw)) { + if (!r300->rws->cs_check_space(r300->cs, dwords)) { r300_flush(&r300->context, RADEON_FLUSH_ASYNC, NULL); } @@ -430,11 +430,13 @@ static void r300_clear_render_target(struct pipe_context *pipe, struct pipe_surface *dst, const union pipe_color_union *color, unsigned dstx, unsigned dsty, - unsigned width, unsigned height) + unsigned width, unsigned height, + bool render_condition_enabled) { 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); @@ -447,7 +449,8 @@ static void r300_clear_depth_stencil(struct pipe_context *pipe, double depth, unsigned stencil, unsigned dstx, unsigned dsty, - unsigned width, unsigned height) + unsigned width, unsigned height, + bool render_condition_enabled) { struct r300_context *r300 = r300_context(pipe); struct pipe_framebuffer_state *fb = @@ -460,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); |