# 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_KHRONOS_validation

# Debug Action
# =====================
# <LayerIdentifier>.debug_action
# Specifies what action is to be taken when a layer reports information
khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG

# Log Filename
# =====================
# <LayerIdentifier>.log_filename
# Specifies the output filename
khronos_validation.log_filename = stdout

# Message Severity
# =====================
# <LayerIdentifier>.report_flags
# Comma-delineated list of options specifying the types of messages to be
# reported
khronos_validation.report_flags = error

# Limit Duplicated Messages
# =====================
# <LayerIdentifier>.enable_message_limit
# Enable limiting of duplicate messages.
khronos_validation.enable_message_limit = true

# Max Duplicated Messages
# =====================
# <LayerIdentifier>.duplicate_message_limit
# Maximum number of times any single validation message should be reported.
khronos_validation.duplicate_message_limit = 10

# Mute Message VUIDs
# =====================
# <LayerIdentifier>.message_id_filter
# List of VUIDs and VUID identifers which are to be IGNORED by the validation
# layer
khronos_validation.message_id_filter =

# Disables
# =====================
# <LayerIdentifier>.disables
# Specify areas of validation to be disabled
khronos_validation.disables = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT

# Enables
# =====================
# <LayerIdentifier>.enables
# Setting an option here will enable specialized areas of validation
khronos_validation.enables =

# Redirect Printf messages to stdout
# =====================
# <LayerIdentifier>.printf_to_stdout
# Enable redirection of Debug Printf messages from the debug callback to stdout
#khronos_validation.printf_to_stdout = true

# Printf verbose
# =====================
# <LayerIdentifier>.printf_verbose
# Set the verbosity of debug printf messages
#khronos_validation.printf_verbose = false

# Printf buffer size
# =====================
# <LayerIdentifier>.printf_buffer_size
# Set the size in bytes of the buffer used by debug printf
#khronos_validation.printf_buffer_size = 1024

# Check descriptor indexing accesses
# =====================
# <LayerIdentifier>.gpuav_descriptor_checks
# Enable descriptor indexing and buffer out of bounds checking
#khronos_validation.gpuav_descriptor_checks = true

# Check Draw/Dispatch/TraceRays Indirect Buffers
# =====================
# <LayerIdentifier>.validate_indirect_buffer
# Enable draw/dispatch/traceRays indirect checking
#khronos_validation.validate_indirect_buffer = true

# Cache instrumented shaders rather than instrumenting them on every run
# =====================
# <LayerIdentifier>.use_instrumented_shader_cache
# Enable instrumented shader caching
#khronos_validation.use_instrumented_shader_cache = true

# Select which shaders to instrument by passing a VkValidationFeaturesEXT struct with GPU-AV enabled in the VkShaderModuleCreateInfo pNext
# =====================
# <LayerIdentifier>.
# Enable selection of shaders to instrument
#khronos_validation.select_instrumented_shaders = false

# Use linear vma allocator for GPU-AV output buffers
# =====================
# <LayerIdentifier>.gpuav_vma_linear_output
# Use VMA linear memory allocations for GPU-AV output buffers
#khronos_validation.vma_linear_output = true

# Specify the maximum number of buffer device addresses in simultaneous use
# =====================
# <LayerIdentifier>.gpuav_max_buffer_device_addresses
# Specify the maximum number of buffer device addresses to allow GPU-AV allocate resources
#khronos_validation.gpuav_max_buffer_device_addresses = 10000

# Fine Grained Locking
# =====================
# <LayerIdentifier>.fine_grained_locking
# Enable fine grained locking for Core Validation, which should improve
# performance in multithreaded applications.
khronos_validation.fine_grained_locking = true

# Best Practices
# =====================
# Enable best practices layer
khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT

# Best Practices with ARM best practices
# =====================
# Enable best practices layer
khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ARM

# Best Practices with AMD best practices
# =====================
# Enable best practices layer
khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD

# Best Practices with Imagination Tech best practices
# =====================
# Enable best practices layer
khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_IMG

# Best Practices with Nvidia Specific Check
# =====================
# Enable best practices layer
khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA

# Best Practices with ALL Vendor Specific Checks
# =====================
# Enable best practices layer
khronos_validation.enables=VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ALL
