It turns out the Hierarchical Z “HiZ” implementation with AMD RDNA4 GPUs with the GFX12 graphics engine for early rejection of fragments before hitting the rendering pipeline is slightly buggy. Driver workarounds are needed for the HiZ/HiS support with RDNA4 GPUs to avoid potential hangs.
Hardware bugs and driver workarounds are unfortunately nothing new and with RDNA4/GFX12 there’s special treatment needed around the HiZ/HiS features that are important for performance. Linux graphics driver engineer Samuel Pitoiset with Valve has landed a workaround for “buggy” HiZ/HiS on GFX12 (RDNA4). Radeon RX 9070 series hangs were experienced with The Last Of Us Part 1 “TLOU1” and tracked down due to the buggy HiZ.
It turns out the RadeonSI Gallium3D driver and AMD PAL code for AMDVLK already have a similar workaround in place for the buggy HiZ/HiS on RDNA4 GPUs. In one of the code comments on the now-merged Mesa RADV code, Pitoiset explains the situation as:
“On GFX12, HiZ/HiS is buggy and can cause random GPU hangs. There are basically two alternatives:
– disable HiZ/HiS completely which is the safest workaround but this is known to decrease performance
– emit a dummy BOTTOM_OF_PIPE_TS after every draw which should workaround the hang and maintain performance”
Thus the later option is preferred in the name of performance.
This merge now in Mesa 25.1-devel and should be back-ported to a Mesa 25.0 point release soon takes care of this buggy HiZ/HiS behavior for GFX12/RDNA4 GPUs. So if you were encountering hangs with any games on the new Radeon RX 9070 series with RADV, it may be worthwhile trying out the very newest Mesa code.