Thanks for the great explanation, Marek. I will try to start tests today but probably I won't have enough time until weekend.
I don't think we should use X if we know that the GPU driver is totally broken. Piglit should be used for such testing. How to build it: 1) Mesa should be built with: --with-egl-platforms=x11,drm This is also required for X acceleration, so it should be set already. 2) Build and install waffle: git://github.com/waffle-gl/waffle 3) Build piglit (no install): https://cgit.freedesktop.org/piglit/ Configure it with ccmake and enable waffle. How to get ready: 1) Boot with the "text" kernel parameter (disables X) and also add "radeon.lockup_timeout=0" to prevent the kernel driver from trying to recover from GPU hangs. 2) Go to the piglit/bin directory. 3) Type: export PIGLIT_PLATFORM=gbm Tests to run: 1) If this works, most things will work: ./fbo-generatemipmap-formats -auto 2) Something simpler: ./ext_transform_feedback-position -auto 3) You can invoke very simple internal driver tests by setting GALLIUM_TESTS=1. This will exit before the program can do something, so the executable doesn't matter. For example: GALLIUM_TESTS=1 ./ext_transform_feedback-position Diagnosing GPU hangs: If the GPU hangs during these tests, you can see errors in dmesg. I recommend using radeontop for overview of which GPU hw blocks are busy. If some blocks report 100% activity for no reason, they are stuck. Which blocks are stuck is the first piece of information we need to know. Then, we need to know if any internal driver tests pass if you run something with GALLIUM_TESTS=1 (see above).