-
Notifications
You must be signed in to change notification settings - Fork 419
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CI: vulkan tests have synchronization validation enabled
- Loading branch information
Showing
2 changed files
with
325 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,324 @@ | ||
|
||
# VK_LAYER_KHRONOS_validation | ||
|
||
# Fine Grained Locking | ||
# ===================== | ||
# <LayerIdentifier>.fine_grained_locking | ||
# Enable fine grained locking for Core Validation, which should improve | ||
# performance in multithreaded applications. This setting allows the | ||
# optimization to be disabled for debugging. | ||
khronos_validation.fine_grained_locking = true | ||
|
||
# Core | ||
# ===================== | ||
# <LayerIdentifier>.validate_core | ||
# The main, heavy-duty validation checks. This may be valuable early in the | ||
# development cycle to reduce validation output while correcting | ||
# parameter/object usage errors. | ||
khronos_validation.validate_core = true | ||
|
||
# Image Layout | ||
# ===================== | ||
# <LayerIdentifier>.check_image_layout | ||
# Check that the layout of each image subresource is correct whenever it is used | ||
# by a command buffer. These checks are very CPU intensive for some | ||
# applications. | ||
khronos_validation.check_image_layout = true | ||
|
||
# Command Buffer State | ||
# ===================== | ||
# <LayerIdentifier>.check_command_buffer | ||
# Check that all Vulkan objects used by a command buffer have not been | ||
# destroyed. These checks can be CPU intensive for some applications. | ||
khronos_validation.check_command_buffer = true | ||
|
||
# Object in Use | ||
# ===================== | ||
# <LayerIdentifier>.check_object_in_use | ||
# Check that Vulkan objects are not in use by a command buffer when they are | ||
# destroyed. | ||
khronos_validation.check_object_in_use = true | ||
|
||
# Query | ||
# ===================== | ||
# <LayerIdentifier>.check_query | ||
# Checks for commands that use VkQueryPool objects. | ||
khronos_validation.check_query = true | ||
|
||
# Shader | ||
# ===================== | ||
# <LayerIdentifier>.check_shaders | ||
# Shader checks. These checks can be CPU intensive during application start up, | ||
# especially if Shader Validation Caching is also disabled. | ||
khronos_validation.check_shaders = true | ||
|
||
# Caching | ||
# ===================== | ||
# <LayerIdentifier>.check_shaders_caching | ||
# Enable caching of shader validation results. | ||
khronos_validation.check_shaders_caching = true | ||
|
||
# Handle Wrapping | ||
# ===================== | ||
# <LayerIdentifier>.unique_handles | ||
# Handle wrapping checks. Disable this feature if you are exerience crashes when | ||
# creating new extensions or developing new Vulkan objects/structures. | ||
khronos_validation.unique_handles = true | ||
|
||
# Object Lifetime | ||
# ===================== | ||
# <LayerIdentifier>.object_lifetime | ||
# Object tracking checks. This may not always be necessary late in a development | ||
# cycle. | ||
khronos_validation.object_lifetime = true | ||
|
||
# Stateless Parameter | ||
# ===================== | ||
# <LayerIdentifier>.stateless_param | ||
# Stateless parameter checks. This may not always be necessary late in a | ||
# development cycle. | ||
khronos_validation.stateless_param = true | ||
|
||
# Thread Safety | ||
# ===================== | ||
# <LayerIdentifier>.thread_safety | ||
# Thread checks. In order to not degrade performance, it might be best to run | ||
# your program with thread-checking disabled most of the time, enabling it | ||
# occasionally for a quick sanity check or when debugging difficult application | ||
# behaviors. | ||
khronos_validation.thread_safety = true | ||
|
||
# Synchronization | ||
# ===================== | ||
# <LayerIdentifier>.validate_sync | ||
# Enable synchronization validation during command buffers recording. This | ||
# feature reports resource access conflicts due to missing or incorrect | ||
# synchronization operations between actions (Draw, Copy, Dispatch, Blit) | ||
# reading or writing the same regions of memory. | ||
khronos_validation.validate_sync = true | ||
|
||
# QueueSubmit Synchronization Validation | ||
# ===================== | ||
# <LayerIdentifier>.sync_queue_submit | ||
# Enable synchronization validation between submitted command buffers when | ||
# Synchronization Validation is enabled. This option will increase the | ||
# synchronization performance cost. | ||
khronos_validation.sync_queue_submit = true | ||
|
||
# GPU Base | ||
# ===================== | ||
# <LayerIdentifier>.validate_gpu_based | ||
# Setting an option here will enable specialized areas of validation | ||
khronos_validation.validate_gpu_based = GPU_BASED_NONE | ||
|
||
# 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 | ||
|
||
# Shader instrumentation | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_shader_instrumentation | ||
# Instrument shaders to validate descriptors, descriptor indexing, buffer device | ||
# addresses and ray queries. Warning: will considerably slow down shader | ||
# executions. | ||
#khronos_validation.gpuav_shader_instrumentation = true | ||
|
||
# Descriptors indexing | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_descriptor_checks | ||
# Enable descriptors and buffer out of bounds validation when using descriptor | ||
# indexing | ||
khronos_validation.gpuav_descriptor_checks = 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 | ||
|
||
# Out of bounds buffer device addresses | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_buffer_address_oob | ||
# Check for | ||
khronos_validation.gpuav_buffer_address_oob = true | ||
|
||
# Maximum number of buffer device addresses in use at one time | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_max_buffer_device_addresses | ||
|
||
khronos_validation.gpuav_max_buffer_device_addresses = 10000 | ||
|
||
# RayQuery SPIR-V Instructions | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_validate_ray_query | ||
# Enable shader instrumentation on OpRayQueryInitializeKHR | ||
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 | ||
|
||
# Enable instrumenting shaders selectively | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_select_instrumented_shaders | ||
# Select which shaders to instrument passing a VkValidationFeaturesEXT struct | ||
# with GPU-AV enabled in the VkShaderModuleCreateInfo pNext | ||
khronos_validation.gpuav_select_instrumented_shaders = false | ||
|
||
# Buffer content validation | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_buffers_validation | ||
# Validate buffers containing parameters used in indirect Vulkan commands, or | ||
# used in copy commands | ||
#khronos_validation.gpuav_buffers_validation = true | ||
|
||
# Indirect draws parameters | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_indirect_draws_buffers | ||
# Validate buffers containing draw parameters used in indirect draw commands | ||
khronos_validation.gpuav_indirect_draws_buffers = true | ||
|
||
# Indirect dispatches parameters | ||
# ===================== | ||
# <LayerIdentifier>.indirect_dispatches | ||
# Validate buffers containing dispatch parameters used in indirect dispatch | ||
# commands | ||
khronos_validation.indirect_dispatches = true | ||
|
||
# Indirect trace rays parameters | ||
# ===================== | ||
# <LayerIdentifier>.indirect_trace_rays | ||
# Validate buffers containing ray tracing parameters used in indirect ray | ||
# tracing commands | ||
khronos_validation.indirect_trace_rays = true | ||
|
||
# Buffer copies | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_buffer_copies | ||
# Validate copies involving a VkBuffer. Right now only validates copy buffer to | ||
# image. | ||
khronos_validation.gpuav_buffer_copies = true | ||
|
||
# Reserve Descriptor Set Binding Slot | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_reserve_binding_slot | ||
# Specifies that the validation layers reserve a descriptor set binding slot for | ||
# their own use. The layer reports a value for | ||
# VkPhysicalDeviceLimits::maxBoundDescriptorSets that is one less than the value | ||
# reported by the device. If the device supports the binding of only one | ||
# descriptor set, the validation layer does not perform GPU-assisted validation. | ||
#khronos_validation.gpuav_reserve_binding_slot = true | ||
|
||
# Linear Memory Allocation Mode | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_vma_linear_output | ||
# Use VMA linear memory allocations for GPU-AV output buffers instead of finding | ||
# best place for new allocations among free regions to optimize memory usage. | ||
# Enabling this setting reduces performance cost but disabling this method | ||
# minimizes memory usage. | ||
#khronos_validation.gpuav_vma_linear_output = true | ||
|
||
# Validate instrumented shaders | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_debug_validate_instrumented_shaders | ||
# Run spirv-val after doing shader instrumentation | ||
#khronos_validation.gpuav_debug_validate_instrumented_shaders = false | ||
|
||
# Dump instrumented shaders | ||
# ===================== | ||
# <LayerIdentifier>.gpuav_debug_dump_instrumented_shaders | ||
# Will dump the instrumented shaders (before and after) to working directory | ||
#khronos_validation.gpuav_debug_dump_instrumented_shaders = false | ||
|
||
# Best Practices | ||
# ===================== | ||
# <LayerIdentifier>.validate_best_practices | ||
# Outputs warnings related to common misuse of the API, but which are not | ||
# explicitly prohibited by the specification. | ||
khronos_validation.validate_best_practices = true | ||
|
||
# ARM-specific best practices | ||
# ===================== | ||
# <LayerIdentifier>.validate_best_practices_arm | ||
# Outputs warnings for spec-conforming but non-ideal code on ARM GPUs. | ||
khronos_validation.validate_best_practices_arm = false | ||
|
||
# AMD-specific best practices | ||
# ===================== | ||
# <LayerIdentifier>.validate_best_practices_amd | ||
# Outputs warnings for spec-conforming but non-ideal code on AMD GPUs. | ||
khronos_validation.validate_best_practices_amd = false | ||
|
||
# IMG-specific best practices | ||
# ===================== | ||
# <LayerIdentifier>.validate_best_practices_img | ||
# Outputs warnings for spec-conforming but non-ideal code on Imagination GPUs. | ||
khronos_validation.validate_best_practices_img = false | ||
|
||
# NVIDIA-specific best practices | ||
# ===================== | ||
# <LayerIdentifier>.validate_best_practices_nvidia | ||
# Outputs warnings for spec-conforming but non-ideal code on NVIDIA GPUs. | ||
khronos_validation.validate_best_practices_nvidia = false | ||
|
||
# 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 = false | ||
|
||
# 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 = | ||
|
||
# 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 | ||
|