// ReSharper disable UnusedMember.Global
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,
}
}