summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/svga/svga_context.h2
-rw-r--r--src/gallium/drivers/svga/svga_pipe_blit.c3
-rw-r--r--src/gallium/drivers/svga/svga_pipe_query.c2
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);
}