Reviewed-by: Bruce Cherniak <bruce.chern...@intel.com> > On Nov 19, 2016, at 11:09 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > > 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 <imir...@alum.mit.edu> > --- > src/gallium/drivers/swr/swr_clear.cpp | 3 +-- > src/gallium/drivers/swr/swr_draw.cpp | 3 +-- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/swr/swr_clear.cpp > b/src/gallium/drivers/swr/swr_clear.cpp > index 7ac308e..f59179f 100644 > --- a/src/gallium/drivers/swr/swr_clear.cpp > +++ b/src/gallium/drivers/swr/swr_clear.cpp > @@ -40,8 +40,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) > diff --git a/src/gallium/drivers/swr/swr_draw.cpp > b/src/gallium/drivers/swr/swr_draw.cpp > index fc39f6f..c4d5e5c 100644 > --- a/src/gallium/drivers/swr/swr_draw.cpp > +++ b/src/gallium/drivers/swr/swr_draw.cpp > @@ -90,8 +90,7 @@ swr_draw_vbo(struct pipe_context *pipe, const struct > pipe_draw_info *info) > } > > /* Update derived state, pass draw info to update function */ > - if (ctx->dirty) > - swr_update_derived(pipe, info); > + swr_update_derived(pipe, info); > > swr_update_draw_context(ctx); > > -- > 2.7.3 >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev