i965: Avoid blits in BufferCopySubdata on gen6.
authorEric Anholt <eric@anholt.net>
Mon, 18 Oct 2010 21:12:12 +0000 (14:12 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 18 Oct 2010 21:14:06 +0000 (14:14 -0700)
Fixes glean/bufferObject.

src/mesa/drivers/dri/intel/intel_buffer_objects.c

index fea99b2ad60c1b580323e47755d715ddfb9e2d85..87da60a771e86cb20b86a1e2c8afbff64c7e5504 100644 (file)
@@ -559,7 +559,7 @@ intel_bufferobj_copy_subdata(struct gl_context *ctx,
       return;
 
    /* If we're in system memory, just map and memcpy. */
-   if (intel_src->sys_buffer || intel_dst->sys_buffer) {
+   if (intel_src->sys_buffer || intel_dst->sys_buffer || intel->gen >= 6) {
       /* The same buffer may be used, but note that regions copied may
        * not overlap.
        */
@@ -582,6 +582,7 @@ intel_bufferobj_copy_subdata(struct gl_context *ctx,
         intel_bufferobj_unmap(ctx, GL_COPY_READ_BUFFER, src);
         intel_bufferobj_unmap(ctx, GL_COPY_WRITE_BUFFER, dst);
       }
+      return;
    }
 
    /* Otherwise, we have real BOs, so blit them. */