Skip to content

tu: Implement VK_AMD_buffer_marker to support Graphics Flight Recorder

Graphics Flight Recorder is:

The Graphics Flight Recorder (GFR) is a Vulkan layer to help trackdown and identify the cause of GPU hangs and crashes. It works by instrumenting command buffers with completion tags.

See https://github.com/googlestadia/gfr

This is a nice little tool which could help quickly identify the call which hanged. Or if command buffer is executed for too long.

The tiling nature of our GPU shouldn't be a big issue aside from lower performance.

For non-segfault case, if:

  • Hang happens at the same place in cmdbuf and draw/dispatch is not finished at that point - it is likely that there is an infinite loop in some of the shaders in this draw.
  • Hang happens always in different place - likely there is nothing wrong and command buffer just takes too long to execute and you should try increasing hangcheck_period_ms. If it doesn't help it is likely a synchronization issue.

At the moment GFR unintentionally unconditionally requires VK_AMD_device_coherent_memory (https://github.com/googlestadia/gfr/issues/5), which should be patched out in order to use it on Turnip.

Edited by Danylo Piliaiev

Merge request reports