diff options
author | Eric Anholt <[email protected]> | 2010-08-20 12:36:34 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2010-08-20 12:36:34 -0700 |
commit | 27e6552a8fb0fd49be84fbaf9504e8371033db23 (patch) | |
tree | 1bd4a99619a188e393f1d7a5dda39ac7e9e5d4e8 /src | |
parent | 5482eaba6ecd4a581377336b6409019adf67869e (diff) |
intel: Don't try to do work for BufferSubData with a size of 0.
If we hit the linear blit path, we'd come up with a pitch of 0, then
divide by zero.
Fixes vbo-subdata-zero, made for bug #28931 (warsow).
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_buffer_objects.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index 8ab41f8d279..117d4daf3ba 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -202,6 +202,9 @@ intel_bufferobj_subdata(GLcontext * ctx, struct intel_context *intel = intel_context(ctx); struct intel_buffer_object *intel_obj = intel_buffer_object(obj); + if (size == 0) + return; + assert(intel_obj); if (intel_obj->region) @@ -426,6 +429,9 @@ intel_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target, if (intel_obj->range_map_buffer == NULL) return; + if (length == 0) + return; + temp_bo = drm_intel_bo_alloc(intel->bufmgr, "range map flush", length, 64); drm_intel_bo_subdata(temp_bo, 0, length, intel_obj->range_map_buffer); |