Layers
Capture
Capture Layer
Usage : Use to capture a stream of a workload
Arguments:
directory Specifies the path to the directory where stream files should be written to.
name Specifies the name of the stream directory; default is <process name>-<timestamp>-<process id>.
If the stream directory already exists, a suffix in the format '-<num>' is appended to the stream name.
keyframe-trigger-type Sets what kind of condition triggers capturing a keyframe. Options: time,
keypress. Can be repeated to specify multiple triggers. Default: time
time-interval Set how many seconds should elapse between each keyframe if time is enabled for the
keyframe-trigger-type. Default: 4.0
deferred Indicate that the user wishes to start capture at arbitrary time. Default: false
(normal capture to disk)
insert-virtual-present Inserts artificial 'Present' call to mark state restoration frame 0 in deferred and subcaptured stream. Default: false. Note: This option offsets counting by 1 frame during playback. For example, frame 2 during capture will be referenced as frame 3.
captured-frames If deferred capture is enabled, specifies the range of frames that should be captured.
Format: [start..end] or (start..end) or a mix of parentheses types, where [ is inclusive and ( is
exclusive.Multiple ranges can be specified by separating them with a semicolon.
For example: (start..end);(start..end)
fixed-frame-count Set how many frames should be captured when deferred capture is triggered.
Default: unlimited
compression Enables compression. Options: lz4
dxr-rtas-restore-mode Determine how RT acceleration structures are captured: (0) CopyBlob, (1) RebuildFromBlob, (2) RebuildFromHistory.
Default: (1) RebuildFromBlob
disable-rashistory Disables RT acceleration structure build history.
disable-stream-recording-message Disables "Stream recording" status message.
If you are using the --layer capture:keyframe-trigger-type=keypress, make sure to inspect the
bin/Release/actions.keymap file. It contains the hotkey mappings and will allow you to set any supported key as the
trigger key. Look for the CreateKeyframe setting.
Supported key strings:
[A-Z]
[0-9]
[SHIFT]
[LSHIFT]
[RSHIFT]
[CTRL]
[LCTRL]
[RCTRL]
[CAPS]
[TAB]
[LALT]
[RALT]
[INS]
[SPACE]
[HOME]
[DEL]
[END]
[UP]
[DOWN]
[LEFT]
[RIGHT]
[ESC]
[BACK]
[ENTER]
[F1]
[F2]
[F3]
[F4]
[F5]
[F6]
[F7]
[F8]
[F9]
[F10]
[F11]
[F12]
Screenshot
Screenshot Layer
Usage : Use to capture a screenshot of a workload during capture or playback
Arguments:
frames Specify frames to capture in screenshots. Frame numbers begin at 1. All values must be positive.
Interval capture can be specified using standard 'range' notation, where ( and ) indicate 'open'
range endpoints, and [ and ] indicate 'closed' range endpoints. Ranges may include an optional
step value, appended to the end of the range, for example: (10..100]:10, to indicate every tenth frame
in the range 10 to 100 (not including 10). The default step value is 1.
Individual frames are specified as integers separated by semicolons, for example: 1;10;100. Individual
frames and range specifications can be mixed in any order, for example: 1;(50..70]:5;10;100.
when using the open range endpoints ( and ), remember to wrap the entire argument in quotes to prevent
certain shells from treating the symbol as a subshell. For example frames="(10..199):10)"
There is a risk of unusually high memory consumption, if user requests a high number of screenshots
without specifying a reasonable step. It is suggested to use async=false flag to prevent from the out
of memory errors in such case. High memory consumption might occur, if asynchronous screenshot
download to disk thread (enabled by default) cannot keep up with the rate of screenshot requests.
path Override default output directory for screenshots, must be an absolute path, /must/end/in/slash/;
time-interval Specify number of seconds (wall-clock time) between screenshots. On non-Windows platforms, the timer begins running when the application begins, not when the first API call is made. On Windows platforms, the timer begins when the first 'present' call happens. Interval is in units of milliseconds, so '4 seconds' would be 4000 milliseconds.
immediate Whether or not the layer should wait for screenshot requests from other layers. This option will not allow the layer to unload even if other conditions for capture are not specified. The default is "false".
async Whether or not screenshot capture should be asynchronous. The default is "true".
wait-on-shutdown Whether or not screenshot capture should wait for remaining asynchronous screenshots on shutdown.
The default is "true".
file-format Override default screenshot file format (png). Available formats are [jpg,png,bmp]
Implemented for Vulkan and DirectX
HUD-Layer
Hud Layer
Usage : Use to display certain information during capture or playback
Arguments:
none
displays FPS, fps min, fps max, and the in use API
Logging
Logging Layer
Usage : Use to dump out a log of every graphics API call your target application makes
Arguments:
verbose set verbose=1 to enable more detailed logging, certain structs or arrays may be represented by (embedded)
callindex set callindex=1 to enable printing call index
usegpalog set usegpalog=1 to print verbose log with default GPA log library; Verbose log is directed to cout by default
condensed set condensed=1 to enable elimination of repeated lines
API-Debug-Layer
API Debug Layer
Usage : Use to enable validation layers, or similar functionality for DirectX and Vulkan
Arguments:
gpubasedvalidation Enables GPU based validation for D3D12. Effectively calls ID3D12Debug1::SetEnableGPUBasedValidation
flushafterexecute Naively flushes the queue after each ExecuteCommandLists call. D3D12 only. 5sec timeout.
asyncdeviceremovalcheck Creates thread that periodically checks for device removal status. Useful, if device removal happens on non-dispatch table call.
Validation layer messages will be logged to console
Device-Override
[31m[GPA] E 2600 Could not load/open library C:\Windows\system32\vulkan-1.dll[0m