[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