The gem_bad_address test started to fail on Gen7 with enabled command parser.
Error message is printed because MI_GLOBAL_GTT equals to MI_MEM_VIRTUAL:
    "CMD: Rejected command 0x10600002 for bitmask 0x00400000...".
MI_MEM_VIRTUAL means global gtt. This bit shouldn't be set for ppgtt.

Changed test like it was done previously for storedw tests in the commit:
    afbdc7af8d9324ae065c47d6122bb020c579fd0a.

Signed-off-by: Pavel Popov <pavel.e.po...@intel.com>
---
 tests/gem_bad_address.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/gem_bad_address.c b/tests/gem_bad_address.c
index 4a4a570..ccc55f1 100644
--- a/tests/gem_bad_address.c
+++ b/tests/gem_bad_address.c
@@ -44,14 +44,19 @@
 
 static drm_intel_bufmgr *bufmgr;
 struct intel_batchbuffer *batch;
+static int has_ppgtt = 0;
 
 #define BAD_GTT_DEST ((512*1024*1024)) /* past end of aperture */
 
 static void
 bad_store(void)
 {
+       int cmd = MI_STORE_DWORD_IMM | 1 << 21;
+       if (!has_ppgtt)
+               cmd |= MI_MEM_VIRTUAL;
+
        BEGIN_BATCH(4, 0);
-       OUT_BATCH(MI_STORE_DWORD_IMM | MI_MEM_VIRTUAL | 1 << 21);
+       OUT_BATCH(cmd);
        OUT_BATCH(0);
        OUT_BATCH(BAD_GTT_DEST);
        OUT_BATCH(0xdeadbeef);
@@ -66,6 +71,8 @@ igt_simple_main
 
        fd = drm_open_any();
 
+       has_ppgtt = gem_uses_aliasing_ppgtt(fd);
+
        bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
        drm_intel_bufmgr_gem_enable_reuse(bufmgr);
        batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to