[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