# The settings in this file can be used to configure the behavior of # layers in this repository. # # Note that this file is not regulary updated, so not all possible layer # settings may be listed, and some layer settings may even be obsolete. # VK_LAYER_LUNARG_gfxreconstruct # Hotkey Capture Trigger # ===================== # .capture_trigger # Specify a hotkey (any one of F1-F12, TAB, CONTROL) that will be used to # start/stop capture. Example: F3 will set the capture trigger to F3 hotkey. One # capture file will be generated for each pair of start/stop hotkey presses. # Default is: Empty string (hotkey capture trigger is disabled). lunarg_gfxreconstruct.capture_trigger = # Capture Specific Frames # ===================== # .capture_frames # Specify one or more comma-separated frame ranges to capture. Each range will # be written to its own file. A frame range can be specified as a single value, # to specify a single frame to capture, or as two hyphenated values, to specify # the first and last frame to capture. Frame ranges should be specified in # ascending order and cannot overlap. Note that frame numbering is 1-based (i.e. # the first frame is frame 1). Example: 200,301-305 will create two capture # files, one containing a single frame and one containing five frames. Default # is: Empty string (all frames are captured). lunarg_gfxreconstruct.capture_frames = # Capture File Name # ===================== # .capture_file # Path to use when creating the capture file. Default is: gfxrecon_capture.gfxr lunarg_gfxreconstruct.capture_file = gfxrecon_capture.gfxr # Capture File Name with Timestamp # ===================== # .capture_file_timestamp # Add a timestamp (yyyymmddThhmmss) postfix to the capture file name. lunarg_gfxreconstruct.capture_file_timestamp = true # Capture File Flush After Write # ===================== # .capture_file_flush # Flush output stream after each packet is written to the capture file. Default # is: false. lunarg_gfxreconstruct.capture_file_flush = false # Compression Format # ===================== # .capture_compression_type # Compression format to use with the capture file. Valid values are: LZ4, ZLIB, # ZSTD, and NONE. Default is: LZ4 lunarg_gfxreconstruct.capture_compression_type = LZ4 # Memory Tracking Mode # ===================== # .memory_tracking_mode # Specifies the memory tracking mode to use for detecting modifications to # mapped Vulkan memory objects. Available options are: page_guard, assisted, and # unassisted. lunarg_gfxreconstruct.memory_tracking_mode = page_guard # Page Guard Copy on Map # ===================== # .page_guard_copy_on_map # When the page_guard memory tracking mode is enabled, copies the content of the # mapped memory to the shadow memory immediately after the memory is mapped. lunarg_gfxreconstruct.page_guard_copy_on_map = true # Page Guard Separate Read Tracking # ===================== # .page_guard_separate_read # When the page_guard memory tracking mode is enabled, copies the content of # pages accessed for read from mapped memory to shadow memory on each read. Can # overwrite unprocessed shadow memory content when an application is reading # from and writing to the same page. lunarg_gfxreconstruct.page_guard_separate_read = true # Page Guard External Memory # ===================== # .page_guard_external_memory # When the page_guard memory tracking mode is enabled, use the # VK_EXT_external_memory_host extension to eliminate the need for shadow memory # allocations. For each memory allocation from a host visible memory type, the # capture layer will create an allocation from system memory, which it can # monitor for write access, and provide that allocation to vkAllocateMemory as # external memory. Only available on Windows. lunarg_gfxreconstruct.page_guard_external_memory = false # Page Guard Persistent Memory # ===================== # .page_guard_persistent_memory # When the page_guard memory tracking mode is enabled, this option changes the # way that the shadow memory used to detect modifications to mapped memory is # allocated. The default behavior is to allocate and copy the mapped memory # range on map and free the allocation on unmap. When this option is enabled, an # allocation with a size equal to that of the object being mapped is made once # on the first map and is not freed until the object is destroyed. This option # is intended to be used with applications that frequently map and unmap large # memory ranges, to avoid frequent allocation and copy operations that can have # a negative impact on performance. This option is ignored when # GFXRECON_PAGE_GUARD_EXTERNAL_MEMORY is enabled. lunarg_gfxreconstruct.page_guard_persistent_memory = false # Page Guard Align Buffer Sizes # ===================== # .page_guard_align_buffer_sizes # When the page_guard memory tracking mode is enabled, this option overrides the # Vulkan API calls that report buffer memory properties to report that buffer # sizes and alignments must be a multiple of the system page size. This option # is intended to be used with applications that perform CPU writes and GPU # writes/copies to different buffers that are bound to the same page of mapped # memory, which may result in data being lost when copying pages from the # page_guard shadow allocation to the real allocation. This data loss can result # in visible corruption during capture. Forcing buffer sizes and alignments to a # multiple of the system page size prevents multiple buffers from being bound to # the same page, avoiding data loss from simultaneous CPU writes to the shadow # allocation and GPU writes to the real allocation for different buffers bound # to the same page. This option is only available for the Vulkan API. lunarg_gfxreconstruct.page_guard_align_buffer_sizes = false # Page Guard Unblock SIGSEGV # ===================== # .page_guard_unblock_sigsegv # When the page_guard memory tracking mode is enabled and in the case that # SIGSEGV has been marked as blocked in thread's signal mask, setting this # enviroment variable to true will forcibly re-enable the signal in the # thread's signal mask. lunarg_gfxreconstruct.page_guard_unblock_sigsegv = false # Level # ===================== # .log_level # Specify the minimum severity level of messages to log. Options are: debug, # info, warning, error, and fatal. The specified level and all higher levels # will be enabled for logging. For example, choosing the warning level will also # enable the error and fatal levels. lunarg_gfxreconstruct.log_level = info # Log Name and Line Number # ===================== # .log_detailed # Include name and line number from the file responsible. lunarg_gfxreconstruct.log_detailed = false # Log Name and Line Number # ===================== # .log_allow_indents # Apply additional indentation formatting to log messages. lunarg_gfxreconstruct.log_allow_indents = false # Log Output to Console / stdout # ===================== # .log_output_to_console # Log messages will be written to stdout. lunarg_gfxreconstruct.log_output_to_console = true # Trigger Debug Break on Error # ===================== # .log_break_on_error # Trigger a debug break when logging an error. lunarg_gfxreconstruct.log_break_on_error = false # Log Output to Debug Console # ===================== # .log_output_to_os_debug_string # Windows only option. Log messages will be written to the Debug Console with # OutputDebugStringA lunarg_gfxreconstruct.log_output_to_os_debug_string = false # Log File # ===================== # .log_file # When set, log messages will be written to a file at the specified path. # Default is: Empty string (file logging disabled). lunarg_gfxreconstruct.log_file = # Log File Flush After Write # ===================== # .log_file_flush_after_write # Flush the log file to disk after each write when true. lunarg_gfxreconstruct.log_file_flush_after_write = false # Log File Keep Open # ===================== # .log_file_keep_open # Keep the log file open between log messages when true, or close and reopen the # log file for each message when false. lunarg_gfxreconstruct.log_file_keep_open = true # Log File Overwrite # ===================== # .log_file_create_new # Specifies that log file initialization should overwrite an existing file when # true, or append to an existing file when false. lunarg_gfxreconstruct.log_file_create_new = true