{
    "file_format_version": "1.2.0",
    "layer": {
        "name": "VK_LAYER_KHRONOS_validation",
        "type": "GLOBAL",
        "library_path": "@JSON_LIBRARY_PATH@",
        "api_version": "1.3.243",
        "implementation_version": "1",
        "description": "Khronos Validation Layer",
        "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.",
        "platforms": [
            "WINDOWS",
            "LINUX",
            "ANDROID",
            "MACOS"
        ],
        "url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/khronos_validation_layer.html",
        "instance_extensions": [
            {
                "name": "VK_EXT_debug_report",
                "spec_version": "9"
            },
            {
                "name": "VK_EXT_debug_utils",
                "spec_version": "1"
            },
            {
                "name": "VK_EXT_validation_features",
                "spec_version": "2"
            }
        ],
        "device_extensions": [
            {
                "name": "VK_EXT_debug_marker",
                "spec_version": "4",
                "entrypoints": [
                    "vkDebugMarkerSetObjectTagEXT",
                    "vkDebugMarkerSetObjectNameEXT",
                    "vkCmdDebugMarkerBeginEXT",
                    "vkCmdDebugMarkerEndEXT",
                    "vkCmdDebugMarkerInsertEXT"
                ]
            },
            {
                "name": "VK_EXT_validation_cache",
                "spec_version": "1",
                "entrypoints": [
                    "vkCreateValidationCacheEXT",
                    "vkDestroyValidationCacheEXT",
                    "vkGetValidationCacheDataEXT",
                    "vkMergeValidationCachesEXT"
                ]
            },
            {
                "name": "VK_EXT_tooling_info",
                "spec_version": "1",
                "entrypoints": [
                    "vkGetPhysicalDeviceToolPropertiesEXT"
                ]
            }
        ],
        "features": {
            "presets": [
                {
                    "label": "Standard",
                    "description": "Good default validation setup that balance validation coverage and performance.",
                    "platforms": [
                        "WINDOWS",
                        "LINUX",
                        "MACOS",
                        "ANDROID"
                    ],
                    "status": "STABLE",
                    "settings": [
                        {
                            "key": "enables",
                            "value": []
                        },
                        {
                            "key": "disables",
                            "value": [
                                "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT"
                            ]
                        }
                    ]
                },
                {
                    "label": "Reduced-Overhead",
                    "description": "Disables some checks in the interest of better performance.",
                    "platforms": [
                        "WINDOWS",
                        "LINUX",
                        "MACOS"
                    ],
                    "status": "STABLE",
                    "editor_state": "01110111111111111111111001111111111110",
                    "settings": [
                        {
                            "key": "enables",
                            "value": []
                        },
                        {
                            "key": "disables",
                            "value": [
                                "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
                                "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION",
                                "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE",
                                "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE",
                                "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION"
                            ]
                        }
                    ]
                },
                {
                    "label": "Best Practices",
                    "description": "Provides warnings on valid API usage that is potential API misuse.",
                    "platforms": [
                        "WINDOWS",
                        "LINUX",
                        "MACOS",
                        "ANDROID"
                    ],
                    "status": "STABLE",
                    "settings": [
                        {
                            "key": "enables",
                            "value": [
                                "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT"
                            ]
                        },
                        {
                            "key": "disables",
                            "value": [
                                "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"
                            ]
                        }
                    ]
                },
                {
                    "label": "Synchronization",
                    "description": "Identify resource access conflicts due to missing or incorrect synchronization operations between actions reading or writing the same regions of memory.",
                    "platforms": [
                        "WINDOWS",
                        "LINUX",
                        "MACOS",
                        "ANDROID"
                    ],
                    "status": "STABLE",
                    "settings": [
                        {
                            "key": "enables",
                            "value": [
                                "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT"
                            ]
                        },
                        {
                            "key": "disables",
                            "value": [
                                "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"
                            ]
                        }
                    ]
                },
                {
                    "label": "GPU-Assisted",
                    "description": "Check for API usage errors at shader execution time.",
                    "platforms": [
                        "WINDOWS",
                        "LINUX"
                    ],
                    "status": "STABLE",
                    "settings": [
                        {
                            "key": "enables",
                            "value": [
                                "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT",
                                "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"
                            ]
                        },
                        {
                            "key": "disables",
                            "value": [
                                "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"
                            ]
                        }
                    ]
                },
                {
                    "label": "Debug Printf",
                    "description": "Debug shader code by \"printing\" any values of interest to the debug callback or stdout.",
                    "platforms": [
                        "WINDOWS",
                        "LINUX"
                    ],
                    "status": "STABLE",
                    "settings": [
                        {
                            "key": "enables",
                            "value": [
                                "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"
                            ]
                        },
                        {
                            "key": "disables",
                            "value": [
                                "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT",
                                "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"
                            ]
                        },
                        {
                            "key": "enable_message_limit",
                            "value": false
                        }
                    ]
                }
            ],
            "settings": [
                {
                    "key": "debug_action",
                    "label": "Debug Action",
                    "description": "Specifies what action is to be taken when a layer reports information",
                    "type": "FLAGS",
                    "flags": [
                        {
                            "key": "VK_DBG_LAYER_ACTION_LOG_MSG",
                            "label": "Log Message",
                            "description": "Log a txt message to stdout or to a log filename.",
                            "settings": [
                                {
                                    "key": "log_filename",
                                    "label": "Log Filename",
                                    "description": "Specifies the output filename",
                                    "type": "SAVE_FILE",
                                    "default": "stdout",
                                    "dependence": {
                                        "mode": "ALL",
                                        "settings": [
                                            {
                                                "key": "debug_action",
                                                "value": [
                                                    "VK_DBG_LAYER_ACTION_LOG_MSG"
                                                ]
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        {
                            "key": "VK_DBG_LAYER_ACTION_CALLBACK",
                            "label": "Callback",
                            "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.",
                            "view": "HIDDEN"
                        },
                        {
                            "key": "VK_DBG_LAYER_ACTION_DEBUG_OUTPUT",
                            "label": "Debug Output",
                            "description": "Log a txt message using the Windows OutputDebugString function.",
                            "platforms": [
                                "WINDOWS"
                            ]
                        },
                        {
                            "key": "VK_DBG_LAYER_ACTION_BREAK",
                            "label": "Break",
                            "description": "Trigger a breakpoint if a debugger is in use."
                        }
                    ],
                    "default": [
                        "VK_DBG_LAYER_ACTION_LOG_MSG"
                    ]
                },
                {
                    "key": "report_flags",
                    "label": "Message Severity",
                    "description": "Comma-delineated list of options specifying the types of messages to be reported",
                    "type": "FLAGS",
                    "flags": [
                        {
                            "key": "info",
                            "label": "Info",
                            "description": "Report informational messages."
                        },
                        {
                            "key": "warn",
                            "label": "Warning",
                            "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."
                        },
                        {
                            "key": "perf",
                            "label": "Performance",
                            "description": "Report usage of the API that may cause suboptimal performance."
                        },
                        {
                            "key": "error",
                            "label": "Error",
                            "description": "Report errors in API usage."
                        },
                        {
                            "key": "debug",
                            "label": "Debug",
                            "description": "For layer development. Report messages for debugging layer behavior.",
                            "view": "HIDDEN"
                        }
                    ],
                    "default": [
                        "error"
                    ]
                },
                {
                    "key": "enable_message_limit",
                    "label": "Limit Duplicated Messages",
                    "description": "Enable limiting of duplicate messages.",
                    "type": "BOOL",
                    "default": true,
                    "settings": [
                        {
                            "key": "duplicate_message_limit",
                            "env": "VK_LAYER_DUPLICATE_MESSAGE_LIMIT",
                            "label": "Max Duplicated Messages",
                            "description": "Maximum number of times any single validation message should be reported.",
                            "type": "INT",
                            "default": 10,
                            "range": {
                                "min": 1
                            },
                            "dependence": {
                                "mode": "ALL",
                                "settings": [
                                    {
                                        "key": "enable_message_limit",
                                        "value": true
                                    }
                                ]
                            }
                        }
                    ]
                },
                {
                    "key": "message_id_filter",
                    "label": "Mute Message VUIDs",
                    "description": "List of VUIDs and VUID identifers which are to be IGNORED by the validation layer",
                    "type": "LIST",
                    "env": "VK_LAYER_MESSAGE_ID_FILTER",
                    "default": []
                },
                {
                    "key": "disables",
                    "label": "Disables",
                    "description": "Specify areas of validation to be disabled",
                    "type": "FLAGS",
                    "env": "VK_LAYER_DISABLES",
                    "flags": [
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
                            "label": "Thread Safety",
                            "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."
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT",
                            "label": "Stateless Parameter",
                            "description": "Stateless parameter checks. This may not always be necessary late in a development cycle."
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT",
                            "label": "Object Lifetime",
                            "description": "Object tracking checks. This may not always be necessary late in a development cycle."
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT",
                            "label": "Core",
                            "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."
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
                            "label": "Handle Wrapping",
                            "description": "Handle wrapping checks. Disable this feature if you are exerience crashes when creating new extensions or developing new Vulkan objects/structures."
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT",
                            "label": "Shader Validation",
                            "description": "Shader checks. These checks can be CPU intensive during application start up, especially if Shader Validation Caching is also disabled.",
                            "view": "ADVANCED"
                        },
                        {
                            "key": "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE",
                            "label": "Command Buffer State",
                            "description": "Check that all Vulkan objects used by a command buffer have not been destroyed. These checks can be CPU intensive for some applications.",
                            "view": "ADVANCED"
                        },
                        {
                            "key": "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION",
                            "label": "Image Layout",
                            "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.",
                            "view": "ADVANCED"
                        },
                        {
                            "key": "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION",
                            "label": "Query",
                            "description": "Checks for commands that use VkQueryPool objects.",
                            "view": "ADVANCED"
                        },
                        {
                            "key": "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE",
                            "label": "Object in Use",
                            "description": "Check that Vulkan objects are not in use by a command buffer when they are destroyed.",
                            "view": "ADVANCED"
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT",
                            "label": "Shader Validation Caching",
                            "description": "Disable caching of shader validation results.",
                            "view": "ADVANCED"
                        }
                    ],
                    "default": [
                        "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT"
                    ]
                },
                {
                    "key": "enables",
                    "label": "Enables",
                    "description": "Setting an option here will enable specialized areas of validation",
                    "type": "FLAGS",
                    "env": "VK_LAYER_ENABLES",
                    "flags": [
                        {
                            "key": "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT",
                            "label": "Synchronization",
                            "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.",
                            "url": "${LUNARG_SDK}/synchronization_usage.html",
                            "status": "STABLE",
                            "platforms": [
                                "WINDOWS",
                                "LINUX",
                                "MACOS",
                                "ANDROID"
                            ]
                        },
                        {
                            "key": "VALIDATION_CHECK_ENABLE_SYNCHRONIZATION_VALIDATION_QUEUE_SUBMIT",
                            "label": "QueueSubmit Synchronization Validation",
                            "description": "Enable synchronization validation between submitted command buffers when Synchronization Validation is enabled.",
                            "status": "ALPHA"
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT",
                            "label": "Debug Printf",
                            "description": "Enables processing of debug printf instructions in shaders and sending debug strings to the debug callback.",
                            "url": "${LUNARG_SDK}/debug_printf.html",
                            "status": "STABLE",
                            "platforms": [
                                "WINDOWS",
                                "LINUX"
                            ],
                            "settings": [
                                {
                                    "key": "printf_to_stdout",
                                    "label": "Redirect Printf messages to stdout",
                                    "description": "Enable redirection of Debug Printf messages from the debug callback to stdout",
                                    "type": "BOOL",
                                    "default": true,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                },
                                {
                                    "key": "printf_verbose",
                                    "label": "Printf verbose",
                                    "description": "Set the verbosity of debug printf messages",
                                    "type": "BOOL",
                                    "default": false,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                },
                                {
                                    "key": "printf_buffer_size",
                                    "label": "Printf buffer size",
                                    "description": "Set the size in bytes of the buffer used by debug printf",
                                    "type": "INT",
                                    "default": 1024,
                                    "range": {
                                        "min": 128,
                                        "max": 1048576
                                    },
                                    "unit": "bytes",
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT",
                            "label": "GPU-Assisted",
                            "description": "Check for API usage errors at shader execution time.",
                            "url": "${LUNARG_SDK}/gpu_validation.html",
                            "platforms": [
                                "WINDOWS",
                                "LINUX"
                            ],
                            "settings": [
                                {
                                    "key": "gpuav_descriptor_indexing",
                                    "label": "Check descriptor indexing accesses",
                                    "description": "Enable descriptor indexing access checking",
                                    "type": "BOOL",
                                    "default": true,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                },
                                {
                                    "key": "gpuav_buffer_oob",
                                    "label": "Check Out of Bounds ",
                                    "description": "Enable buffer out of bounds checking",
                                    "type": "BOOL",
                                    "default": true,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"
                                                ]
                                            }
                                        ]
                                    },
                                    "settings": [
                                        {
                                            "key": "warn_on_robust_oob",
                                            "label": "Generate warning on out of bounds accesses even if buffer robustness is enabled",
                                            "description": "Warn on out of bounds accesses even if robustness is enabled",
                                            "type": "BOOL",
                                            "default": true,
                                            "platforms": [
                                                "WINDOWS",
                                                "LINUX"
                                            ],
                                            "dependence": {
                                                "mode": "ALL",
                                                "settings": [
                                                    {
                                                        "key": "gpuav_buffer_oob",
                                                        "value": true
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                },
                                {
                                    "key": "validate_draw_indirect",
                                    "label": "Check Draw Indirect Count Buffers and firstInstance values",
                                    "description": "Enable draw indirect checking",
                                    "type": "BOOL",
                                    "default": true,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                },
                                {
                                    "key": "validate_dispatch_indirect",
                                    "label": "Check Dispatch Indirect group count values",
                                    "description": "Enable dispatch indirect checking",
                                    "type": "BOOL",
                                    "default": true,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                },
                                {
                                    "key": "vma_linear_output",
                                    "label": "Use VMA linear memory allocations for GPU-AV output buffers",
                                    "description": "Use linear allocation algorithm",
                                    "type": "BOOL",
                                    "default": true,
                                    "platforms": [
                                        "WINDOWS",
                                        "LINUX"
                                    ],
                                    "dependence": {
                                        "mode": "ANY",
                                        "settings": [
                                            {
                                                "key": "enables",
                                                "value": [
                                                    "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"
                                                ]
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT",
                            "label": "Reserve Descriptor Set Binding Slot",
                            "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.",
                            "platforms": [
                                "WINDOWS",
                                "LINUX"
                            ]
                        },
                        {
                            "key": "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT",
                            "label": "Best Practices",
                            "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.",
                            "url": "${LUNARG_SDK}/best_practices.html",
                            "platforms": [
                                "WINDOWS",
                                "LINUX",
                                "MACOS",
                                "ANDROID"
                            ]
                        },
                        {
                            "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ARM",
                            "label": "ARM-specific best practices",
                            "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.",
                            "platforms": [
                                "WINDOWS",
                                "LINUX",
                                "MACOS",
                                "ANDROID"
                            ]
                        },
                        {
                            "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD",
                            "label": "AMD-specific best practices",
                            "description": "Adds check for spec-conforming but non-ideal code on AMD GPUs.",
                            "platforms": [
                                "WINDOWS",
                                "LINUX",
                                "MACOS"
                            ]
                        },
                        {
                            "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_IMG",
                            "label": "IMG-specific best practices",
                            "description": "Adds check for spec-conforming but non-ideal code on Imagination GPUs.",
                            "platforms": [
                                "WINDOWS",
                                "LINUX",
                                "MACOS"
                            ]
                        },
                        {
                            "key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA",
                            "label": "NVIDIA-specific best practices",
                            "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.",
                            "platforms": [
                                "WINDOWS",
                                "LINUX",
                                "ANDROID"
                            ]
                        }
                    ],
                    "default": []
                },
                {
                    "key": "fine_grained_locking",
                    "env": "VK_LAYER_FINE_GRAINED_LOCKING",
                    "label": "Fine Grained Locking",
                    "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.",
                    "status": "STABLE",
                    "type": "BOOL",
                    "default": true,
                    "platforms": [
                        "WINDOWS",
                        "LINUX",
                        "MACOS",
                        "ANDROID"
                    ]
                }
            ]
        }
    }
}