Development:gfxreconstruct
gfxreconstruct
gfxreconstruct is a Vulkan layer that is useful for capturing a frame in a robust way.
This is usually useful for capturing frames that is more portable than renderdoc.
https://github.com/LunarG/gfxreconstruct
Setting up gfxreconstruct
First thing you must do is build gfxreconstruct from source. Either for your host or guest rootfs, depending on if you're using thunks or not.
If building for the x86 rootfs then make sure to install it in to the rootfs after building. This can be done by just copying the install files over afterwards.
Set up environment variables
- VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_gfxreconstruct
- GFXRECON_CAPTURE_TRIGGER=F12
- GFXRECON_CAPTURE_FILE=/tmp/gfxrecon_capture.gfxr
- GFXRECON_MEMORY_TRACKING_MODE=unassisted
- Only necessary if the game crashes otherwise. Proton games are quite crash happy with this.
Once you have the environment variables set up you can then launch a vulkan game. There will be some additional output in the terminal to know when the layer is capturing. You can then press F12 in the application and you'll get a capture in tmp after a few seconds. Be careful as gfxreconstruct will overwrite the capture on each press, so you will want to move each capture file.
Replay
gfxrecon-replay can be used to replay the capture which is quite useful.