Mesa (master): gallium: only create pipe buffer when size is nonzero
Brian Paul
brianp at kemper.freedesktop.org
Sun Dec 27 17:25:17 UTC 2009
Module: Mesa
Branch: master
Commit: 8e8502bc6352227afda370cfeeb1a49b128df752
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e8502bc6352227afda370cfeeb1a49b128df752
Author: Maarten Maathuis <madman2003 at gmail.com>
Date: Sun Dec 20 05:03:03 2009 -0800
gallium: only create pipe buffer when size is nonzero
- This fixes a crash upon starting spring (a rts engine/game).
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
src/mesa/state_tracker/st_cb_bufferobjects.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c
index 63196af..494a3a9 100644
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -170,15 +170,19 @@ st_bufferobj_data(GLcontext *ctx,
pipe_buffer_reference( &st_obj->buffer, NULL );
- st_obj->buffer = pipe_buffer_create( pipe->screen, 32, buffer_usage, size );
+ if (size != 0) {
+ st_obj->buffer = pipe_buffer_create(pipe->screen, 32, buffer_usage, size);
- if (!st_obj->buffer) {
- return GL_FALSE;
+ if (!st_obj->buffer) {
+ return GL_FALSE;
+ }
+
+ if (data)
+ st_no_flush_pipe_buffer_write(st_context(ctx), st_obj->buffer, 0,
+ size, data);
+ return GL_TRUE;
}
- if (data)
- st_no_flush_pipe_buffer_write(st_context(ctx), st_obj->buffer, 0,
- size, data);
return GL_TRUE;
}
More information about the mesa-commit
mailing list