summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr/swr_clear.cpp
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2016-11-20 00:04:42 -0500
committerIlia Mirkin <[email protected]>2016-11-21 21:11:26 -0500
commit16d42f2f3dcc8bec8d75b53d1e9e9cf5af6e528c (patch)
tree59f0190f35cd89da9aa73fc42a1ce1a8b13ce3ea /src/gallium/drivers/swr/swr_clear.cpp
parentee0b6597a9579342029e46bf2bc4a8dd887f7896 (diff)
swr: call swr_update_derived unconditionally when drawing/clearing
Currently a sequence like draw/map/draw/map will cause the second map to not wait for the second draw. This is because the first map will clear the resource business bit, and the second draw won't reset it since no state has changed. swr_update_derived does a tiny bit of extra work, including updating the SWR_BACKEND_STATE as well as waiting for prending fences. If that's a problem, we could call swr_update_resource_status directly from draw/clear handlers. Fixes clearbuffer-stencil, clearbuffer-depth, clearbuffer-depth-stencil, and clearbuffer-display-lists. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Bruce Cherniak <[email protected]>
Diffstat (limited to 'src/gallium/drivers/swr/swr_clear.cpp')
-rw-r--r--src/gallium/drivers/swr/swr_clear.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/gallium/drivers/swr/swr_clear.cpp b/src/gallium/drivers/swr/swr_clear.cpp
index 0101b4ba32b..ff3eca85f00 100644
--- a/src/gallium/drivers/swr/swr_clear.cpp
+++ b/src/gallium/drivers/swr/swr_clear.cpp
@@ -39,8 +39,7 @@ swr_clear(struct pipe_context *pipe,
if (!swr_check_render_cond(pipe))
return;
- if (ctx->dirty)
- swr_update_derived(pipe);
+ swr_update_derived(pipe);
if (buffers & PIPE_CLEAR_COLOR && fb->nr_cbufs) {
for (unsigned i = 0; i < fb->nr_cbufs; ++i)