blob: 20a35a192708b4caa5cd604542a548c0fbc1c16b [file] [log] [blame]
{
"file_format_version" : "1.2.0",
"layer": {
"name": "VK_LAYER_KHRONOS_validation",
"type": "GLOBAL",
"library_path": "@RELATIVE_LAYER_BINARY@",
"api_version": "@VK_VERSION@",
"implementation_version": "1",
"description": "Khronos Validation Layer",
"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"
]
}
],
"presets": [
{
"label": "Standard",
"description": "Good default validation setup that balance validation coverage and performance.",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"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",
"VALIDATION_CHECK_DISABLE_IDLE_DESCRIPTOR_SET",
"VALIDATION_CHECK_DISABLE_PUSH_CONSTANT_RANGE"
]
}
]
},
{
"label": "Best Practices",
"description": "Provides warnings about potential API misuse but valid usages of the API.",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"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" ],
"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": "Shader 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"
]
}
]
}
],
"settings": [
{
"key": "debug_action",
"label": "Debug Action",
"description": "This indicates what action is to be taken when a layer wants to report 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."
},
{
"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": "This is a comma-delineated list of options telling the layer what types of messages it should report back",
"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 using the API in a way 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."
}
],
"default": [
"error",
"warn",
"perf"
]
},
{
"key": "duplicate_message_limit",
"label": "Duplicated Messages Limit",
"description": "Limit the number of times any single validation message would be reported. 0 is unlimited.",
"type": "INT",
"default": 10,
"range": {
"min": 0
}
},
{
"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",
"default": []
},
{
"key": "disables",
"label": "Disables",
"description": "Setting an option here will disable areas of validation",
"type": "FLAGS",
"flags": [
{
"key": "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
"label": "Thread Safety",
"description": "Thread checks. It may help with performance to run 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 running into crashes when authoring new extensions or developing new Vulkan objects/structures"
},
{
"key": "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT",
"label": "Disable Shaders",
"description": "",
"view": "ADVANCED"
},
{
"key": "VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE",
"label": "Command Buffer State",
"description": "",
"view": "ADVANCED"
},
{
"key": "VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION",
"label": "Image Layout",
"description": "",
"view": "ADVANCED"
},
{
"key": "VALIDATION_CHECK_DISABLE_QUERY_VALIDATION",
"label": "Query",
"description": "",
"view": "ADVANCED"
},
{
"key": "VALIDATION_CHECK_DISABLE_PUSH_CONSTANT_RANGE",
"label": "Push Constant Range",
"description": "",
"view": "ADVANCED"
},
{
"key": "VALIDATION_CHECK_DISABLE_OBJECT_IN_USE",
"label": "Object in Use",
"description": "",
"view": "ADVANCED"
},
{
"key": "VALIDATION_CHECK_DISABLE_IDLE_DESCRIPTOR_SET",
"label": "Idle Descritor Set",
"description": "",
"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",
"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" ]
},
{
"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": "Printf to stdout",
"description": "To redirect Debug Printf messages from the debug callback to stdout",
"type": "BOOL",
"default": true,
"dependence": {
"mode": "ANY",
"settings": [
{
"key": "enables",
"value": [ "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" ]
}
]
}
},
{
"key": "printf_verbose",
"label": "Verbose",
"description": "Verbosity of debug printf messages",
"type": "BOOL",
"default": false,
"dependence": {
"mode": "ANY",
"settings": [
{
"key": "enables",
"value": [ "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT" ]
}
]
}
},
{
"key": "printf_buffer_size",
"label": "Printf buffer size",
"description": "The size in bytes of the buffer used by debug printf",
"type": "INT",
"default": 1024,
"range": {
"min": 128,
"max": 1048576
},
"unit": "bytes",
"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_buffer_oob",
"label": "Check Out of Bounds ",
"description": "Enable buffer out of bounds checking",
"type": "BOOL",
"default": true,
"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" ]
},
{
"key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ARM",
"label": "ARM-specific best practices",
"description": "Enables processing of debug printf instructions in shaders and sending debug strings to the debug callback",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ]
}
],
"default": []
}
]
}
}