mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +00:00 
			
		
		
		
	igt/gem_concurrent_all: Pass buffer data down
In order reduce the number of parameters being passed everywhere, whilst simultaneously making more information available to the lower levels, pass the struct buffers around. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
		
							parent
							
								
									5dea5deffc
								
							
						
					
					
						commit
						37f4da0d98
					
				@ -67,9 +67,19 @@ struct intel_batchbuffer *batch;
 | 
			
		||||
int all;
 | 
			
		||||
int pass;
 | 
			
		||||
 | 
			
		||||
struct buffers {
 | 
			
		||||
	const struct access_mode *mode;
 | 
			
		||||
	drm_intel_bufmgr *bufmgr;
 | 
			
		||||
	drm_intel_bo **src, **dst;
 | 
			
		||||
	drm_intel_bo *snoop, *spare;
 | 
			
		||||
	uint32_t *tmp;
 | 
			
		||||
	int width, height, size;
 | 
			
		||||
	int count;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define MIN_BUFFERS 3
 | 
			
		||||
 | 
			
		||||
static void blt_copy_bo(drm_intel_bo *dst, drm_intel_bo *src);
 | 
			
		||||
static void blt_copy_bo(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src);
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
nop_release_bo(drm_intel_bo *bo)
 | 
			
		||||
@ -78,56 +88,39 @@ nop_release_bo(drm_intel_bo *bo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
prw_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
prw_set_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int size = width * height, i;
 | 
			
		||||
	uint32_t *tmp;
 | 
			
		||||
 | 
			
		||||
	tmp = malloc(4*size);
 | 
			
		||||
	if (tmp) {
 | 
			
		||||
		for (i = 0; i < size; i++)
 | 
			
		||||
			tmp[i] = val;
 | 
			
		||||
		drm_intel_bo_subdata(bo, 0, 4*size, tmp);
 | 
			
		||||
		free(tmp);
 | 
			
		||||
	} else {
 | 
			
		||||
		for (i = 0; i < size; i++)
 | 
			
		||||
			drm_intel_bo_subdata(bo, 4*i, 4, &val);
 | 
			
		||||
	}
 | 
			
		||||
	for (int i = 0; i < b->size; i++)
 | 
			
		||||
		b->tmp[i] = val;
 | 
			
		||||
	drm_intel_bo_subdata(bo, 0, 4*b->size, b->tmp);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
prw_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *tmp)
 | 
			
		||||
prw_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int size = width * height, i;
 | 
			
		||||
	uint32_t *vaddr;
 | 
			
		||||
 | 
			
		||||
	do_or_die(drm_intel_bo_map(tmp, true));
 | 
			
		||||
	do_or_die(drm_intel_bo_get_subdata(bo, 0, 4*size, tmp->virtual));
 | 
			
		||||
	vaddr = tmp->virtual;
 | 
			
		||||
	for (i = 0; i < size; i++)
 | 
			
		||||
	vaddr = b->tmp;
 | 
			
		||||
	do_or_die(drm_intel_bo_get_subdata(bo, 0, 4*b->size, vaddr));
 | 
			
		||||
	for (int i = 0; i < b->size; i++)
 | 
			
		||||
		igt_assert_eq_u32(vaddr[i], val);
 | 
			
		||||
	drm_intel_bo_unmap(tmp);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define pixel(y, width) ((y)*(width) + (((y) + pass)%(width)))
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
partial_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
partial_set_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int y;
 | 
			
		||||
 | 
			
		||||
	for (y = 0; y < height; y++)
 | 
			
		||||
		do_or_die(drm_intel_bo_subdata(bo, 4*pixel(y, width), 4, &val));
 | 
			
		||||
	for (int y = 0; y < b->height; y++)
 | 
			
		||||
		do_or_die(drm_intel_bo_subdata(bo, 4*pixel(y, b->width), 4, &val));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
partial_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *tmp)
 | 
			
		||||
partial_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int y;
 | 
			
		||||
 | 
			
		||||
	for (y = 0; y < height; y++) {
 | 
			
		||||
	for (int y = 0; y < b->height; y++) {
 | 
			
		||||
		uint32_t buf;
 | 
			
		||||
		do_or_die(drm_intel_bo_get_subdata(bo, 4*pixel(y, width), 4, &buf));
 | 
			
		||||
		do_or_die(drm_intel_bo_get_subdata(bo, 4*pixel(y, b->width), 4, &buf));
 | 
			
		||||
		igt_assert_eq_u32(buf, val);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@ -216,8 +209,6 @@ snoop_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
 | 
			
		||||
{
 | 
			
		||||
	drm_intel_bo *bo;
 | 
			
		||||
 | 
			
		||||
	igt_skip_on(gem_has_llc(fd));
 | 
			
		||||
 | 
			
		||||
	bo = unmapped_create_bo(bufmgr, width, height);
 | 
			
		||||
	gem_set_caching(fd, bo->handle, I915_CACHING_CACHED);
 | 
			
		||||
	drm_intel_bo_disable_reuse(bo);
 | 
			
		||||
@ -276,9 +267,9 @@ userptr_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
userptr_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
userptr_set_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int size = width * height;
 | 
			
		||||
	int size = b->size;
 | 
			
		||||
	uint32_t *vaddr = bo->virtual;
 | 
			
		||||
 | 
			
		||||
	gem_set_domain(fd, bo->handle,
 | 
			
		||||
@ -288,9 +279,9 @@ userptr_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
userptr_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *tmp)
 | 
			
		||||
userptr_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int size = width * height;
 | 
			
		||||
	int size =  b->size;
 | 
			
		||||
	uint32_t *vaddr = bo->virtual;
 | 
			
		||||
 | 
			
		||||
	gem_set_domain(fd, bo->handle,
 | 
			
		||||
@ -309,10 +300,10 @@ userptr_release_bo(drm_intel_bo *bo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
gtt_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
gtt_set_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	uint32_t *vaddr = bo->virtual;
 | 
			
		||||
	int size = width * height;
 | 
			
		||||
	int size = b->size;
 | 
			
		||||
 | 
			
		||||
	drm_intel_gem_bo_start_gtt_access(bo, true);
 | 
			
		||||
	while (size--)
 | 
			
		||||
@ -320,15 +311,14 @@ gtt_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
gtt_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *tmp)
 | 
			
		||||
gtt_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	uint32_t *vaddr = bo->virtual;
 | 
			
		||||
	int y;
 | 
			
		||||
 | 
			
		||||
	/* GTT access is slow. So we just compare a few points */
 | 
			
		||||
	drm_intel_gem_bo_start_gtt_access(bo, false);
 | 
			
		||||
	for (y = 0; y < height; y++)
 | 
			
		||||
		igt_assert_eq_u32(vaddr[pixel(y, width)], val);
 | 
			
		||||
	for (int y = 0; y < b->height; y++)
 | 
			
		||||
		igt_assert_eq_u32(vaddr[pixel(y, b->width)], val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static drm_intel_bo *
 | 
			
		||||
@ -399,9 +389,9 @@ gpuX_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
cpu_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
cpu_set_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int size = width * height;
 | 
			
		||||
	int size = b->size;
 | 
			
		||||
	uint32_t *vaddr;
 | 
			
		||||
 | 
			
		||||
	do_or_die(drm_intel_bo_map(bo, true));
 | 
			
		||||
@ -412,9 +402,9 @@ cpu_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
cpu_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *tmp)
 | 
			
		||||
cpu_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	int size = width * height;
 | 
			
		||||
	int size = b->size;
 | 
			
		||||
	uint32_t *vaddr;
 | 
			
		||||
 | 
			
		||||
	do_or_die(drm_intel_bo_map(bo, false));
 | 
			
		||||
@ -425,7 +415,7 @@ cpu_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
gpu_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
gpu_set_bo(struct buffers *buffers, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	struct drm_i915_gem_relocation_entry reloc[1];
 | 
			
		||||
	struct drm_i915_gem_exec_object2 gem_exec[2];
 | 
			
		||||
@ -445,12 +435,12 @@ gpu_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
		COLOR_BLT_WRITE_ALPHA | XY_COLOR_BLT_WRITE_RGB;
 | 
			
		||||
	if (gen >= 4 && tiling) {
 | 
			
		||||
		b[-1] |= XY_COLOR_BLT_TILED;
 | 
			
		||||
		*b = width;
 | 
			
		||||
		*b = buffers->width;
 | 
			
		||||
	} else
 | 
			
		||||
		*b = width << 2;
 | 
			
		||||
		*b = buffers->width << 2;
 | 
			
		||||
	*b++ |= 0xf0 << 16 | 1 << 25 | 1 << 24;
 | 
			
		||||
	*b++ = 0;
 | 
			
		||||
	*b++ = height << 16 | width;
 | 
			
		||||
	*b++ = buffers->height << 16 | buffers->width;
 | 
			
		||||
	reloc[0].offset = (b - buf) * sizeof(uint32_t);
 | 
			
		||||
	reloc[0].target_handle = bo->handle;
 | 
			
		||||
	reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
 | 
			
		||||
@ -483,17 +473,17 @@ gpu_set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
gpu_cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height, drm_intel_bo *tmp)
 | 
			
		||||
gpu_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
 | 
			
		||||
{
 | 
			
		||||
	blt_copy_bo(tmp, bo);
 | 
			
		||||
	cpu_cmp_bo(tmp, val, width, height, NULL);
 | 
			
		||||
	blt_copy_bo(b, b->snoop, bo);
 | 
			
		||||
	cpu_cmp_bo(b, b->snoop, val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const struct access_mode {
 | 
			
		||||
	const char *name;
 | 
			
		||||
	bool (*require)(void);
 | 
			
		||||
	void (*set_bo)(drm_intel_bo *bo, uint32_t val, int w, int h);
 | 
			
		||||
	void (*cmp_bo)(drm_intel_bo *bo, uint32_t val, int w, int h, drm_intel_bo *tmp);
 | 
			
		||||
	void (*set_bo)(struct buffers *b, drm_intel_bo *bo, uint32_t val);
 | 
			
		||||
	void (*cmp_bo)(struct buffers *b, drm_intel_bo *bo, uint32_t val);
 | 
			
		||||
	drm_intel_bo *(*create_bo)(drm_intel_bufmgr *bufmgr, int width, int height);
 | 
			
		||||
	void (*release_bo)(drm_intel_bo *bo);
 | 
			
		||||
} access_modes[] = {
 | 
			
		||||
@ -573,24 +563,22 @@ const struct access_mode {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int num_buffers;
 | 
			
		||||
const int width = 512, height = 512;
 | 
			
		||||
igt_render_copyfunc_t rendercopy;
 | 
			
		||||
 | 
			
		||||
struct buffers {
 | 
			
		||||
	const struct access_mode *mode;
 | 
			
		||||
	drm_intel_bufmgr *bufmgr;
 | 
			
		||||
	drm_intel_bo **src, **dst;
 | 
			
		||||
	drm_intel_bo *dummy, *spare;
 | 
			
		||||
	int count;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void *buffers_init(struct buffers *data,
 | 
			
		||||
			  const struct access_mode *mode,
 | 
			
		||||
			  int width, int height,
 | 
			
		||||
			  int _fd)
 | 
			
		||||
{
 | 
			
		||||
	data->mode = mode;
 | 
			
		||||
	data->count = 0;
 | 
			
		||||
 | 
			
		||||
	data->width = width;
 | 
			
		||||
	data->height = height;
 | 
			
		||||
	data->size = width * height;
 | 
			
		||||
	data->tmp = malloc(4*data->size);
 | 
			
		||||
	igt_assert(data->tmp);
 | 
			
		||||
 | 
			
		||||
	data->bufmgr = drm_intel_bufmgr_gem_init(_fd, 4096);
 | 
			
		||||
	igt_assert(data->bufmgr);
 | 
			
		||||
 | 
			
		||||
@ -611,7 +599,7 @@ static void buffers_destroy(struct buffers *data)
 | 
			
		||||
		data->mode->release_bo(data->src[i]);
 | 
			
		||||
		data->mode->release_bo(data->dst[i]);
 | 
			
		||||
	}
 | 
			
		||||
	data->mode->release_bo(data->dummy);
 | 
			
		||||
	data->mode->release_bo(data->snoop);
 | 
			
		||||
	data->mode->release_bo(data->spare);
 | 
			
		||||
	data->count = 0;
 | 
			
		||||
}
 | 
			
		||||
@ -619,6 +607,7 @@ static void buffers_destroy(struct buffers *data)
 | 
			
		||||
static void buffers_create(struct buffers *data,
 | 
			
		||||
			   int count)
 | 
			
		||||
{
 | 
			
		||||
	int width = data->width, height = data->height;
 | 
			
		||||
	igt_assert(data->bufmgr);
 | 
			
		||||
 | 
			
		||||
	buffers_destroy(data);
 | 
			
		||||
@ -629,8 +618,8 @@ static void buffers_create(struct buffers *data,
 | 
			
		||||
		data->dst[i] =
 | 
			
		||||
			data->mode->create_bo(data->bufmgr, width, height);
 | 
			
		||||
	}
 | 
			
		||||
	data->dummy = data->mode->create_bo(data->bufmgr, width, height);
 | 
			
		||||
	data->spare = data->mode->create_bo(data->bufmgr, width, height);
 | 
			
		||||
	data->snoop = snoop_create_bo(data->bufmgr, width, height);
 | 
			
		||||
	data->count = count;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -641,6 +630,7 @@ static void buffers_fini(struct buffers *data)
 | 
			
		||||
 | 
			
		||||
	buffers_destroy(data);
 | 
			
		||||
 | 
			
		||||
	free(data->tmp);
 | 
			
		||||
	free(data->src);
 | 
			
		||||
	data->src = NULL;
 | 
			
		||||
	data->dst = NULL;
 | 
			
		||||
@ -650,21 +640,21 @@ static void buffers_fini(struct buffers *data)
 | 
			
		||||
	data->bufmgr = NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef void (*do_copy)(drm_intel_bo *dst, drm_intel_bo *src);
 | 
			
		||||
typedef void (*do_copy)(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src);
 | 
			
		||||
typedef struct igt_hang_ring (*do_hang)(void);
 | 
			
		||||
 | 
			
		||||
static void render_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
static void render_copy_bo(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
{
 | 
			
		||||
	struct igt_buf d = {
 | 
			
		||||
		.bo = dst,
 | 
			
		||||
		.size = width * height * 4,
 | 
			
		||||
		.num_tiles = width * height * 4,
 | 
			
		||||
		.stride = width * 4,
 | 
			
		||||
		.size = b->size * 4,
 | 
			
		||||
		.num_tiles = b->size * 4,
 | 
			
		||||
		.stride = b->width * 4,
 | 
			
		||||
	}, s = {
 | 
			
		||||
		.bo = src,
 | 
			
		||||
		.size = width * height * 4,
 | 
			
		||||
		.num_tiles = width * height * 4,
 | 
			
		||||
		.stride = width * 4,
 | 
			
		||||
		.size = b->size * 4,
 | 
			
		||||
		.num_tiles = b->size * 4,
 | 
			
		||||
		.stride = b->width * 4,
 | 
			
		||||
	};
 | 
			
		||||
	uint32_t swizzle;
 | 
			
		||||
 | 
			
		||||
@ -673,21 +663,21 @@ static void render_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
 | 
			
		||||
	rendercopy(batch, NULL,
 | 
			
		||||
		   &s, 0, 0,
 | 
			
		||||
		   width, height,
 | 
			
		||||
		   b->width, b->height,
 | 
			
		||||
		   &d, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void blt_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
static void blt_copy_bo(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
{
 | 
			
		||||
	intel_blt_copy(batch,
 | 
			
		||||
		       src, 0, 0, 4*width,
 | 
			
		||||
		       dst, 0, 0, 4*width,
 | 
			
		||||
		       width, height, 32);
 | 
			
		||||
		       src, 0, 0, 4*b->width,
 | 
			
		||||
		       dst, 0, 0, 4*b->width,
 | 
			
		||||
		       b->width, b->height, 32);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void cpu_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
static void cpu_copy_bo(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
{
 | 
			
		||||
	const int size = width * height * sizeof(uint32_t);
 | 
			
		||||
	const int size = b->size * sizeof(uint32_t);
 | 
			
		||||
	void *d, *s;
 | 
			
		||||
 | 
			
		||||
	gem_set_domain(fd, src->handle, I915_GEM_DOMAIN_CPU, 0);
 | 
			
		||||
@ -701,9 +691,9 @@ static void cpu_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
	munmap(s, size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void gtt_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
static void gtt_copy_bo(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
{
 | 
			
		||||
	const int size = width * height * sizeof(uint32_t);
 | 
			
		||||
	const int size = b->size * sizeof(uint32_t);
 | 
			
		||||
	void *d, *s;
 | 
			
		||||
 | 
			
		||||
	gem_set_domain(fd, src->handle, I915_GEM_DOMAIN_GTT, 0);
 | 
			
		||||
@ -718,9 +708,9 @@ static void gtt_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
	munmap(s, size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void wc_copy_bo(drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
static void wc_copy_bo(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src)
 | 
			
		||||
{
 | 
			
		||||
	const int size = width * height * sizeof(uint32_t);
 | 
			
		||||
	const int size = b->width * sizeof(uint32_t);
 | 
			
		||||
	void *d, *s;
 | 
			
		||||
 | 
			
		||||
	gem_set_domain(fd, src->handle, I915_GEM_DOMAIN_GTT, 0);
 | 
			
		||||
@ -756,12 +746,12 @@ static void do_basic0(struct buffers *buffers,
 | 
			
		||||
{
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
 | 
			
		||||
	buffers->mode->set_bo(buffers->src[0], 0xdeadbeef, width, height);
 | 
			
		||||
	buffers->mode->set_bo(buffers, buffers->src[0], 0xdeadbeef);
 | 
			
		||||
	for (int i = 0; i < buffers->count; i++) {
 | 
			
		||||
		struct igt_hang_ring hang = do_hang_func();
 | 
			
		||||
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[0]);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef, width, height, buffers->dummy);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[0]);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef);
 | 
			
		||||
 | 
			
		||||
		igt_post_hang_ring(fd, hang);
 | 
			
		||||
	}
 | 
			
		||||
@ -776,12 +766,12 @@ static void do_basic1(struct buffers *buffers,
 | 
			
		||||
	for (int i = 0; i < buffers->count; i++) {
 | 
			
		||||
		struct igt_hang_ring hang = do_hang_func();
 | 
			
		||||
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i], ~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i], ~i);
 | 
			
		||||
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		usleep(0); /* let someone else claim the mutex */
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], i);
 | 
			
		||||
 | 
			
		||||
		igt_post_hang_ring(fd, hang);
 | 
			
		||||
	}
 | 
			
		||||
@ -796,19 +786,19 @@ static void do_basicN(struct buffers *buffers,
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
 | 
			
		||||
	for (int i = 0; i < buffers->count; i++) {
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i], ~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i], ~i);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
 | 
			
		||||
	for (int i = 0; i < buffers->count; i++) {
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		usleep(0); /* let someone else claim the mutex */
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for (int i = 0; i < buffers->count; i++)
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], i);
 | 
			
		||||
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
@ -822,16 +812,16 @@ static void do_overwrite_source(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i], ~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i], ~i);
 | 
			
		||||
	}
 | 
			
		||||
	for (i = 0; i < buffers->count; i++)
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++)
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -846,23 +836,23 @@ static void do_overwrite_source_read(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = 0; i < half; i++) {
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i], ~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i+half], ~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i], ~i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i+half], ~i);
 | 
			
		||||
	}
 | 
			
		||||
	for (i = 0; i < half; i++) {
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		if (do_rcs)
 | 
			
		||||
			render_copy_bo(buffers->dst[i+half], buffers->src[i]);
 | 
			
		||||
			render_copy_bo(buffers, buffers->dst[i+half], buffers->src[i]);
 | 
			
		||||
		else
 | 
			
		||||
			blt_copy_bo(buffers->dst[i+half], buffers->src[i]);
 | 
			
		||||
			blt_copy_bo(buffers, buffers->dst[i+half], buffers->src[i]);
 | 
			
		||||
	}
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = half; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef);
 | 
			
		||||
	for (i = 0; i < half; i++) {
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i+half], i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], i);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i+half], i);
 | 
			
		||||
	}
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
@ -890,16 +880,16 @@ static void do_overwrite_source__rev(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i], ~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i], ~i);
 | 
			
		||||
	}
 | 
			
		||||
	for (i = 0; i < buffers->count; i++)
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = 0; i < buffers->count; i++)
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -910,12 +900,12 @@ static void do_overwrite_source__one(struct buffers *buffers,
 | 
			
		||||
	struct igt_hang_ring hang;
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	buffers->mode->set_bo(buffers->src[0], 0, width, height);
 | 
			
		||||
	buffers->mode->set_bo(buffers->dst[0], ~0, width, height);
 | 
			
		||||
	do_copy_func(buffers->dst[0], buffers->src[0]);
 | 
			
		||||
	buffers->mode->set_bo(buffers, buffers->src[0], 0);
 | 
			
		||||
	buffers->mode->set_bo(buffers, buffers->dst[0], ~0);
 | 
			
		||||
	do_copy_func(buffers, buffers->dst[0], buffers->src[0]);
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	buffers->mode->set_bo(buffers->src[0], 0xdeadbeef, width, height);
 | 
			
		||||
	buffers->mode->cmp_bo(buffers->dst[0], 0, width, height, buffers->dummy);
 | 
			
		||||
	buffers->mode->set_bo(buffers, buffers->src[0], 0xdeadbeef);
 | 
			
		||||
	buffers->mode->cmp_bo(buffers, buffers->dst[0], 0);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -930,27 +920,27 @@ static void do_intermix(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef^~i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers->dst[i], i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef^~i);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->dst[i], i);
 | 
			
		||||
	}
 | 
			
		||||
	for (i = 0; i < half; i++) {
 | 
			
		||||
		if (do_rcs == 1 || (do_rcs == -1 && i & 1))
 | 
			
		||||
			render_copy_bo(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
			render_copy_bo(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		else
 | 
			
		||||
			blt_copy_bo(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
			blt_copy_bo(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
 | 
			
		||||
		do_copy_func(buffers->dst[i+half], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i+half], buffers->src[i]);
 | 
			
		||||
 | 
			
		||||
		if (do_rcs == 1 || (do_rcs == -1 && (i & 1) == 0))
 | 
			
		||||
			render_copy_bo(buffers->dst[i], buffers->dst[i+half]);
 | 
			
		||||
			render_copy_bo(buffers, buffers->dst[i], buffers->dst[i+half]);
 | 
			
		||||
		else
 | 
			
		||||
			blt_copy_bo(buffers->dst[i], buffers->dst[i+half]);
 | 
			
		||||
			blt_copy_bo(buffers, buffers->dst[i], buffers->dst[i+half]);
 | 
			
		||||
 | 
			
		||||
		do_copy_func(buffers->dst[i+half], buffers->src[i+half]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i+half], buffers->src[i+half]);
 | 
			
		||||
	}
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = 0; i < 2*half; i++)
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef^~i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef^~i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -984,12 +974,12 @@ static void do_early_read(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++)
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1002,15 +992,15 @@ static void do_read_read_bcs(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef ^ i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef ^ i);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		blt_copy_bo(buffers->spare, buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		blt_copy_bo(buffers, buffers->spare, buffers->src[i]);
 | 
			
		||||
	}
 | 
			
		||||
	buffers->mode->cmp_bo(buffers->spare, 0xdeadbeef^(buffers->count-1), width, height, buffers->dummy);
 | 
			
		||||
	buffers->mode->cmp_bo(buffers, buffers->spare, 0xdeadbeef^(buffers->count-1));
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef ^ i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef ^ i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1023,14 +1013,14 @@ static void do_write_read_bcs(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef ^ i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef ^ i);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		blt_copy_bo(buffers->spare, buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->spare);
 | 
			
		||||
		blt_copy_bo(buffers, buffers->spare, buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->spare);
 | 
			
		||||
	}
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef ^ i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef ^ i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1043,15 +1033,15 @@ static void do_read_read_rcs(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef ^ i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef ^ i);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		render_copy_bo(buffers->spare, buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		render_copy_bo(buffers, buffers->spare, buffers->src[i]);
 | 
			
		||||
	}
 | 
			
		||||
	buffers->mode->cmp_bo(buffers->spare, 0xdeadbeef^(buffers->count-1), width, height, buffers->dummy);
 | 
			
		||||
	buffers->mode->cmp_bo(buffers, buffers->spare, 0xdeadbeef^(buffers->count-1));
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef ^ i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef ^ i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1064,14 +1054,14 @@ static void do_write_read_rcs(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xdeadbeef ^ i, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xdeadbeef ^ i);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++) {
 | 
			
		||||
		render_copy_bo(buffers->spare, buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->spare);
 | 
			
		||||
		render_copy_bo(buffers, buffers->spare, buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->spare);
 | 
			
		||||
	}
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xdeadbeef ^ i, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xdeadbeef ^ i);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1084,14 +1074,14 @@ static void do_gpu_read_after_write(struct buffers *buffers,
 | 
			
		||||
 | 
			
		||||
	gem_quiescent_gpu(fd);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->set_bo(buffers->src[i], 0xabcdabcd, width, height);
 | 
			
		||||
		buffers->mode->set_bo(buffers, buffers->src[i], 0xabcdabcd);
 | 
			
		||||
	for (i = 0; i < buffers->count; i++)
 | 
			
		||||
		do_copy_func(buffers->dst[i], buffers->src[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->dst[i], buffers->src[i]);
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		do_copy_func(buffers->dummy, buffers->dst[i]);
 | 
			
		||||
		do_copy_func(buffers, buffers->spare, buffers->dst[i]);
 | 
			
		||||
	hang = do_hang_func();
 | 
			
		||||
	for (i = buffers->count; i--; )
 | 
			
		||||
		buffers->mode->cmp_bo(buffers->dst[i], 0xabcdabcd, width, height, buffers->dummy);
 | 
			
		||||
		buffers->mode->cmp_bo(buffers, buffers->dst[i], 0xabcdabcd);
 | 
			
		||||
	igt_post_hang_ring(fd, hang);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1144,7 +1134,6 @@ static void run_child(struct buffers *buffers,
 | 
			
		||||
		intel_batchbuffer_free(batch);
 | 
			
		||||
		drm_intel_bufmgr_destroy(buffers->bufmgr);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	igt_waitchildren();
 | 
			
		||||
	igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
 | 
			
		||||
}
 | 
			
		||||
@ -1166,7 +1155,9 @@ static void __run_forked(struct buffers *buffers,
 | 
			
		||||
		buffers->count = 0;
 | 
			
		||||
		fd = drm_open_driver(DRIVER_INTEL);
 | 
			
		||||
 | 
			
		||||
		batch = buffers_init(buffers, buffers->mode, fd);
 | 
			
		||||
		batch = buffers_init(buffers, buffers->mode,
 | 
			
		||||
				     buffers->width, buffers->height,
 | 
			
		||||
				     fd);
 | 
			
		||||
 | 
			
		||||
		buffers_create(buffers, num_buffers);
 | 
			
		||||
		for (pass = 0; pass < loops; pass++)
 | 
			
		||||
@ -1279,7 +1270,8 @@ run_basic_modes(const char *prefix,
 | 
			
		||||
			struct buffers buffers;
 | 
			
		||||
 | 
			
		||||
			igt_fixture
 | 
			
		||||
				batch = buffers_init(&buffers, mode, fd);
 | 
			
		||||
				batch = buffers_init(&buffers, mode,
 | 
			
		||||
						     512, 512, fd);
 | 
			
		||||
 | 
			
		||||
			igt_subtest_f("%s-%s-%s-sanitycheck0%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
			
		||||
				p->require();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user