[Intel-gfx] [PATCH i-g-t] tests: remove gem_storedw_loop_* tests

Daniel Vetter daniel at ffwll.ch
Mon Sep 7 09:45:00 PDT 2015


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 <thomas.wood at intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

... 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 <jbarnes at virtuousgeek.org>
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 <eric at anholt.net>
> - *    Jesse Barnes <jbarnes at virtuousgeek.org> (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 <eric at anholt.net>
> - *    Jesse Barnes <jbarnes at virtuousgeek.org> (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 <eric at anholt.net>
> - *    Jesse Barnes <jbarnes at virtuousgeek.org> (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 <haihao.xiang at intel.com> (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
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list