if (IS_GEN2(devid))
gen2_render_copyfunc(batch,
src, src_x, src_y,
+ options.tile_size, options.tile_size,
dst, dst_x, dst_y);
else if (IS_GEN3(devid))
gen3_render_copyfunc(batch,
src, src_x, src_y,
+ options.tile_size, options.tile_size,
dst, dst_x, dst_y);
else if (IS_GEN6(devid))
gen6_render_copyfunc(batch,
src, src_x, src_y,
+ options.tile_size, options.tile_size,
dst, dst_x, dst_y);
else
blitter_copyfunc(src, src_x, src_y,
void gen6_render_copyfunc(struct intel_batchbuffer *batch,
struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ unsigned width, unsigned height,
struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
void gen3_render_copyfunc(struct intel_batchbuffer *batch,
struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ unsigned width, unsigned height,
struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
void gen2_render_copyfunc(struct intel_batchbuffer *batch,
struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ unsigned width, unsigned height,
struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
void gen6_render_copyfunc(struct intel_batchbuffer *batch,
struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ unsigned width, unsigned height,
struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
{
uint32_t wm_state, wm_kernel, wm_table;
*(uint32_t*)(batch->buffer + offset) =
batch_round_upto(batch, VERTEX_SIZE)/VERTEX_SIZE;
- emit_vertex_2s(batch, dst_x + options.tile_size, dst_y + options.tile_size);
- emit_vertex_normalized(batch, src_x + options.tile_size, buf_width(src));
- emit_vertex_normalized(batch, src_y + options.tile_size, buf_height(src));
+ emit_vertex_2s(batch, dst_x + width, dst_y + height);
+ emit_vertex_normalized(batch, src_x + width, buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, buf_height(src));
- emit_vertex_2s(batch, dst_x, dst_y + options.tile_size);
+ emit_vertex_2s(batch, dst_x, dst_y + height);
emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y + options.tile_size, buf_height(src));
+ emit_vertex_normalized(batch, src_y + height, buf_height(src));
emit_vertex_2s(batch, dst_x, dst_y);
emit_vertex_normalized(batch, src_x, buf_width(src));
void gen2_render_copyfunc(struct intel_batchbuffer *batch,
struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ unsigned width, unsigned height,
struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
{
static unsigned keep_gpu_busy_counter = 0;
}
OUT_BATCH(PRIM3D_INLINE | PRIM3D_RECTLIST | (3*4 -1));
- emit_vertex(batch, dst_x + options.tile_size);
- emit_vertex(batch, dst_y + options.tile_size);
- emit_vertex_normalized(batch, src_x + options.tile_size, buf_width(src));
- emit_vertex_normalized(batch, src_y + options.tile_size, buf_height(src));
+ emit_vertex(batch, dst_x + width);
+ emit_vertex(batch, dst_y + height);
+ emit_vertex_normalized(batch, src_x + width, buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, buf_height(src));
emit_vertex(batch, dst_x);
- emit_vertex(batch, dst_y + options.tile_size);
+ emit_vertex(batch, dst_y + height);
emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y + options.tile_size, buf_height(src));
+ emit_vertex_normalized(batch, src_y + height, buf_height(src));
emit_vertex(batch, dst_x);
emit_vertex(batch, dst_y);
void gen3_render_copyfunc(struct intel_batchbuffer *batch,
struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ unsigned width, unsigned height,
struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
{
static unsigned keep_gpu_busy_counter = 0;
}
OUT_BATCH(PRIM3D_RECTLIST | (3*4 - 1));
- emit_vertex(batch, dst_x + options.tile_size);
- emit_vertex(batch, dst_y + options.tile_size);
- emit_vertex(batch, src_x + options.tile_size);
- emit_vertex(batch, src_y + options.tile_size);
+ emit_vertex(batch, dst_x + width);
+ emit_vertex(batch, dst_y + height);
+ emit_vertex(batch, src_x + width);
+ emit_vertex(batch, src_y + height);
emit_vertex(batch, dst_x);
- emit_vertex(batch, dst_y + options.tile_size);
+ emit_vertex(batch, dst_y + height);
emit_vertex(batch, src_x);
- emit_vertex(batch, src_y + options.tile_size);
+ emit_vertex(batch, src_y + height);
emit_vertex(batch, dst_x);
emit_vertex(batch, dst_y);