From d510953ef38de7017c87688b3f4f5a7924097488 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Fri, 21 Oct 2011 19:06:08 +0200 Subject: tools/intel_error_decode: decode gen4+ fences Signed-off-by: Daniel Vetter --- tools/intel_error_decode.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'tools/intel_error_decode.c') diff --git a/tools/intel_error_decode.c b/tools/intel_error_decode.c index f9e47eb6..6ffaefe0 100644 --- a/tools/intel_error_decode.c +++ b/tools/intel_error_decode.c @@ -209,6 +209,28 @@ print_pgtbl_err(unsigned int reg, unsigned int devid) } } +static void +print_snb_fence(unsigned int devid, uint64_t fence) +{ + printf(" %svalid, %c-tiled, pitch: %i, start: 0x%08x, size: %u\n", + fence & 1 ? "" : "in", + fence & (1<<1) ? 'y' : 'x', + (int)(((fence>>32)&0xfff)+1)*128, + (uint32_t)fence & 0xfffff000, + (uint32_t)(((fence>>32)&0xfffff000) - (fence&0xfffff000) + 4096)); +} + +static void +print_i965_fence(unsigned int devid, uint64_t fence) +{ + printf(" %svalid, %c-tiled, pitch: %i, start: 0x%08x, size: %u\n", + fence & 1 ? "" : "in", + fence & (1<<1) ? 'y' : 'x', + (int)(((fence>>2)&0x1ff)+1)*128, + (uint32_t)fence & 0xfffff000, + (uint32_t)(((fence>>32)&0xfffff000) - (fence&0xfffff000) + 4096)); +} + static void print_i915_fence(unsigned int devid, uint64_t fence) { @@ -240,8 +262,10 @@ print_i830_fence(unsigned int devid, uint64_t fence) static void print_fence(unsigned int devid, uint64_t fence) { - if (IS_965(devid)) { - return; + if (IS_GEN6(devid) || IS_GEN7(devid)) { + return print_snb_fence(devid, fence); + } else if (IS_GEN4(devid) || IS_GEN5(devid)) { + return print_i965_fence(devid, fence); } else if (IS_GEN3(devid)) { return print_i915_fence(devid, fence); } else { @@ -350,7 +374,7 @@ read_data_file (FILE *file) if (matched == 1) print_instdone (devid, -1, reg); - matched = sscanf (line, " fence[%i] = %8Lx\n", ®, &fence); + matched = sscanf (line, " fence[%i] = %Lx\n", ®, &fence); if (matched == 2) print_fence (devid, fence); -- cgit v1.2.3