{ "file_format_version": "1.2.0", "layer": { "name": "VK_LAYER_LUNARG_crash_diagnostic", "type": "GLOBAL", "status": "BETA", "library_path": "libVkLayer_crash_diagnostic.so", "api_version": "1.4.304", "implementation_version": "1", "description": "Crash Diagnostic Layer is a crash/hang debugging tool that helps determines GPU progress in a Vulkan application.", "platforms": [ "WINDOWS", "LINUX" , "ANDROID" ], "url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/crash_diagnostic_layer.html", "enable_environment": { "VK_CRASH_DIAGNOSTIC_ENABLE": "1" }, "disable_environment": { "VK_CRASH_DIAGNOSTIC_DISABLE": "1" }, "instance_extensions": [ { "name": "VK_EXT_debug_report", "spec_version": "10" }, { "name": "VK_EXT_debug_utils", "spec_version": "1" }, { "name": "VK_EXT_layer_settings", "spec_version": "2" } ], "device_extensions": [ { "name": "VK_EXT_debug_report", "spec_version": "10", "entrypoints": [ "vkCreateDebugReportCallbackEXT", "vkDebugReportMessageEXT", "vkDestroyDebugReportCallbackEXT" ] }, { "name": "VK_EXT_tooling_info", "spec_version": "1", "entrypoints": [ "vkGetPhysicalDeviceToolPropertiesEXT" ] } ], "features": { "settings": [ { "key": "watchdog_timeout_ms", "env": "CDL_WATCHDOG_TIMEOUT_MS", "label": "Watchdog timeout (ms)", "description": "If set to a non-zero number, a watchdog thread will be created. This will trigger if the application fails to submit new commands within a set time (in milliseconds) and a log will be created as if the a lost device error was encountered.", "type": "INT", "default": 30000, "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] }, { "key": "dump", "label": "Dump files", "description": "Control of dump files.", "type": "GROUP", "expanded": true, "settings": [ { "key": "output_path", "env": "CDL_OUTPUT_PATH", "label": "Output Path", "description": "The directory where dump files and shader binaries are written.", "type": "STRING", "default": "", "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] }, { "key": "dump_queue_submits", "env": "CDL_DUMP_QUEUE_SUBMITS", "label": "Dump queue submissions", "description": "Control which queue submissions are included in the dump.", "type": "ENUM", "default": "running", "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ], "flags": [ { "key": "running", "label": "Running", "description": "Submissions that were executing at the time of the dump." }, { "key": "pending", "label": "Pending", "description": "Submissions executing or pending at the time of the dump." } ] }, { "key": "dump_command_buffers", "env": "CDL_DUMP_COMMAND_BUFFERS", "label": "Dump command buffers", "description": "Control which command buffers are included in the dump.", "type": "ENUM", "default": "running", "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ], "flags": [ { "key": "running", "label": "Running", "description": "Command Buffers that were executing at the time of the dump." }, { "key": "pending", "label": "Pending", "description": "Command Buffers executing or pending at the time of the dump." }, { "key": "all", "label": "All", "description": "All known Command Buffers." } ] }, { "key": "dump_commands", "env": "CDL_DUMP_COMMANDS", "label": "Dump commands", "description": "Control which commands are included in the dump.", "type": "ENUM", "default": "running", "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ], "flags": [ { "key": "running", "label": "Running", "description": "Command Buffers that were executing at the time of the dump." }, { "key": "pending", "label": "Pending", "description": "Commands executing or pending at the time of the dump." }, { "key": "all", "label": "All", "description": "All known Commands." } ] }, { "key": "dump_shaders", "env": "CDL_DUMP_SHADERS", "label": "Dump shaders", "description": "Control of shader dumping.", "type": "ENUM", "default": "off", "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ], "flags": [ { "key": "off", "label": "Off", "description": "Never dump shaders." }, { "key": "on_crash", "label": "On Crash", "description": "Dump currently bound shaders after a crash is detected." }, { "key": "on_bind", "label": "On Bind", "description": "Dump only bound shaders." }, { "key": "all", "label": "All", "description": "Dump all shaders." } ] } ] }, { "key": "logging", "label": "Logging", "description": "Control of logging.", "type": "GROUP", "expanded": true, "settings": [ { "key": "message_severity", "label": "Message Severity", "description": "Comma-delineated list of options specifying the types of log messages to be reported", "type": "FLAGS", "flags": [ { "key": "error", "label": "Error", "description": "Report errors such as device lost or setup problems in the layer." }, { "key": "warn", "label": "Warning", "description": "Report non-fatal problems that may interfere with operation of the layer" }, { "key": "info", "label": "Info", "description": "Report informational messages." }, { "key": "verbose", "label": "Verbose", "description": "For layer development. Report messages for debugging layer behavior.", "view": "ADVANCED" } ], "default": [ "error" ], "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] }, { "key": "log_file", "env": "CDL_LOG_FILE", "label": "Log file name", "description": "none = no logging, stderr or stdout = to the console, otherwise an absolute or relative path", "type": "STRING", "default": "stderr", "platforms": [ "WINDOWS", "LINUX", "MACOS" ] }, { "key": "trace_on", "env": "CDL_TRACE_ON", "label": "Enable Tracing", "description": "All Vulkan API calls intercepted by the layer will be logged to the console.", "type": "BOOL", "default": false, "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] }, { "key": "trace_all_semaphores", "env": "CDL_TRACE_ALL_SEMAPHORES", "label": "Enable semaphore log tracing.", "description": "Semaphore events will be logged to console.", "type": "BOOL", "default": false, "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] } ] }, { "key": "state", "label": "State Tracking", "description": "Control of state tracking.", "type": "GROUP", "expanded": false, "settings": [ { "key": "sync_after_commands", "env": "CDL_SYNC_AFTER_COMMANDS", "label": "Synchronize commands", "description": "Add pipeline barriers after instrumented commands.", "type": "BOOL", "default": false, "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] }, { "key": "instrument_all_commands", "env": "CDL_INSTRUMENT_ALL_COMMANDS", "label": "Instrument all commands", "description": "All commands will be instrumented.", "type": "BOOL", "default": false, "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] }, { "key": "track_semaphores", "env": "CDL_TRACK_SEMAPHORES", "label": "Track semaphores", "description": "Enable semaphore tracking.", "type": "BOOL", "default": true, "platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ] } ] } ] } } }