diff --git a/src/gallium/drivers/llvmpipe/lp_surface.c b/src/gallium/drivers/llvmpipe/lp_surface.c index bd8102d40d5..f76b62d1e96 100644 --- a/src/gallium/drivers/llvmpipe/lp_surface.c +++ b/src/gallium/drivers/llvmpipe/lp_surface.c @@ -191,11 +191,16 @@ lp_blit(struct pipe_context *pipe, util_blitter_save_render_condition(lp->blitter, lp->render_cond_query, lp->render_cond_cond, lp->render_cond_mode); + + void *render_cond_buffer = lp->render_cond_buffer; + if (!blit_info->render_condition_enable) + lp->render_cond_buffer = NULL; util_blitter_blit(lp->blitter, &info, NULL); /* not sure why this is needed but it is */ if (llvmpipe_is_resource_referenced(pipe, blit_info->dst.resource, blit_info->dst.level) & LP_REFERENCED_FOR_WRITE) lp_setup_bind_framebuffer(lp->setup, &lp->framebuffer); + lp->render_cond_buffer = render_cond_buffer; }