RenderDoc API support
If using process injection:
- press
Ctrl + Shift + Rto reload the RenderDoc API's callable function struct.
If using launch method:
- no reload is needed, however you will need to use
--software-guicommand-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:

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

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.