Capture Layer

Usage : Use to capture a stream of a workload

	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: 


Screenshot Layer

Usage : Use to capture a screenshot of a workload during capture or playback

	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

Usage : Use to display certain information during capture or playback 


displays FPS, fps min, fps max, and the in use API


Logging Layer

Usage : Use to dump out a log of every graphics API call your target application makes

	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

Usage : Use to enable validation layers, or similar functionality for DirectX and Vulkan

	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


[GPA] E 2600 Could not load/open library C:\Windows\system32\vulkan-1.dll