1{ 2 "file_format_version": "1.2.0", 3 "layer": { 4 "test_code_description": "This file is literally a copy of an installed Validation layer manifest file for linux. It was chosen because it contains a lot of complex json structures that aren't present in the test framework's generated json, so exercises cJSON better", 5 "name": "VK_LAYER_KHRONOS_validation", 6 "type": "GLOBAL", 7 "library_path": "libVkLayer_khronos_validation.so", 8 "api_version": "1.3.231", 9 "implementation_version": "1", 10 "description": "Khronos Validation Layer", 11 "introduction": "The main, comprehensive Khronos validation layer.\n\nVulkan is an Explicit API, enabling direct control over how GPUs actually work. By design, minimal error checking is done inside a Vulkan driver. Applications have full control and responsibility for correct operation. Any errors in how Vulkan is used can result in a crash. \n\nThe Khronos Valiation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.", 12 "platforms": [ 13 "WINDOWS", 14 "LINUX", 15 "ANDROID", 16 "MACOS" 17 ], 18 "url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/khronos_validation_layer.html", 19 "instance_extensions": [ 20 { 21 "name": "VK_EXT_debug_report", 22 "spec_version": "9" 23 }, 24 { 25 "name": "VK_EXT_debug_utils", 26 "spec_version": "1" 27 }, 28 { 29 "name": "VK_EXT_validation_features", 30 "spec_version": "2" 31 } 32 ], 33 "device_extensions": [ 34 { 35 "name": "VK_EXT_debug_marker", 36 "spec_version": "4", 37 "entrypoints": [ 38 "vkDebugMarkerSetObjectTagEXT", 39 "vkDebugMarkerSetObjectNameEXT", 40 "vkCmdDebugMarkerBeginEXT", 41 "vkCmdDebugMarkerEndEXT", 42 "vkCmdDebugMarkerInsertEXT" 43 ] 44 }, 45 { 46 "name": "VK_EXT_validation_cache", 47 "spec_version": "1", 48 "entrypoints": [ 49 "vkCreateValidationCacheEXT", 50 "vkDestroyValidationCacheEXT", 51 "vkGetValidationCacheDataEXT", 52 "vkMergeValidationCachesEXT" 53 ] 54 }, 55 { 56 "name": "VK_EXT_tooling_info", 57 "spec_version": "1", 58 "entrypoints": [ 59 "vkGetPhysicalDeviceToolPropertiesEXT" 60 ] 61 } 62 ], 63 "features": { 64 "presets": [ 65 { 66 "label": "Standard", 67 "description": "Good default validation setup that balance validation coverage and performance.", 68 "platforms": [ 69 "WINDOWS", 70 "LINUX", 71 "MACOS", 72 "ANDROID" 73 ], 74 "status": "STABLE", 75 "settings": [ 76 { 77 "key": "enables", 78 "value": [] 79 }, 80 { 81 "key": "disables", 82 "value": [ 83 "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT" 84 ] 85 } 86 ] 87 }, 88 { 89 "label": "Reduced-Overhead", 90 "description": "Disables some checks in the interest of better performance.", 91 "platforms": [ 92 "WINDOWS", 93 "LINUX", 94 "MACOS" 95 ], 96 "status": "STABLE", 97 "editor_state": "01110111111111111111111001111111111110", 98 "settings": [ 99 { 100 "key": "enables", 101 "value": [] 102 }, 103 { 104 "key": "disables", 105 "value": [ 106 "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", 107 "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 108 "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION", 109 "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE", 110 "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE", 111 "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION" 112 ] 113 } 114 ] 115 }, 116 { 117 "label": "Best Practices", 118 "description": "Provides warnings on valid API usage that is potential API misuse.", 119 "platforms": [ 120 "WINDOWS", 121 "LINUX", 122 "MACOS", 123 "ANDROID" 124 ], 125 "status": "STABLE", 126 "settings": [ 127 { 128 "key": "enables", 129 "value": [ 130 "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT" 131 ] 132 }, 133 { 134 "key": "disables", 135 "value": [ 136 "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", 137 "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 138 "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", 139 "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", 140 "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" 141 ] 142 } 143 ] 144 }, 145 { 146 "label": "Synchronization", 147 "description": "Identify resource access conflicts due to missing or incorrect synchronization operations between actions reading or writing the same regions of memory.", 148 "platforms": [ 149 "WINDOWS", 150 "LINUX", 151 "MACOS", 152 "ANDROID" 153 ], 154 "status": "STABLE", 155 "settings": [ 156 { 157 "key": "enables", 158 "value": [ 159 "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT" 160 ] 161 }, 162 { 163 "key": "disables", 164 "value": [ 165 "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 166 "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", 167 "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", 168 "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" 169 ] 170 } 171 ] 172 }, 173 { 174 "label": "GPU-Assisted", 175 "description": "Check for API usage errors at shader execution time.", 176 "platforms": [ 177 "WINDOWS", 178 "LINUX" 179 ], 180 "status": "STABLE", 181 "settings": [ 182 { 183 "key": "enables", 184 "value": [ 185 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", 186 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT" 187 ] 188 }, 189 { 190 "key": "disables", 191 "value": [ 192 "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", 193 "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 194 "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", 195 "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", 196 "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" 197 ] 198 } 199 ] 200 }, 201 { 202 "label": "Debug Printf", 203 "description": "Debug shader code by \"printing\" any values of interest to the debug callback or stdout.", 204 "platforms": [ 205 "WINDOWS", 206 "LINUX" 207 ], 208 "status": "STABLE", 209 "settings": [ 210 { 211 "key": "enables", 212 "value": [ 213 "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" 214 ] 215 }, 216 { 217 "key": "disables", 218 "value": [ 219 "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", 220 "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 221 "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", 222 "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", 223 "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT" 224 ] 225 }, 226 { 227 "key": "enable_message_limit", 228 "value": false 229 } 230 ] 231 } 232 ], 233 "settings": [ 234 { 235 "key": "debug_action", 236 "label": "Debug Action", 237 "description": "Specifies what action is to be taken when a layer reports information", 238 "type": "FLAGS", 239 "flags": [ 240 { 241 "key": "VK_DBG_LAYER_ACTION_LOG_MSG", 242 "label": "Log Message", 243 "description": "Log a txt message to stdout or to a log filename.", 244 "settings": [ 245 { 246 "key": "log_filename", 247 "label": "Log Filename", 248 "description": "Specifies the output filename", 249 "type": "SAVE_FILE", 250 "default": "stdout", 251 "dependence": { 252 "mode": "ALL", 253 "settings": [ 254 { 255 "key": "debug_action", 256 "value": [ 257 "VK_DBG_LAYER_ACTION_LOG_MSG" 258 ] 259 } 260 ] 261 } 262 } 263 ] 264 }, 265 { 266 "key": "VK_DBG_LAYER_ACTION_CALLBACK", 267 "label": "Callback", 268 "description": "Call user defined callback function(s) that have been registered via the VK_EXT_debug_report extension. Since application must register callback, this is a NOOP for the settings file.", 269 "view": "HIDDEN" 270 }, 271 { 272 "key": "VK_DBG_LAYER_ACTION_DEBUG_OUTPUT", 273 "label": "Debug Output", 274 "description": "Log a txt message using the Windows OutputDebugString function.", 275 "platforms": [ 276 "WINDOWS" 277 ] 278 }, 279 { 280 "key": "VK_DBG_LAYER_ACTION_BREAK", 281 "label": "Break", 282 "description": "Trigger a breakpoint if a debugger is in use." 283 } 284 ], 285 "default": [ 286 "VK_DBG_LAYER_ACTION_LOG_MSG" 287 ] 288 }, 289 { 290 "key": "report_flags", 291 "label": "Message Severity", 292 "description": "Comma-delineated list of options specifying the types of messages to be reported", 293 "type": "FLAGS", 294 "flags": [ 295 { 296 "key": "info", 297 "label": "Info", 298 "description": "Report informational messages." 299 }, 300 { 301 "key": "warn", 302 "label": "Warning", 303 "description": "Report warnings from using the API in a manner which may lead to undefined behavior or to warn the user of common trouble spots. A warning does NOT necessarily signify illegal application behavior." 304 }, 305 { 306 "key": "perf", 307 "label": "Performance", 308 "description": "Report usage of the API that may cause suboptimal performance." 309 }, 310 { 311 "key": "error", 312 "label": "Error", 313 "description": "Report errors in API usage." 314 }, 315 { 316 "key": "debug", 317 "label": "Debug", 318 "description": "For layer development. Report messages for debugging layer behavior.", 319 "view": "HIDDEN" 320 } 321 ], 322 "default": [ 323 "error" 324 ] 325 }, 326 { 327 "key": "enable_message_limit", 328 "label": "Limit Duplicated Messages", 329 "description": "Enable limiting of duplicate messages.", 330 "type": "BOOL", 331 "default": true, 332 "settings": [ 333 { 334 "key": "duplicate_message_limit", 335 "env": "VK_LAYER_DUPLICATE_MESSAGE_LIMIT", 336 "label": "Max Duplicated Messages", 337 "description": "Maximum number of times any single validation message should be reported.", 338 "type": "INT", 339 "default": 10, 340 "range": { 341 "min": 1 342 }, 343 "dependence": { 344 "mode": "ALL", 345 "settings": [ 346 { 347 "key": "enable_message_limit", 348 "value": true 349 } 350 ] 351 } 352 } 353 ] 354 }, 355 { 356 "key": "message_id_filter", 357 "label": "Mute Message VUIDs", 358 "description": "List of VUIDs and VUID identifers which are to be IGNORED by the validation layer", 359 "type": "LIST", 360 "env": "VK_LAYER_MESSAGE_ID_FILTER", 361 "default": [] 362 }, 363 { 364 "key": "disables", 365 "label": "Disables", 366 "description": "Specify areas of validation to be disabled", 367 "type": "FLAGS", 368 "env": "VK_LAYER_DISABLES", 369 "flags": [ 370 { 371 "key": "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", 372 "label": "Thread Safety", 373 "description": "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." 374 }, 375 { 376 "key": "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", 377 "label": "Stateless Parameter", 378 "description": "Stateless parameter checks. This may not always be necessary late in a development cycle." 379 }, 380 { 381 "key": "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", 382 "label": "Object Lifetime", 383 "description": "Object tracking checks. This may not always be necessary late in a development cycle." 384 }, 385 { 386 "key": "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT", 387 "label": "Core", 388 "description": "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." 389 }, 390 { 391 "key": "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 392 "label": "Handle Wrapping", 393 "description": "Handle wrapping checks. Disable this feature if you are exerience crashes when creating new extensions or developing new Vulkan objects/structures." 394 }, 395 { 396 "key": "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT", 397 "label": "Shader Validation", 398 "description": "Shader checks. These checks can be CPU intensive during application start up, especially if Shader Validation Caching is also disabled.", 399 "view": "ADVANCED" 400 }, 401 { 402 "key": "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE", 403 "label": "Command Buffer State", 404 "description": "Check that all Vulkan objects used by a command buffer have not been destroyed. These checks can be CPU intensive for some applications.", 405 "view": "ADVANCED" 406 }, 407 { 408 "key": "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION", 409 "label": "Image Layout", 410 "description": "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.", 411 "view": "ADVANCED" 412 }, 413 { 414 "key": "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION", 415 "label": "Query", 416 "description": "Checks for commands that use VkQueryPool objects.", 417 "view": "ADVANCED" 418 }, 419 { 420 "key": "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE", 421 "label": "Object in Use", 422 "description": "Check that Vulkan objects are not in use by a command buffer when they are destroyed.", 423 "view": "ADVANCED" 424 }, 425 { 426 "key": "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT", 427 "label": "Shader Validation Caching", 428 "description": "Disable caching of shader validation results.", 429 "view": "ADVANCED" 430 } 431 ], 432 "default": [ 433 "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT" 434 ] 435 }, 436 { 437 "key": "enables", 438 "label": "Enables", 439 "description": "Setting an option here will enable specialized areas of validation", 440 "type": "FLAGS", 441 "env": "VK_LAYER_ENABLES", 442 "flags": [ 443 { 444 "key": "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT", 445 "label": "Synchronization", 446 "description": "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.", 447 "url": "${LUNARG_SDK}/synchronization_usage.html", 448 "status": "STABLE", 449 "platforms": [ 450 "WINDOWS", 451 "LINUX", 452 "MACOS", 453 "ANDROID" 454 ] 455 }, 456 { 457 "key": "VALIDATION_CHECK_ENABLE_SYNCHRONIZATION_VALIDATION_QUEUE_SUBMIT", 458 "label": "QueueSubmit Synchronization Validation", 459 "description": "Enable synchronization validation between submitted command buffers when Synchronization Validation is enabled.", 460 "status": "ALPHA" 461 }, 462 { 463 "key": "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT", 464 "label": "Debug Printf", 465 "description": "Enables processing of debug printf instructions in shaders and sending debug strings to the debug callback.", 466 "url": "${LUNARG_SDK}/debug_printf.html", 467 "status": "STABLE", 468 "platforms": [ 469 "WINDOWS", 470 "LINUX" 471 ], 472 "settings": [ 473 { 474 "key": "printf_to_stdout", 475 "label": "Redirect Printf messages to stdout", 476 "description": "Enable redirection of Debug Printf messages from the debug callback to stdout", 477 "type": "BOOL", 478 "default": true, 479 "platforms": [ 480 "WINDOWS", 481 "LINUX" 482 ], 483 "dependence": { 484 "mode": "ANY", 485 "settings": [ 486 { 487 "key": "enables", 488 "value": [ 489 "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" 490 ] 491 } 492 ] 493 } 494 }, 495 { 496 "key": "printf_verbose", 497 "label": "Printf verbose", 498 "description": "Set the verbosity of debug printf messages", 499 "type": "BOOL", 500 "default": false, 501 "platforms": [ 502 "WINDOWS", 503 "LINUX" 504 ], 505 "dependence": { 506 "mode": "ANY", 507 "settings": [ 508 { 509 "key": "enables", 510 "value": [ 511 "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" 512 ] 513 } 514 ] 515 } 516 }, 517 { 518 "key": "printf_buffer_size", 519 "label": "Printf buffer size", 520 "description": "Set the size in bytes of the buffer used by debug printf", 521 "type": "INT", 522 "default": 1024, 523 "range": { 524 "min": 128, 525 "max": 1048576 526 }, 527 "unit": "bytes", 528 "platforms": [ 529 "WINDOWS", 530 "LINUX" 531 ], 532 "dependence": { 533 "mode": "ANY", 534 "settings": [ 535 { 536 "key": "enables", 537 "value": [ 538 "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" 539 ] 540 } 541 ] 542 } 543 } 544 ] 545 }, 546 { 547 "key": "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", 548 "label": "GPU-Assisted", 549 "description": "Check for API usage errors at shader execution time.", 550 "url": "${LUNARG_SDK}/gpu_validation.html", 551 "platforms": [ 552 "WINDOWS", 553 "LINUX" 554 ], 555 "settings": [ 556 { 557 "key": "gpuav_descriptor_indexing", 558 "label": "Check descriptor indexing accesses", 559 "description": "Enable descriptor indexing access checking", 560 "type": "BOOL", 561 "default": true, 562 "platforms": [ 563 "WINDOWS", 564 "LINUX" 565 ], 566 "dependence": { 567 "mode": "ANY", 568 "settings": [ 569 { 570 "key": "enables", 571 "value": [ 572 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" 573 ] 574 } 575 ] 576 } 577 }, 578 { 579 "key": "gpuav_buffer_oob", 580 "label": "Check Out of Bounds ", 581 "description": "Enable buffer out of bounds checking", 582 "type": "BOOL", 583 "default": true, 584 "platforms": [ 585 "WINDOWS", 586 "LINUX" 587 ], 588 "dependence": { 589 "mode": "ANY", 590 "settings": [ 591 { 592 "key": "enables", 593 "value": [ 594 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" 595 ] 596 } 597 ] 598 } 599 }, 600 { 601 "key": "validate_draw_indirect", 602 "label": "Check Draw Indirect Count Buffers and firstInstance values", 603 "description": "Enable draw indirect checking", 604 "type": "BOOL", 605 "default": true, 606 "platforms": [ 607 "WINDOWS", 608 "LINUX" 609 ], 610 "dependence": { 611 "mode": "ANY", 612 "settings": [ 613 { 614 "key": "enables", 615 "value": [ 616 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" 617 ] 618 } 619 ] 620 } 621 }, 622 { 623 "key": "validate_dispatch_indirect", 624 "label": "Check Dispatch Indirect group count values", 625 "description": "Enable dispatch indirect checking", 626 "type": "BOOL", 627 "default": true, 628 "platforms": [ 629 "WINDOWS", 630 "LINUX" 631 ], 632 "dependence": { 633 "mode": "ANY", 634 "settings": [ 635 { 636 "key": "enables", 637 "value": [ 638 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" 639 ] 640 } 641 ] 642 } 643 }, 644 { 645 "key": "vma_linear_output", 646 "label": "Use VMA linear memory allocations for GPU-AV output buffers", 647 "description": "Use linear allocation algorithm", 648 "type": "BOOL", 649 "default": true, 650 "platforms": [ 651 "WINDOWS", 652 "LINUX" 653 ], 654 "dependence": { 655 "mode": "ANY", 656 "settings": [ 657 { 658 "key": "enables", 659 "value": [ 660 "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" 661 ] 662 } 663 ] 664 } 665 } 666 ] 667 }, 668 { 669 "key": "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT", 670 "label": "Reserve Descriptor Set Binding Slot", 671 "description": "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.", 672 "platforms": [ 673 "WINDOWS", 674 "LINUX" 675 ] 676 }, 677 { 678 "key": "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT", 679 "label": "Best Practices", 680 "description": "Activating this feature enables the output of warnings related to common misuse of the API, but which are not explicitly prohibited by the specification.", 681 "url": "${LUNARG_SDK}/best_practices.html", 682 "platforms": [ 683 "WINDOWS", 684 "LINUX", 685 "MACOS", 686 "ANDROID" 687 ] 688 }, 689 { 690 "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ARM", 691 "label": "ARM-specific best practices", 692 "description": "Activating this feature enables the output of warnings related to ARM-specific misuse of the API, but which are not explicitly prohibited by the specification.", 693 "platforms": [ 694 "WINDOWS", 695 "LINUX", 696 "MACOS", 697 "ANDROID" 698 ] 699 }, 700 { 701 "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD", 702 "label": "AMD-specific best practices", 703 "description": "Adds check for spec-conforming but non-ideal code on AMD GPUs.", 704 "platforms": [ 705 "WINDOWS", 706 "LINUX", 707 "MACOS" 708 ] 709 }, 710 { 711 "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA", 712 "label": "NVIDIA-specific best practices", 713 "description": "Activating this feature enables the output of warnings related to NVIDIA-specific misuse of the API, but which are not explicitly prohibited by the specification.", 714 "platforms": [ 715 "WINDOWS", 716 "LINUX", 717 "ANDROID" 718 ] 719 } 720 ], 721 "default": [] 722 }, 723 { 724 "key": "fine_grained_locking", 725 "env": "VK_LAYER_FINE_GRAINED_LOCKING", 726 "label": "Fine Grained Locking", 727 "description": "Enable fine grained locking for Core Validation, which should improve performance in multithreaded applications. This setting allows the optimization to be disabled for debugging.", 728 "status": "STABLE", 729 "type": "BOOL", 730 "default": true, 731 "platforms": [ 732 "WINDOWS", 733 "LINUX", 734 "MACOS", 735 "ANDROID" 736 ] 737 } 738 ] 739 } 740 } 741} 742