diff options
-rw-r--r-- | src/gallium/drivers/svga/svga_context.h | 2 | ||||
-rw-r--r-- | src/gallium/drivers/svga/svga_pipe_blit.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/svga/svga_pipe_query.c | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/svga/svga_context.h b/src/gallium/drivers/svga/svga_context.h index 3e65384a07a..5eb7fc87187 100644 --- a/src/gallium/drivers/svga/svga_context.h +++ b/src/gallium/drivers/svga/svga_context.h @@ -589,6 +589,8 @@ struct svga_context SVGA3dQueryId query_id; boolean cond; } pred; + + boolean render_condition; }; /* A flag for each state_tracker state object: diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c index 75576f2d72c..054e3f5a1c0 100644 --- a/src/gallium/drivers/svga/svga_pipe_blit.c +++ b/src/gallium/drivers/svga/svga_pipe_blit.c @@ -265,7 +265,8 @@ can_blit_via_copy_region_vgpu10(struct svga_context *svga, blit_info->mask != (PIPE_MASK_ZS)) return false; - if (blit_info->alpha_blend || blit_info->render_condition_enable || + if (blit_info->alpha_blend || + (svga->render_condition && blit_info->render_condition_enable) || blit_info->scissor_enable) return false; diff --git a/src/gallium/drivers/svga/svga_pipe_query.c b/src/gallium/drivers/svga/svga_pipe_query.c index a7bfb4ea265..e8bae264cf1 100644 --- a/src/gallium/drivers/svga/svga_pipe_query.c +++ b/src/gallium/drivers/svga/svga_pipe_query.c @@ -1242,6 +1242,8 @@ svga_render_condition(struct pipe_context *pipe, struct pipe_query *q, svga->pred.query_id = queryId; svga->pred.cond = condition; } + + svga->render_condition = (sq != NULL); } |