Skip to content

util/hexdump: Squeeze repeated patterns instead of zero-ed chunks

Boris Brezillon requested to merge bbrezillon/mesa:hexdump-improvement into main

What does this MR do and why?

Our u_hexdump() squeezes 16-byte chunks filled of zeros, where the unix hexdump squeezes repeated 16-byte chunks. Turns out panfrost/panvk dumps can be pretty big when when VM dump is requested (PANVK_DEBUG/PAN_MESA_DEBUG=dump) and memory regions are filled with repeated non-zero patterns (like a Z16_UNORM buffer cleared to 1.0, AKA 0xffff).

Avoiding the repetition of such non-zero patterns in dumps significantly reduces the size of the dumps. It also clears any confusion for people used to the original hexdump semantics where a star means the previous line is repeated.

/cc @alyssa given asahi is the only other user of u_hexdump() AFAICT.

Merge request reports

Loading