Index: media-libs/mesa/files/7.9-gldeletebuffers.patch |
diff --git a/media-libs/mesa/files/7.9-gldeletebuffers.patch b/media-libs/mesa/files/7.9-gldeletebuffers.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2a6018f32bb18858a4ee85692a2305aa69d9d8d6 |
--- /dev/null |
+++ b/media-libs/mesa/files/7.9-gldeletebuffers.patch |
@@ -0,0 +1,35 @@ |
+From 78587ea0122d34e13c078d095aa5b730ce24bb73 Mon Sep 17 00:00:00 2001 |
+From: Brian Paul <brianp@vmware.com> |
+Date: Thu, 11 Nov 2010 22:31:28 +0000 |
+Subject: mesa: fix glDeleteBuffers() regression |
+ |
+This fixes a regression (failed assertion) from commit |
+c552f273f559968dfd770367e25329baccbcd0c4 which was hit if glDeleteBuffers() |
+was called on a buffer that was never bound. |
+ |
+NOTE: this is a candidate for the 7.9 branch. |
+--- |
+diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c |
+index df44fbe..4d62f54 100644 |
+--- a/src/mesa/main/bufferobj.c |
++++ b/src/mesa/main/bufferobj.c |
+@@ -998,7 +998,7 @@ _mesa_DeleteBuffersARB(GLsizei n, const GLuint *ids) |
+ struct gl_array_object *arrayObj = ctx->Array.ArrayObj; |
+ GLuint j; |
+ |
+- ASSERT(bufObj->Name == ids[i]); |
++ ASSERT(bufObj->Name == ids[i] || bufObj == &DummyBufferObject); |
+ |
+ if (_mesa_bufferobj_mapped(bufObj)) { |
+ /* if mapped, unmap it now */ |
+@@ -1039,7 +1039,7 @@ _mesa_DeleteBuffersARB(GLsizei n, const GLuint *ids) |
+ } |
+ |
+ /* The ID is immediately freed for re-use */ |
+- _mesa_HashRemove(ctx->Shared->BufferObjects, bufObj->Name); |
++ _mesa_HashRemove(ctx->Shared->BufferObjects, ids[i]); |
+ _mesa_reference_buffer_object(ctx, &bufObj, NULL); |
+ } |
+ } |
+-- |
+cgit v0.8.3-6-g21f6 |