diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-03-22 13:47:57 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-03-22 14:00:22 +0100 |
commit | afbdc7af8d9324ae065c47d6122bb020c579fd0a (patch) | |
tree | 08209f3538da667dc8c504b4c6eb8ccfa909f243 /tests/gem_storedw_batches_loop.c | |
parent | 9e531888ed0c3e34303a67e324ea4ab29057c62b (diff) |
tests: adapt storedw tests to ppgtt
MI_MEM_VIRTUAL actually means use global gtt now, not setting the bit
means use ppgtt. On previous gens, not setting the bits ment 'use
physical memory'. So what, the usual confusion.
Note that for some odd reasong this is broken on gen6, but only on the
bsd ring. Unexpected.
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/gem_storedw_batches_loop.c')
-rw-r--r-- | tests/gem_storedw_batches_loop.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tests/gem_storedw_batches_loop.c b/tests/gem_storedw_batches_loop.c index 23c61790..8cf5f719 100644 --- a/tests/gem_storedw_batches_loop.c +++ b/tests/gem_storedw_batches_loop.c @@ -44,6 +44,7 @@ static drm_intel_bufmgr *bufmgr; static drm_intel_bo *target_bo; +static int has_ppgtt = 0; /* Like the store dword test, but we create new command buffers each time */ static void @@ -53,7 +54,9 @@ store_dword_loop(void) uint32_t *buf; drm_intel_bo *cmd_bo; - cmd = MI_STORE_DWORD_IMM | MI_MEM_VIRTUAL; + cmd = MI_STORE_DWORD_IMM; + if (!has_ppgtt) + cmd |= MI_MEM_VIRTUAL; for (i = 0; i < 0x80000; i++) { cmd_bo = drm_intel_bo_alloc(bufmgr, "cmd bo", 4096, 4096); @@ -136,6 +139,8 @@ int main(int argc, char **argv) fd = drm_open_any(); devid = intel_get_drm_devid(fd); + has_ppgtt = gem_uses_aliasing_ppgtt(fd); + if (IS_GEN2(devid) || IS_GEN3(devid) || IS_GEN4(devid) || IS_GEN5(devid)) { fprintf(stderr, "MI_STORE_DATA can only use GTT address on gen4+/g33 and" |