[Mesa-stable] [PATCH] draw: (trivial) fix clamping of viewport index

Ilia Mirkin imirkin at alum.mit.edu
Mon Jun 23 13:13:24 PDT 2014


On Mon, Jun 23, 2014 at 4:08 PM,  <sroland at vmware.com> wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> The old logic would let all negative values go through unclamped, with
> potentially disastrous results (probably trying to fetch viewport values
> from random memory locations). GL has undefined rendering for vp indices
> outside valid range but that's a bit too undefined...
> (The logic is now the same as in llvmpipe.)
>
> CC: "10.1 10.2" <mesa-stable at lists.freedesktop.org>

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

I haven't tested whether this fixes my issues (don't have the right
patches/setup on this comp) but this seems obviously correct.

> ---
>  src/gallium/auxiliary/draw/draw_private.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h
> index 783c3ef..d8dc2ab 100644
> --- a/src/gallium/auxiliary/draw/draw_private.h
> +++ b/src/gallium/auxiliary/draw/draw_private.h
> @@ -493,7 +493,7 @@ draw_stats_clipper_primitives(struct draw_context *draw,
>  static INLINE unsigned
>  draw_clamp_viewport_idx(int idx)
>  {
> -   return ((PIPE_MAX_VIEWPORTS > idx || idx < 0) ? idx : 0);
> +   return ((PIPE_MAX_VIEWPORTS > idx && idx >= 0) ? idx : 0);
>  }
>
>  /**
> --
> 1.9.1


More information about the mesa-stable mailing list