mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
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 <chad.versace@linux.intel.com>
This commit is contained in:
parent
7604debabb
commit
3c7e96ff01
3 changed files with 16 additions and 53 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue