Mesa (master): mesa: don't call ctx->Driver.ClearBufferSubData() if size==

Brian Paul brianp at kemper.freedesktop.org
Mon Mar 3 17:45:35 UTC 2014


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

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Mar  3 09:59:45 2014 -0700

mesa: don't call ctx->Driver.ClearBufferSubData() if size==0

Fixes failed assertion when trying to map zero-length region.

https://bugs.freedesktop.org/show_bug.cgi?id=75660
Cc: "10.0" "10.1" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/mesa/main/bufferobj.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 237b49c..9ef55a7 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1508,8 +1508,10 @@ _mesa_ClearBufferSubData(GLenum target, GLenum internalformat,
 
    if (data == NULL) {
       /* clear to zeros, per the spec */
-      ctx->Driver.ClearBufferSubData(ctx, offset, size,
-                                     NULL, 0, bufObj);
+      if (size > 0) {
+         ctx->Driver.ClearBufferSubData(ctx, offset, size,
+                                        NULL, 0, bufObj);
+      }
       return;
    }
 
@@ -1519,8 +1521,10 @@ _mesa_ClearBufferSubData(GLenum target, GLenum internalformat,
       return;
    }
 
-   ctx->Driver.ClearBufferSubData(ctx, offset, size,
-                                  clearValue, clearValueSize, bufObj);
+   if (size > 0) {
+      ctx->Driver.ClearBufferSubData(ctx, offset, size,
+                                     clearValue, clearValueSize, bufObj);
+   }
 }
 
 




More information about the mesa-commit mailing list