diff --git a/src/Ryujinx.Graphics.RenderDocApi/CaptureOption.cs b/src/Ryujinx.Graphics.RenderDocApi/CaptureOption.cs
index dbb8494a8..cd3f860d2 100644
--- a/src/Ryujinx.Graphics.RenderDocApi/CaptureOption.cs
+++ b/src/Ryujinx.Graphics.RenderDocApi/CaptureOption.cs
@@ -4,19 +4,97 @@ namespace Ryujinx.Graphics.RenderDocApi
{
public enum CaptureOption
{
+ ///
+ /// specifies whether the application is allowed to enable vsync. Default is on.
+ ///
AllowVsync = 0,
+ ///
+ /// specifies whether the application is allowed to enter exclusive fullscreen. Default is on.
+ ///
AllowFullscreen = 1,
+ ///
+ /// specifies whether (where possible) API-specific debugging is enabled. Default is off.
+ ///
ApiValidation = 2,
+ ///
+ /// specifies whether each API call should save a callstack. Default is off.
+ ///
CaptureCallstacks = 3,
+ ///
+ /// specifies whether, if is enabled, callstacks are only saved on actions. Default is off.
+ ///
CaptureCallstacksOnlyDraws = 4,
+ ///
+ /// specifies a delay in seconds after launching a process to pause, to allow debuggers to attach.
+ /// This will only apply to child processes since the delay happens at process startup. Default is 0.
+ ///
DelayForDebugger = 5,
+ ///
+ /// specifies whether any mapped memory updates should be bounds-checked for overruns,
+ /// and uninitialised buffers are initialized to 0xDDDDDDDD to catch use of uninitialised data.
+ /// Only supported on D3D11 and OpenGL. Default is off.
+ ///
+ ///
+ /// This option is only valid for OpenGL and D3D11. Explicit APIs such as D3D12 and Vulkan do
+ /// not do the same kind of interception & checking, and undefined contents are really undefined.
+ ///
VerifyBufferAccess = 6,
+ ///
+ /// Hooks any system API calls that create child processes, and injects
+ /// RenderDoc into them recursively with the same options.
+ ///
HookIntoChildren = 7,
+ ///
+ /// specifies whether all live resources at the time of capture should be included in the capture,
+ /// even if they are not referenced by the frame. Default is off.
+ ///
RefAllSources = 8,
+ ///
+ /// By default, RenderDoc skips saving initial states for resources where the
+ /// previous contents don't appear to be used, assuming that writes before
+ /// reads indicate previous contents aren't used.
+ ///
+ ///
+ /// **NOTE**: As of RenderDoc v1.1 this option has been deprecated. Setting or
+ /// getting it will be ignored, to allow compatibility with older versions.
+ /// In v1.1 the option acts as if it's always enabled.
+ ///
SaveAllInitials = 9,
+ ///
+ /// In APIs that allow for the recording of command lists to be replayed later,
+ /// RenderDoc may choose to not capture command lists before a frame capture is
+ /// triggered, to reduce overheads. This means any command lists recorded once
+ /// and replayed many times will not be available and may cause a failure to
+ /// capture.
+ ///
+ ///
+ /// NOTE: This is only true for APIs where multithreading is difficult or
+ /// discouraged. Newer APIs like Vulkan and D3D12 will ignore this option
+ /// and always capture all command lists since the API is heavily oriented
+ /// around it and the overheads have been reduced by API design.
+ ///
CaptureAllCmdLists = 10,
+ ///
+ /// Mute API debugging output when the option is enabled.
+ ///
DebugOutputMute = 11,
+ ///
+ /// Allow vendor extensions to be used even when they may be
+ /// incompatible with RenderDoc and cause corrupted replays or crashes.
+ ///
AllowUnsupportedVendorExtensions = 12,
+ ///
+ /// Define a soft memory limit which some APIs may aim to keep overhead under where
+ /// possible. Anything above this limit will where possible be saved directly to disk during
+ /// capture.
+ /// This will cause increased disk space use (which may cause a capture to fail if disk space is
+ /// exhausted) as well as slower capture times.
+ ///
+ /// Not all memory allocations may be deferred like this so it is not a guarantee of a memory
+ /// limit.
+ ///
+ /// Units are in MBs, suggested values would range from 200MB to 1000MB.
+ ///
SoftMemoryLimit = 13,
}
}
diff --git a/src/Ryujinx.Graphics.RenderDocApi/OverlayBits.cs b/src/Ryujinx.Graphics.RenderDocApi/OverlayBits.cs
index 1b5e41829..e973e403c 100644
--- a/src/Ryujinx.Graphics.RenderDocApi/OverlayBits.cs
+++ b/src/Ryujinx.Graphics.RenderDocApi/OverlayBits.cs
@@ -7,13 +7,33 @@ namespace Ryujinx.Graphics.RenderDocApi
[Flags]
public enum OverlayBits
{
+ ///
+ /// This single bit controls whether the overlay is enabled or disabled globally
+ ///
Enabled = 1 << 0,
+ ///
+ /// Show the average framerate over several seconds as well as min/max
+ ///
FrameRate = 1 << 1,
+ ///
+ /// Show the current frame number
+ ///
FrameNumber = 1 << 2,
+ ///
+ /// Show a list of recent captures, and how many captures have been made
+ ///
CaptureList = 1 << 3,
-
+ ///
+ /// Default values for the overlay mask
+ ///
Default = Enabled | FrameRate | FrameNumber | CaptureList,
+ ///
+ /// Enable all bits
+ ///
All = ~0,
+ ///
+ /// Disable all bits
+ ///
None = 0
}
}