summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel/intel_buffer_objects.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-09-21 09:10:19 -0700
committerEric Anholt <eric@anholt.net>2011-09-22 11:03:13 -0700
commitbc0335fc0e0bd6a777ef16ad5245d35ccf7adcf6 (patch)
tree61ecdd9f431f46080bb9d6d5ff3212df67176adb /src/mesa/drivers/dri/intel/intel_buffer_objects.c
parent57024e084a26ce4b9555979b512945aa557cc37b (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.c45
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);