Hi, Currently, it's not easy to debug a GPU hang with radv because only a trace file is generated (cf. RADV_TRACE_FILE). That file contains all packets and commands emitted into the IB, that's useful but definitely not enough. For example, the active shaders at the moment of the hang are not dumped, same for the descriptors, etc.
This series tries to fix the problem by dumping a bunch information when a hang is detected (or when a VM fault occured). It generates a full hang report which contains the active shaders (disassembly only for now), the annotated shaders using UMR (if found in your path), the descriptors and more. Here's a real hang report generated by this series: https://people.freedesktop.org/~hakzsam/radv_hang_report_example Please review, Thanks! Samuel Pitoiset (15): radv: add a comment that describes the trace BO layout radv: save the bound pipeline pointers into the trace BO radv: add radv_cmd_buffer_after_draw() helper function radv: add debug flags for syncing shaders after every draw call radv: dump the active shaders when a hang occured radv: add radv_shader_dump_stats() helper radv: dump shader stats when a hang occured radv/winsys: add a read_registers() callback radv: dump some status MMIO registers when a hang occured radeonsi: move si_get_wave_info() to AMD common code radv: dump annotated shaders using UMR radv: save all descriptor pointers into the trace BO radv: dump descriptors when a hang occured radv: dump last 60 lines of dmesg when a hang occured radv: dump the list of enabled options when a hang occured src/amd/common/ac_debug.c | 76 +++ src/amd/common/ac_debug.h | 18 + src/amd/vulkan/radv_cmd_buffer.c | 124 ++++- src/amd/vulkan/radv_debug.c | 540 +++++++++++++++++++++- src/amd/vulkan/radv_debug.h | 1 + src/amd/vulkan/radv_device.c | 15 + src/amd/vulkan/radv_pipeline.c | 64 +-- src/amd/vulkan/radv_private.h | 7 + src/amd/vulkan/radv_radeon_winsys.h | 3 + src/amd/vulkan/radv_shader.c | 70 +++ src/amd/vulkan/radv_shader.h | 6 + src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 11 + src/gallium/drivers/radeonsi/si_debug.c | 96 +--- 13 files changed, 857 insertions(+), 174 deletions(-) -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev