summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2013-01-28 11:32:49 +1100
committerEric Anholt <[email protected]>2013-03-05 16:02:38 -0800
commit3c7e96ff014299fb50f7e5f06efb96c026a406f4 (patch)
tree8f9f7f7c292f75cd54e717834a5897bda8fb392c /src
parent7604debabb8d301e48b6b8b10e3888edff5b8fe2 (diff)
intel: Fold intel_region_copy() into its one caller.
This is similar code to intel_miptree_copy_slice, but the knobs are all set differently. v2: fix whitespace Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_copy.c22
-rw-r--r--src/mesa/drivers/dri/intel/intel_regions.c34
-rw-r--r--src/mesa/drivers/dri/intel/intel_regions.h13
3 files changed, 16 insertions, 53 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
index 8cbda0735a5..5d80fed8705 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
@@ -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;
}
diff --git a/src/mesa/drivers/dri/intel/intel_regions.c b/src/mesa/drivers/dri/intel/intel_regions.c
index eff306b68df..90b985d0b97 100644
--- a/src/mesa/drivers/dri/intel/intel_regions.c
+++ b/src/mesa/drivers/dri/intel/intel_regions.c
@@ -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
diff --git a/src/mesa/drivers/dri/intel/intel_regions.h b/src/mesa/drivers/dri/intel/intel_regions.h
index 56f6ec56bec..06a4b989e88 100644
--- a/src/mesa/drivers/dri/intel/intel_regions.h
+++ b/src/mesa/drivers/dri/intel/intel_regions.h
@@ -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,