# 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>.gpuav_validate_indirect_buffer
# Enable draw/dispatch/traceRays indirect checking
#khronos_validation.gpuav_validate_indirect_buffer = true

# Check copy commands
# =====================
# <LayerIdentifier>.gpuav_validate_copies
# Enable copy commands checking
#khronos_validation.gpuav_validate_copies = true

# Validate RayQuery SPIR-V Instructions
# =====================
# <LayerIdentifier>.gpuav_validate_ray_query
# Enable shader instrumentation on SPV_KHR_ray_query
#khronos_validation.gpuav_validate_ray_query = true

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

# Select which shaders to instrument by passing a VkValidationFeaturesEXT struct with GPU-AV enabled in the VkShaderModuleCreateInfo pNext
# =====================
# <LayerIdentifier>.gpuav_select_instrumented_shaders
# Enable selection of shaders to instrument
#khronos_validation.gpuav_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.gpuav_vma_linear_output = true

# Generate warning on out of bounds accesses even if buffer robustness is enabled
# =====================
# <LayerIdentifier>.gpuav_warn_on_robust_oob
# Warn on out of bounds accesses even if robustness is enabled
#khronos_validation.gpuav_warn_on_robust_oob = 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

# Display Application Name
# =====================
# <LayerIdentifier>.message_format_display_application_name
# Useful when running multiple instances to know which instance the message is from
#khronos_validation.message_format_display_application_name = false

# 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
