Mesa (mesa_7_7_branch): vbo: clamp DrawElements start/ end to max possible values

Brian Paul brianp at kemper.freedesktop.org
Tue Jan 26 11:50:40 PST 2010


Module: Mesa
Branch: mesa_7_7_branch
Commit: 645e297a0019eb2f7513bd801ffdaac03187f29f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=645e297a0019eb2f7513bd801ffdaac03187f29f

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Jan 26 12:47:51 2010 -0700

vbo: clamp DrawElements start/end to max possible values

Some apps are sloppy with their start/end values.  Clamp them to
max possible values to prevent problems later.

---

 src/mesa/vbo/vbo_exec_array.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 2c82f7c..f455382 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -688,6 +688,16 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
     * or we can read/write out of memory in several different places!
     */
 
+   /* Catch/fix some potential user errors */
+   if (type == GL_UNSIGNED_BYTE) {
+      start = MIN2(start, 0xff);
+      end = MIN2(end, 0xff);
+   }
+   else if (type == GL_UNSIGNED_SHORT) {
+      start = MIN2(start, 0xffff);
+      end = MIN2(end, 0xffff);
+   }
+
    if (end >= ctx->Array.ArrayObj->_MaxElement) {
       /* the max element is out of bounds of one or more enabled arrays */
       warnCount++;



More information about the mesa-commit mailing list