[RFC] radeon faulty command stream dumping

j.glisse at gmail.com j.glisse at gmail.com
Wed May 16 14:22:30 PDT 2012


Attached is 2 patch for dumping everything needed to replay faulty
command stream. I haven't add a module option in the radeon patch
but the idea would be to enable the dumping only if it's requested.

I know AMD folks would like to reuse AMD internal format, but unless
we can quickly get ACK to release it i would rather have this facility
in and then latter add a userspace tools that can convert btw this
format and the AMD format.

The format is described in rati.h, it would be come some kind of API.
That's the reason why i changed the whole radeon family files, so it
can be share btw kernel and userspace.

The replayer is available at:
git://people.freedesktop.org/~glisse/joujou

replayx replay a rati file under X and show the front buffer of the
replayed command stream. It's not yet fully functional but i will
work on r6xx with :
http://people.freedesktop.org/~glisse/lockup/dump-0000.rati

tati convert a rati file to text version so human can alter command
stream or buffer to try to find the issue. It's not yet done either
idea is to add comment to print register offset next to packet to
make it easier.

I tested the kernel bits against couple variation of faulty command
stream (bad shader, bad vertex count, bad index count, ...) and it
seems to work ok.

The userspace tools need to grow the unrelocate capacity before
being able to replay kernel captured command stream.

Mesa patch to dump command stream in same format as kernel:
http://people.freedesktop.org/~glisse/lockup/0001-radeong-add-rati-command-stream-dumping.patch

libdrm patch needed to either build the joujou or mesa with
the patch
http://people.freedesktop.org/~glisse/lockup/0001-radeon-add-rati-dumping-helper.patch

(Also a bonus is that i regenerated cleanier header definition for
r6xx see replayx_r6xxd.h)

Cheers,
Jerome


More information about the dri-devel mailing list