summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/intel_os.c2
-rw-r--r--tests/gem_concurrent_all.c348
2 files changed, 182 insertions, 168 deletions
diff --git a/lib/intel_os.c b/lib/intel_os.c
index b6a61921..2b0f0917 100644
--- a/lib/intel_os.c
+++ b/lib/intel_os.c
@@ -268,7 +268,7 @@ void intel_require_memory(uint64_t count, uint64_t size, unsigned mode)
{
uint64_t required, total;
- igt_skip_on_f(!__intel_check_memory(count, size, mode,
+ igt_require_f(__intel_check_memory(count, size, mode,
&required, &total),
"Estimated that we need %'llu objects and %'llu MiB for the test, but only have %'llu MiB available (%s%s) and a maximum of %'llu objects\n",
(long long)count,
diff --git a/tests/gem_concurrent_all.c b/tests/gem_concurrent_all.c
index 819a2028..1673b1da 100644
--- a/tests/gem_concurrent_all.c
+++ b/tests/gem_concurrent_all.c
@@ -57,7 +57,15 @@ int fd, devid, gen;
int all;
int pass;
+struct create {
+ const char *name;
+ void (*require)(const struct create *);
+ drm_intel_bo *(*create)(drm_intel_bufmgr *, uint64_t size);
+};
+
struct buffers {
+ const char *name;
+ const struct create *create;
const struct access_mode *mode;
drm_intel_bufmgr *bufmgr;
struct intel_batchbuffer *batch;
@@ -66,6 +74,7 @@ struct buffers {
uint32_t *tmp;
int width, height, size;
int count, num_buffers;
+ unsigned allow_mem;
};
#define MIN_BUFFERS 3
@@ -127,11 +136,11 @@ create_normal_bo(drm_intel_bufmgr *bufmgr, uint64_t size)
return bo;
}
-static bool can_create_normal(void)
+static void can_create_normal(const struct create *create)
{
- return true;
}
+#if HAVE_CREATE_PRIVATE
static drm_intel_bo *
create_private_bo(drm_intel_bufmgr *bufmgr, uint64_t size)
{
@@ -147,11 +156,13 @@ create_private_bo(drm_intel_bufmgr *bufmgr, uint64_t size)
return bo;
}
-static bool can_create_private(void)
+static void can_create_private(const struct create *create)
{
- return false;
+ igt_require(0);
}
+#endif
+#if HAVE_CREATE_STOLEN
static drm_intel_bo *
create_stolen_bo(drm_intel_bufmgr *bufmgr, uint64_t size)
{
@@ -167,53 +178,51 @@ create_stolen_bo(drm_intel_bufmgr *bufmgr, uint64_t size)
return bo;
}
-static bool can_create_stolen(void)
+static void can_create_stolen(const struct create *create)
{
/* XXX check num_buffers against available stolen */
- return false;
+ igt_require(0);
}
+#endif
-static drm_intel_bo *
-(*create_func)(drm_intel_bufmgr *bufmgr, uint64_t size);
-
-static bool create_cpu_require(void)
+static void create_cpu_require(const struct create *create)
{
- return create_func != create_stolen_bo;
+#if HAVE_CREATE_STOLEN
+ igt_require(create->create != create_stolen_bo);
+#endif
}
static drm_intel_bo *
-unmapped_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+unmapped_create_bo(const struct buffers *b)
{
- return create_func(bufmgr, (uint64_t)4*width*height);
+ return b->create->create(b->bufmgr, 4*b->size);
}
-static bool create_snoop_require(void)
+static void create_snoop_require(const struct create *create)
{
- if (!create_cpu_require())
- return false;
-
- return !gem_has_llc(fd);
+ create_cpu_require(create);
+ igt_require(!gem_has_llc(fd));
}
static drm_intel_bo *
-snoop_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+snoop_create_bo(const struct buffers *b)
{
drm_intel_bo *bo;
- bo = unmapped_create_bo(bufmgr, width, height);
+ bo = unmapped_create_bo(b);
gem_set_caching(fd, bo->handle, I915_CACHING_CACHED);
drm_intel_bo_disable_reuse(bo);
return bo;
}
-static bool create_userptr_require(void)
+static void create_userptr_require(const struct create *create)
{
- static int found = -1;
- if (found < 0) {
+ static int has_userptr = -1;
+ if (has_userptr < 0) {
struct drm_i915_gem_userptr arg;
- found = 0;
+ has_userptr = 0;
memset(&arg, 0, sizeof(arg));
arg.user_ptr = -4096ULL;
@@ -223,25 +232,25 @@ static bool create_userptr_require(void)
if (errno == EFAULT) {
igt_assert(posix_memalign((void **)&arg.user_ptr,
4096, arg.user_size) == 0);
- found = drmIoctl(fd,
+ has_userptr = drmIoctl(fd,
LOCAL_IOCTL_I915_GEM_USERPTR,
&arg) == 0;
free((void *)(uintptr_t)arg.user_ptr);
}
}
- return found;
+ igt_require(has_userptr);
}
static drm_intel_bo *
-userptr_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+userptr_create_bo(const struct buffers *b)
{
struct local_i915_gem_userptr userptr;
drm_intel_bo *bo;
void *ptr;
memset(&userptr, 0, sizeof(userptr));
- userptr.user_size = width * height * 4;
+ userptr.user_size = b->size * 4;
userptr.user_size = (userptr.user_size + 4095) & -4096;
ptr = mmap(NULL, userptr.user_size,
@@ -250,7 +259,7 @@ userptr_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
userptr.user_ptr = (uintptr_t)ptr;
do_or_die(drmIoctl(fd, LOCAL_IOCTL_I915_GEM_USERPTR, &userptr));
- bo = gem_handle_to_libdrm_bo(bufmgr, fd, "userptr", userptr.handle);
+ bo = gem_handle_to_libdrm_bo(b->bufmgr, fd, "userptr", userptr.handle);
bo->virtual = (void *)(uintptr_t)userptr.user_ptr;
gem_close(fd, userptr.handle);
@@ -292,10 +301,10 @@ userptr_release_bo(drm_intel_bo *bo)
drm_intel_bo_unreference(bo);
}
-static bool create_dmabuf_require(void)
+static void create_dmabuf_require(const struct create *create)
{
- static int found = -1;
- if (found < 0) {
+ static int has_dmabuf = -1;
+ if (has_dmabuf < 0) {
struct drm_prime_handle args;
void *ptr;
@@ -307,16 +316,16 @@ static bool create_dmabuf_require(void)
drmIoctl(fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &args);
gem_close(fd, args.handle);
- found = 0;
+ has_dmabuf = 0;
ptr = mmap(NULL, 4096, PROT_READ, MAP_SHARED, args.fd, 0);
if (ptr != MAP_FAILED) {
- found = 1;
+ has_dmabuf = 1;
munmap(ptr, 4096);
}
close(args.fd);
}
- return found;
+ igt_require(has_dmabuf);
}
struct dmabuf {
@@ -325,14 +334,14 @@ struct dmabuf {
};
static drm_intel_bo *
-dmabuf_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+dmabuf_create_bo(const struct buffers *b)
{
struct drm_prime_handle args;
drm_intel_bo *bo;
struct dmabuf *dmabuf;
int size;
- size = 4*width*height;
+ size = 4*b->size;
size = (size + 4095) & -4096;
memset(&args, 0, sizeof(args));
@@ -343,7 +352,7 @@ dmabuf_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
do_ioctl(fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &args);
gem_close(fd, args.handle);
- bo = drm_intel_bo_gem_create_from_prime(bufmgr, args.fd, size);
+ bo = drm_intel_bo_gem_create_from_prime(b->bufmgr, args.fd, size);
igt_assert(bo);
dmabuf = malloc(sizeof(*dmabuf));
@@ -445,25 +454,25 @@ tile_bo(drm_intel_bo *bo, int width)
}
static drm_intel_bo *
-gtt_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+gtt_create_bo(const struct buffers *b)
{
- return map_bo(unmapped_create_bo(bufmgr, width, height));
+ return map_bo(unmapped_create_bo(b));
}
static drm_intel_bo *
-gttX_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+gttX_create_bo(const struct buffers *b)
{
- return tile_bo(gtt_create_bo(bufmgr, width, height), width);
+ return tile_bo(gtt_create_bo(b), b->width);
}
static drm_intel_bo *
-wc_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+wc_create_bo(const struct buffers *b)
{
drm_intel_bo *bo;
gem_require_mmap_wc(fd);
- bo = unmapped_create_bo(bufmgr, width, height);
+ bo = unmapped_create_bo(b);
bo->virtual = __gem_mmap__wc(fd, bo->handle, 0, bo->size, PROT_READ | PROT_WRITE);
return bo;
}
@@ -480,15 +489,15 @@ wc_release_bo(drm_intel_bo *bo)
}
static drm_intel_bo *
-gpu_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+gpu_create_bo(const struct buffers *b)
{
- return unmapped_create_bo(bufmgr, width, height);
+ return unmapped_create_bo(b);
}
static drm_intel_bo *
-gpuX_create_bo(drm_intel_bufmgr *bufmgr, int width, int height)
+gpuX_create_bo(const struct buffers *b)
{
- return tile_bo(gpu_create_bo(bufmgr, width, height), width);
+ return tile_bo(gpu_create_bo(b), b->width);
}
static void
@@ -584,176 +593,189 @@ gpu_cmp_bo(struct buffers *b, drm_intel_bo *bo, uint32_t val)
const struct access_mode {
const char *name;
- bool (*require)(void);
+ void (*require)(const struct create *);
+ drm_intel_bo *(*create_bo)(const struct buffers *b);
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[] = {
{
.name = "prw",
+ .create_bo = unmapped_create_bo,
.set_bo = prw_set_bo,
.cmp_bo = prw_cmp_bo,
- .create_bo = unmapped_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "partial",
+ .create_bo = unmapped_create_bo,
.set_bo = partial_set_bo,
.cmp_bo = partial_cmp_bo,
- .create_bo = unmapped_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "cpu",
+ .create_bo = unmapped_create_bo,
.require = create_cpu_require,
.set_bo = cpu_set_bo,
.cmp_bo = cpu_cmp_bo,
- .create_bo = unmapped_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "snoop",
+ .create_bo = snoop_create_bo,
.require = create_snoop_require,
.set_bo = cpu_set_bo,
.cmp_bo = cpu_cmp_bo,
- .create_bo = snoop_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "userptr",
+ .create_bo = userptr_create_bo,
.require = create_userptr_require,
.set_bo = userptr_set_bo,
.cmp_bo = userptr_cmp_bo,
- .create_bo = userptr_create_bo,
.release_bo = userptr_release_bo,
},
{
.name = "dmabuf",
+ .create_bo = dmabuf_create_bo,
.require = create_dmabuf_require,
.set_bo = dmabuf_set_bo,
.cmp_bo = dmabuf_cmp_bo,
- .create_bo = dmabuf_create_bo,
.release_bo = dmabuf_release_bo,
},
{
.name = "gtt",
+ .create_bo = gtt_create_bo,
.set_bo = gtt_set_bo,
.cmp_bo = gtt_cmp_bo,
- .create_bo = gtt_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "gttX",
+ .create_bo = gttX_create_bo,
.set_bo = gtt_set_bo,
.cmp_bo = gtt_cmp_bo,
- .create_bo = gttX_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "wc",
+ .create_bo = wc_create_bo,
.set_bo = gtt_set_bo,
.cmp_bo = gtt_cmp_bo,
- .create_bo = wc_create_bo,
.release_bo = wc_release_bo,
},
{
.name = "gpu",
+ .create_bo = gpu_create_bo,
.set_bo = gpu_set_bo,
.cmp_bo = gpu_cmp_bo,
- .create_bo = gpu_create_bo,
.release_bo = nop_release_bo,
},
{
.name = "gpuX",
+ .create_bo = gpuX_create_bo,
.set_bo = gpu_set_bo,
.cmp_bo = gpu_cmp_bo,
- .create_bo = gpuX_create_bo,
.release_bo = nop_release_bo,
},
};
igt_render_copyfunc_t rendercopy;
-static void buffers_init(struct buffers *data,
+static void buffers_init(struct buffers *b,
+ const char *name,
+ const struct create *create,
const struct access_mode *mode,
int num_buffers,
int width, int height,
+ unsigned allow_mem,
int _fd, int enable_reuse)
{
- memset(data, 0, sizeof(*data));
- data->mode = mode;
- data->num_buffers = num_buffers;
- data->count = 0;
+ igt_debug("%s: using 2x%d buffers, each 1MiB\n", name, num_buffers);
+
+ memset(b, 0, sizeof(*b));
+ b->name = name;
+ b->create = create;
+ b->mode = mode;
+ b->num_buffers = num_buffers;
+ b->allow_mem = allow_mem;
+ b->count = 0;
- data->width = width;
- data->height = height;
- data->size = width * height;
- data->tmp = malloc(4*data->size);
- igt_assert(data->tmp);
+ b->width = width;
+ b->height = height;
+ b->size = width * height;
+ b->tmp = malloc(4*b->size);
+ igt_assert(b->tmp);
- data->bufmgr = drm_intel_bufmgr_gem_init(_fd, 4096);
- igt_assert(data->bufmgr);
+ b->bufmgr = drm_intel_bufmgr_gem_init(_fd, 4096);
+ igt_assert(b->bufmgr);
- data->src = malloc(2*sizeof(drm_intel_bo *)*num_buffers);
- igt_assert(data->src);
- data->dst = data->src + num_buffers;
+ b->src = malloc(2*sizeof(drm_intel_bo *)*num_buffers);
+ igt_assert(b->src);
+ b->dst = b->src + num_buffers;
if (enable_reuse)
- drm_intel_bufmgr_gem_enable_reuse(data->bufmgr);
- data->batch = intel_batchbuffer_alloc(data->bufmgr, devid);
- igt_assert(data->batch);
+ drm_intel_bufmgr_gem_enable_reuse(b->bufmgr);
+ b->batch = intel_batchbuffer_alloc(b->bufmgr, devid);
+ igt_assert(b->batch);
}
-static void buffers_destroy(struct buffers *data)
+static void buffers_destroy(struct buffers *b)
{
- int count = data->count;
+ int count = b->count;
if (count == 0)
return;
for (int i = 0; i < count; i++) {
- data->mode->release_bo(data->src[i]);
- data->mode->release_bo(data->dst[i]);
+ b->mode->release_bo(b->src[i]);
+ b->mode->release_bo(b->dst[i]);
}
- nop_release_bo(data->snoop);
- data->mode->release_bo(data->spare);
- data->count = 0;
+ nop_release_bo(b->snoop);
+ b->mode->release_bo(b->spare);
+ b->count = 0;
}
-static void buffers_create(struct buffers *data)
+static void buffers_create(struct buffers *b)
{
- int count = data->num_buffers;
- int width = data->width, height = data->height;
- igt_assert(data->bufmgr);
+ int count = b->num_buffers;
+ igt_assert(b->bufmgr);
+
+ if (b->create->require)
+ b->create->require(b->create);
+
+ if (b->mode->require)
+ b->mode->require(b->create);
+
+ intel_require_memory(2*count, 4*b->size, b->allow_mem);
- buffers_destroy(data);
- igt_assert(data->count == 0);
+ buffers_destroy(b);
+ igt_assert(b->count == 0);
for (int i = 0; i < count; i++) {
- data->src[i] =
- data->mode->create_bo(data->bufmgr, width, height);
- data->dst[i] =
- data->mode->create_bo(data->bufmgr, width, height);
+ b->src[i] = b->mode->create_bo(b);
+ b->dst[i] = b->mode->create_bo(b);
}
- data->spare = data->mode->create_bo(data->bufmgr, width, height);
- data->snoop = snoop_create_bo(data->bufmgr, width, height);
- data->count = count;
+ b->spare = b->mode->create_bo(b);
+ b->snoop = snoop_create_bo(b);
+ b->count = count;
}
-static void buffers_fini(struct buffers *data)
+static void buffers_fini(struct buffers *b)
{
- if (data->bufmgr == NULL)
+ if (b->bufmgr == NULL)
return;
- buffers_destroy(data);
+ buffers_destroy(b);
- free(data->tmp);
- free(data->src);
+ free(b->tmp);
+ free(b->src);
- intel_batchbuffer_free(data->batch);
- drm_intel_bufmgr_destroy(data->bufmgr);
+ intel_batchbuffer_free(b->batch);
+ drm_intel_bufmgr_destroy(b->bufmgr);
- memset(data, 0, sizeof(*data));
+ memset(b, 0, sizeof(*b));
}
typedef void (*do_copy)(struct buffers *b, drm_intel_bo *dst, drm_intel_bo *src);
@@ -1224,7 +1246,8 @@ static void run_interruptible(struct buffers *buffers,
do_copy do_copy_func,
do_hang do_hang_func)
{
- for (pass = 0; pass < 10; pass++)
+ struct timespec start = {};
+ while (igt_seconds_elapsed(&start) < 10)
do_test_func(buffers, do_copy_func, do_hang_func);
pass = 0;
igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
@@ -1261,8 +1284,11 @@ static void __run_forked(struct buffers *buffers,
igt_fork(child, num_children) {
/* recreate process local variables */
fd = drm_open_driver(DRIVER_INTEL);
- buffers_init(buffers, buffers->mode, _num_buffers,
+ buffers_init(buffers, buffers->name,
+ buffers->create, buffers->mode,
+ _num_buffers,
buffers->width, buffers->height,
+ buffers->allow_mem,
fd, true);
buffers_create(buffers);
@@ -1338,8 +1364,10 @@ static void rcs_require(void)
static void
run_basic_modes(const char *prefix,
+ const struct create *create,
const struct access_mode *mode,
const int num_buffers,
+ const unsigned allow_mem,
const char *suffix,
run_wrap run_wrap_func)
{
@@ -1373,8 +1401,9 @@ run_basic_modes(const char *prefix,
struct buffers buffers;
igt_fixture
- buffers_init(&buffers, mode, num_buffers,
- 512, 512, fd,
+ buffers_init(&buffers, prefix, create, mode,
+ num_buffers, 512, 512, allow_mem,
+ fd,
run_wrap_func != run_child);
igt_subtest_f("%s-%s-%s-sanitycheck0%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
@@ -1526,43 +1555,36 @@ run_basic_modes(const char *prefix,
static void
run_modes(const char *style,
+ const struct create *create,
const struct access_mode *mode,
const int num_buffers,
unsigned allow_mem)
{
- if (!igt_only_list_subtests()) {
- if (mode->require && !mode->require())
- return;
-
- igt_debug("%s: using 2x%d buffers, each 1MiB\n",
- style, num_buffers);
- if (!__intel_check_memory(2*num_buffers, 1024*1024, allow_mem,
- NULL, NULL))
- return;
- }
-
- run_basic_modes(style, mode, num_buffers, "", run_single);
- run_basic_modes(style, mode, num_buffers, "-child", run_child);
- run_basic_modes(style, mode, num_buffers, "-forked", run_forked);
+ run_basic_modes(style, create, mode, num_buffers, allow_mem,
+ "", run_single);
+ run_basic_modes(style, create, mode, num_buffers, allow_mem,
+ "-child", run_child);
+ run_basic_modes(style, create, mode, num_buffers, allow_mem,
+ "-forked", run_forked);
igt_fork_signal_helper();
- run_basic_modes(style, mode, num_buffers,
+ run_basic_modes(style, create, mode, num_buffers, allow_mem,
"-interruptible", run_interruptible);
- run_basic_modes(style, mode, num_buffers,
+ run_basic_modes(style, create, mode, num_buffers, allow_mem,
"-bomb", run_bomb);
igt_stop_signal_helper();
}
igt_main
{
- const struct {
- const char *name;
- drm_intel_bo *(*create)(drm_intel_bufmgr *, uint64_t size);
- bool (*require)(void);
- } create[] = {
- { "", create_normal_bo, can_create_normal},
- { "private-", create_private_bo, can_create_private },
- { "stolen-", create_stolen_bo, can_create_stolen },
+ const struct create create[] = {
+ { "", can_create_normal, create_normal_bo},
+#if HAVE_CREATE_PRIVATE
+ { "private-", can_create_private, create_private_bo},
+#endif
+#if HAVE_CREATE_STOLEN
+ { "stolen-", can_create_stolen, create_stolen_bo},
+#endif
{ NULL, NULL }
}, *c;
uint64_t pin_sz = 0;
@@ -1586,54 +1608,47 @@ igt_main
for (c = create; c->name; c++) {
char name[80];
- create_func = c->create;
-
num_buffers = MIN_BUFFERS;
- if (c->require()) {
- snprintf(name, sizeof(name), "%s%s", c->name, "tiny");
- for (i = 0; i < ARRAY_SIZE(access_modes); i++)
- run_modes(name, &access_modes[i], num_buffers, CHECK_RAM);
- }
+ snprintf(name, sizeof(name), "%s%s", c->name, "tiny");
+ for (i = 0; i < ARRAY_SIZE(access_modes); i++)
+ run_modes(name, c, &access_modes[i],
+ num_buffers, CHECK_RAM);
igt_fixture {
num_buffers = gem_mappable_aperture_size() / (1024 * 1024) / 4;
}
- if (c->require()) {
- snprintf(name, sizeof(name), "%s%s", c->name, "small");
- for (i = 0; i < ARRAY_SIZE(access_modes); i++)
- run_modes(name, &access_modes[i], num_buffers, CHECK_RAM);
- }
+ snprintf(name, sizeof(name), "%s%s", c->name, "small");
+ for (i = 0; i < ARRAY_SIZE(access_modes); i++)
+ run_modes(name, c, &access_modes[i],
+ num_buffers, CHECK_RAM);
igt_fixture {
num_buffers = gem_mappable_aperture_size() / (1024 * 1024);
}
- if (c->require()) {
- snprintf(name, sizeof(name), "%s%s", c->name, "thrash");
- for (i = 0; i < ARRAY_SIZE(access_modes); i++)
- run_modes(name, &access_modes[i], num_buffers, CHECK_RAM);
- }
+ snprintf(name, sizeof(name), "%s%s", c->name, "thrash");
+ for (i = 0; i < ARRAY_SIZE(access_modes); i++)
+ run_modes(name, c, &access_modes[i],
+ num_buffers, CHECK_RAM);
igt_fixture {
num_buffers = gem_global_aperture_size(fd) / (1024 * 1024);
}
- if (c->require()) {
- snprintf(name, sizeof(name), "%s%s", c->name, "global");
- for (i = 0; i < ARRAY_SIZE(access_modes); i++)
- run_modes(name, &access_modes[i], num_buffers, CHECK_RAM);
- }
+ snprintf(name, sizeof(name), "%s%s", c->name, "global");
+ for (i = 0; i < ARRAY_SIZE(access_modes); i++)
+ run_modes(name, c, &access_modes[i],
+ num_buffers, CHECK_RAM);
igt_fixture {
num_buffers = gem_aperture_size(fd) / (1024 * 1024);
}
- if (c->require()) {
- snprintf(name, sizeof(name), "%s%s", c->name, "full");
- for (i = 0; i < ARRAY_SIZE(access_modes); i++)
- run_modes(name, &access_modes[i], num_buffers, CHECK_RAM);
- }
+ snprintf(name, sizeof(name), "%s%s", c->name, "full");
+ for (i = 0; i < ARRAY_SIZE(access_modes); i++)
+ run_modes(name, c, &access_modes[i],
+ num_buffers, CHECK_RAM);
igt_fixture {
num_buffers = gem_mappable_aperture_size() / (1024 * 1024);
@@ -1651,11 +1666,10 @@ igt_main
igt_require(pinned);
}
- if (c->require()) {
- snprintf(name, sizeof(name), "%s%s", c->name, "swap");
- for (i = 0; i < ARRAY_SIZE(access_modes); i++)
- run_modes(name, &access_modes[i], num_buffers, CHECK_RAM | CHECK_SWAP);
- }
+ snprintf(name, sizeof(name), "%s%s", c->name, "swap");
+ for (i = 0; i < ARRAY_SIZE(access_modes); i++)
+ run_modes(name, c, &access_modes[i],
+ num_buffers, CHECK_RAM | CHECK_SWAP);
igt_fixture {
if (pinned) {