@@ -175,66 +175,6 @@ intelCopyBuffer(const __DRIdrawablePrivate * dPriv, | |||
UNLOCK_HARDWARE(intel); | |||
} | |||
void | |||
intelEmitFillBlit(struct intel_context *intel, | |||
GLuint cpp, | |||
GLshort dst_pitch, | |||
dri_bo *dst_buffer, | |||
GLuint dst_offset, | |||
uint32_t dst_tiling, | |||
GLshort x, GLshort y, | |||
GLshort w, GLshort h, | |||
GLuint color) | |||
{ | |||
GLuint BR13, CMD; | |||
BATCH_LOCALS; | |||
dst_pitch *= cpp; | |||
switch (cpp) { | |||
case 1: | |||
BR13 = (0xF0 << 16); | |||
CMD = XY_COLOR_BLT_CMD; | |||
break; | |||
case 2: | |||
BR13 = (0xF0 << 16) | BR13_565; | |||
CMD = XY_COLOR_BLT_CMD; | |||
break; | |||
case 4: | |||
BR13 = (0xF0 << 16) | BR13_8888; | |||
CMD = XY_COLOR_BLT_CMD | XY_BLT_WRITE_ALPHA | XY_BLT_WRITE_RGB; | |||
break; | |||
default: | |||
return; | |||
} | |||
#ifndef I915 | |||
if (dst_tiling != I915_TILING_NONE) { | |||
CMD |= XY_DST_TILED; | |||
dst_pitch /= 4; | |||
} | |||
#endif | |||
DBG("%s dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n", | |||
__FUNCTION__, dst_buffer, dst_pitch, dst_offset, x, y, w, h); | |||
assert(w > 0); | |||
assert(h > 0); | |||
BEGIN_BATCH(6, NO_LOOP_CLIPRECTS); | |||
OUT_BATCH(CMD); | |||
OUT_BATCH(BR13 | dst_pitch); | |||
OUT_BATCH((y << 16) | x); | |||
OUT_BATCH(((y + h) << 16) | (x + w)); | |||
OUT_RELOC(dst_buffer, | |||
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, | |||
dst_offset); | |||
OUT_BATCH(color); | |||
ADVANCE_BATCH(); | |||
} | |||
static GLuint translate_raster_op(GLenum logicop) | |||
{ | |||
switch(logicop) { |
@@ -50,15 +50,6 @@ extern void intelEmitCopyBlit(struct intel_context *intel, | |||
GLshort w, GLshort h, | |||
GLenum logicop ); | |||
extern void intelEmitFillBlit(struct intel_context *intel, | |||
GLuint cpp, | |||
GLshort dst_pitch, | |||
dri_bo *dst_buffer, | |||
GLuint dst_offset, | |||
uint32_t dst_tiling, | |||
GLshort x, GLshort y, | |||
GLshort w, GLshort h, GLuint color); | |||
void | |||
intelEmitImmediateColorExpandBlit(struct intel_context *intel, | |||
GLuint cpp, |
@@ -392,35 +392,6 @@ intel_region_copy(struct intel_context *intel, | |||
GL_COPY); | |||
} | |||
/* Fill a rectangular sub-region. Need better logic about when to | |||
* push buffers into AGP - will currently do so whenever possible. | |||
*/ | |||
void | |||
intel_region_fill(struct intel_context *intel, | |||
struct intel_region *dst, | |||
GLuint dst_offset, | |||
GLuint dstx, GLuint dsty, | |||
GLuint width, GLuint height, GLuint color) | |||
{ | |||
_DBG("%s\n", __FUNCTION__); | |||
if (intel == NULL) | |||
return; | |||
if (dst->pbo) { | |||
if (dstx == 0 && | |||
dsty == 0 && width == dst->pitch && height == dst->height) | |||
intel_region_release_pbo(intel, dst); | |||
else | |||
intel_region_cow(intel, dst); | |||
} | |||
intelEmitFillBlit(intel, | |||
dst->cpp, | |||
dst->pitch, dst->buffer, dst_offset, dst->tiling, | |||
dstx, dsty, width, height, color); | |||
} | |||
/* Attach to a pbo, discarding our data. Effectively zero-copy upload | |||
* the pbo's data. | |||
*/ |
@@ -118,14 +118,6 @@ void intel_region_copy(struct intel_context *intel, | |||
GLuint src_offset, | |||
GLuint srcx, GLuint srcy, GLuint width, GLuint height); | |||
/* Fill a rectangular sub-region | |||
*/ | |||
void intel_region_fill(struct intel_context *intel, | |||
struct intel_region *dest, | |||
GLuint dest_offset, | |||
GLuint destx, GLuint desty, | |||
GLuint width, GLuint height, GLuint color); | |||
/* Helpers for zerocopy uploads, particularly texture image uploads: | |||
*/ | |||
void intel_region_attach_pbo(struct intel_context *intel, |