################################################################################
#
#  This file contains per-layer settings that configure layer behavior at
#  execution time. Comments in this file are denoted with the "#" char.
#  Settings lines are of the form:
#      "<LayerIdentifier>.<SettingName> = <SettingValue>"
#
#  <LayerIdentifier> is typically the official layer name, minus the VK_LAYER
#  prefix and all lower-camel-case -- i.e., for VK_LAYER_KHRONOS_validation,
#  the layer identifier is 'khronos_validation'.
#
################################################################################
################################################################################
# Validation Layer Common Settings:
# =================================
#
#   DEBUG_ACTION:
#   =============
#   <LayerIdentifier>.debug_action : This is a comma-delited list of options
#    indicating what actions are to be taken when a layer wants to report
#    information.
#    Possible settings values are defined in the vk_layer.h header file.
#    These settings are:
#    VK_DBG_LAYER_ACTION_IGNORE - Take no action -- has no effect if specified with
#       other options.
#    VK_DBG_LAYER_ACTION_LOG_MSG - Log a txt message to stdout or to a log filename
#       specified via the <LayerIdentifier>.log_filename setting (see below).
#    VK_DBG_LAYER_ACTION_CALLBACK - Call user defined callback function(s) that
#       have been registered via the VK_EXT_debug_report extension. Since
#       app must register callback, this is a NOOP for the settings file.
#    VK_DBG_LAYER_ACTION_DEBUG_OUTPUT [Windows only] - Log a txt message using the
#       Windows OutputDebugString function -- messages will show up in the
#       Visual Studio output window, for instance.
#    VK_DBG_LAYER_ACTION_BREAK - Trigger a breakpoint if a debugger is in use.
#
#   REPORT_FLAGS:
#   =============
#   <LayerIdentifier>.report_flags : This is a comma-delineated list of options
#    telling the layer what types of messages it should report back.
#    Options are:
#    info - Report informational messages.
#    warn - Report warnings from using the API in a manner which may lead to
#           undefined behavior or to warn the user of common trouble spots.
#           A warning does NOT necessarily signify illegal application behavior.
#    perf - Report using the API in a way that may cause suboptimal performance.
#    error - Report errors in API usage.
#    debug - For layer development. Report messages for debugging layer
#            behavior.
#
#   MESSAGE_ID_FILTER:
#   ==================
#   <LayerIdentifier>.message_id_filter: This is a comma-delineated list of VUIDs
#    or VUID identifers which are to be IGNORED by the layers. These can be in
#    any combination of the normal VUID string form,
#        "VUID-vkCmdPipelineBarrier-image-02635",
#    or the hexadecimal or decimal representation of the VUID id returned from
#    a validation message, for example:
#        0xdf3391a2 or 3744698786.
#
#   DUPLICATE_MESSAGE_LIMIT:
#   =======================
#   <LayerIdentifier>.duplicate_message_limit: This is an unsigned integer
#    which signifies the limit for the number of times any validation
#    message can be output by the layers. Any non-zero value will be respected,
#    and the default is no limit.
#
#   LOG_FILENAME:
#   =============
#   <LayerIdentifier>.log_filename : output filename. Can be relative to
#      location of vk_layer_settings.txt file, or an absolute path. If no
#      filename is specified or if filename has invalid path, then stdout
#      is used by default.
#
#   DISABLES:
#   =========
#   <LayerIdentifier>.disables : comma separated list of feature/flag/disable enums
#      These can include VkValidationFeatureDisableEXT flags defined in the Vulkan
#      specification, or ValidationCheckDisables enums defined in chassis.h.
#      Effects of setting these flags are described in the specification (or the
#      source code in the case of the ValidationCheckDisables). The most useful
#      flags are briefly described here:
#      VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - disables handle wrapping.
#          Disable this feature if you are running into crashes when authoring new extensions
#          or developing new Vulkan objects/structures
#      VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT - disables thread checks. It may
#          help with performance to run with thread-checking disabled most of the time,
#          enabling it occasionally for a quick sanity check, or when debugging difficult
#          application behaviors.
#      VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT - disables the main, heavy-duty
#          validation checks. This may be valuable early in the development cycle to
#          reduce validation output while correcting paramter/object usage errors.
#      VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT - disables stateless parameter
#          checks. This may not always be necessary late in a development cycle.
#      VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT - disables object tracking.
#          This may not always be necessary late in a development cycle.
#
#   ENABLES:
#   ========
#   <LayerIdentifier>.enables : comma separated list of feature enable enums
#      These can include VkValidationFeatureEnableEXT flags defined in the Vulkan
#      specification, where their effects are described.  The most useful
#      flags are briefly described here:
#      VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT - enables intrusive GPU-assisted
#      shader validation in khronos validation layers
#      VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - enables best practices warning
#      validation
#      VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT - enables processing of
#      debug printf instructions in shaders and sending debug strings to the debug callback
#      VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT - enables checks to
#      identify resource access conflicts due to missing or incorrect synchronization
#
#   CUSTOM_STYPE_LIST:
#   ==================
#   <LayerIdentifier>.custom_stype_list: This is a comma-delimited list of uin32_t
#    value-pairs describing custom structure types. Unrecognized structures encountered
#    in wrapped pNext chains are typically removed. Specifying the sType value and size
#    in bytes in this list will allow the layers to properly preserve the containing
#    pNext chain. Multiple structs can be specified.  For instance, in the following
#    example, two custom structs are declared, the first in decimal and the second in
#    hexadecimal:
#        khronos_validation.custom_stype_list=1100297000,32,0x478b1428,0x20

# VK_LAYER_KHRONOS_validation Settings

khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
khronos_validation.report_flags = error,warn,perf
khronos_validation.log_filename = stdout

# Example entry showing how to filter specific VUIDs from layer output
#khronos_validation.message_id_filter = 3744698786,0xdf3391a2,"VUID-vkCmdPipelineBarrier-image-02635"

# Example entry showing how to declare custom non-Vulkan structure types
#khronos_validation.custom_stype_list=1100297000,32,0x478b1428,0x20

# Example entry showing how to limit the number of repeated validation messages
#khronos_validation.duplicate_message_limit = 25

# Example entry showing how to disable threading checks and validation at DestroyPipeline time
#khronos_validation.disables = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,VALIDATION_CHECK_DISABLE_DESTROY_PIPELINE

# Example entry showing how to Enable GPU-Assisted Validation
#khronos_validation.enables = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
# Example entry showing how to disable buffer out of bounds checking
#khronos_validation.gpuav_buffer_oob = false
# Example entry showing how to disable descriptor indexing access checking
#khronos_validation.gpuav_descriptor_indexing = false

# Example entry showing how to Enable Best Practices Validation
#khronos_validation.enables = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT

# Example entry showing how to enable Debug Printf messages
#khronos_validation.enables = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
# Example showing how to set the size in bytes of the buffer used by debug printf (default 1024 bytes)
#khronos_validation.printf_buffer_size = 1024
# Example of how to set the verbosity of debug printf messages (default not verbose)
#khronos_validation.printf_verbose = false
# Example of how to redirect debug printf messages from the debug callback to stdout
#khronos_validation.printf_to_stdout = true

################################################################################
