mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
i915: Fix surface operations
This commit is contained in:
parent
444e98de31
commit
48f7d86b7c
3 changed files with 21 additions and 21 deletions
|
|
@ -38,7 +38,7 @@
|
|||
void
|
||||
i915_fill_blit(struct i915_context *i915,
|
||||
unsigned cpp,
|
||||
short dst_pitch,
|
||||
unsigned short dst_pitch,
|
||||
struct pipe_buffer *dst_buffer,
|
||||
unsigned dst_offset,
|
||||
short x, short y,
|
||||
|
|
@ -47,15 +47,23 @@ i915_fill_blit(struct i915_context *i915,
|
|||
{
|
||||
unsigned BR13, CMD;
|
||||
|
||||
|
||||
I915_DBG(i915,
|
||||
"%s dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n",
|
||||
__FUNCTION__,
|
||||
dst_buffer, dst_pitch, dst_offset, x, y, w, h);
|
||||
|
||||
switch (cpp) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
BR13 = dst_pitch | (0xF0 << 16) | (1 << 24);
|
||||
BR13 = (((int) dst_pitch) & 0xffff) |
|
||||
(0xF0 << 16) | (1 << 24);
|
||||
CMD = XY_COLOR_BLT_CMD;
|
||||
break;
|
||||
case 4:
|
||||
BR13 = dst_pitch | (0xF0 << 16) | (1 << 24) | (1 << 25);
|
||||
BR13 = (((int) dst_pitch) & 0xffff) |
|
||||
(0xF0 << 16) | (1 << 24) | (1 << 25);
|
||||
CMD = (XY_COLOR_BLT_CMD | XY_COLOR_BLT_WRITE_ALPHA |
|
||||
XY_COLOR_BLT_WRITE_RGB);
|
||||
break;
|
||||
|
|
@ -63,10 +71,6 @@ i915_fill_blit(struct i915_context *i915,
|
|||
return;
|
||||
}
|
||||
|
||||
// DBG("%s dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n",
|
||||
// __FUNCTION__, dst_buffer, dst_pitch, dst_offset, x, y, w, h);
|
||||
|
||||
|
||||
if (!BEGIN_BATCH(6, 1)) {
|
||||
FLUSH_BATCH(NULL);
|
||||
assert(BEGIN_BATCH(6, 1));
|
||||
|
|
@ -85,10 +89,10 @@ void
|
|||
i915_copy_blit( struct i915_context *i915,
|
||||
unsigned do_flip,
|
||||
unsigned cpp,
|
||||
short src_pitch,
|
||||
unsigned short src_pitch,
|
||||
struct pipe_buffer *src_buffer,
|
||||
unsigned src_offset,
|
||||
short dst_pitch,
|
||||
unsigned short dst_pitch,
|
||||
struct pipe_buffer *dst_buffer,
|
||||
unsigned dst_offset,
|
||||
short src_x, short src_y,
|
||||
|
|
@ -106,20 +110,16 @@ i915_copy_blit( struct i915_context *i915,
|
|||
src_buffer, src_pitch, src_offset, src_x, src_y,
|
||||
dst_buffer, dst_pitch, dst_offset, dst_x, dst_y, w, h);
|
||||
|
||||
src_pitch *= (short) cpp;
|
||||
dst_pitch *= (short) cpp;
|
||||
|
||||
switch (cpp) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
BR13 = (((int) dst_pitch) & 0xffff) |
|
||||
BR13 = (((int) dst_pitch) & 0xffff) |
|
||||
(0xCC << 16) | (1 << 24);
|
||||
CMD = XY_SRC_COPY_BLT_CMD;
|
||||
break;
|
||||
case 4:
|
||||
BR13 =
|
||||
(((int) dst_pitch) & 0xffff) |
|
||||
BR13 = (((int) dst_pitch) & 0xffff) |
|
||||
(0xCC << 16) | (1 << 24) | (1 << 25);
|
||||
CMD =
|
||||
(XY_SRC_COPY_BLT_CMD | XY_SRC_COPY_BLT_WRITE_ALPHA |
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@
|
|||
extern void i915_copy_blit(struct i915_context *i915,
|
||||
unsigned do_flip,
|
||||
unsigned cpp,
|
||||
short src_pitch,
|
||||
unsigned short src_pitch,
|
||||
struct pipe_buffer *src_buffer,
|
||||
unsigned src_offset,
|
||||
short dst_pitch,
|
||||
unsigned short dst_pitch,
|
||||
struct pipe_buffer *dst_buffer,
|
||||
unsigned dst_offset,
|
||||
short srcx, short srcy,
|
||||
|
|
@ -45,7 +45,7 @@ extern void i915_copy_blit(struct i915_context *i915,
|
|||
|
||||
extern void i915_fill_blit(struct i915_context *i915,
|
||||
unsigned cpp,
|
||||
short dst_pitch,
|
||||
unsigned short dst_pitch,
|
||||
struct pipe_buffer *dst_buffer,
|
||||
unsigned dst_offset,
|
||||
short x, short y,
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ i915_surface_copy(struct pipe_context *pipe,
|
|||
i915_copy_blit( i915_context(pipe),
|
||||
do_flip,
|
||||
dst->block.size,
|
||||
(short) src->stride, src->buffer, src->offset,
|
||||
(short) dst->stride, dst->buffer, dst->offset,
|
||||
(unsigned short) src->stride, src->buffer, src->offset,
|
||||
(unsigned short) dst->stride, dst->buffer, dst->offset,
|
||||
(short) srcx, (short) srcy, (short) dstx, (short) dsty, (short) width, (short) height );
|
||||
}
|
||||
}
|
||||
|
|
@ -106,7 +106,7 @@ i915_surface_fill(struct pipe_context *pipe,
|
|||
assert(dst->block.height == 1);
|
||||
i915_fill_blit( i915_context(pipe),
|
||||
dst->block.size,
|
||||
(short) dst->stride,
|
||||
(unsigned short) dst->stride,
|
||||
dst->buffer, dst->offset,
|
||||
(short) dstx, (short) dsty,
|
||||
(short) width, (short) height,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue