RenderDoc API support

If using process injection:

  • press Ctrl + Shift + R to reload the RenderDoc API's callable function struct.

If using launch method:

  • no reload is needed, however you will need to use --software-gui command-line argument.
    • Not using this causes Ryu to crash immediately upon trying to draw the main Avalonia window. Not unique to this MR's changes.

In-game, and when the RenderDoc API is active

The Actions menu now shows a Start RenderDoc Frame Capture button: image

Pressing this button will cause 2 different buttons to show up in its place: image

End RenderDoc Frame Capture stops the capture and saves it. Discard RenderDoc Capture stops the capture and immediately discards it, not causing it to show in RenderDoc UI.

Additionally, you can start/stop a Capture with Ctrl + Shift + C.

You can also customize the title format given to RenderDoc with these custom captures by using the --rd-capture-title-format command-line argument. The default value is: {EmuVersion}\n{GuestName} {GuestVersion} {GuestTitleId} {GuestArch}

This string contains all of the placeholders the title supports; and they are case-insensitive. i.e. {GUESTARCH} works just as well as {GuestArch}.

This MR contains a new .csproj in the Ryujinx .sln: Ryujinx.Graphics.RenderDocApi. It is a source-inclusion of RenderDocSharp, with the following changes:

  • full XMLdocs taken from the official RenderDoc API documentation, modified to reference C# stuff instead of C++ things.
Edited by GreemDev

Merge request reports

Loading