diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2017-06-09 15:15:45 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2017-06-09 15:16:18 +0100 |
commit | d0e1eb9ab4c7798c2a9e2716914805162c79f36b (patch) | |
tree | 99529046c246626b7b66e030be26772a7ead4774 | |
parent | 22e162f1e6e31afe765b25fa94931a002e055273 (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.c | 17 |
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); |