################################################################################
#
#  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_LUNARG_core_validation,
#  the layer identifier is 'lunarg_core_validation', and for
#  VK_LAYER_GOOGLE_threading the layeridentifier is 'google_threading'.
#
################################################################################
################################################################################
# Validation Layer Common Settings:
# =================================
#
#   DEBUG_ACTION:
#   =============
#   <LayerIdentifier>.debug_action : This is an enum value indicating what
#    action is 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.
#    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.
#
#   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.
#
#   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.
#

# VK_LAYER_LUNARG_core_validation Settings
lunarg_core_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
lunarg_core_validation.report_flags = error,warn,perf
lunarg_core_validation.log_filename = stdout

# VK_LAYER_LUNARG_object_tracker Settings
lunarg_object_tracker.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
lunarg_object_tracker.report_flags = error,warn,perf
lunarg_object_tracker.log_filename = stdout

# VK_LAYER_LUNARG_parameter_validation Settings
lunarg_parameter_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
lunarg_parameter_validation.report_flags = error,warn,perf
lunarg_parameter_validation.log_filename = stdout

# VK_LAYER_GOOGLE_threading Settings
google_threading.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
google_threading.report_flags = error,warn,perf
google_threading.log_filename = stdout

# VK_LAYER_GOOGLE_unique_objects Settings
google_unique_objects.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
google_unique_objects.report_flags = error,warn,perf
google_unique_objects.log_filename = stdout
################################################################################
