Mesa (master): draw: (trivial) fix clamping of viewport index

Roland Scheidegger sroland at kemper.freedesktop.org
Mon Jun 23 22:39:00 UTC 2014


Module: Mesa
Branch: master
Commit: 604e54de78aa00430b1d61d030656e387866e840
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=604e54de78aa00430b1d61d030656e387866e840

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Mon Jun 23 22:06:15 2014 +0200

draw: (trivial) fix clamping of viewport index

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: Jose Fonseca <jfonseca at vmware.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Tested-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 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);
 }
 
 /**




More information about the mesa-commit mailing list