intel: Fold intel_region_copy() into its one caller.
authorEric Anholt <eric@anholt.net>
Mon, 28 Jan 2013 00:32:49 +0000 (11:32 +1100)
committerEric Anholt <eric@anholt.net>
Wed, 6 Mar 2013 00:02:38 +0000 (16:02 -0800)
This is similar code to intel_miptree_copy_slice, but the knobs
are all set differently.

v2: fix whitespace

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/intel/intel_pixel_copy.c
src/mesa/drivers/dri/intel/intel_regions.c
src/mesa/drivers/dri/intel/intel_regions.h

index 8cbda07..5d80fed 100644 (file)
@@ -39,6 +39,7 @@
 #include "intel_regions.h"
 #include "intel_pixel.h"
 #include "intel_fbo.h"
+#include "intel_blit.h"
 
 #define FILE_DEBUG_FLAG DEBUG_PIXEL
 
@@ -193,12 +194,21 @@ do_blit_copypixels(struct gl_context * ctx,
    dstx += draw_irb->draw_x;
    dsty += draw_irb->draw_y;
 
-   if (!intel_region_copy(intel,
-                         draw_irb->mt->region, 0, dstx, dsty,
-                         read_irb->mt->region, 0, srcx, srcy,
-                         width, height, flip,
-                         ctx->Color.ColorLogicOpEnabled ?
-                         ctx->Color.LogicOp : GL_COPY)) {
+   uint32_t src_pitch = read_irb->mt->region->pitch;
+   if (flip)
+      src_pitch = -src_pitch;
+
+   if (!intelEmitCopyBlit(intel,
+                          draw_irb->mt->cpp,
+                          src_pitch, read_irb->mt->region->bo,
+                          0, read_irb->mt->region->tiling,
+                          draw_irb->mt->region->pitch, draw_irb->mt->region->bo,
+                          0, draw_irb->mt->region->tiling,
+                          srcx, srcy,
+                          dstx, dsty,
+                          width, height,
+                          ctx->Color.ColorLogicOpEnabled ?
+                          ctx->Color.LogicOp : GL_COPY)) {
       DBG("%s: blit failure\n", __FUNCTION__);
       return false;
    }
index eff306b..90b985d 100644 (file)
@@ -244,40 +244,6 @@ intel_region_release(struct intel_region **region_handle)
    *region_handle = NULL;
 }
 
-/* Copy rectangular sub-regions. Need better logic about when to
- * push buffers into AGP - will currently do so whenever possible.
- */
-bool
-intel_region_copy(struct intel_context *intel,
-                  struct intel_region *dst,
-                  GLuint dst_offset,
-                  GLuint dstx, GLuint dsty,
-                  struct intel_region *src,
-                  GLuint src_offset,
-                  GLuint srcx, GLuint srcy, GLuint width, GLuint height,
-                 bool flip,
-                 GLenum logicop)
-{
-   uint32_t src_pitch = src->pitch;
-
-   _DBG("%s\n", __FUNCTION__);
-
-   if (intel == NULL)
-      return false;
-
-   assert(src->cpp == dst->cpp);
-
-   if (flip)
-      src_pitch = -src_pitch;
-
-   return intelEmitCopyBlit(intel,
-                           dst->cpp,
-                           src_pitch, src->bo, src_offset, src->tiling,
-                           dst->pitch, dst->bo, dst_offset, dst->tiling,
-                           srcx, srcy, dstx, dsty, width, height,
-                           logicop);
-}
-
 /**
  * This function computes masks that may be used to select the bits of the X
  * and Y coordinates that indicate the offset within a tile.  If the region is
index 56f6ec5..06a4b98 100644 (file)
@@ -97,19 +97,6 @@ void intel_region_release(struct intel_region **ib);
 
 void intel_recreate_static_regions(struct intel_context *intel);
 
-/* Copy rectangular sub-regions
- */
-bool
-intel_region_copy(struct intel_context *intel,
-                 struct intel_region *dest,
-                 GLuint dest_offset,
-                 GLuint destx, GLuint desty,
-                 struct intel_region *src,
-                 GLuint src_offset,
-                 GLuint srcx, GLuint srcy, GLuint width, GLuint height,
-                 bool flip,
-                 GLenum logicop);
-
 void
 intel_region_get_tile_masks(struct intel_region *region,
                             uint32_t *mask_x, uint32_t *mask_y,