1759 lines
94 KiB
JSON
1759 lines
94 KiB
JSON
|
{
|
||
|
"file_format_version": "1.2.0",
|
||
|
"layer": {
|
||
|
"name": "VK_LAYER_KHRONOS_validation",
|
||
|
"type": "GLOBAL",
|
||
|
"library_path": "../../../lib/libVkLayer_khronos_validation.dylib",
|
||
|
"api_version": "1.3.290",
|
||
|
"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_layer_settings",
|
||
|
"spec_version": "2"
|
||
|
},
|
||
|
{
|
||
|
"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": "validate_core",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_NONE"
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "report_flags",
|
||
|
"value": [
|
||
|
"error"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"label": "Reduced-Overhead",
|
||
|
"description": "Disables some checks in the interest of better performance.",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS"
|
||
|
],
|
||
|
"status": "STABLE",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_NONE"
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "report_flags",
|
||
|
"value": [
|
||
|
"error"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"label": "Best Practices",
|
||
|
"description": "Provides warnings on valid API usage that is potential API misuse.",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
],
|
||
|
"status": "STABLE",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_NONE"
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "report_flags",
|
||
|
"value": [
|
||
|
"error",
|
||
|
"warn",
|
||
|
"perf"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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": "validate_core",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_NONE"
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "report_flags",
|
||
|
"value": [
|
||
|
"error"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"label": "GPU-Assisted",
|
||
|
"description": "Check for API usage errors at shader execution time.",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"status": "STABLE",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_reserve_binding_slot",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "report_flags",
|
||
|
"value": [
|
||
|
"error"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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": "validate_core",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_DEBUG_PRINTF"
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": false
|
||
|
},
|
||
|
{
|
||
|
"key": "report_flags",
|
||
|
"value": [
|
||
|
"error"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validation_control",
|
||
|
"label": "Validation Areas",
|
||
|
"description": "Control of the Validation layer validation",
|
||
|
"type": "GROUP",
|
||
|
"expanded": true,
|
||
|
"settings": [
|
||
|
{
|
||
|
"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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "check_image_layout",
|
||
|
"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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "check_command_buffer",
|
||
|
"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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "check_object_in_use",
|
||
|
"label": "Object in Use",
|
||
|
"description": "Check that Vulkan objects are not in use by a command buffer when they are destroyed.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "check_query",
|
||
|
"label": "Query",
|
||
|
"description": "Checks for commands that use VkQueryPool objects.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"label": "Shader",
|
||
|
"description": "Shader checks. These checks can be CPU intensive during application start up, especially if Shader Validation Caching is also disabled.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"expanded": true,
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "check_shaders_caching",
|
||
|
"label": "Caching",
|
||
|
"description": "Enable caching of shader validation results.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_core",
|
||
|
"value": true
|
||
|
},
|
||
|
{
|
||
|
"key": "check_shaders",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "unique_handles",
|
||
|
"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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "object_lifetime",
|
||
|
"label": "Object Lifetime",
|
||
|
"description": "Object tracking checks. This may not always be necessary late in a development cycle.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "stateless_param",
|
||
|
"label": "Stateless Parameter",
|
||
|
"description": "Stateless parameter checks. This may not always be necessary late in a development cycle.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "thread_safety",
|
||
|
"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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"label": "Synchronization",
|
||
|
"description": "Check for resource access conflicts caused by missing or incorrectly used synchronization operations.",
|
||
|
"url": "${LUNARG_SDK}/synchronization_usage.html",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"expanded": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
],
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "syncval_submit_time_validation",
|
||
|
"label": "Submit time validation",
|
||
|
"description": "Enable synchronization validation on the boundary between submitted command buffers. This also validates accesses from presentation operations. This option can incur a significant performance cost.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"status": "STABLE",
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "syncval_shader_accesses_heuristic",
|
||
|
"label": "Shader accesses heuristic",
|
||
|
"description": "Takes into account memory accesses performed by the shader based on SPIR-V static analysis. Warning: can produce false-positives, can ignore certain types of accesses.",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"status": "STABLE",
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_sync",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"label": "GPU Base",
|
||
|
"description": "Setting an option here will enable specialized areas of validation",
|
||
|
"type": "ENUM",
|
||
|
"default": "GPU_BASED_NONE",
|
||
|
"expanded": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"flags": [
|
||
|
{
|
||
|
"key": "GPU_BASED_NONE",
|
||
|
"label": "None",
|
||
|
"description": "No GPU-based validation."
|
||
|
},
|
||
|
{
|
||
|
"key": "GPU_BASED_DEBUG_PRINTF",
|
||
|
"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": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_DEBUG_PRINTF"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "printf_verbose",
|
||
|
"label": "Printf verbose",
|
||
|
"description": "Set the verbosity of debug printf messages",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_DEBUG_PRINTF"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"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": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_DEBUG_PRINTF"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "GPU_BASED_GPU_ASSISTED",
|
||
|
"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_shader_instrumentation",
|
||
|
"label": "Shader instrumentation",
|
||
|
"description": "Instrument shaders to validate descriptors, descriptor indexing, buffer device addresses and ray queries. Warning: will considerably slow down shader executions.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_descriptor_checks",
|
||
|
"label": "Descriptors indexing",
|
||
|
"description": "Enable descriptors and buffer out of bounds validation when using descriptor indexing",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_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_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_buffer_address_oob",
|
||
|
"label": "Out of bounds buffer device addresses",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"description": "Check for ",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_max_buffer_device_addresses",
|
||
|
"label": "Maximum number of buffer device addresses in use at one time",
|
||
|
"description": "",
|
||
|
"type": "INT",
|
||
|
"default": 10000,
|
||
|
"range": {
|
||
|
"min": 100,
|
||
|
"max": 10000000
|
||
|
},
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_validate_ray_query",
|
||
|
"label": "RayQuery SPIR-V Instructions",
|
||
|
"description": "Enable shader instrumentation on OpRayQueryInitializeKHR",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_cache_instrumented_shaders",
|
||
|
"label": "Cache instrumented shaders rather than instrumenting them on every run",
|
||
|
"description": "Enable instrumented shader caching",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_select_instrumented_shaders",
|
||
|
"label": "Enable instrumenting shaders selectively",
|
||
|
"description": "Select which shaders to instrument passing a VkValidationFeaturesEXT struct with GPU-AV enabled in the VkShaderModuleCreateInfo pNext",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_shader_instrumentation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_buffers_validation",
|
||
|
"label": "Buffer content validation",
|
||
|
"description": "Validate buffers containing parameters used in indirect Vulkan commands, or used in copy commands",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_indirect_draws_buffers",
|
||
|
"label": "Indirect draws parameters",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"description": "Validate buffers containing draw parameters used in indirect draw commands",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_buffers_validation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_indirect_dispatches_buffers",
|
||
|
"label": "Indirect dispatches parameters",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"description": "Validate buffers containing dispatch parameters used in indirect dispatch commands",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_buffers_validation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_indirect_trace_rays_buffers",
|
||
|
"label": "Indirect trace rays parameters",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"description": "Validate buffers containing ray tracing parameters used in indirect ray tracing commands",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_buffers_validation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_buffer_copies",
|
||
|
"label": "Buffer copies",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"description": "Validate copies involving a VkBuffer. Right now only validates copy buffer to image.",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_buffers_validation",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_advanced_settings",
|
||
|
"label": "Advanced Settings",
|
||
|
"description": "GPU-AV advanced settings",
|
||
|
"type": "GROUP",
|
||
|
"view": "ADVANCED",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_reserve_binding_slot",
|
||
|
"label": "Reserve Descriptor Set Binding Slot",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"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"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_vma_linear_output",
|
||
|
"label": "Linear Memory Allocation Mode",
|
||
|
"description": "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.",
|
||
|
"type": "BOOL",
|
||
|
"default": true,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_debug_settings",
|
||
|
"label": "Developer Debug Settings",
|
||
|
"description": "GPU-AV debug settings",
|
||
|
"type": "GROUP",
|
||
|
"view": "ADVANCED",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "gpuav_debug_disable_all",
|
||
|
"label": "Disable all of GPU-AV",
|
||
|
"description": "Acts as a VkValidationFeatureDisableEXT to override the VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT passed by the user",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_debug_validate_instrumented_shaders",
|
||
|
"label": "Validate instrumented shaders",
|
||
|
"description": "Run spirv-val after doing shader instrumentation",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_debug_dump_instrumented_shaders",
|
||
|
"label": "Dump instrumented shaders",
|
||
|
"description": "Will dump the instrumented shaders (before and after) to working directory",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "gpuav_debug_max_instrumented_count",
|
||
|
"label": "Limit how many time a pass can instrument the SPIR-V",
|
||
|
"description": "Zero is same as unlimited",
|
||
|
"type": "INT",
|
||
|
"default": 0,
|
||
|
"range": {
|
||
|
"min": 0
|
||
|
},
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_gpu_based",
|
||
|
"value": "GPU_BASED_GPU_ASSISTED"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"label": "Best Practices",
|
||
|
"description": "Outputs warnings related to common misuse of the API, but which are not explicitly prohibited by the specification.",
|
||
|
"url": "${LUNARG_SDK}/best_practices.html",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"expanded": true,
|
||
|
"status": "STABLE",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
],
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_best_practices_arm",
|
||
|
"label": "ARM-specific best practices",
|
||
|
"description": "Outputs warnings for spec-conforming but non-ideal code on ARM GPUs.",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices_amd",
|
||
|
"label": "AMD-specific best practices",
|
||
|
"description": "Outputs warnings for spec-conforming but non-ideal code on AMD GPUs.",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices_img",
|
||
|
"label": "IMG-specific best practices",
|
||
|
"description": "Outputs warnings for spec-conforming but non-ideal code on Imagination GPUs.",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"key": "validate_best_practices_nvidia",
|
||
|
"label": "NVIDIA-specific best practices",
|
||
|
"description": "Outputs warnings for spec-conforming but non-ideal code on NVIDIA GPUs.",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"ANDROID"
|
||
|
],
|
||
|
"dependence": {
|
||
|
"mode": "ALL",
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "validate_best_practices",
|
||
|
"value": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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": "message_format",
|
||
|
"label": "Message Format",
|
||
|
"description": "Specifies how error messages are reported",
|
||
|
"type": "GROUP",
|
||
|
"expanded": true,
|
||
|
"settings": [
|
||
|
{
|
||
|
"key": "message_format_display_application_name",
|
||
|
"label": "Display Application Name",
|
||
|
"description": "Useful when running multiple instances to know which instance the message is from.",
|
||
|
"type": "BOOL",
|
||
|
"default": false,
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"MACOS",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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": "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"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"key": "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_ALL",
|
||
|
"label": "Hardware specific best practices",
|
||
|
"description": "Activating this feature enables all vendor specific best practices.",
|
||
|
"platforms": [
|
||
|
"WINDOWS",
|
||
|
"LINUX",
|
||
|
"ANDROID"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"default": []
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|