From 8a8f0271a71e2e0d2a2caa4d41f4ad1d9c89670e Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 31 May 2018 18:19:45 +0100 Subject: igt/gem_tiled_blits: Show more errors glk is failing gem_tiled_blits which is very odd as it doesn't use fencing and so the tiling is all internal to the GPU. From the small number of examples seen so far, it looks like just a single bit is being flipped. Let's dump some values to see if it there is a larger pattern here. Furthermore since gem_linear_blits is also showing bitflips on glk, we can rule out the impact of tiling altogether! It just becomes a question of which piece of hw is broken... References: https://bugs.freedesktop.org/show_bug.cgi?id=106608 Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala --- tests/gem_tiled_blits.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'tests/gem_tiled_blits.c') diff --git a/tests/gem_tiled_blits.c b/tests/gem_tiled_blits.c index a81226a1..51c1b584 100644 --- a/tests/gem_tiled_blits.c +++ b/tests/gem_tiled_blits.c @@ -90,10 +90,11 @@ create_bo(uint32_t start_val) } static void -check_bo(drm_intel_bo *bo, uint32_t start_val) +check_bo(drm_intel_bo *bo, uint32_t val) { drm_intel_bo *linear_bo; uint32_t *linear; + int num_errors; int i; linear_bo = drm_intel_bo_alloc(bufmgr, "linear dst", 1024 * 1024, 4096); @@ -103,13 +104,14 @@ check_bo(drm_intel_bo *bo, uint32_t start_val) do_or_die(drm_intel_bo_map(linear_bo, 0)); linear = linear_bo->virtual; + num_errors = 0; for (i = 0; i < 1024 * 1024 / 4; i++) { - igt_assert_f(linear[i] == start_val, - "Expected 0x%08x, found 0x%08x " - "at offset 0x%08x\n", - start_val, linear[i], i * 4); - start_val++; + if (linear[i] != val && num_errors++ < 32) + igt_warn("[%08x] Expected 0x%08x, found 0x%08x (difference 0x%08x)\n", + i * 4, val, linear[i], val ^ linear[i]); + val++; } + igt_assert_eq(num_errors, 0); drm_intel_bo_unmap(linear_bo); drm_intel_bo_unreference(linear_bo); -- cgit v1.2.3