Mesa (master): st/osmesa: check buffer size when searching for buffers
Brian Paul
brianp at kemper.freedesktop.org
Tue Mar 4 15:50:04 UTC 2014
Module: Mesa
Branch: master
Commit: cbacee207faf866b0444beb583d3d6f341a8ee78
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbacee207faf866b0444beb583d3d6f341a8ee78
Author: Brian Paul <brianp at vmware.com>
Date: Sat Mar 1 11:16:27 2014 -0700
st/osmesa: check buffer size when searching for buffers
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75543
Cc: "10.1" <mesa-stable at lists.freedesktop.org>
---
src/gallium/state_trackers/osmesa/osmesa.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/gallium/state_trackers/osmesa/osmesa.c b/src/gallium/state_trackers/osmesa/osmesa.c
index 8b30025..6b27c8a 100644
--- a/src/gallium/state_trackers/osmesa/osmesa.c
+++ b/src/gallium/state_trackers/osmesa/osmesa.c
@@ -480,12 +480,13 @@ osmesa_create_buffer(enum pipe_format color_format,
/**
- * Search linked list for a buffer with matching pixel formats.
+ * Search linked list for a buffer with matching pixel formats and size.
*/
static struct osmesa_buffer *
osmesa_find_buffer(enum pipe_format color_format,
enum pipe_format ds_format,
- enum pipe_format accum_format)
+ enum pipe_format accum_format,
+ GLsizei width, GLsizei height)
{
struct osmesa_buffer *b;
@@ -493,7 +494,9 @@ osmesa_find_buffer(enum pipe_format color_format,
for (b = BufferList; b; b = b->next) {
if (b->visual.color_format == color_format &&
b->visual.depth_stencil_format == ds_format &&
- b->visual.accum_format == accum_format) {
+ b->visual.accum_format == accum_format &&
+ b->width == width &&
+ b->height == height) {
return b;
}
}
@@ -673,7 +676,7 @@ OSMesaMakeCurrent(OSMesaContext osmesa, void *buffer, GLenum type,
/* See if we already have a buffer that uses these pixel formats */
osbuffer = osmesa_find_buffer(color_format,
osmesa->depth_stencil_format,
- osmesa->accum_format);
+ osmesa->accum_format, width, height);
if (!osbuffer) {
/* Existing buffer found, create new buffer */
osbuffer = osmesa_create_buffer(color_format,
More information about the mesa-commit
mailing list