4096/4, size/4096, 32);
}
-unsigned buf_width(struct scratch_buf *buf)
+unsigned igt_buf_width(struct igt_buf *buf)
{
return buf->stride/sizeof(uint32_t);
}
-unsigned buf_height(struct scratch_buf *buf)
+unsigned igt_buf_height(struct igt_buf *buf)
{
return buf->size/buf->stride;
}
drm_intel_bo *dst_bo, drm_intel_bo *src_bo,
long int size);
-struct scratch_buf {
+struct igt_buf {
drm_intel_bo *bo;
uint32_t stride;
uint32_t tiling;
unsigned num_tiles;
};
-unsigned buf_width(struct scratch_buf *buf);
-unsigned buf_height(struct scratch_buf *buf);
+unsigned igt_buf_width(struct igt_buf *buf);
+unsigned igt_buf_height(struct igt_buf *buf);
typedef void (*render_copyfunc_t)(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
render_copyfunc_t get_render_copyfunc(int devid);
typedef void (*media_fillfunc_t)(struct intel_batchbuffer *batch,
- struct scratch_buf *dst,
+ struct igt_buf *dst,
unsigned x, unsigned y,
unsigned width, unsigned height,
uint8_t color);
void
gen8_media_fillfunc(struct intel_batchbuffer *batch,
- struct scratch_buf *dst,
+ struct igt_buf *dst,
unsigned x, unsigned y,
unsigned width, unsigned height,
uint8_t color);
void
gen7_media_fillfunc(struct intel_batchbuffer *batch,
- struct scratch_buf *dst,
+ struct igt_buf *dst,
unsigned x, unsigned y,
unsigned width, unsigned height,
uint8_t color);
static uint32_t
gen7_fill_surface_state(struct intel_batchbuffer *batch,
- struct scratch_buf *buf,
+ struct igt_buf *buf,
uint32_t format,
int is_dst)
{
read_domain, write_domain);
assert(ret == 0);
- ss->ss2.height = buf_height(buf) - 1;
- ss->ss2.width = buf_width(buf) - 1;
+ ss->ss2.height = igt_buf_height(buf) - 1;
+ ss->ss2.width = igt_buf_width(buf) - 1;
ss->ss3.pitch = buf->stride - 1;
static uint32_t
gen7_fill_binding_table(struct intel_batchbuffer *batch,
- struct scratch_buf *dst)
+ struct igt_buf *dst)
{
uint32_t *binding_table, offset;
}
static uint32_t
-gen7_fill_interface_descriptor(struct intel_batchbuffer *batch, struct scratch_buf *dst)
+gen7_fill_interface_descriptor(struct intel_batchbuffer *batch, struct igt_buf *dst)
{
struct gen7_interface_descriptor_data *idd;
uint32_t offset;
void
gen7_media_fillfunc(struct intel_batchbuffer *batch,
- struct scratch_buf *dst,
+ struct igt_buf *dst,
unsigned x, unsigned y,
unsigned width, unsigned height,
uint8_t color)
static uint32_t
gen8_fill_surface_state(struct intel_batchbuffer *batch,
- struct scratch_buf *buf,
+ struct igt_buf *buf,
uint32_t format,
int is_dst)
{
read_domain, write_domain);
assert(ret == 0);
- ss->ss2.height = buf_height(buf) - 1;
- ss->ss2.width = buf_width(buf) - 1;
+ ss->ss2.height = igt_buf_height(buf) - 1;
+ ss->ss2.width = igt_buf_width(buf) - 1;
ss->ss3.pitch = buf->stride - 1;
ss->ss7.shader_chanel_select_r = 4;
static uint32_t
gen8_fill_binding_table(struct intel_batchbuffer *batch,
- struct scratch_buf *dst)
+ struct igt_buf *dst)
{
uint32_t *binding_table, offset;
}
static uint32_t
-gen8_fill_interface_descriptor(struct intel_batchbuffer *batch, struct scratch_buf *dst)
+gen8_fill_interface_descriptor(struct intel_batchbuffer *batch, struct igt_buf *dst)
{
struct gen8_interface_descriptor_data *idd;
uint32_t offset;
void
gen8_media_fillfunc(struct intel_batchbuffer *batch,
- struct scratch_buf *dst,
+ struct igt_buf *dst,
unsigned x, unsigned y,
unsigned width, unsigned height,
uint8_t color)
void gen8_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
void gen7_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
void gen6_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
void gen3_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
void gen2_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
}
static uint32_t
-gen6_bind_buf(struct intel_batchbuffer *batch, struct scratch_buf *buf,
+gen6_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
uint32_t format, int is_dst)
{
struct gen6_surface_state *ss;
read_domain, write_domain);
assert(ret == 0);
- ss->ss2.height = buf_height(buf) - 1;
- ss->ss2.width = buf_width(buf) - 1;
+ ss->ss2.height = igt_buf_height(buf) - 1;
+ ss->ss2.width = igt_buf_width(buf) - 1;
ss->ss3.pitch = buf->stride - 1;
ss->ss3.tiled_surface = buf->tiling != I915_TILING_NONE;
ss->ss3.tile_walk = buf->tiling == I915_TILING_Y;
static uint32_t
gen6_bind_surfaces(struct intel_batchbuffer *batch,
- struct scratch_buf *src,
- struct scratch_buf *dst)
+ struct igt_buf *src,
+ struct igt_buf *dst)
{
uint32_t *binding_table;
}
static void
-gen6_emit_drawing_rectangle(struct intel_batchbuffer *batch, struct scratch_buf *dst)
+gen6_emit_drawing_rectangle(struct intel_batchbuffer *batch, struct igt_buf *dst)
{
OUT_BATCH(GEN6_3DSTATE_DRAWING_RECTANGLE | (4 - 2));
OUT_BATCH(0);
- OUT_BATCH((buf_height(dst) - 1) << 16 | (buf_width(dst) - 1));
+ OUT_BATCH((igt_buf_height(dst) - 1) << 16 | (igt_buf_width(dst) - 1));
OUT_BATCH(0);
}
void gen6_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
{
uint32_t wm_state, wm_kernel, wm_table;
uint32_t cc_vp, cc_blend, offset;
batch_round_upto(batch, VERTEX_SIZE)/VERTEX_SIZE;
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_normalized(batch, src_x + width, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, igt_buf_height(src));
emit_vertex_2s(batch, dst_x, dst_y + height);
- emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y + height, buf_height(src));
+ emit_vertex_normalized(batch, src_x, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, igt_buf_height(src));
emit_vertex_2s(batch, dst_x, dst_y);
- emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y, buf_height(src));
+ emit_vertex_normalized(batch, src_x, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y, igt_buf_height(src));
gen6_render_flush(batch, context, batch_end);
intel_batchbuffer_reset(batch);
static uint32_t
gen7_bind_buf(struct intel_batchbuffer *batch,
- struct scratch_buf *buf,
+ struct igt_buf *buf,
uint32_t format,
int is_dst)
{
gen7_tiling_bits(buf->tiling) |
format << GEN7_SURFACE_FORMAT_SHIFT);
ss[1] = buf->bo->offset;
- ss[2] = ((buf_width(buf) - 1) << GEN7_SURFACE_WIDTH_SHIFT |
- (buf_height(buf) - 1) << GEN7_SURFACE_HEIGHT_SHIFT);
+ ss[2] = ((igt_buf_width(buf) - 1) << GEN7_SURFACE_WIDTH_SHIFT |
+ (igt_buf_height(buf) - 1) << GEN7_SURFACE_HEIGHT_SHIFT);
ss[3] = (buf->stride - 1) << GEN7_SURFACE_PITCH_SHIFT;
ss[4] = 0;
ss[5] = 0;
static uint32_t
gen7_bind_surfaces(struct intel_batchbuffer *batch,
- struct scratch_buf *src,
- struct scratch_buf *dst)
+ struct igt_buf *src,
+ struct igt_buf *dst)
{
uint32_t *binding_table;
static void
gen7_emit_binding_table(struct intel_batchbuffer *batch,
- struct scratch_buf *src,
- struct scratch_buf *dst)
+ struct igt_buf *src,
+ struct igt_buf *dst)
{
OUT_BATCH(GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS | (2 - 2));
OUT_BATCH(gen7_bind_surfaces(batch, src, dst));
}
static void
-gen7_emit_drawing_rectangle(struct intel_batchbuffer *batch, struct scratch_buf *dst)
+gen7_emit_drawing_rectangle(struct intel_batchbuffer *batch, struct igt_buf *dst)
{
OUT_BATCH(GEN7_3DSTATE_DRAWING_RECTANGLE | (4 - 2));
OUT_BATCH(0);
- OUT_BATCH((buf_height(dst) - 1) << 16 | (buf_width(dst) - 1));
+ OUT_BATCH((igt_buf_height(dst) - 1) << 16 | (igt_buf_width(dst) - 1));
OUT_BATCH(0);
}
#define BATCH_STATE_SPLIT 2048
void gen7_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
{
uint32_t batch_end;
/* Mostly copy+paste from gen6, except height, width, pitch moved */
static uint32_t
-gen8_bind_buf(struct intel_batchbuffer *batch, struct scratch_buf *buf,
+gen8_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
uint32_t format, int is_dst) {
struct gen8_surface_state *ss;
uint32_t write_domain, read_domain, offset;
read_domain, write_domain);
assert(ret == 0);
- ss->ss2.height = buf_height(buf) - 1;
- ss->ss2.width = buf_width(buf) - 1;
+ ss->ss2.height = igt_buf_height(buf) - 1;
+ ss->ss2.width = igt_buf_width(buf) - 1;
ss->ss3.pitch = buf->stride - 1;
ss->ss7.shader_chanel_select_r = 4;
static uint32_t
gen8_bind_surfaces(struct intel_batchbuffer *batch,
- struct scratch_buf *src,
- struct scratch_buf *dst)
+ struct igt_buf *src,
+ struct igt_buf *dst)
{
uint32_t *binding_table, offset;
*/
static uint32_t
gen7_fill_vertex_buffer_data(struct intel_batchbuffer *batch,
- struct scratch_buf *src,
+ struct igt_buf *src,
uint32_t src_x, uint32_t src_y,
uint32_t dst_x, uint32_t dst_y,
uint32_t width, uint32_t height)
start = batch->ptr;
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_normalized(batch, src_x + width, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, igt_buf_height(src));
emit_vertex_2s(batch, dst_x, dst_y + height);
- emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y + height, buf_height(src));
+ emit_vertex_normalized(batch, src_x, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, igt_buf_height(src));
emit_vertex_2s(batch, dst_x, dst_y);
- emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y, buf_height(src));
+ emit_vertex_normalized(batch, src_x, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y, igt_buf_height(src));
offset = batch_offset(batch, start);
annotation_add_state(&aub_annotations, AUB_TRACE_VERTEX_BUFFER,
}
static void
-gen6_emit_drawing_rectangle(struct intel_batchbuffer *batch, struct scratch_buf *dst)
+gen6_emit_drawing_rectangle(struct intel_batchbuffer *batch, struct igt_buf *dst)
{
OUT_BATCH(GEN6_3DSTATE_DRAWING_RECTANGLE | (4 - 2));
OUT_BATCH(0);
- OUT_BATCH((buf_height(dst) - 1) << 16 | (buf_width(dst) - 1));
+ OUT_BATCH((igt_buf_height(dst) - 1) << 16 | (igt_buf_width(dst) - 1));
OUT_BATCH(0);
}
void gen8_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
{
uint32_t ps_sampler_state, ps_kernel_off, ps_binding_table;
uint32_t scissor_state;
}
static void gen2_emit_target(struct intel_batchbuffer *batch,
- struct scratch_buf *dst)
+ struct igt_buf *dst)
{
uint32_t tiling;
OUT_BATCH(_3DSTATE_DRAW_RECT_CMD);
OUT_BATCH(0);
OUT_BATCH(0); /* ymin, xmin */
- OUT_BATCH(DRAW_YMAX(buf_height(dst) - 1) |
- DRAW_XMAX(buf_width(dst) - 1));
+ OUT_BATCH(DRAW_YMAX(igt_buf_height(dst) - 1) |
+ DRAW_XMAX(igt_buf_width(dst) - 1));
OUT_BATCH(0); /* yorig, xorig */
}
static void gen2_emit_texture(struct intel_batchbuffer *batch,
- struct scratch_buf *src,
+ struct igt_buf *src,
int unit)
{
uint32_t tiling;
OUT_BATCH(_3DSTATE_LOAD_STATE_IMMEDIATE_2 | LOAD_TEXTURE_MAP(unit) | 4);
OUT_RELOC(src->bo, I915_GEM_DOMAIN_SAMPLER, 0, 0);
- OUT_BATCH((buf_height(src) - 1) << TM0S1_HEIGHT_SHIFT |
- (buf_width(src) - 1) << TM0S1_WIDTH_SHIFT |
+ OUT_BATCH((igt_buf_height(src) - 1) << TM0S1_HEIGHT_SHIFT |
+ (igt_buf_width(src) - 1) << TM0S1_WIDTH_SHIFT |
MAPSURF_32BIT | MT_32BIT_ARGB8888 | tiling);
OUT_BATCH((src->stride / 4 - 1) << TM0S2_PITCH_SHIFT | TM0S2_MAP_2D);
OUT_BATCH(FILTER_NEAREST << TM0S3_MAG_FILTER_SHIFT |
void gen2_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
{
gen2_emit_invariant(batch);
gen2_emit_copy_pipeline(batch);
OUT_BATCH(PRIM3D_INLINE | PRIM3D_RECTLIST | (3*4 -1));
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_normalized(batch, src_x + width, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, igt_buf_height(src));
emit_vertex(batch, dst_x);
emit_vertex(batch, dst_y + height);
- emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y + height, buf_height(src));
+ emit_vertex_normalized(batch, src_x, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y + height, igt_buf_height(src));
emit_vertex(batch, dst_x);
emit_vertex(batch, dst_y);
- emit_vertex_normalized(batch, src_x, buf_width(src));
- emit_vertex_normalized(batch, src_y, buf_height(src));
+ emit_vertex_normalized(batch, src_x, igt_buf_width(src));
+ emit_vertex_normalized(batch, src_y, igt_buf_height(src));
intel_batchbuffer_flush(batch);
}
void gen3_render_copyfunc(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned width, unsigned height,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
{
/* invariant state */
{
OUT_RELOC(src->bo, I915_GEM_DOMAIN_SAMPLER, 0, 0);
OUT_BATCH(MAPSURF_32BIT | MT_32BIT_ARGB8888 |
tiling_bits |
- (buf_height(src) - 1) << MS3_HEIGHT_SHIFT |
- (buf_width(src) - 1) << MS3_WIDTH_SHIFT);
+ (igt_buf_height(src) - 1) << MS3_HEIGHT_SHIFT |
+ (igt_buf_width(src) - 1) << MS3_WIDTH_SHIFT);
OUT_BATCH((src->stride/4-1) << MS4_PITCH_SHIFT);
OUT_BATCH(_3DSTATE_SAMPLER_STATE | (3 * TEX_COUNT));
OUT_BATCH(_3DSTATE_DRAW_RECT_CMD);
OUT_BATCH(0x00000000);
OUT_BATCH(0x00000000); /* ymin, xmin */
- OUT_BATCH(DRAW_YMAX(buf_height(dst) - 1) |
- DRAW_XMAX(buf_width(dst) - 1));
+ OUT_BATCH(DRAW_YMAX(igt_buf_height(dst) - 1) |
+ DRAW_XMAX(igt_buf_width(dst) - 1));
/* yorig, xorig (relate to color buffer?) */
OUT_BATCH(0x00000000);
}
int fd;
static void init_buffer(drm_intel_bufmgr *bufmgr,
- struct scratch_buf *buf,
+ struct igt_buf *buf,
uint32_t size)
{
buf->bo = drm_intel_bo_alloc(bufmgr, "", size, 4096);
igt_require(context);
for (i = 0; i < iter; i++) {
- struct scratch_buf src, dst;
+ struct igt_buf src, dst;
init_buffer(bufmgr, &src, 4096);
init_buffer(bufmgr, &dst, 4096);
uint8_t linear[WIDTH * HEIGHT];
} data_t;
-static void scratch_buf_init(data_t *data, struct scratch_buf *buf,
+static void scratch_buf_init(data_t *data, struct igt_buf *buf,
int width, int height, int stride, uint8_t color)
{
drm_intel_bo *bo;
}
static void
-scratch_buf_check(data_t *data, struct scratch_buf *buf, int x, int y,
+scratch_buf_check(data_t *data, struct igt_buf *buf, int x, int y,
uint8_t color)
{
uint8_t val;
{
data_t data = {0, };
struct intel_batchbuffer *batch = NULL;
- struct scratch_buf dst;
+ struct igt_buf dst;
media_fillfunc_t media_fill = NULL;
int i, j;
uint32_t linear[WIDTH * HEIGHT];
} data_t;
-static void scratch_buf_write_to_png(struct scratch_buf *buf, const char *filename)
+static void scratch_buf_write_to_png(struct igt_buf *buf, const char *filename)
{
cairo_surface_t *surface;
cairo_status_t ret;
drm_intel_bo_map(buf->bo, 0);
surface = cairo_image_surface_create_for_data(buf->bo->virtual,
CAIRO_FORMAT_RGB24,
- buf_width(buf),
- buf_height(buf),
+ igt_buf_width(buf),
+ igt_buf_height(buf),
buf->stride);
ret = cairo_surface_write_to_png(surface, filename);
if (ret != CAIRO_STATUS_SUCCESS) {
drm_intel_bo_unmap(buf->bo);
}
-static void scratch_buf_init(data_t *data, struct scratch_buf *buf,
+static void scratch_buf_init(data_t *data, struct igt_buf *buf,
int width, int height, int stride, uint32_t color)
{
drm_intel_bo *bo;
}
static void
-scratch_buf_check(data_t *data, struct scratch_buf *buf, int x, int y,
+scratch_buf_check(data_t *data, struct igt_buf *buf, int x, int y,
uint32_t color)
{
uint32_t val;
{
data_t data = {0, };
struct intel_batchbuffer *batch = NULL;
- struct scratch_buf src, dst;
+ struct igt_buf src, dst;
render_copyfunc_t render_copy = NULL;
int opt;
int opt_dump_png = false;
printf("Cyclic blits, forward...\n");
for (i = 0; i < count * 4; i++) {
- struct scratch_buf src, dst;
+ struct igt_buf src, dst;
src.bo = bo[i % count];
src.stride = STRIDE;
printf("Cyclic blits, backward...\n");
for (i = 0; i < count * 4; i++) {
- struct scratch_buf src, dst;
+ struct igt_buf src, dst;
src.bo = bo[(i + 1) % count];
src.stride = STRIDE;
printf("Random blits...\n");
for (i = 0; i < count * 4; i++) {
- struct scratch_buf src, dst;
+ struct igt_buf src, dst;
int s = random() % count;
int d = random() % count;
drm_intel_bufmgr *bufmgr;
struct intel_batchbuffer *batch;
uint32_t *start_val;
- struct scratch_buf *buf;
+ struct igt_buf *buf;
uint32_t start = 0;
int i, j, fd, count;
struct {
render_copyfunc_t copy;
- struct scratch_buf *srcs;
- struct scratch_buf *dsts;
+ struct igt_buf *srcs;
+ struct igt_buf *dsts;
} render;
struct {
igt_assert_cmpint(data->linear[i], ==, val);
}
-static void scratch_buf_init_from_bo(struct scratch_buf *buf, drm_intel_bo *bo)
+static void scratch_buf_init_from_bo(struct igt_buf *buf, drm_intel_bo *bo)
{
buf->bo = bo;
buf->stride = 4 * WIDTH;
buf->size = 4 * WIDTH * HEIGHT;
}
-static void scratch_buf_init(data_t *data, struct scratch_buf *buf,
+static void scratch_buf_init(data_t *data, struct igt_buf *buf,
int width, int height, uint32_t color)
{
drm_intel_bo *bo;
size_t array_size;
int i;
- array_size = data->n_buffers_load * sizeof(struct scratch_buf);
+ array_size = data->n_buffers_load * sizeof(struct igt_buf);
data->render.srcs = malloc(array_size);
data->render.dsts = malloc(array_size);
static void render_copy(data_t *data, drm_intel_bo *src, drm_intel_bo *dst)
{
- struct scratch_buf src_buf, dst_buf;
+ struct igt_buf src_buf, dst_buf;
scratch_buf_init_from_bo(&src_buf, src);
scratch_buf_init_from_bo(&dst_buf, dst);
const char *ring,
render_copyfunc_t copy)
{
- struct scratch_buf src, tmp, dst;
+ struct igt_buf src, tmp, dst;
struct bo bo;
char output[100];
int i;
static void blt_copy(struct intel_batchbuffer *batch,
drm_intel_context *context,
- struct scratch_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *src, unsigned src_x, unsigned src_y,
unsigned w, unsigned h,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y)
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
{
BLIT_COPY_BATCH_START(batch->devid, 0);
OUT_BATCH((3 << 24) | /* 32 bits */
static struct option_struct options;
static void init_buffer(drm_intel_bufmgr *bufmgr,
- struct scratch_buf *buf,
+ struct igt_buf *buf,
drm_intel_bo *bo,
int width, int height)
{
drm_intel_bo_unreference(bo);
}
-static void render_copyfunc(struct scratch_buf *src,
- struct scratch_buf *dst,
+static void render_copyfunc(struct igt_buf *src,
+ struct igt_buf *dst,
int width,
int height)
{
int r = -1;
int failed = 0;
unsigned int *p_dst1, *p_dst2;
- struct scratch_buf *s_src, *s_dst;
+ struct igt_buf *s_src, *s_dst;
fd = drm_open_any();
igt_assert(fd >= 0);
#define BUSY_BUF_SIZE (256*4096)
#define TILE_BYTES(size) ((size)*(size)*sizeof(uint32_t))
-static struct scratch_buf buffers[2][MAX_BUFS];
+static struct igt_buf buffers[2][MAX_BUFS];
/* tile i is at logical position tile_permutation[i] */
static unsigned *tile_permutation;
static unsigned num_buffers = 0;
unsigned max_failed_reads;
} stats;
-static void tile2xy(struct scratch_buf *buf, unsigned tile, unsigned *x, unsigned *y)
+static void tile2xy(struct igt_buf *buf, unsigned tile, unsigned *x, unsigned *y)
{
igt_assert(tile < buf->num_tiles);
*x = (tile*options.tile_size) % (buf->stride/sizeof(uint32_t));
busy_bo, 0, 4096, 0, 128);
}
-static void set_to_cpu_domain(struct scratch_buf *buf, int writing)
+static void set_to_cpu_domain(struct igt_buf *buf, int writing)
{
gem_set_domain(drm_fd, buf->bo->handle, I915_GEM_DOMAIN_CPU,
writing ? I915_GEM_DOMAIN_CPU : 0);
}
static unsigned int copyfunc_seq = 0;
-static void (*copyfunc)(struct scratch_buf *src, unsigned src_x, unsigned src_y,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y,
+static void (*copyfunc)(struct igt_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y,
unsigned logical_tile_no);
/* stride, x, y in units of uint32_t! */
stats.num_failed++;
}
-static void cpu_copyfunc(struct scratch_buf *src, unsigned src_x, unsigned src_y,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y,
+static void cpu_copyfunc(struct igt_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y,
unsigned logical_tile_no)
{
igt_assert(batch->ptr == batch->buffer);
logical_tile_no);
}
-static void prw_copyfunc(struct scratch_buf *src, unsigned src_x, unsigned src_y,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y,
+static void prw_copyfunc(struct igt_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y,
unsigned logical_tile_no)
{
uint32_t tmp_tile[options.tile_size*options.tile_size];
}
}
-static void blitter_copyfunc(struct scratch_buf *src, unsigned src_x, unsigned src_y,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y,
+static void blitter_copyfunc(struct igt_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y,
unsigned logical_tile_no)
{
static unsigned keep_gpu_busy_counter = 0;
}
}
-static void render_copyfunc(struct scratch_buf *src, unsigned src_x, unsigned src_y,
- struct scratch_buf *dst, unsigned dst_x, unsigned dst_y,
+static void render_copyfunc(struct igt_buf *src, unsigned src_x, unsigned src_y,
+ struct igt_buf *dst, unsigned dst_x, unsigned dst_y,
unsigned logical_tile_no)
{
static unsigned keep_gpu_busy_counter = 0;
}
}
-static void sanitize_stride(struct scratch_buf *buf)
+static void sanitize_stride(struct igt_buf *buf)
{
- if (buf_height(buf) > options.max_dimension)
+ if (igt_buf_height(buf) > options.max_dimension)
buf->stride = buf->size / options.max_dimension;
- if (buf_height(buf) < options.tile_size)
+ if (igt_buf_height(buf) < options.tile_size)
buf->stride = buf->size / options.tile_size;
- if (buf_width(buf) < options.tile_size)
+ if (igt_buf_width(buf) < options.tile_size)
buf->stride = options.tile_size * sizeof(uint32_t);
igt_assert(buf->stride <= 8192);
- igt_assert(buf_width(buf) <= options.max_dimension);
- igt_assert(buf_height(buf) <= options.max_dimension);
+ igt_assert(igt_buf_width(buf) <= options.max_dimension);
+ igt_assert(igt_buf_height(buf) <= options.max_dimension);
- igt_assert(buf_width(buf) >= options.tile_size);
- igt_assert(buf_height(buf) >= options.tile_size);
+ igt_assert(igt_buf_width(buf) >= options.tile_size);
+ igt_assert(igt_buf_height(buf) >= options.tile_size);
}
-static void init_buffer(struct scratch_buf *buf, unsigned size)
+static void init_buffer(struct igt_buf *buf, unsigned size)
{
buf->bo = drm_intel_bo_alloc(bufmgr, "tiled bo", size, 4096);
buf->size = size;
static void exchange_buf(void *array, unsigned i, unsigned j)
{
- struct scratch_buf *buf_arr, tmp;
+ struct igt_buf *buf_arr, tmp;
buf_arr = array;
- memcpy(&tmp, &buf_arr[i], sizeof(struct scratch_buf));
- memcpy(&buf_arr[i], &buf_arr[j], sizeof(struct scratch_buf));
- memcpy(&buf_arr[j], &tmp, sizeof(struct scratch_buf));
+ memcpy(&tmp, &buf_arr[i], sizeof(struct igt_buf));
+ memcpy(&buf_arr[i], &buf_arr[j], sizeof(struct igt_buf));
+ memcpy(&buf_arr[j], &tmp, sizeof(struct igt_buf));
}
{
unsigned src_tile, src_buf_idx, src_x, src_y;
unsigned dst_tile, dst_buf_idx, dst_x, dst_y;
- struct scratch_buf *src_buf, *dst_buf;
+ struct igt_buf *src_buf, *dst_buf;
int i, idx;
for (i = 0; i < num_total_tiles; i++) {
/* tile_permutation is independent of current_permutation, so
static void check_render_copyfunc(void)
{
- struct scratch_buf src, dst;
+ struct igt_buf src, dst;
uint32_t *ptr;
int i, j, pass;
init_buffer(&dst, options.scratch_buf_size);
for (pass = 0; pass < 16; pass++) {
- int sx = random() % (buf_width(&src)-options.tile_size);
- int sy = random() % (buf_height(&src)-options.tile_size);
- int dx = random() % (buf_width(&dst)-options.tile_size);
- int dy = random() % (buf_height(&dst)-options.tile_size);
+ int sx = random() % (igt_buf_width(&src)-options.tile_size);
+ int sy = random() % (igt_buf_height(&src)-options.tile_size);
+ int dx = random() % (igt_buf_width(&dst)-options.tile_size);
+ int dy = random() % (igt_buf_height(&dst)-options.tile_size);
if (options.use_cpu_maps)
set_to_cpu_domain(&src, 1);
gem_bo_busy(data->drm_fd, handle);
}
-static void scratch_buf_init(struct scratch_buf *buf, drm_intel_bo *bo)
+static void scratch_buf_init(struct igt_buf *buf, drm_intel_bo *bo)
{
buf->bo = bo;
buf->stride = 4096;
{
drm_intel_bo *src, *dst;
struct intel_batchbuffer *batch;
- struct scratch_buf src_buf, dst_buf;
+ struct igt_buf src_buf, dst_buf;
const uint8_t buf[4] = { color, color, color, color };
render_copyfunc_t rendercopy = get_render_copyfunc(data->devid);
{
const struct kmstest_fb *fb_info = &o->fb_info[o->current_fb_id];
render_copyfunc_t copyfunc;
- struct scratch_buf sb[2], *src, *dst;
+ struct igt_buf sb[2], *src, *dst;
int i, limit;
copyfunc = get_render_copyfunc(devid);
dst = &sb[1];
for (i = 0; i < limit; i++) {
- struct scratch_buf *tmp;
+ struct igt_buf *tmp;
copyfunc(batch, NULL,
src, 0, 0,