David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 1 | # The settings in this file can be used to configure the behavior of |
| 2 | # layers in this repository. |
Mark Lobodzinski | c71f3e9 | 2016-06-01 16:12:49 -0600 | [diff] [blame] | 3 | # |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 4 | # Note that this file is not regulary updated, so not all possible layer |
| 5 | # settings may be listed, and some layer settings may even be obsolete. |
Tobin Ehlis | 2b57c7b | 2015-09-15 09:54:07 -0600 | [diff] [blame] | 6 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 7 | # VK_LAYER_KHRONOS_validation |
Mark Lobodzinski | d64e14f | 2019-09-04 17:38:02 -0600 | [diff] [blame] | 8 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 9 | # Debug Action |
| 10 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 11 | # Specifies what action is to be taken when a layer reports information |
Mark Lobodzinski | 8662d66 | 2019-03-18 15:28:16 -0600 | [diff] [blame] | 12 | khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 13 | |
| 14 | # Log Filename |
| 15 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 16 | # Specifies the output filename |
Mark Lobodzinski | 8662d66 | 2019-03-18 15:28:16 -0600 | [diff] [blame] | 17 | khronos_validation.log_filename = stdout |
Mark Lobodzinski | d64e14f | 2019-09-04 17:38:02 -0600 | [diff] [blame] | 18 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 19 | # Message Severity |
| 20 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 21 | # Comma-delineated list of options specifying the types of messages to be |
| 22 | # reported |
Bob Ellison | fae5009 | 2022-08-25 17:06:00 -0600 | [diff] [blame] | 23 | khronos_validation.report_flags = error |
Mark Lobodzinski | 61b725c | 2020-05-19 11:10:08 -0600 | [diff] [blame] | 24 | |
spencer-lunarg | 91cce79 | 2024-12-07 12:39:18 +0900 | [diff] [blame] | 25 | # Limit Duplicated Messages |
| 26 | # ===================== |
spencer-lunarg | 91cce79 | 2024-12-07 12:39:18 +0900 | [diff] [blame] | 27 | # Enable limiting of duplicate messages. |
| 28 | khronos_validation.enable_message_limit = true |
| 29 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 30 | # Max Duplicated Messages |
| 31 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 32 | # Maximum number of times any single validation message should be reported. |
| 33 | khronos_validation.duplicate_message_limit = 10 |
Mark Lobodzinski | e351058 | 2020-05-25 13:07:30 -0600 | [diff] [blame] | 34 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 35 | # Mute Message VUIDs |
| 36 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 37 | # List of VUIDs and VUID identifers which are to be IGNORED by the validation |
| 38 | # layer |
sjfricke | ca9a480 | 2022-08-10 14:27:51 +0900 | [diff] [blame] | 39 | khronos_validation.message_id_filter = |
Mark Lobodzinski | 8662d66 | 2019-03-18 15:28:16 -0600 | [diff] [blame] | 40 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 41 | # Disables |
| 42 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 43 | # Specify areas of validation to be disabled |
| 44 | khronos_validation.disables = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT |
Tobin Ehlis | c96f806 | 2016-03-09 16:12:48 -0700 | [diff] [blame] | 45 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 46 | # Enables |
| 47 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 48 | # Setting an option here will enable specialized areas of validation |
sjfricke | ca9a480 | 2022-08-10 14:27:51 +0900 | [diff] [blame] | 49 | khronos_validation.enables = |
Tobin Ehlis | 2b57c7b | 2015-09-15 09:54:07 -0600 | [diff] [blame] | 50 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 51 | # Redirect Printf messages to stdout |
| 52 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 53 | # Enable redirection of Debug Printf messages from the debug callback to stdout |
Tony-LunarG | 4e96a88 | 2020-09-18 13:48:25 -0600 | [diff] [blame] | 54 | #khronos_validation.printf_to_stdout = true |
Tony-LunarG | 5e8f1b3 | 2020-05-05 13:12:04 -0600 | [diff] [blame] | 55 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 56 | # Printf verbose |
| 57 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 58 | # Set the verbosity of debug printf messages |
| 59 | #khronos_validation.printf_verbose = false |
| 60 | |
| 61 | # Printf buffer size |
| 62 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 63 | # Set the size in bytes of the buffer used by debug printf |
| 64 | #khronos_validation.printf_buffer_size = 1024 |
| 65 | |
spencer-lunarg | 2cbfec7 | 2024-12-19 14:23:44 +0900 | [diff] [blame] | 66 | # Shader instrumentation |
| 67 | # ===================== |
| 68 | # Instrument shaders to validate descriptors, descriptor indexing, buffer device addresses and ray queries. |
| 69 | # Warning: will considerably slow down shader executions |
| 70 | #khronos_validation.gpuav_shader_instrumentation = true |
| 71 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 72 | # Check descriptor indexing accesses |
| 73 | # ===================== |
Jeremy Gebben | 926ffb1 | 2023-06-15 15:48:33 -0600 | [diff] [blame] | 74 | # Enable descriptor indexing and buffer out of bounds checking |
| 75 | #khronos_validation.gpuav_descriptor_checks = true |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 76 | |
spencer-lunarg | 2cbfec7 | 2024-12-19 14:23:44 +0900 | [diff] [blame] | 77 | # Generate warning on out of bounds accesses even if buffer robustness is enabled |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 78 | # ===================== |
spencer-lunarg | 2cbfec7 | 2024-12-19 14:23:44 +0900 | [diff] [blame] | 79 | # Warn on out of bounds accesses even if robustness is enabled |
| 80 | #khronos_validation.gpuav_warn_on_robust_oob = true |
spencer-lunarg | 006d50e | 2024-02-28 14:31:52 +0900 | [diff] [blame] | 81 | |
spencer-lunarg | 2cbfec7 | 2024-12-19 14:23:44 +0900 | [diff] [blame] | 82 | # Out of bounds buffer device addresses |
spencer-lunarg | 006d50e | 2024-02-28 14:31:52 +0900 | [diff] [blame] | 83 | # ===================== |
spencer-lunarg | 2cbfec7 | 2024-12-19 14:23:44 +0900 | [diff] [blame] | 84 | # Check for invalid access using buffer device address |
| 85 | #khronos_validation.gpuav_buffer_address_oob = true |
| 86 | |
| 87 | # Specify the maximum number of buffer device addresses in simultaneous use |
| 88 | # ===================== |
| 89 | # Specify the maximum number of buffer device addresses to allow GPU-AV allocate resources |
| 90 | #khronos_validation.gpuav_max_buffer_device_addresses = 10000 |
spencer-lunarg | 006d50e | 2024-02-28 14:31:52 +0900 | [diff] [blame] | 91 | |
| 92 | # Validate RayQuery SPIR-V Instructions |
| 93 | # ===================== |
spencer-lunarg | 006d50e | 2024-02-28 14:31:52 +0900 | [diff] [blame] | 94 | # Enable shader instrumentation on SPV_KHR_ray_query |
| 95 | #khronos_validation.gpuav_validate_ray_query = true |
arno-lunarg | aedaabb | 2023-11-01 19:04:58 +0900 | [diff] [blame] | 96 | |
spencer-lunarg | 46382d9 | 2024-10-15 10:58:54 -0400 | [diff] [blame] | 97 | # Post Process Descriptor Indexing |
| 98 | # ===================== |
spencer-lunarg | 46382d9 | 2024-10-15 10:58:54 -0400 | [diff] [blame] | 99 | # Track which descriptor indexes were used in shader to run normal validation afterwards |
| 100 | #khronos_validation.gpuav_post_process_descriptor_indexing = true |
| 101 | |
Tony Barbour | 1f9b32d | 2023-10-06 14:20:58 -0600 | [diff] [blame] | 102 | # Select which shaders to instrument by passing a VkValidationFeaturesEXT struct with GPU-AV enabled in the VkShaderModuleCreateInfo pNext |
| 103 | # ===================== |
Tony Barbour | 1f9b32d | 2023-10-06 14:20:58 -0600 | [diff] [blame] | 104 | # Enable selection of shaders to instrument |
spencer-lunarg | 2fab60a | 2024-04-12 16:38:38 +0900 | [diff] [blame] | 105 | #khronos_validation.gpuav_select_instrumented_shaders = false |
Tony Barbour | 1f9b32d | 2023-10-06 14:20:58 -0600 | [diff] [blame] | 106 | |
spencer-lunarg | 2cbfec7 | 2024-12-19 14:23:44 +0900 | [diff] [blame] | 107 | # Buffer content validation |
| 108 | # ===================== |
| 109 | # Validate buffers containing parameters used in indirect Vulkan commands, or used in copy commands |
| 110 | #khronos_validation.gpuav_buffers_validation = true |
| 111 | |
| 112 | # Indirect draws parameters |
| 113 | # ===================== |
| 114 | # Validate buffers containing draw parameters used in indirect draw commands |
| 115 | # Includes vkCmdDrawMeshTasks* calls as well |
| 116 | #khronos_validation.gpuav_indirect_draws_buffers = true |
| 117 | |
| 118 | # Indirect dispatch parameters |
| 119 | # ===================== |
| 120 | # Validate buffers containing dispatch parameters used in indirect dispatch commands |
| 121 | #khronos_validation.gpuav_indirect_dispatches_buffers = true |
| 122 | |
| 123 | # Indirect trace rays parameters |
| 124 | # ===================== |
| 125 | # Validate buffers containing ray tracing parameters used in indirect ray tracing commands |
| 126 | #khronos_validation.gpuav_indirect_trace_rays_buffers = true |
| 127 | |
| 128 | # Buffer copies |
| 129 | # ===================== |
| 130 | # Validate copies involving a VkBuffer. Right now only validates copy buffer to image |
| 131 | #khronos_validation.gpuav_buffer_copies = true |
| 132 | |
| 133 | # Index copies |
| 134 | # ===================== |
| 135 | # Validate that indexed draws do not fetch indices outside of the bounds of the index buffer |
| 136 | # Also validates that those indices are not out of the bounds of the fetched vertex buffers |
| 137 | #khronos_validation.gpuav_index_buffers = true |
| 138 | |
Tony-LunarG | 3b1c19f | 2022-05-02 14:11:06 -0600 | [diff] [blame] | 139 | # Use linear vma allocator for GPU-AV output buffers |
| 140 | # ===================== |
Tony-LunarG | 3b1c19f | 2022-05-02 14:11:06 -0600 | [diff] [blame] | 141 | # Use VMA linear memory allocations for GPU-AV output buffers |
spencer-lunarg | 2fab60a | 2024-04-12 16:38:38 +0900 | [diff] [blame] | 142 | #khronos_validation.gpuav_vma_linear_output = true |
| 143 | |
spencer-lunarg | 04898b1 | 2024-12-19 14:42:22 +0900 | [diff] [blame] | 144 | # Use GPU-AV to do Image Layout checks |
| 145 | # ===================== |
| 146 | # (Warning - still known to have false positives) |
| 147 | # Use GPU-AV to detect which descriptors where accessed. |
| 148 | # Then using post processing, check that the layout of each image subresource is correct whenever it is used by a command buffer |
| 149 | #khronos_validation.gpuav_image_layout = true |
| 150 | |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 151 | # Fine Grained Locking |
| 152 | # ===================== |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 153 | # Enable fine grained locking for Core Validation, which should improve |
Jeremy Gebben | 81d9b13 | 2022-05-04 08:54:37 -0600 | [diff] [blame] | 154 | # performance in multithreaded applications. |
| 155 | khronos_validation.fine_grained_locking = true |
David Pinedo | b03862d | 2022-02-17 10:53:55 -0700 | [diff] [blame] | 156 | |
spencer-lunarg | 9d42b67 | 2024-05-03 13:39:02 +0900 | [diff] [blame] | 157 | # Display Application Name |
| 158 | # ===================== |
spencer-lunarg | 9d42b67 | 2024-05-03 13:39:02 +0900 | [diff] [blame] | 159 | # Useful when running multiple instances to know which instance the message is from |
| 160 | #khronos_validation.message_format_display_application_name = false |
| 161 | |
juan-lunarg | 5cf6715 | 2023-05-22 14:34:22 -0600 | [diff] [blame] | 162 | # Best Practices |
| 163 | # ===================== |
| 164 | # Enable best practices layer |
| 165 | khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT |
| 166 | |
| 167 | # Best Practices with ARM best practices |
| 168 | # ===================== |
| 169 | # Enable best practices layer |
| 170 | khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ARM |
| 171 | |
| 172 | # Best Practices with AMD best practices |
| 173 | # ===================== |
| 174 | # Enable best practices layer |
| 175 | khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD |
| 176 | |
| 177 | # Best Practices with Imagination Tech best practices |
| 178 | # ===================== |
| 179 | # Enable best practices layer |
| 180 | khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_IMG |
| 181 | |
| 182 | # Best Practices with Nvidia Specific Check |
| 183 | # ===================== |
| 184 | # Enable best practices layer |
| 185 | khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA |
| 186 | |
| 187 | # Best Practices with ALL Vendor Specific Checks |
| 188 | # ===================== |
| 189 | # Enable best practices layer |
| 190 | khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ALL |