From 97e48cd619c4b201613ade0110f4db840a02007d Mon Sep 17 00:00:00 2001 From: Ben Widawsky Date: Mon, 11 Nov 2013 13:21:58 -0800 Subject: [PATCH] gem_storedw_batches_loop: Fix for real this time Last patch to fix the breakage when adding gen8 had bugs in the reloc offset, and size field. Signed-off-by: Ben Widawsky --- tests/gem_storedw_batches_loop.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/gem_storedw_batches_loop.c b/tests/gem_storedw_batches_loop.c index 9074f88..45733b2 100644 --- a/tests/gem_storedw_batches_loop.c +++ b/tests/gem_storedw_batches_loop.c @@ -60,12 +60,12 @@ store_dword_loop(int divider, unsigned flags) cmd = MI_STORE_DWORD_IMM; if (!has_ppgtt) cmd |= MI_MEM_VIRTUAL; - if (intel_gen(drm_intel_bufmgr_gem_get_devid(bufmgr) >= 8)) - cmd |= 1; + if (intel_gen(drm_intel_bufmgr_gem_get_devid(bufmgr)) >= 8) + ((uint8_t *)&cmd)[0] = 1; for (i = 0; i < SLOW_QUICK(0x80000, 4); i++) { int j = 0; - int cmd_address_offset = 8; + int cmd_address_offset; cmd_bo = drm_intel_bo_alloc(bufmgr, "cmd bo", 4096, 4096); igt_assert(cmd_bo); @@ -76,11 +76,14 @@ store_dword_loop(int divider, unsigned flags) buf = cmd_bo->virtual; buf[j++] = cmd; - if (intel_gen(drm_intel_bufmgr_gem_get_devid(bufmgr) >= 8)) { + if (intel_gen(drm_intel_bufmgr_gem_get_devid(bufmgr)) >= 8) { + buf[j++] = target_bo->offset; + } else { + buf[j++] = 0; buf[j++] = target_bo->offset; - cmd_address_offset = 4; } - buf[j++] = 0; + cmd_address_offset = (j -1) * 4; + assert(j > 0); buf[j++] = 0x42000000 + val; igt_assert(drm_intel_bo_references(cmd_bo, target_bo) == 0); -- 2.7.4