On Wed, May 25, 2016 at 8:32 PM, Tim Rowley <timothy.o.row...@intel.com> wrote: > v2: only load the clip vertex once > --- > src/gallium/drivers/swr/swr_context.h | 2 ++ > src/gallium/drivers/swr/swr_shader.cpp | 65 > ++++++++++++++++++++++++++++++++++ > src/gallium/drivers/swr/swr_shader.h | 4 +++ > src/gallium/drivers/swr/swr_state.cpp | 22 +++++++++++- > 4 files changed, 92 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/drivers/swr/swr_state.cpp > b/src/gallium/drivers/swr/swr_state.cpp > index f9326f3..f8d10ac 100644 > --- a/src/gallium/drivers/swr/swr_state.cpp > +++ b/src/gallium/drivers/swr/swr_state.cpp > @@ -849,7 +849,9 @@ swr_update_derived(struct pipe_context *pipe, > } > > /* Raster state */ > - if (ctx->dirty & (SWR_NEW_RASTERIZER | SWR_NEW_FRAMEBUFFER)) { > + if (ctx->dirty & (SWR_NEW_RASTERIZER | > + SWR_NEW_VS | // clipping > + SWR_NEW_FRAMEBUFFER)) { > pipe_rasterizer_state *rasterizer = ctx->rasterizer; > pipe_framebuffer_state *fb = &ctx->framebuffer; > > @@ -906,6 +908,11 @@ swr_update_derived(struct pipe_context *pipe, > > rastState->depthClipEnable = rasterizer->depth_clip; > > + rastState->clipDistanceMask = > + ctx->vs->info.base.num_written_clipdistance ? > + ctx->vs->info.base.clipdist_writemask | > rasterizer->clip_plane_enable :
Don't consider this to be a full review, but I think this should be & rather than |. In addition to actually writing the clip distance, you also have to glEnable(GL_CLIP_PLANE0..7) in order for that clip distance to apply. > + rasterizer->clip_plane_enable; > + > SwrSetRastState(ctx->swrContext, rastState); > } > Separately, you make some mentions of culling... if you actually implemented cull distances, make sure to enable the PIPE_CAP_CULL_DISTANCE cap. Cheers, -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev