summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-06-09 15:15:45 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-06-09 15:16:18 +0100
commitd0e1eb9ab4c7798c2a9e2716914805162c79f36b (patch)
tree99529046c246626b7b66e030be26772a7ead4774
parent22e162f1e6e31afe765b25fa94931a002e055273 (diff)
igt/gem_exec_await: Reduce ring-size estimate for shared ringbuffer submission
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--tests/gem_exec_await.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/tests/gem_exec_await.c b/tests/gem_exec_await.c
index f8364b0f..fb5c0f30 100644
--- a/tests/gem_exec_await.c
+++ b/tests/gem_exec_await.c
@@ -164,7 +164,7 @@ static void wide(int fd, int ring_size, int timeout, unsigned int flags)
intel_detect_and_clear_missed_interrupts(fd);
- time = 9;
+ time = 0;
count = 0;
igt_until_timeout(timeout) {
struct timespec start, now;
@@ -246,24 +246,28 @@ static void wide(int fd, int ring_size, int timeout, unsigned int flags)
free(exec);
}
-static void print_welcome(int fd)
+#define HAVE_EXECLISTS 0x1
+static unsigned int print_welcome(int fd)
{
+ unsigned int result = 0;
bool active;
int dir;
dir = igt_sysfs_open_parameters(fd);
if (dir < 0)
- return;
+ return 0;
active = igt_sysfs_get_boolean(dir, "enable_guc_submission");
if (active) {
igt_info("Using GuC submission\n");
+ result |= HAVE_EXECLISTS;
goto out;
}
active = igt_sysfs_get_boolean(dir, "enable_execlists");
if (active) {
igt_info("Using Execlists submission\n");
+ result |= HAVE_EXECLISTS;
goto out;
}
@@ -273,6 +277,7 @@ static void print_welcome(int fd)
out:
close(dir);
+ return result;
}
struct cork {
@@ -369,11 +374,15 @@ igt_main
int device = -1;
igt_fixture {
+ unsigned int caps;
+
device = drm_open_driver(DRIVER_INTEL);
igt_require_gem(device);
- print_welcome(device);
+ caps = print_welcome(device);
ring_size = measure_ring_size(device) - 10;
+ if (!(caps & HAVE_EXECLISTS))
+ ring_size /= 2;
igt_info("Ring size: %d batches\n", ring_size);
igt_require(ring_size > 0);