Yeah looks good, thanks. I thought it should be a separate patch, bur never got 
around to doing it. 

Thanks, 
Jesse

---- Daniel Vetter wrote ----

>On Mon, Sep 07, 2015 at 03:01:39PM +0100, Thomas Wood wrote:
>> These have been replaced by subtests in gem_storedw_loop.
>> 
>> Signed-off-by: Thomas Wood <[email protected]>
>
>Reviewed-by: Daniel Vetter <[email protected]>
>
>... especially since I asked for this when reviewing Jesse BAT series and
>he didn't do it and still put my r-b onto his patch!
>
>commit 0679702150157706a6def66b893b29c16345f4db
>Author: Jesse Barnes <[email protected]>
>Date:   Wed Aug 5 16:06:31 2015 -0700
>
>    tests/gem_storedw_loop: add new store_dword test to unify per-ring ones v2
>
>
>Tsk ;-)
>-Daniel
>
>> ---
>>  tests/.gitignore                |   4 --
>>  tests/Makefile.sources          |   4 --
>>  tests/gem_storedw_loop_blt.c    | 150 
>> ---------------------------------------
>>  tests/gem_storedw_loop_bsd.c    | 153 
>> ----------------------------------------
>>  tests/gem_storedw_loop_render.c | 147 --------------------------------------
>>  tests/gem_storedw_loop_vebox.c  | 127 ---------------------------------
>>  6 files changed, 585 deletions(-)
>>  delete mode 100644 tests/gem_storedw_loop_blt.c
>>  delete mode 100644 tests/gem_storedw_loop_bsd.c
>>  delete mode 100644 tests/gem_storedw_loop_render.c
>>  delete mode 100644 tests/gem_storedw_loop_vebox.c
>> 
>> diff --git a/tests/.gitignore b/tests/.gitignore
>> index d6d05ff..dc8bb53 100644
>> --- a/tests/.gitignore
>> +++ b/tests/.gitignore
>> @@ -99,10 +99,6 @@ gem_set_tiling_vs_blt
>>  gem_set_tiling_vs_gtt
>>  gem_set_tiling_vs_pwrite
>>  gem_storedw_batches_loop
>> -gem_storedw_loop_blt
>> -gem_storedw_loop_bsd
>> -gem_storedw_loop_render
>> -gem_storedw_loop_vebox
>>  gem_streaming_writes
>>  gem_stress
>>  gem_threaded_access_tiled
>> diff --git a/tests/Makefile.sources b/tests/Makefile.sources
>> index ef69299..2e2e088 100644
>> --- a/tests/Makefile.sources
>> +++ b/tests/Makefile.sources
>> @@ -139,10 +139,6 @@ TESTS_progs = \
>>      gem_set_tiling_vs_gtt \
>>      gem_set_tiling_vs_pwrite \
>>      gem_storedw_loop \
>> -    gem_storedw_loop_blt \
>> -    gem_storedw_loop_bsd \
>> -    gem_storedw_loop_render \
>> -    gem_storedw_loop_vebox \
>>      gem_threaded_access_tiled \
>>      gem_tiled_fence_blits \
>>      gem_tiled_pread_basic \
>> diff --git a/tests/gem_storedw_loop_blt.c b/tests/gem_storedw_loop_blt.c
>> deleted file mode 100644
>> index e463a27..0000000
>> --- a/tests/gem_storedw_loop_blt.c
>> +++ /dev/null
>> @@ -1,150 +0,0 @@
>> -/*
>> - * Copyright © 2009 Intel Corporation
>> - *
>> - * Permission is hereby granted, free of charge, to any person obtaining a
>> - * copy of this software and associated documentation files (the 
>> "Software"),
>> - * to deal in the Software without restriction, including without limitation
>> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
>> - * and/or sell copies of the Software, and to permit persons to whom the
>> - * Software is furnished to do so, subject to the following conditions:
>> - *
>> - * The above copyright notice and this permission notice (including the next
>> - * paragraph) shall be included in all copies or substantial portions of the
>> - * Software.
>> - *
>> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
>> OR
>> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
>> - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
>> OTHER
>> - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
>> DEALINGS
>> - * IN THE SOFTWARE.
>> - *
>> - * Authors:
>> - *    Eric Anholt <[email protected]>
>> - *    Jesse Barnes <[email protected]> (based on gem_bad_blit.c)
>> - *
>> - */
>> -
>> -#include "igt.h"
>> -#include <stdlib.h>
>> -#include <stdio.h>
>> -#include <string.h>
>> -#include <fcntl.h>
>> -#include <inttypes.h>
>> -#include <errno.h>
>> -#include <sys/stat.h>
>> -#include <sys/time.h>
>> -#include "drm.h"
>> -#include "intel_bufmgr.h"
>> -
>> -IGT_TEST_DESCRIPTION("Basic blitter MI check using MI_STORE_DATA_IMM.");
>> -
>> -static drm_intel_bufmgr *bufmgr;
>> -struct intel_batchbuffer *batch;
>> -static drm_intel_bo *target_buffer;
>> -static int has_ppgtt = 0;
>> -
>> -/*
>> - * Testcase: Basic blitter MI check using MI_STORE_DATA_IMM
>> - */
>> -
>> -static void
>> -emit_store_dword_imm(int devid, drm_intel_bo *dest, uint32_t val)
>> -{
>> -    int cmd;
>> -    cmd = MI_STORE_DWORD_IMM;
>> -    if (!has_ppgtt)
>> -            cmd |= MI_MEM_VIRTUAL;
>> -
>> -    BEGIN_BATCH(4, 0);
>> -    OUT_BATCH(cmd);
>> -    if (batch->gen >= 8) {
>> -            OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -    } else {
>> -            OUT_BATCH(0); /* reserved */
>> -            OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -    }
>> -    ADVANCE_BATCH();
>> -}
>> -
>> -static void
>> -store_dword_loop(int devid, int divider)
>> -{
>> -    int i, val = 0;
>> -    uint32_t *buf;
>> -
>> -    igt_info("running storedw loop on render with stall every %i batch\n", 
>> divider);
>> -
>> -    for (i = 0; i < SLOW_QUICK(0x2000, 0x10); i++) {
>> -            emit_store_dword_imm(devid, target_buffer, val);
>> -            intel_batchbuffer_flush_on_ring(batch, I915_EXEC_BLT);
>> -
>> -            if (i % divider != 0)
>> -                    goto cont;
>> -
>> -            drm_intel_bo_map(target_buffer, 0);
>> -
>> -            buf = target_buffer->virtual;
>> -            igt_assert_f(buf[0] == val,
>> -                         "value mismatch: cur 0x%08x, stored 0x%08x\n",
>> -                         buf[0], val);
>> -
>> -            drm_intel_bo_unmap(target_buffer);
>> -
>> -cont:
>> -            val++;
>> -    }
>> -
>> -    drm_intel_bo_map(target_buffer, 0);
>> -    buf = target_buffer->virtual;
>> -
>> -    igt_info("completed %d writes successfully, current value: 0x%08x\n", i,
>> -                    buf[0]);
>> -    drm_intel_bo_unmap(target_buffer);
>> -}
>> -
>> -igt_simple_main
>> -{
>> -    int fd;
>> -    int devid;
>> -
>> -    fd = drm_open_any();
>> -    devid = intel_get_drm_devid(fd);
>> -
>> -    has_ppgtt = gem_uses_aliasing_ppgtt(fd);
>> -
>> -    igt_skip_on_f(intel_gen(devid) < 6,
>> -                  "MI_STORE_DATA can only use GTT address on gen4+/g33 and "
>> -                  "needs snoopable mem on pre-gen6\n");
>> -
>> -    /* This only works with ppgtt */
>> -    igt_require(has_ppgtt);
>> -
>> -    bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
>> -    igt_assert(bufmgr);
>> -    drm_intel_bufmgr_gem_enable_reuse(bufmgr);
>> -
>> -    batch = intel_batchbuffer_alloc(bufmgr, devid);
>> -    igt_assert(batch);
>> -
>> -    target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
>> -    igt_assert(target_buffer);
>> -
>> -    store_dword_loop(devid, 1);
>> -    store_dword_loop(devid, 2);
>> -    if (!igt_run_in_simulation()) {
>> -            store_dword_loop(devid, 3);
>> -            store_dword_loop(devid, 5);
>> -    }
>> -
>> -    drm_intel_bo_unreference(target_buffer);
>> -    intel_batchbuffer_free(batch);
>> -    drm_intel_bufmgr_destroy(bufmgr);
>> -
>> -    close(fd);
>> -}
>> diff --git a/tests/gem_storedw_loop_bsd.c b/tests/gem_storedw_loop_bsd.c
>> deleted file mode 100644
>> index c9deb81..0000000
>> --- a/tests/gem_storedw_loop_bsd.c
>> +++ /dev/null
>> @@ -1,153 +0,0 @@
>> -/*
>> - * Copyright © 2009 Intel Corporation
>> - *
>> - * Permission is hereby granted, free of charge, to any person obtaining a
>> - * copy of this software and associated documentation files (the 
>> "Software"),
>> - * to deal in the Software without restriction, including without limitation
>> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
>> - * and/or sell copies of the Software, and to permit persons to whom the
>> - * Software is furnished to do so, subject to the following conditions:
>> - *
>> - * The above copyright notice and this permission notice (including the next
>> - * paragraph) shall be included in all copies or substantial portions of the
>> - * Software.
>> - *
>> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
>> OR
>> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
>> - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
>> OTHER
>> - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
>> DEALINGS
>> - * IN THE SOFTWARE.
>> - *
>> - * Authors:
>> - *    Eric Anholt <[email protected]>
>> - *    Jesse Barnes <[email protected]> (based on gem_bad_blit.c)
>> - *
>> - */
>> -
>> -#include "igt.h"
>> -#include <stdlib.h>
>> -#include <stdio.h>
>> -#include <string.h>
>> -#include <fcntl.h>
>> -#include <inttypes.h>
>> -#include <errno.h>
>> -#include <sys/stat.h>
>> -#include <sys/time.h>
>> -#include "drm.h"
>> -#include "intel_bufmgr.h"
>> -
>> -IGT_TEST_DESCRIPTION("Basic bsd MI check using MI_STORE_DATA_IMM.");
>> -
>> -static drm_intel_bufmgr *bufmgr;
>> -struct intel_batchbuffer *batch;
>> -static drm_intel_bo *target_buffer;
>> -static int has_ppgtt = 0;
>> -
>> -/*
>> - * Testcase: Basic bsd MI check using MI_STORE_DATA_IMM
>> - */
>> -
>> -static void
>> -emit_store_dword_imm(int devid, drm_intel_bo *dest, uint32_t val)
>> -{
>> -    int cmd;
>> -    cmd = MI_STORE_DWORD_IMM;
>> -    if (!has_ppgtt)
>> -            cmd |= MI_MEM_VIRTUAL;
>> -
>> -    BEGIN_BATCH(4, 0);
>> -    OUT_BATCH(cmd);
>> -    if (batch->gen >= 8) {
>> -            OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -    } else {
>> -            OUT_BATCH(0); /* reserved */
>> -            OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -    }
>> -    ADVANCE_BATCH();
>> -}
>> -
>> -static void
>> -store_dword_loop(int devid, int divider)
>> -{
>> -    int i, val = 0;
>> -    uint32_t *buf;
>> -
>> -    igt_info("running storedw loop on render with stall every %i batch\n", 
>> divider);
>> -
>> -    for (i = 0; i < SLOW_QUICK(0x2000, 0x10); i++) {
>> -            emit_store_dword_imm(devid, target_buffer, val);
>> -            intel_batchbuffer_flush_on_ring(batch, I915_EXEC_BSD);
>> -
>> -            if (i % divider != 0)
>> -                    goto cont;
>> -
>> -            drm_intel_bo_map(target_buffer, 0);
>> -
>> -            buf = target_buffer->virtual;
>> -            igt_assert_f(buf[0] == val,
>> -                         "value mismatch: cur 0x%08x, stored 0x%08x\n",
>> -                         buf[0], val);
>> -
>> -            drm_intel_bo_unmap(target_buffer);
>> -
>> -cont:
>> -            val++;
>> -    }
>> -
>> -    drm_intel_bo_map(target_buffer, 0);
>> -    buf = target_buffer->virtual;
>> -
>> -    igt_info("completed %d writes successfully, current value: 0x%08x\n", i,
>> -                    buf[0]);
>> -    drm_intel_bo_unmap(target_buffer);
>> -}
>> -
>> -igt_simple_main
>> -{
>> -    int fd;
>> -    int devid;
>> -
>> -    fd = drm_open_any();
>> -    devid = intel_get_drm_devid(fd);
>> -
>> -    has_ppgtt = gem_uses_aliasing_ppgtt(fd);
>> -
>> -    igt_skip_on_f(intel_gen(devid) < 6,
>> -                  "MI_STORE_DATA can only use GTT address on gen4+/g33 and "
>> -                  "needs snoopable mem on pre-gen6\n");
>> -
>> -    igt_skip_on_f(intel_gen(devid) == 6,
>> -                  "MI_STORE_DATA broken on gen6 bsd\n");
>> -
>> -    /* This only works with ppgtt */
>> -    igt_require(has_ppgtt);
>> -
>> -    bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
>> -    igt_assert(bufmgr);
>> -    drm_intel_bufmgr_gem_enable_reuse(bufmgr);
>> -
>> -    batch = intel_batchbuffer_alloc(bufmgr, devid);
>> -    igt_assert(batch);
>> -
>> -    target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
>> -    igt_assert(target_buffer);
>> -
>> -    store_dword_loop(devid, 1);
>> -    store_dword_loop(devid, 2);
>> -    if (!igt_run_in_simulation()) {
>> -            store_dword_loop(devid, 3);
>> -            store_dword_loop(devid, 5);
>> -    }
>> -
>> -    drm_intel_bo_unreference(target_buffer);
>> -    intel_batchbuffer_free(batch);
>> -    drm_intel_bufmgr_destroy(bufmgr);
>> -
>> -    close(fd);
>> -}
>> diff --git a/tests/gem_storedw_loop_render.c 
>> b/tests/gem_storedw_loop_render.c
>> deleted file mode 100644
>> index 6d7a1fb..0000000
>> --- a/tests/gem_storedw_loop_render.c
>> +++ /dev/null
>> @@ -1,147 +0,0 @@
>> -/*
>> - * Copyright © 2009 Intel Corporation
>> - *
>> - * Permission is hereby granted, free of charge, to any person obtaining a
>> - * copy of this software and associated documentation files (the 
>> "Software"),
>> - * to deal in the Software without restriction, including without limitation
>> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
>> - * and/or sell copies of the Software, and to permit persons to whom the
>> - * Software is furnished to do so, subject to the following conditions:
>> - *
>> - * The above copyright notice and this permission notice (including the next
>> - * paragraph) shall be included in all copies or substantial portions of the
>> - * Software.
>> - *
>> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
>> OR
>> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
>> - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
>> OTHER
>> - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
>> DEALINGS
>> - * IN THE SOFTWARE.
>> - *
>> - * Authors:
>> - *    Eric Anholt <[email protected]>
>> - *    Jesse Barnes <[email protected]> (based on gem_bad_blit.c)
>> - *
>> - */
>> -
>> -#include "igt.h"
>> -#include <stdlib.h>
>> -#include <stdio.h>
>> -#include <string.h>
>> -#include <fcntl.h>
>> -#include <inttypes.h>
>> -#include <errno.h>
>> -#include <sys/stat.h>
>> -#include <sys/time.h>
>> -#include "drm.h"
>> -#include "intel_bufmgr.h"
>> -
>> -IGT_TEST_DESCRIPTION("Basic render MI check using MI_STORE_DATA_IMM.");
>> -
>> -static drm_intel_bufmgr *bufmgr;
>> -struct intel_batchbuffer *batch;
>> -static drm_intel_bo *target_buffer;
>> -static int has_ppgtt = 0;
>> -
>> -/*
>> - * Testcase: Basic render MI check using MI_STORE_DATA_IMM
>> - */
>> -
>> -static void
>> -emit_store_dword_imm(int devid, drm_intel_bo *dest, uint32_t val)
>> -{
>> -    int cmd;
>> -    cmd = MI_STORE_DWORD_IMM;
>> -    if (!has_ppgtt)
>> -            cmd |= MI_MEM_VIRTUAL;
>> -
>> -    BEGIN_BATCH(4, 0);
>> -    OUT_BATCH(cmd);
>> -    if (batch->gen >= 8) {
>> -            OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -    } else {
>> -            OUT_BATCH(0); /* reserved */
>> -            OUT_RELOC(dest, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -    }
>> -    ADVANCE_BATCH();
>> -}
>> -
>> -static void
>> -store_dword_loop(int devid, int divider)
>> -{
>> -    int i, val = 0;
>> -    uint32_t *buf;
>> -
>> -    igt_info("running storedw loop on render with stall every %i batch\n", 
>> divider);
>> -
>> -    for (i = 0; i < SLOW_QUICK(0x2000, 0x10); i++) {
>> -            emit_store_dword_imm(devid, target_buffer, val);
>> -            intel_batchbuffer_flush_on_ring(batch, 0);
>> -
>> -            if (i % divider != 0)
>> -                    goto cont;
>> -
>> -            drm_intel_bo_map(target_buffer, 0);
>> -
>> -            buf = target_buffer->virtual;
>> -            igt_assert_f(buf[0] == val,
>> -                         "value mismatch: cur 0x%08x, stored 0x%08x\n",
>> -                         buf[0], val);
>> -
>> -            drm_intel_bo_unmap(target_buffer);
>> -
>> -cont:
>> -            val++;
>> -    }
>> -
>> -    drm_intel_bo_map(target_buffer, 0);
>> -    buf = target_buffer->virtual;
>> -
>> -    igt_info("completed %d writes successfully, current value: 0x%08x\n", i,
>> -                    buf[0]);
>> -    drm_intel_bo_unmap(target_buffer);
>> -}
>> -
>> -igt_simple_main
>> -{
>> -    int fd;
>> -    int devid;
>> -
>> -    fd = drm_open_any();
>> -    devid = intel_get_drm_devid(fd);
>> -
>> -    has_ppgtt = gem_uses_aliasing_ppgtt(fd);
>> -
>> -    igt_skip_on_f(intel_gen(devid) < 6,
>> -                  "MI_STORE_DATA can only use GTT address on gen4+/g33 and "
>> -                  "needs snoopable mem on pre-gen6\n");
>> -
>> -    bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
>> -    igt_assert(bufmgr);
>> -    drm_intel_bufmgr_gem_enable_reuse(bufmgr);
>> -
>> -    batch = intel_batchbuffer_alloc(bufmgr, devid);
>> -    igt_assert(batch);
>> -
>> -    target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
>> -    igt_assert(target_buffer);
>> -
>> -    store_dword_loop(devid, 1);
>> -    store_dword_loop(devid, 2);
>> -    if (!igt_run_in_simulation()) {
>> -            store_dword_loop(devid, 3);
>> -            store_dword_loop(devid, 5);
>> -    }
>> -
>> -    drm_intel_bo_unreference(target_buffer);
>> -    intel_batchbuffer_free(batch);
>> -    drm_intel_bufmgr_destroy(bufmgr);
>> -
>> -    close(fd);
>> -}
>> diff --git a/tests/gem_storedw_loop_vebox.c b/tests/gem_storedw_loop_vebox.c
>> deleted file mode 100644
>> index 3fec02c..0000000
>> --- a/tests/gem_storedw_loop_vebox.c
>> +++ /dev/null
>> @@ -1,127 +0,0 @@
>> -/*
>> - * Copyright © 2012 Intel Corporation
>> - *
>> - * Permission is hereby granted, free of charge, to any person obtaining a
>> - * copy of this software and associated documentation files (the 
>> "Software"),
>> - * to deal in the Software without restriction, including without limitation
>> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
>> - * and/or sell copies of the Software, and to permit persons to whom the
>> - * Software is furnished to do so, subject to the following conditions:
>> - *
>> - * The above copyright notice and this permission notice (including the next
>> - * paragraph) shall be included in all copies or substantial portions of the
>> - * Software.
>> - *
>> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
>> OR
>> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
>> - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
>> OTHER
>> - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
>> DEALINGS
>> - * IN THE SOFTWARE.
>> - *
>> - * Authors:
>> - *    Xiang, Haihao <[email protected]> (based on gem_store_dw_loop_*)
>> - *
>> - */
>> -
>> -#include "igt.h"
>> -#include <stdlib.h>
>> -#include <stdio.h>
>> -#include <string.h>
>> -#include <fcntl.h>
>> -#include <inttypes.h>
>> -#include <errno.h>
>> -#include <sys/stat.h>
>> -#include <sys/time.h>
>> -#include "drm.h"
>> -#include "intel_bufmgr.h"
>> -
>> -IGT_TEST_DESCRIPTION("Basic vebox MI check using MI_STORE_DATA_IMM.");
>> -
>> -#define LOCAL_I915_EXEC_VEBOX (4<<0)
>> -
>> -static drm_intel_bufmgr *bufmgr;
>> -struct intel_batchbuffer *batch;
>> -static drm_intel_bo *target_buffer;
>> -
>> -/*
>> - * Testcase: Basic vebox MI check using MI_STORE_DATA_IMM
>> - */
>> -
>> -static void
>> -store_dword_loop(int divider)
>> -{
>> -    int cmd, i, val = 0;
>> -    uint32_t *buf;
>> -
>> -    igt_info("running storedw loop on blt with stall every %i batch\n", 
>> divider);
>> -
>> -    cmd = MI_STORE_DWORD_IMM;
>> -
>> -    for (i = 0; i < SLOW_QUICK(0x2000, 0x10); i++) {
>> -            BEGIN_BATCH(4, 0);
>> -            OUT_BATCH(cmd);
>> -            if (batch->gen < 8)
>> -                    OUT_BATCH(0); /* reserved */
>> -            OUT_RELOC(target_buffer, I915_GEM_DOMAIN_INSTRUCTION,
>> -                      I915_GEM_DOMAIN_INSTRUCTION, 0);
>> -            OUT_BATCH(val);
>> -            ADVANCE_BATCH();
>> -
>> -            intel_batchbuffer_flush_on_ring(batch, LOCAL_I915_EXEC_VEBOX);
>> -
>> -            if (i % divider != 0)
>> -                    goto cont;
>> -
>> -            drm_intel_bo_map(target_buffer, 0);
>> -
>> -            buf = target_buffer->virtual;
>> -            igt_assert_eq_u32(buf[0], val);
>> -
>> -            drm_intel_bo_unmap(target_buffer);
>> -
>> -cont:
>> -            val++;
>> -    }
>> -
>> -    drm_intel_bo_map(target_buffer, 0);
>> -    buf = target_buffer->virtual;
>> -
>> -    igt_info("completed %d writes successfully, current value: 0x%08x\n", i,
>> -                    buf[0]);
>> -    drm_intel_bo_unmap(target_buffer);
>> -}
>> -
>> -igt_simple_main
>> -{
>> -    int fd;
>> -
>> -    fd = drm_open_any();
>> -
>> -    igt_require(gem_has_vebox(fd));
>> -    igt_require(gem_uses_aliasing_ppgtt(fd));
>> -
>> -    bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
>> -    igt_assert(bufmgr);
>> -    drm_intel_bufmgr_gem_enable_reuse(bufmgr);
>> -
>> -    batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
>> -    igt_require(batch);
>> -
>> -    target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
>> -    igt_require(target_buffer);
>> -
>> -    store_dword_loop(1);
>> -    store_dword_loop(2);
>> -    if (!igt_run_in_simulation()) {
>> -            store_dword_loop(3);
>> -            store_dword_loop(5);
>> -    }
>> -
>> -    drm_intel_bo_unreference(target_buffer);
>> -    intel_batchbuffer_free(batch);
>> -    drm_intel_bufmgr_destroy(bufmgr);
>> -
>> -    close(fd);
>> -}
>> -- 
>> 1.9.1
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> [email protected]
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>-- 
>Daniel Vetter
>Software Engineer, Intel Corporation
>http://blog.ffwll.ch
>
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to