diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_buffer_objects.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index 1f10dec0a4..010000309b 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -300,15 +300,19 @@ intel_bufferobj_buffer(struct intel_context *intel,     }     if (intel_obj->buffer == NULL) { +      void *sys_buffer = intel_obj->sys_buffer; + +      /* only one of buffer and sys_buffer could be non-NULL */        intel_bufferobj_alloc_buffer(intel, intel_obj); +      intel_obj->sys_buffer = NULL; +        intel_bufferobj_subdata(&intel->ctx,  			      GL_ARRAY_BUFFER_ARB,  			      0,  			      intel_obj->Base.Size, -			      intel_obj->sys_buffer, +			      sys_buffer,  			      &intel_obj->Base); -      _mesa_free(intel_obj->sys_buffer); -      intel_obj->sys_buffer = NULL; +      _mesa_free(sys_buffer);     }     return intel_obj->buffer; | 
