On Mon, Nov 30, 2015 at 8:20 AM, Dave Airlie <airl...@gmail.com> wrote: > From: Dave Airlie <airl...@redhat.com> > > This will be updated in a macro later. > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/gallium/drivers/r600/r600_state_common.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > > diff --git a/src/gallium/drivers/r600/r600_state_common.c > b/src/gallium/drivers/r600/r600_state_common.c > index 6042976..b107f8a 100644 > --- a/src/gallium/drivers/r600/r600_state_common.c > +++ b/src/gallium/drivers/r600/r600_state_common.c > @@ -1300,6 +1300,8 @@ static bool r600_update_derived_state(struct > r600_context *rctx) > bool ps_dirty = false, vs_dirty = false, gs_dirty = false; > bool blend_disable; > bool need_buf_const; > + struct r600_pipe_shader *clip_so_current = NULL; > + > if (!rctx->blitter->running) { > unsigned i; > > @@ -1334,9 +1336,8 @@ static bool r600_update_derived_state(struct > r600_context *rctx) > if (unlikely(rctx->hw_shader_stages[R600_HW_STAGE_GS].shader > != rctx->gs_shader->current)) { > update_shader_atom(ctx, > &rctx->hw_shader_stages[R600_HW_STAGE_GS], rctx->gs_shader->current); > update_shader_atom(ctx, > &rctx->hw_shader_stages[R600_HW_STAGE_VS], > rctx->gs_shader->current->gs_copy_shader); > - /* Update clip misc state. */ > - r600_update_clip_state(rctx, > rctx->gs_shader->current->gs_copy_shader); > - rctx->b.streamout.enabled_stream_buffers_mask = > rctx->gs_shader->current->gs_copy_shader->enabled_stream_buffers_mask; > + > + clip_so_current = > rctx->gs_shader->current->gs_copy_shader; > } > > /* vs_shader is used as ES */ > @@ -1354,12 +1355,16 @@ static bool r600_update_derived_state(struct > r600_context *rctx) > if (unlikely(vs_dirty || > rctx->hw_shader_stages[R600_HW_STAGE_VS].shader != rctx->vs_shader->current)) > { > update_shader_atom(ctx, > &rctx->hw_shader_stages[R600_HW_STAGE_VS], rctx->vs_shader->current); > > - /* Update clip misc state. */ > - r600_update_clip_state(rctx, > rctx->vs_shader->current); > - rctx->b.streamout.enabled_stream_buffers_mask = > rctx->vs_shader->current->enabled_stream_buffers_mask; > + clip_so_current = rctx->vs_shader->current; > } > } > > + /* Update clip misc state. */ > + if (clip_so_current) { > + r600_update_clip_state(rctx, clip_so_current); > + rctx->b.streamout.enabled_stream_buffers_mask = > clip_so_current->enabled_stream_buffers_mask; > + } > + > if (unlikely(ps_dirty || > rctx->hw_shader_stages[R600_HW_STAGE_PS].shader != rctx->ps_shader->current || > rctx->rasterizer->sprite_coord_enable != > rctx->ps_shader->current->sprite_coord_enable || > rctx->rasterizer->flatshade != > rctx->ps_shader->current->flatshade)) { > -- > 2.5.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Oded Gabbay <oded.gab...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev