[Mesa-dev] [PATCH] draw: fix slot detection

Roland Scheidegger sroland at vmware.com
Tue Aug 6 11:07:25 PDT 2013


Am 06.08.2013 08:56, schrieb Zack Rusin:
> Nowadays -1 for slots means that the semantic is not present, so
> we need to store it in a signed variables, otherwise <0 comparisons
> are pointless. Fixes
> http://bugzilla.eng.vmware.com/show_bug.cgi?id=67811 (at least
> with softpipe, edgeflags don't work wit llvmpipe)
> 
> Signed-off-by: Zack Rusin <zackr at vmware.com>
> ---
>  src/gallium/auxiliary/draw/draw_pipe_unfilled.c |    2 +-
>  src/gallium/drivers/llvmpipe/lp_setup_context.h |    2 +-
>  src/gallium/drivers/llvmpipe/lp_setup_line.c    |    1 -
>  3 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c
> index c6ee95c..68bab72 100644
> --- a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c
> +++ b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c
> @@ -67,7 +67,7 @@ inject_front_face_info(struct draw_stage *stage,
>     boolean is_front_face = (
>        (stage->draw->rasterizer->front_ccw && ccw) ||
>        (!stage->draw->rasterizer->front_ccw && !ccw));
> -   unsigned slot = unfilled->face_slot;
> +   int slot = unfilled->face_slot;
>     unsigned i;
>  
>     /* In case the backend doesn't care about it */
> diff --git a/src/gallium/drivers/llvmpipe/lp_setup_context.h b/src/gallium/drivers/llvmpipe/lp_setup_context.h
> index ea1d0d6..44be85f 100644
> --- a/src/gallium/drivers/llvmpipe/lp_setup_context.h
> +++ b/src/gallium/drivers/llvmpipe/lp_setup_context.h
> @@ -106,7 +106,7 @@ struct lp_setup_context
>     float psize;
>     unsigned viewport_index_slot;
>     unsigned layer_slot;
> -   unsigned face_slot;
> +   int face_slot;
>  
>     struct pipe_framebuffer_state fb;
>     struct u_rect framebuffer;
> diff --git a/src/gallium/drivers/llvmpipe/lp_setup_line.c b/src/gallium/drivers/llvmpipe/lp_setup_line.c
> index 3b16163..a25a6b0 100644
> --- a/src/gallium/drivers/llvmpipe/lp_setup_line.c
> +++ b/src/gallium/drivers/llvmpipe/lp_setup_line.c
> @@ -622,7 +622,6 @@ try_setup_line( struct lp_setup_context *setup,
>     } else {
>        line->inputs.frontfacing = TRUE;
>     }
> -   
>  
>     /* Setup parameter interpolants:
>      */
> 

Looks good to me. I've got some suspicion the other "slot" variables
there also should really be int.

Roland


More information about the mesa-dev mailing list