From: Maarten Maathuis Date: Sun, 20 Dec 2009 13:03:03 +0000 (-0800) Subject: gallium: only create pipe buffer when size is nonzero X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8e8502bc6352227afda370cfeeb1a49b128df752;p=mesa.git 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 --- diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c index 63196afba9c..494a3a99c87 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; }