tools/intel_error_decode: decode gen4+ fences

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Daniel Vetter 2011-10-21 19:06:08 +02:00
parent 982d14e34b
commit d510953ef3

View File

@ -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 static void
print_i915_fence(unsigned int devid, uint64_t fence) print_i915_fence(unsigned int devid, uint64_t fence)
{ {
@ -240,8 +262,10 @@ print_i830_fence(unsigned int devid, uint64_t fence)
static void static void
print_fence(unsigned int devid, uint64_t fence) print_fence(unsigned int devid, uint64_t fence)
{ {
if (IS_965(devid)) { if (IS_GEN6(devid) || IS_GEN7(devid)) {
return; 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)) { } else if (IS_GEN3(devid)) {
return print_i915_fence(devid, fence); return print_i915_fence(devid, fence);
} else { } else {
@ -350,7 +374,7 @@ read_data_file (FILE *file)
if (matched == 1) if (matched == 1)
print_instdone (devid, -1, reg); print_instdone (devid, -1, reg);
matched = sscanf (line, " fence[%i] = %8Lx\n", &reg, &fence); matched = sscanf (line, " fence[%i] = %Lx\n", &reg, &fence);
if (matched == 2) if (matched == 2)
print_fence (devid, fence); print_fence (devid, fence);