Development:Renderdoc

From FEX-Emu Wiki
Jump to navigation Jump to search

Getting a capture

Without Thunks

  • Ensure Renderdoc is installed in the rootfs

OpenGL

  • Set LD_PRELOAD=librenderdoc.so as an environment variable
  • This can be done in FEXConfig or an application profile to limit its reach

Vulkan

  • Ensure the renderdoc layer is installed
  • Set ENABLE_VULKAN_RENDERDOC_CAPTURE=1 as an environment variable
  • This can be done in FEXConfig or an application profile to limit its reach

Alternatively

You can use renderdoccmd to launch an application directly.

  • renderdoccmd capture -w <program> <args...>

As long as this application is installed in your rootfs then it should work for both OpenGL and Vulkan applications.

Capture results

  • Once you have captured a frame in an application running renderdoc (F12 typically)
  • The results will be in /tmp/RenderDoc/ as *.rdc files
  • Technically these are meant to be moved over to the qrenderdoc application but you can rip them directly

With Thunks

Likely to be the same as without thunks, but instead of adding environment variables inside of FEX. One needs to do it outside of FEX instead

Capturing Proton games

  • pressure-vessel automatically pulls in vulkan layers from the rootfs
  • If you have a new enough rootfs then both a 32-bit and 64-bit renderdoc library is installed for capturing both bitness
    • As of 2022-07-15, RootFS isn't pushed. Waiting on new Mesa release.

Steam launch arguments as follows will enable renderdoc for Vulkan/DXVK/VKD3D games

 ENABLE_VULKAN_RENDERDOC_CAPTURE=1 %command%

OpenGL games

  • TBD

Capturing Thunks + Pressure-Vessel/Proton

Not yet supported