summaryrefslogtreecommitdiff
path: root/tests/gem_exec_gttfill.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-05-21 20:58:58 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-05-21 21:00:06 +0100
commita56cacc924109447b166f495122fd005b3b44b24 (patch)
treee5da22d9d298fe6f17515488946dad79c8510880 /tests/gem_exec_gttfill.c
parent415398a778e60354492d2adad2c3952133f8c6da (diff)
igt/gem_exec_gttfill: qword writes require an extra bit on bdw+
Set bit 21 to enable qword writes for Broadwell. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/gem_exec_gttfill.c')
-rw-r--r--tests/gem_exec_gttfill.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/gem_exec_gttfill.c b/tests/gem_exec_gttfill.c
index 19c0de6c..5966125c 100644
--- a/tests/gem_exec_gttfill.c
+++ b/tests/gem_exec_gttfill.c
@@ -75,7 +75,7 @@ static void submit(int fd, int gen,
reloc[0].target_handle = obj.handle;
reloc[0].offset = eb->batch_start_offset;
reloc[0].offset += sizeof(uint32_t);
- reloc[0].delta = BATCH_SIZE- eb->batch_start_offset - 8;
+ reloc[0].delta = BATCH_SIZE - eb->batch_start_offset - 8;
reloc[0].read_domains = I915_GEM_DOMAIN_INSTRUCTION;
reloc[1].target_handle = obj.handle;
reloc[1].offset = eb->batch_start_offset;
@@ -85,10 +85,10 @@ static void submit(int fd, int gen,
n = 0;
batch[n] = MI_STORE_DWORD_IMM | (gen < 6 ? 1 << 22 : 0);
if (gen >= 8) {
+ batch[n] |= 1 << 21;
batch[n]++;
batch[++n] = reloc[0].delta;/* lower_32_bits(address) */
batch[++n] = 0; /* upper_32_bits(address) */
- reloc[1].offset += sizeof(uint32_t);
} else if (gen >= 4) {
batch[++n] = 0;
batch[++n] = reloc[0].delta;/* lower_32_bits(address) */
@@ -96,6 +96,7 @@ static void submit(int fd, int gen,
} else {
batch[n]--;
batch[++n] = reloc[0].delta;/* lower_32_bits(address) */
+ reloc[1].offset -= sizeof(uint32_t);
}
batch[++n] = 0; /* lower_32_bits(value) */
batch[++n] = 0; /* upper_32_bits(value) / nop */
@@ -147,6 +148,7 @@ static void fillgtt(int fd, unsigned ring, int timeout)
igt_debug("Using %'d batches to fill %'llu aperture on %d engines\n",
count, (long long)size, nengine);
intel_require_memory(count, BATCH_SIZE, CHECK_RAM);
+ intel_detect_and_clear_missed_interrupts(fd);
memset(&execbuf, 0, sizeof(execbuf));
execbuf.buffer_count = 1;
@@ -181,6 +183,8 @@ static void fillgtt(int fd, unsigned ring, int timeout)
for (unsigned i = 0; i < count; i++)
gem_close(fd, handles[i]);
+
+ igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
}
igt_main