diff options
author | Eric Anholt <eric@anholt.net> | 2011-09-21 09:10:19 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2011-09-22 11:03:13 -0700 |
commit | bc0335fc0e0bd6a777ef16ad5245d35ccf7adcf6 (patch) | |
tree | 61ecdd9f431f46080bb9d6d5ff3212df67176adb /src/mesa/drivers/dri/intel/intel_buffer_objects.c | |
parent | 57024e084a26ce4b9555979b512945aa557cc37b (diff) |
intel: Remove the pbo zero-copy code.
There were notes about the possibility of slowdowns due to zcopy from
a PBO due to thrashing around of the region. Slowdowns are even more
likely now that textures are generally tiled, which a zcopy wouldn't
get. Additionally, there were no checks on the buffer size to ensure
that the hardware-required rounding was present, which could result in
GPU hangs on large zcopy PBOs.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_buffer_objects.c')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_buffer_objects.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index d35a50ef8b2..4df2d766edb 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -79,30 +79,6 @@ intel_bufferobj_alloc(struct gl_context * ctx, GLuint name, GLenum target) return &obj->Base; } -/* Break the COW tie to the region. The region gets to keep the data. - */ -void -intel_bufferobj_release_region(struct intel_buffer_object *intel_obj) -{ - assert(intel_obj->region->buffer == intel_obj->buffer); - intel_obj->region->pbo = NULL; - intel_obj->region = NULL; - - release_buffer(intel_obj); -} - -/* Break the COW tie to the region. Both the pbo and the region end - * up with a copy of the data. - */ -void -intel_bufferobj_cow(struct intel_context *intel, - struct intel_buffer_object *intel_obj) -{ - assert(intel_obj->region); - intel_region_cow(intel, intel_obj->region); -} - - /** * Deallocate/free a vertex/pixel buffer object. * Called via glDeleteBuffersARB(). @@ -122,9 +98,6 @@ intel_bufferobj_free(struct gl_context * ctx, struct gl_buffer_object *obj) intel_bufferobj_unmap(ctx, obj); free(intel_obj->sys_buffer); - if (intel_obj->region) { - intel_bufferobj_release_region(intel_obj); - } drm_intel_bo_unreference(intel_obj->buffer); free(intel_obj); @@ -160,9 +133,6 @@ intel_bufferobj_data(struct gl_context * ctx, assert(!obj->Pointer); /* Mesa should have unmapped it */ - if (intel_obj->region) - intel_bufferobj_release_region(intel_obj); - if (intel_obj->buffer != NULL) release_buffer(intel_obj); @@ -219,9 +189,6 @@ intel_bufferobj_subdata(struct gl_context * ctx, assert(intel_obj); - if (intel_obj->region) - intel_bufferobj_cow(intel, intel_obj); - /* If we have a single copy in system memory, update that */ if (intel_obj->sys_buffer) { if (intel_obj->source) @@ -347,9 +314,6 @@ intel_bufferobj_map_range(struct gl_context * ctx, intel_obj->sys_buffer = NULL; } - if (intel_obj->region) - intel_bufferobj_cow(intel, intel_obj); - /* If the mapping is synchronized with other GL operations, flush * the batchbuffer so that GEM knows about the buffer access for later * syncing. @@ -510,15 +474,6 @@ intel_bufferobj_buffer(struct intel_context *intel, struct intel_buffer_object *intel_obj, GLuint flag) { - if (intel_obj->region) { - if (flag == INTEL_WRITE_PART) - intel_bufferobj_cow(intel, intel_obj); - else if (flag == INTEL_WRITE_FULL) { - intel_bufferobj_release_region(intel_obj); - intel_bufferobj_alloc_buffer(intel, intel_obj); - } - } - if (intel_obj->source) release_buffer(intel_obj); |