diff options
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_pixel_copy.c | 8 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_regions.c | 5 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_regions.h | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_tex_copy.c | 5 | 
5 files changed, 13 insertions, 10 deletions
| diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index fcfed9e751..fadcc89b3e 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -511,7 +511,7 @@ intel_miptree_image_copy(struct intel_context *intel,                          0,                          0,                          src->region, src_offset + src_depth_offset[i], -                        0, 0, width, height); +                        0, 0, width, height, GL_COPY);     }  } diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c index d50dd68092..1a3e363846 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c @@ -362,11 +362,9 @@ do_blit_copypixels(GLcontext * ctx,  				   &clip_x, &clip_y, &clip_w, &clip_h))              continue; -         intelEmitCopyBlit(intel, dst->cpp, -			   src->pitch, src->buffer, 0, src->tiling, -			   dst->pitch, dst->buffer, 0, dst->tiling, -			   clip_x + delta_x, clip_y + delta_y, /* srcx, srcy */ -			   clip_x, clip_y, /* dstx, dsty */ +	 intel_region_copy(intel, +			   dst, 0, clip_x, clip_y, +			   src, 0, clip_x + delta_x, clip_y + delta_y,  			   clip_w, clip_h,  			   ctx->Color.ColorLogicOpEnabled ?  			   ctx->Color.LogicOp : GL_COPY); diff --git a/src/mesa/drivers/dri/intel/intel_regions.c b/src/mesa/drivers/dri/intel/intel_regions.c index 9e5d0dd296..98109235b7 100644 --- a/src/mesa/drivers/dri/intel/intel_regions.c +++ b/src/mesa/drivers/dri/intel/intel_regions.c @@ -367,7 +367,8 @@ intel_region_copy(struct intel_context *intel,                    GLuint dstx, GLuint dsty,                    struct intel_region *src,                    GLuint src_offset, -                  GLuint srcx, GLuint srcy, GLuint width, GLuint height) +                  GLuint srcx, GLuint srcy, GLuint width, GLuint height, +		  GLenum logicop)  {     _DBG("%s\n", __FUNCTION__); @@ -389,7 +390,7 @@ intel_region_copy(struct intel_context *intel,                       src->pitch, src->buffer, src_offset, src->tiling,                       dst->pitch, dst->buffer, dst_offset, dst->tiling,                       srcx, srcy, dstx, dsty, width, height, -		     GL_COPY); +		     logicop);  }  /* Attach to a pbo, discarding our data.  Effectively zero-copy upload diff --git a/src/mesa/drivers/dri/intel/intel_regions.h b/src/mesa/drivers/dri/intel/intel_regions.h index 1d0371aa67..c2d4810df2 100644 --- a/src/mesa/drivers/dri/intel/intel_regions.h +++ b/src/mesa/drivers/dri/intel/intel_regions.h @@ -116,7 +116,8 @@ void intel_region_copy(struct intel_context *intel,                         GLuint destx, GLuint desty,                         struct intel_region *src,                         GLuint src_offset, -                       GLuint srcx, GLuint srcy, GLuint width, GLuint height); +                       GLuint srcx, GLuint srcy, GLuint width, GLuint height, +		       GLenum logicop);  /* Helpers for zerocopy uploads, particularly texture image uploads:   */ diff --git a/src/mesa/drivers/dri/intel/intel_tex_copy.c b/src/mesa/drivers/dri/intel/intel_tex_copy.c index 260235b1eb..e1820e3fcf 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_copy.c +++ b/src/mesa/drivers/dri/intel/intel_tex_copy.c @@ -107,6 +107,9 @@ do_copy_texsubimage(struct intel_context *intel,     intelFlush(ctx);     LOCK_HARDWARE(intel);     { +      drm_intel_bo *dst_bo = intel_region_buffer(intel, +						 intelImage->mt->region, +						 INTEL_WRITE_PART);        GLuint image_offset = intel_miptree_image_offset(intelImage->mt,                                                         intelImage->face,                                                         intelImage->level); @@ -151,7 +154,7 @@ do_copy_texsubimage(struct intel_context *intel,  			0,  			src->tiling,  			intelImage->mt->pitch, -			intelImage->mt->region->buffer, +			dst_bo,  			image_offset,  			intelImage->mt->region->tiling,  			x, y, dstx, dsty, width, height, | 
