xref: /aosp_15_r20/external/vulkan-validation-layers/layers/vk_layer_settings.txt (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
1*b7893ccfSSadaf Ebrahimi################################################################################
2*b7893ccfSSadaf Ebrahimi#
3*b7893ccfSSadaf Ebrahimi#  This file contains per-layer settings that configure layer behavior at
4*b7893ccfSSadaf Ebrahimi#  execution time. Comments in this file are denoted with the "#" char.
5*b7893ccfSSadaf Ebrahimi#  Settings lines are of the form:
6*b7893ccfSSadaf Ebrahimi#      "<LayerIdentifier>.<SettingName> = <SettingValue>"
7*b7893ccfSSadaf Ebrahimi#
8*b7893ccfSSadaf Ebrahimi#  <LayerIdentifier> is typically the official layer name, minus the VK_LAYER
9*b7893ccfSSadaf Ebrahimi#  prefix and all lower-camel-case -- i.e., for VK_LAYER_KHRONOS_validation,
10*b7893ccfSSadaf Ebrahimi#  the layer identifier is 'khronos_validation'.
11*b7893ccfSSadaf Ebrahimi#
12*b7893ccfSSadaf Ebrahimi################################################################################
13*b7893ccfSSadaf Ebrahimi################################################################################
14*b7893ccfSSadaf Ebrahimi# Validation Layer Common Settings:
15*b7893ccfSSadaf Ebrahimi# =================================
16*b7893ccfSSadaf Ebrahimi#
17*b7893ccfSSadaf Ebrahimi#   DEBUG_ACTION:
18*b7893ccfSSadaf Ebrahimi#   =============
19*b7893ccfSSadaf Ebrahimi#   <LayerIdentifier>.debug_action : This is an enum value indicating what
20*b7893ccfSSadaf Ebrahimi#    action is to be taken when a layer wants to report information.
21*b7893ccfSSadaf Ebrahimi#    Possible settings values are defined in the vk_layer.h header file.
22*b7893ccfSSadaf Ebrahimi#    These settings are:
23*b7893ccfSSadaf Ebrahimi#    VK_DBG_LAYER_ACTION_IGNORE - Take no action.
24*b7893ccfSSadaf Ebrahimi#    VK_DBG_LAYER_ACTION_LOG_MSG - Log a txt message to stdout or to a log filename
25*b7893ccfSSadaf Ebrahimi#       specified via the <LayerIdentifier>.log_filename setting (see below).
26*b7893ccfSSadaf Ebrahimi#    VK_DBG_LAYER_ACTION_CALLBACK - Call user defined callback function(s) that
27*b7893ccfSSadaf Ebrahimi#       have been registered via the VK_EXT_debug_report extension. Since
28*b7893ccfSSadaf Ebrahimi#       app must register callback, this is a NOOP for the settings file.
29*b7893ccfSSadaf Ebrahimi#    VK_DBG_LAYER_ACTION_DEBUG_OUTPUT [Windows only] - Log a txt message using the
30*b7893ccfSSadaf Ebrahimi#       Windows OutputDebugString function -- messages will show up in the
31*b7893ccfSSadaf Ebrahimi#       Visual Studio output window, for instance.
32*b7893ccfSSadaf Ebrahimi#    VK_DBG_LAYER_ACTION_BREAK - Trigger a breakpoint.
33*b7893ccfSSadaf Ebrahimi#
34*b7893ccfSSadaf Ebrahimi#   REPORT_FLAGS:
35*b7893ccfSSadaf Ebrahimi#   =============
36*b7893ccfSSadaf Ebrahimi#   <LayerIdentifier>.report_flags : This is a comma-delineated list of options
37*b7893ccfSSadaf Ebrahimi#    telling the layer what types of messages it should report back.
38*b7893ccfSSadaf Ebrahimi#    Options are:
39*b7893ccfSSadaf Ebrahimi#    info - Report informational messages.
40*b7893ccfSSadaf Ebrahimi#    warn - Report warnings from using the API in a manner which may lead to
41*b7893ccfSSadaf Ebrahimi#           undefined behavior or to warn the user of common trouble spots.
42*b7893ccfSSadaf Ebrahimi#           A warning does NOT necessarily signify illegal application behavior.
43*b7893ccfSSadaf Ebrahimi#    perf - Report using the API in a way that may cause suboptimal performance.
44*b7893ccfSSadaf Ebrahimi#    error - Report errors in API usage.
45*b7893ccfSSadaf Ebrahimi#    debug - For layer development. Report messages for debugging layer
46*b7893ccfSSadaf Ebrahimi#            behavior.
47*b7893ccfSSadaf Ebrahimi#
48*b7893ccfSSadaf Ebrahimi#   LOG_FILENAME:
49*b7893ccfSSadaf Ebrahimi#   =============
50*b7893ccfSSadaf Ebrahimi#   <LayerIdentifier>.log_filename : output filename. Can be relative to
51*b7893ccfSSadaf Ebrahimi#      location of vk_layer_settings.txt file, or an absolute path. If no
52*b7893ccfSSadaf Ebrahimi#      filename is specified or if filename has invalid path, then stdout
53*b7893ccfSSadaf Ebrahimi#      is used by default.
54*b7893ccfSSadaf Ebrahimi#
55*b7893ccfSSadaf Ebrahimi#   DISABLES:
56*b7893ccfSSadaf Ebrahimi#   =============
57*b7893ccfSSadaf Ebrahimi#   <LayerIdentifier>.disables : comma separated list of feature/flag/disable enums
58*b7893ccfSSadaf Ebrahimi#      These can include VkValidationFeatureDisableEXT flags defined in the Vulkan
59*b7893ccfSSadaf Ebrahimi#      specification, or ValidationCheckDisables enums defined in chassis.h.
60*b7893ccfSSadaf Ebrahimi#      Effects of setting these flags are described in the specification (or the
61*b7893ccfSSadaf Ebrahimi#      source code in the case of the ValidationCheckDisables). The most useful
62*b7893ccfSSadaf Ebrahimi#      flags are briefly described here:
63*b7893ccfSSadaf Ebrahimi#      VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - disables handle wrapping.
64*b7893ccfSSadaf Ebrahimi#          Disable this feature if you are running into crashes when authoring new extensions
65*b7893ccfSSadaf Ebrahimi#          or developing new Vulkan objects/structures
66*b7893ccfSSadaf Ebrahimi#      VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT - disables thread checks. It may
67*b7893ccfSSadaf Ebrahimi#          help with performance to run with thread-checking disabled most of the time,
68*b7893ccfSSadaf Ebrahimi#          enabling it occasionally for a quick sanity check, or when debugging difficult
69*b7893ccfSSadaf Ebrahimi#          application behaviors.
70*b7893ccfSSadaf Ebrahimi#      VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT - disables the main, heavy-duty
71*b7893ccfSSadaf Ebrahimi#          validation checks. This may be valuable early in the development cycle to
72*b7893ccfSSadaf Ebrahimi#          reduce validation output while correcting paramter/object usage errors.
73*b7893ccfSSadaf Ebrahimi#      VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT - disables stateless parameter
74*b7893ccfSSadaf Ebrahimi#          checks. This may not always be necessary late in a development cycle.
75*b7893ccfSSadaf Ebrahimi#      VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT - disables object tracking.
76*b7893ccfSSadaf Ebrahimi#          This may not always be necessary late in a development cycle.
77*b7893ccfSSadaf Ebrahimi#
78*b7893ccfSSadaf Ebrahimi#   ENABLES:
79*b7893ccfSSadaf Ebrahimi#   =============
80*b7893ccfSSadaf Ebrahimi#   <LayerIdentifier>.enables : comma separated list of feature enable enums
81*b7893ccfSSadaf Ebrahimi#      These can include VkValidationFeatureEnableEXT flags defined in the Vulkan
82*b7893ccfSSadaf Ebrahimi#      specification, where their effects are described.  The most useful
83*b7893ccfSSadaf Ebrahimi#      flags are briefly described here:
84*b7893ccfSSadaf Ebrahimi#      VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT - enables intrusive GPU-assisted
85*b7893ccfSSadaf Ebrahimi#      shader validation in core/khronos validation layers
86*b7893ccfSSadaf Ebrahimi#
87*b7893ccfSSadaf Ebrahimi
88*b7893ccfSSadaf Ebrahimi# VK_LAYER_KHRONOS_validation Settings
89*b7893ccfSSadaf Ebrahimikhronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
90*b7893ccfSSadaf Ebrahimikhronos_validation.report_flags = error,warn,perf
91*b7893ccfSSadaf Ebrahimikhronos_validation.log_filename = stdout
92*b7893ccfSSadaf Ebrahimi# Example entry showing how to disable threading checks and validation at DestroyPipeline time
93*b7893ccfSSadaf Ebrahimi#khronos_validation.disables = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,VALIDATION_CHECK_DISABLE_DESTROY_PIPELINE
94*b7893ccfSSadaf Ebrahimi
95*b7893ccfSSadaf Ebrahimi# VK_LAYER_LUNARG_core_validation Settings
96*b7893ccfSSadaf Ebrahimilunarg_core_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
97*b7893ccfSSadaf Ebrahimilunarg_core_validation.report_flags = error,warn,perf
98*b7893ccfSSadaf Ebrahimilunarg_core_validation.log_filename = stdout
99*b7893ccfSSadaf Ebrahimi
100*b7893ccfSSadaf Ebrahimi# VK_LAYER_LUNARG_object_tracker Settings
101*b7893ccfSSadaf Ebrahimilunarg_object_tracker.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
102*b7893ccfSSadaf Ebrahimilunarg_object_tracker.report_flags = error,warn,perf
103*b7893ccfSSadaf Ebrahimilunarg_object_tracker.log_filename = stdout
104*b7893ccfSSadaf Ebrahimi
105*b7893ccfSSadaf Ebrahimi# VK_LAYER_LUNARG_parameter_validation Settings
106*b7893ccfSSadaf Ebrahimilunarg_parameter_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
107*b7893ccfSSadaf Ebrahimilunarg_parameter_validation.report_flags = error,warn,perf
108*b7893ccfSSadaf Ebrahimilunarg_parameter_validation.log_filename = stdout
109*b7893ccfSSadaf Ebrahimi
110*b7893ccfSSadaf Ebrahimi# VK_LAYER_GOOGLE_threading Settings
111*b7893ccfSSadaf Ebrahimigoogle_threading.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
112*b7893ccfSSadaf Ebrahimigoogle_threading.report_flags = error,warn,perf
113*b7893ccfSSadaf Ebrahimigoogle_threading.log_filename = stdout
114*b7893ccfSSadaf Ebrahimi
115*b7893ccfSSadaf Ebrahimi# VK_LAYER_GOOGLE_unique_objects Settings
116*b7893ccfSSadaf Ebrahimigoogle_unique_objects.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG
117*b7893ccfSSadaf Ebrahimigoogle_unique_objects.report_flags = error,warn,perf
118*b7893ccfSSadaf Ebrahimigoogle_unique_objects.log_filename = stdout
119*b7893ccfSSadaf Ebrahimi################################################################################
120