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.
VK_AMD_device_coherent_memory
(https://github.com/googlestadia/gfr/issues/5), which should be patched out in order to use it on Turnip.