Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (2)
Showing
with 3881 additions and 0 deletions
File added
File added
File added
File added
File added
{
"file_format_version": "1.2.0",
"layer": {
"name": "VK_LAYER_LUNARG_api_dump",
"type": "GLOBAL",
"library_path": ".\\VkLayer_api_dump.dll",
"api_version": "1.3.290",
"implementation_version": "2",
"description": "LunarG API dump layer",
"introduction": "The API Dump utility layer prints API calls, parameters, and values to the identified output stream.",
"url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/api_dump_layer.html",
"platforms": [
"WINDOWS",
"LINUX",
"MACOS",
"ANDROID"
],
"instance_extensions": [
{
"name": "VK_EXT_layer_settings",
"spec_version": "2"
}
],
"device_extensions": [
{
"name": "VK_EXT_tooling_info",
"spec_version": "1",
"entrypoints": [
"vkGetPhysicalDeviceToolPropertiesEXT"
]
}
],
"features": {
"presets": [
{
"label": "Console Output",
"description": "Output API dump to stdout",
"platforms": [
"WINDOWS",
"LINUX",
"MACOS",
"ANDROID"
],
"status": "STABLE",
"settings": [
{
"key": "output_format",
"value": "text"
},
{
"key": "log_filename",
"value": "stdout"
},
{
"key": "file",
"value": false
}
]
},
{
"label": "Text Output",
"description": "Output API dump to a text file",
"platforms": [
"WINDOWS",
"LINUX",
"MACOS",
"ANDROID"
],
"status": "STABLE",
"settings": [
{
"key": "output_format",
"value": "text"
},
{
"key": "log_filename",
"value": "${VK_LOCAL}/vk_apidump.txt"
},
{
"key": "file",
"value": true
}
]
},
{
"label": "HTML Output",
"description": "Output API dump to a HTML file",
"platforms": [
"WINDOWS",
"LINUX",
"MACOS",
"ANDROID"
],
"status": "STABLE",
"settings": [
{
"key": "output_format",
"value": "html"
},
{
"key": "log_filename",
"value": "${VK_LOCAL}/vk_apidump.html"
},
{
"key": "file",
"value": true
}
]
},
{
"label": "JSON Output",
"description": "Output API dump to a JSON file",
"platforms": [
"WINDOWS",
"LINUX",
"MACOS",
"ANDROID"
],
"status": "STABLE",
"settings": [
{
"key": "output_format",
"value": "json"
},
{
"key": "log_filename",
"value": "${VK_LOCAL}/vk_apidump.json"
},
{
"key": "file",
"value": true
}
]
}
],
"settings": [
{
"key": "output_range",
"env": "VK_APIDUMP_OUTPUT_RANGE",
"label": "Output Range",
"description": "Comma separated list of frames to output or a range of frames with a start, count, and optional interval separated by a dash. A count of 0 will output every frame after the start of the range. Example: \"5-8-2\" will output frame 5, continue until frame 13, dumping every other frame. Example: \"3,8-2\" will output frames 3, 8, and 9.",
"type": "STRING",
"default": "0-0"
},
{
"key": "output_format",
"env": "VK_APIDUMP_OUTPUT_FORMAT",
"label": "Output Format",
"description": "Specifies the format used for output; can be HTML, JSON, or Text (default -- outputs plain text)",
"type": "ENUM",
"flags": [
{
"key": "text",
"label": "Text",
"description": "Plain text"
},
{
"key": "html",
"label": "HTML",
"description": "HTML"
},
{
"key": "json",
"label": "JSON",
"description": "Json"
}
],
"default": "text"
},
{
"key": "file",
"label": "Output to File",
"description": "Setting this to true indicates that output should be written to file instead of stdout",
"type": "BOOL",
"default": false,
"settings": [
{
"key": "log_filename",
"env": "VK_APIDUMP_LOG_FILENAME",
"label": "Log Filename",
"description": "Specifies the file to dump to when output files are enabled",
"type": "SAVE_FILE",
"filter": "*.txt,*.html,*.json",
"default": "stdout",
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "file",
"value": true
}
]
}
}
]
},
{
"key": "flush",
"env": "VK_APIDUMP_FLUSH",
"label": "Log Flush After Write",
"description": "Setting this to true causes IO to be flushed after each API call that is written",
"type": "BOOL",
"default": true
},
{
"key": "name_size",
"label": "Name Size",
"description": "The number of characters the name of a variable should consume, assuming more are not required",
"type": "INT",
"default": 32,
"range": {
"min": 1
},
"unit": "chars"
},
{
"key": "show_types",
"label": "Show Types",
"description": "Dump types in addition to values",
"type": "BOOL",
"default": true,
"settings": [
{
"key": "type_size",
"label": "Type Size",
"description": "The number of characters the name of a type should consume, assuming more are not required",
"type": "INT",
"default": 0,
"range": {
"min": 0
},
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "show_types",
"value": true
}
]
}
}
]
},
{
"key": "timestamp",
"env": "VK_APIDUMP_TIMESTAMP",
"label": "Show Timestamp",
"description": "Show the timestamp of function calls since start in microseconds",
"type": "BOOL",
"default": false
},
{
"key": "show_shader",
"label": "Show Shader",
"description": "Dump the shader binary code in pCode",
"type": "BOOL",
"default": false
},
{
"key": "detailed",
"env": "VK_APIDUMP_DETAILED",
"label": "Show Parameter Details",
"description": "Dump parameter details in addition to API calls",
"type": "BOOL",
"default": true
},
{
"key": "no_addr",
"env": "VK_APIDUMP_NO_ADDR",
"label": "Hide Addresses",
"description": "Dump \"address\" in place of hex addresses",
"type": "BOOL",
"default": false
},
{
"key": "use_spaces",
"label": "Use Spaces",
"description": "Setting this to true causes all tab characters to be replaced with spaces",
"type": "BOOL",
"default": true,
"settings": [
{
"key": "indent_size",
"label": "Indent Size",
"description": "Specifies the number of spaces that a tab is equal to",
"type": "INT",
"default": 4,
"range": {
"min": 1,
"max": 16
},
"unit": "chars",
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "use_spaces",
"value": true
}
]
}
}
]
},
{
"key": "show_thread_and_frame",
"label": "Show Thread and Frame",
"description": "Show the thread and frame of each function called",
"type": "BOOL",
"default": true
}
]
}
}
}
{
"file_format_version": "1.2.0",
"layer": {
"name": "VK_LAYER_LUNARG_gfxreconstruct",
"type": "GLOBAL",
"library_path": ".\\VkLayer_gfxreconstruct.dll",
"api_version": "1.3.290",
"implementation_version": "4194309",
"description": "GFXReconstruct Capture Layer Version 1.0.5",
"introduction": "The GFXReconstruct Capture Layer intercepts Vulkan API calls and logs them to a capture file. Other tools in the GFXReconstruct suite can inspect, modify, or replay capture files generated by this component.",
"platforms": [ "WINDOWS", "LINUX", "ANDROID" ],
"url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/capture_tools.html",
"status": "STABLE",
"device_extensions": [
{
"name": "VK_EXT_tooling_info",
"spec_version": "1",
"entrypoints": [ "vkGetPhysicalDeviceToolPropertiesEXT" ]
}
],
"features": {
"presets": [
{
"label": "Initialization",
"description": "Capture the first two frames.",
"platforms": [ "WINDOWS", "LINUX" ],
"settings": [
{
"key": "capture_trigger",
"value": ""
},
{
"key": "capture_frames",
"value": "1-2"
}
]
},
{
"label": "Range",
"description": "Capture a range of frames between presses of the F5 key.",
"platforms": [ "WINDOWS", "LINUX" ],
"settings": [
{
"key": "capture_trigger",
"value": "F5"
},
{
"key": "capture_frames",
"value": ""
}
]
}
],
"settings": [
{
"key": "capture_trigger",
"env": "GFXRECON_CAPTURE_TRIGGER",
"label": "Hotkey Capture Trigger",
"description": "Specify a hotkey (any one of F1-F12, TAB, CONTROL) that will be used to start/stop capture. Example: F3 will set the capture trigger to F3 hotkey. One capture file will be generated for each pair of start/stop hotkey presses. Default is: Empty string (hotkey capture trigger is disabled).",
"platforms" : [ "WINDOWS", "LINUX" ],
"type": "ENUM",
"flags": [
{
"key": "",
"label": "None",
"description": ""
},
{
"key": "F1",
"label": "F1",
"description": "F1 Key"
},
{
"key": "F2",
"label": "F2",
"description": "F2 Key"
},
{
"key": "F3",
"label": "F3",
"description": "F3 Key"
},
{
"key": "F4",
"label": "F4",
"description": "F4 Key"
},
{
"key": "F5",
"label": "F5",
"description": "F5 Key"
},
{
"key": "F6",
"label": "F6",
"description": "F6 Key"
},
{
"key": "F7",
"label": "F7",
"description": "F7 Key"
},
{
"key": "F8",
"label": "F8",
"description": "F8 Key"
},
{
"key": "F9",
"label": "F9",
"description": "F9 Key"
},
{
"key": "F10",
"label": "F10",
"description": "F10 Key"
},
{
"key": "F11",
"label": "F11",
"description": "F11 Key"
},
{
"key": "F12",
"label": "F12",
"description": "F12 Key"
},
{
"key": "TAB",
"label": "TAB",
"description": "TAB Key"
},
{
"key": "CONTROL",
"label": "CONTROL",
"description": "CONTROL Key"
}
],
"default": ""
},
{
"key": "capture_trigger_frames",
"env": "GFXRECON_CAPTURE_TRIGGER_FRAMES",
"label": "Hotkey Capture Frame Limit",
"description": "Specify a limit on the number of frames to be captured via hotkey. Example: 1 will capture exactly one frame when the trigger key is pressed. Default is: Empty string (no limit)",
"type": "STRING",
"default": ""
},
{
"key": "capture_frames",
"env": "GFXRECON_CAPTURE_FRAMES",
"label": "Capture Specific Frames",
"description": "Specify one or more comma-separated frame ranges to capture. Each range will be written to its own file. A frame range can be specified as a single value, to specify a single frame to capture, or as two hyphenated values, to specify the first and last frame to capture. Frame ranges should be specified in ascending order and cannot overlap. Note that frame numbering is 1-based (i.e. the first frame is frame 1). Example: 200,301-305 will create two capture files, one containing a single frame and one containing five frames. Default is: Empty string (all frames are captured).",
"type": "STRING",
"default": ""
},
{
"key": "capture_file",
"env": "GFXRECON_CAPTURE_FILE",
"label": "Capture File Name",
"description": "Path to use when creating the capture file. Default is: gfxrecon_capture.gfxr",
"type": "SAVE_FILE",
"filter": "*.gfxr",
"default": "gfxrecon_capture.gfxr",
"settings": [
{
"key": "capture_file_timestamp",
"env": "GFXRECON_CAPTURE_FILE_TIMESTAMP",
"label": "Capture File Name with Timestamp",
"description": "Add a timestamp (yyyymmddThhmmss) postfix to the capture file name.",
"type": "BOOL",
"default": true
},
{
"key": "capture_file_flush",
"env": "GFXRECON_CAPTURE_FILE_FLUSH",
"label": "Capture File Flush After Write",
"description": "Flush output stream after each packet is written to the capture file. Default is: false.",
"type": "BOOL",
"default": false
}
]
},
{
"key": "capture_compression_type",
"env": "GFXRECON_CAPTURE_COMPRESSION_TYPE",
"label": "Compression Format",
"description": "Compression format to use with the capture file. Valid values are: LZ4, ZLIB, ZSTD, and NONE. Default is: LZ4",
"type": "ENUM",
"flags": [
{
"key": "LZ4",
"label": "LZ4",
"description": "Fastest compression algorithm that favors performance over compression ratio."
},
{
"key": "ZLIB",
"label": "ZLIB",
"description": "Widely used compression algorithm with better compression ratio than LZ4 but worse performance."
},
{
"key": "ZSTD",
"label": "ZSTD",
"description": "Newer compression algorithm with better compression ratio and performance than ZLIB, though not as fast as LZ4."
},
{
"key": "NONE",
"label": "NONE",
"description": "No compression"
}
],
"default": "LZ4"
},
{
"key": "memory_tracking_mode",
"env": "GFXRECON_MEMORY_TRACKING_MODE",
"label": "Memory Tracking Mode",
"description": "Specifies the memory tracking mode to use for detecting modifications to mapped Vulkan memory objects. Available options are: page_guard, assisted, and unassisted.",
"type": "ENUM",
"flags": [
{
"key": "page_guard",
"label": "page_guard",
"description": "Tracks modifications to individual memory pages, which are written to the capture file on calls to vkFlushMappedMemoryRanges, vkUnmapMemory, and vkQueueSubmit. Tracking modifications requires allocating shadow memory for all mapped memory."
},
{
"key": "assisted",
"label": "assisted",
"description": "Expects the application to call vkFlushMappedMemoryRanges after memory is modified; the memory ranges specified to the vkFlushMappedMemoryRanges call will be written to the capture file during the call."
},
{
"key": "unassisted",
"label": "unassisted",
"description": "Writes the full content of mapped memory to the capture file on calls to vkUnmapMemory and vkQueueSubmit. It is very inefficient and may be unusable with real-world applications that map large amounts of memory."
}
],
"default": "page_guard",
"settings": [
{
"key": "page_guard_copy_on_map",
"env": "GFXRECON_PAGE_GUARD_COPY_ON_MAP",
"label": "Page Guard Copy on Map",
"description": "When the page_guard memory tracking mode is enabled, copies the content of the mapped memory to the shadow memory immediately after the memory is mapped.",
"type": "BOOL",
"default": true,
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "memory_tracking_mode",
"value": "page_guard"
}
]
}
},
{
"key": "page_guard_separate_read",
"env": "GFXRECON_PAGE_GUARD_SEPARATE_READ",
"label": "Page Guard Separate Read Tracking",
"description": "When the page_guard memory tracking mode is enabled, copies the content of pages accessed for read from mapped memory to shadow memory on each read. Can overwrite unprocessed shadow memory content when an application is reading from and writing to the same page.",
"type": "BOOL",
"default": true,
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "memory_tracking_mode",
"value": "page_guard"
}
]
}
},
{
"key": "page_guard_external_memory",
"env": "GFXRECON_PAGE_GUARD_EXTERNAL_MEMORY",
"label": "Page Guard External Memory",
"description": "When the page_guard memory tracking mode is enabled, use the VK_EXT_external_memory_host extension to eliminate the need for shadow memory allocations. For each memory allocation from a host visible memory type, the capture layer will create an allocation from system memory, which it can monitor for write access, and provide that allocation to vkAllocateMemory as external memory. Only available on Windows.",
"platforms": [ "WINDOWS" ],
"type": "BOOL",
"default": false,
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "memory_tracking_mode",
"value": "page_guard"
}
]
}
},
{
"key": "page_guard_persistent_memory",
"env": "GFXRECON_PAGE_GUARD_PERSISTENT_MEMORY",
"label": "Page Guard Persistent Memory",
"description": "When the page_guard memory tracking mode is enabled, this option changes the way that the shadow memory used to detect modifications to mapped memory is allocated. The default behavior is to allocate and copy the mapped memory range on map and free the allocation on unmap. When this option is enabled, an allocation with a size equal to that of the object being mapped is made once on the first map and is not freed until the object is destroyed. This option is intended to be used with applications that frequently map and unmap large memory ranges, to avoid frequent allocation and copy operations that can have a negative impact on performance. This option is ignored when GFXRECON_PAGE_GUARD_EXTERNAL_MEMORY is enabled.",
"type": "BOOL",
"default": false,
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "memory_tracking_mode",
"value": "page_guard"
},
{
"key": "page_guard_external_memory",
"value": false
}
]
}
},
{
"key": "page_guard_align_buffer_sizes",
"env": "GFXRECON_PAGE_GUARD_ALIGN_BUFFER_SIZES",
"label": "Page Guard Align Buffer Sizes",
"description": "When the page_guard memory tracking mode is enabled, this option overrides the Vulkan API calls that report buffer memory properties to report that buffer sizes and alignments must be a multiple of the system page size. This option is intended to be used with applications that perform CPU writes and GPU writes/copies to different buffers that are bound to the same page of mapped memory, which may result in data being lost when copying pages from the page_guard shadow allocation to the real allocation. This data loss can result in visible corruption during capture. Forcing buffer sizes and alignments to a multiple of the system page size prevents multiple buffers from being bound to the same page, avoiding data loss from simultaneous CPU writes to the shadow allocation and GPU writes to the real allocation for different buffers bound to the same page. This option is only available for the Vulkan API.",
"type": "BOOL",
"default": true,
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "memory_tracking_mode",
"value": "page_guard"
},
{
"key": "page_guard_external_memory",
"value": false
}
]
}
},
{
"key": "page_guard_unblock_sigsegv",
"env": "GFXRECON_PAGE_GUARD_UNBLOCK_SIGSEGV",
"label": "Page Guard unblock SIGSEGV from thread's signal mask",
"description": "When the page_guard memory tracking mode is enabled, this option overrides enables SIGSEGV in thread's signal mask in the case that it has been disabled.",
"type": "BOOL",
"default": false,
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "memory_tracking_mode",
"value": "page_guard"
},
{
"key": "page_guard_external_memory",
"value": false
}
]
}
}
]
},
{
"key": "log",
"label": "Log",
"description": "Control log messages.",
"type": "GROUP",
"settings": [
{
"key": "log_level",
"env": "GFXRECON_LOG_LEVEL",
"label": "Level",
"description": "Specify the minimum severity level of messages to log. Options are: debug, info, warning, error, and fatal. The specified level and all higher levels will be enabled for logging. For example, choosing the warning level will also enable the error and fatal levels.",
"type": "ENUM",
"flags": [
{
"key": "debug",
"label": "debug, info, warning, error, fatal",
"description": ""
},
{
"key": "info",
"label": "info, warning, error, fatal",
"description": ""
},
{
"key": "warning",
"label": "warning, error, fatal",
"description": ""
},
{
"key": "error",
"label": "error, fatal",
"description": ""
},
{
"key": "fatal",
"label": "fatal",
"description": ""
}
],
"default": "info"
},
{
"key": "log_detailed",
"env": "GFXRECON_LOG_DETAILED",
"label": "Log Name and Line Number",
"description": "Include name and line number from the file responsible.",
"type": "BOOL",
"default": false
},
{
"key": "log_allow_indents",
"env": "GFXRECON_LOG_ALLOW_INDENTS",
"label": "Log Name and Line Number",
"description": "Apply additional indentation formatting to log messages.",
"type": "BOOL",
"default": false
},
{
"key": "log_output_to_console",
"env": "GFXRECON_LOG_OUTPUT_TO_CONSOLE",
"label": "Log Output to Console / stdout",
"description": "Log messages will be written to stdout.",
"type": "BOOL",
"default": true
},
{
"key": "log_break_on_error",
"env": "GFXRECON_LOG_BREAK_ON_ERROR",
"label": "Trigger Debug Break on Error",
"description": "Trigger a debug break when logging an error.",
"type": "BOOL",
"default": false
},
{
"key": "log_output_to_os_debug_string",
"env": "GFXRECON_LOG_OUTPUT_TO_OS_DEBUG_STRING",
"label": "Log Output to Debug Console",
"description": "Windows only option. Log messages will be written to the Debug Console with OutputDebugStringA",
"platforms": [ "WINDOWS" ],
"type": "BOOL",
"default": false
},
{
"key": "log_file",
"env": "GFXRECON_LOG_FILE",
"label": "Log File",
"description": "When set, log messages will be written to a file at the specified path. Default is: Empty string (file logging disabled).",
"type": "SAVE_FILE",
"filter": "*.txt",
"default": "",
"settings": [
{
"key": "log_file_flush_after_write",
"env": "GFXRECON_LOG_FILE_FLUSH_AFTER_WRITE",
"label": "Log File Flush After Write",
"description": "Flush the log file to disk after each write when true.",
"type": "BOOL",
"default": false
},
{
"key": "log_file_keep_open",
"env": "GFXRECON_LOG_FILE_KEEP_OPEN",
"label": "Log File Keep Open",
"description": "Keep the log file open between log messages when true, or close and reopen the log file for each message when false.",
"type": "BOOL",
"default": true
},
{
"key": "log_file_create_new",
"env": "GFXRECON_LOG_FILE_CREATE_NEW",
"label": "Log File Overwrite",
"description": "Specifies that log file initialization should overwrite an existing file when true, or append to an existing file when false.",
"type": "BOOL",
"default": true
}
]
}
]
}
]
}
}
}
{
"file_format_version": "1.2.1",
"layer": {
"name": "VK_LAYER_KHRONOS_profiles",
"type": "GLOBAL",
"library_path": ".\\VkLayer_khronos_profiles.dll",
"api_version": "1.3.290",
"implementation_version": "1.3.0",
"status": "STABLE",
"description": "Khronos Profiles layer",
"introduction": "The Khronos Profiles layer helps test across a wide range of hardware capabilities without requiring a physical copy of every device.",
"url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/profiles_layer.html",
"instance_extensions": [
{
"name": "VK_EXT_layer_settings",
"spec_version": "2"
}
],
"device_extensions": [
{
"name": "VK_EXT_tooling_info",
"spec_version": "1",
"entrypoints": [
"vkGetPhysicalDeviceToolPropertiesEXT"
]
}
],
"features": {
"presets": [
{
"label": "Force Physical Device Only",
"description": "Use the Profiles layer to force a specific physical device",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"status": "STABLE",
"settings": [
{
"key": "force_device",
"value": "FORCE_DEVICE_WITH_NAME"
},
{
"key": "profile_emulation",
"value": false
},
{
"key": "simulate_capabilities",
"value": []
},
{
"key": "emulate_portability",
"value": false
}
]
},
{
"label": "Emulate a Vulkan Conformant Profile",
"description": "Emulate a Conformant Vulkan Profile",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"status": "STABLE",
"settings": [
{
"key": "force_device",
"value": "FORCE_DEVICE_OFF"
},
{
"key": "profile_emulation",
"value": true
},
{
"key": "profile_dirs",
"value": "${VULKAN_CONTENT}/VK_LAYER_KHRONOS_profiles"
},
{
"key": "profile_name",
"value": "VP_LUNARG_desktop_baseline_2023"
},
{
"key": "simulate_capabilities",
"value": [ "SIMULATE_API_VERSION_BIT", "SIMULATE_FEATURES_BIT", "SIMULATE_PROPERTIES_BIT" ]
},
{
"key": "emulate_portability",
"value": false
}
]
},
{
"label": "Emulate a Vulkan Portability Profile",
"description": "Emulate a Vulkan Profile with Vulkan Portability",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"status": "STABLE",
"settings": [
{
"key": "force_device",
"value": "FORCE_DEVICE_OFF"
},
{
"key": "profile_emulation",
"value": true
},
{
"key": "profile_dirs",
"value": "${VULKAN_CONTENT}/VK_LAYER_KHRONOS_profiles"
},
{
"key": "profile_name",
"value": "VP_LUNARG_desktop_baseline_2023"
},
{
"key": "simulate_capabilities",
"value": [ "SIMULATE_API_VERSION_BIT", "SIMULATE_FEATURES_BIT", "SIMULATE_PROPERTIES_BIT" ]
},
{
"key": "emulate_portability",
"value": true
},
{
"key": "vertexAttributeAccessBeyondStride",
"value": true
},
{
"key": "separateStencilMaskRef",
"value": true
},
{
"key": "mutableComparisonSamplers",
"value": true
},
{
"key": "multisampleArrayImage",
"value": true
},
{
"key": "imageViewFormatSwizzle",
"value": true
},
{
"key": "imageViewFormatReinterpretation",
"value": true
},
{
"key": "events",
"value": true
},
{
"key": "constantAlphaColorBlendFactors",
"value": true
}
]
}
],
"settings": [
{
"key": "force_device",
"label": "Force Device",
"description": "On system with multiple physical devices, force the use of one specific physical device.",
"status": "STABLE",
"type": "ENUM",
"default": "FORCE_DEVICE_OFF",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"flags": [
{
"key": "FORCE_DEVICE_OFF",
"label": "Off",
"description": "Let the Vulkan Loader list all the Physical Device."
},
{
"key": "FORCE_DEVICE_WITH_UUID",
"label": "Using Device UUID",
"description": "Force the Physical Device identified by the device UUID.",
"settings": [
{
"key": "force_device_uuid",
"label": "Device UUID",
"description": "Device UUID of the forced physical devices",
"status": "STABLE",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"type": "STRING",
"default": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "force_device",
"value": "FORCE_DEVICE_WITH_UUID"
}
]
}
}
]
},
{
"key": "FORCE_DEVICE_WITH_NAME",
"label": "Using Device Name",
"description": "Force the Physical Device identified by the device UUID.",
"settings": [
{
"key": "force_device_name",
"label": "Device Name",
"description": "Device Name of the forced physical devices",
"status": "STABLE",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"type": "ENUM",
"flags": [],
"default": "${VP_PHYSICAL_DEVICES}",
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "force_device",
"value": "FORCE_DEVICE_WITH_NAME"
}
]
}
}
]
}
]
},
{
"key": "profile_emulation",
"label": "Emulate a Vulkan Profile",
"description": "Emulate a Vulkan Profile on the Developer System",
"status": "STABLE",
"type": "BOOL",
"default": true,
"settings": [
{
"key": "profile_dirs",
"label": "Loading Directory",
"description": "Select the location all the profiles.",
"type": "LOAD_FOLDER",
"format": "PROFILE",
"default": "",
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "profile_emulation",
"value": true
}
]
}
},
{
"key": "profile_name",
"label": "Name",
"description": "Name of the profile specified by the profile file to use.",
"type": "ENUM",
"flags": [],
"default": "${VP_DEFAULT}",
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "profile_emulation",
"value": true
}
]
}
},
{
"key": "profile_validation",
"label": "Schema Validation",
"description": "Validate the profile files against the Vulkan SDK profile schema if the file is found.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "profile_emulation",
"value": true
}
]
}
}
]
},
{
"key": "simulate_capabilities",
"label": "Simulate Profile Capabilities",
"description": "Control of the simulated capabilities of the Vulkan physical device from the selected Vulkan Profile.",
"status": "STABLE",
"type": "FLAGS",
"flags": [
{
"key": "SIMULATE_API_VERSION_BIT",
"label": "Version",
"description": "The Vulkan device will report the API version from the selected Profile. It also overrides the `api-version` set in VkPhysicalDeviceProperties."
},
{
"key": "SIMULATE_FEATURES_BIT",
"label": "Features",
"description": "The Vulkan device will report the features from the selected Profile.",
"settings": [
{
"key": "default_feature_values",
"label": "Unspecified Features",
"description": "Feature values when not specified in the select Vulkan profiles.",
"status": "STABLE",
"type": "ENUM",
"default": "DEFAULT_FEATURE_VALUES_DEVICE",
"flags": [
{
"key": "DEFAULT_FEATURE_VALUES_DEVICE",
"label": "Use Device Values",
"description": "When a feature is not mentionned in the select Vulkan profiles, set is to the physical device value."
},
{
"key": "DEFAULT_FEATURE_VALUES_FALSE",
"label": "Use False",
"description": "When a feature is not mentionned in the select Vulkan profiles, set it to false."
}
]
}
]
},
{
"key": "SIMULATE_PROPERTIES_BIT",
"label": "Properties",
"description": "The Vulkan device will report the properties from the selected Profile."
},
{
"key": "SIMULATE_EXTENSIONS_BIT",
"label": "Device Extensions",
"description": "The Vulkan device will report the extensions from the selected Profile."
},
{
"key": "SIMULATE_FORMATS_BIT",
"label": "Formats",
"description": "The Vulkan device will report the formats from the selected Profile."
}
],
"default": [ "SIMULATE_API_VERSION_BIT", "SIMULATE_FEATURES_BIT", "SIMULATE_PROPERTIES_BIT" ]
},
{
"key": "emulate_portability",
"label": "Emulate VK_KHR_portability_subset",
"description": "Emulate the VK_KHR_portability_subset extension on the device.",
"status": "STABLE",
"platforms": [
"WINDOWS",
"LINUX"
],
"type": "BOOL",
"default": true,
"settings": [
{
"key": "constantAlphaColorBlendFactors",
"label": "constantAlphaColorBlendFactors",
"description": "Indicates whether this implementation supports constant alpha Blend Factors used as source or destination color Blending.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "events",
"label": "events",
"description": "Indicates whether this implementation supports synchronization using Events",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "imageViewFormatReinterpretation",
"label": "imageViewFormatReinterpretation",
"description": "Indicates whether this implementation supports a VkImageView being created with a texel format containing a different number of components, or a different number of bits in each component, than the texel format of the underlying VkImage.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "imageViewFormatSwizzle",
"label": "imageViewFormatSwizzle",
"description": "Indicates whether this implementation supports remapping format components using VkImageViewCreateInfo::components.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "imageView2DOn3DImage",
"label": "imageView2DOn3DImage",
"description": "Indicates whether this implementation supports a VkImage being created with the VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT flag set, permitting a 2D or 2D array image view to be created on a 3D VkImage.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "multisampleArrayImage",
"label": "multisampleArrayImage",
"description": "Indicates whether this implementation supports a VkImage being created as a 2D array with multiple samples per texel.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "mutableComparisonSamplers",
"label": "mutableComparisonSamplers",
"description": "Indicates whether this implementation allows descriptors with comparison samplers to be updated.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "pointPolygons",
"label": "pointPolygons",
"description": "Indicates whether this implementation supports Rasterization using a point Polygon Mode.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "samplerMipLodBias",
"label": "samplerMipLodBias",
"description": "Indicates whether this implementation supports setting a mipmap LOD bias value when creating a sampler.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "separateStencilMaskRef",
"label": "separateStencilMaskRef",
"description": "Indicates whether this implementation supports separate front and back Stencil Test reference values.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "shaderSampleRateInterpolationFunctions",
"label": "shaderSampleRateInterpolationFunctions",
"description": "Indicates whether this implementation supports fragment shaders which use the InterpolationFunction capability.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "tessellationIsolines",
"label": "tessellationIsolines",
"description": "Indicates whether this implementation supports isoline output from the Tessellation stage of a graphics pipeline. This member is only meaningful if tessellationShader are supported.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "triangleFans",
"label": "triangleFans",
"description": "Indicates whether this implementation supports Triangle Fans primitive topology.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
}
},
{
"key": "vertexAttributeAccessBeyondStride",
"label": "vertexAttributeAccessBeyondStride",
"description": "Indicates whether this implementation supports accessing a vertex input attribute beyond the stride of the corresponding vertex input binding.",
"type": "BOOL",
"default": false,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "emulate_portability",
"value": true
}
]
},
"settings": [
{
"key": "minVertexInputBindingStrideAlignment",
"label": "minVertexInputBindingStrideAlignment",
"description": "Indicates whether this implementation supports accessing a vertex input attribute beyond the stride of the corresponding vertex input binding.",
"type": "INT",
"default": 4,
"platforms": [ "WINDOWS", "LINUX" ],
"dependence": {
"mode": "ALL",
"settings": [
{
"key": "vertexAttributeAccessBeyondStride",
"value": false
}
]
}
}
]
}
]
},
{
"key": "exclude_device_extensions",
"label": "Exclude Device Extensions",
"description": "Removes the listed device extensions from being reported by the Vulkan physical device.",
"status": "STABLE",
"type": "LIST",
"list": [
"VK_KHR_16bit_storage",
"VK_KHR_8bit_storage",
"VK_KHR_acceleration_structure",
"VK_KHR_bind_memory2",
"VK_KHR_buffer_device_address",
"VK_KHR_copy_commands2",
"VK_KHR_create_renderpass2",
"VK_KHR_dedicated_allocation",
"VK_KHR_deferred_host_operations",
"VK_KHR_depth_stencil_resolve",
"VK_KHR_descriptor_update_template",
"VK_KHR_device_group",
"VK_KHR_display_swapchain",
"VK_KHR_draw_indirect_count",
"VK_KHR_driver_properties",
"VK_KHR_dynamic_rendering",
"VK_KHR_external_fence",
"VK_KHR_external_fence_fd",
"VK_KHR_external_fence_win32",
"VK_KHR_external_memory",
"VK_KHR_external_memory_fd",
"VK_KHR_external_memory_win32",
"VK_KHR_external_semaphore",
"VK_KHR_external_semaphore_fd",
"VK_KHR_external_semaphore_win32",
"VK_KHR_format_feature_flags2",
"VK_KHR_fragment_shading_rate",
"VK_KHR_get_memory_requirements2",
"VK_KHR_image_format_list",
"VK_KHR_imageless_framebuffer",
"VK_KHR_incremental_present",
"VK_KHR_maintenance1",
"VK_KHR_maintenance2",
"VK_KHR_maintenance3",
"VK_KHR_maintenance4",
"VK_KHR_multiview",
"VK_KHR_performance_query",
"VK_KHR_pipeline_executable_properties",
"VK_KHR_pipeline_library",
"VK_KHR_portability_subset",
"VK_KHR_present_id",
"VK_KHR_present_wait",
"VK_KHR_push_descriptor",
"VK_KHR_ray_query",
"VK_KHR_ray_tracing_pipeline",
"VK_KHR_relaxed_block_layout",
"VK_KHR_sampler_mirror_clamp_to_edge",
"VK_KHR_sampler_ycbcr_conversion",
"VK_KHR_separate_depth_stencil_layouts",
"VK_KHR_shader_atomic_int64",
"VK_KHR_shader_clock",
"VK_KHR_shader_draw_parameters",
"VK_KHR_shader_float16_int8",
"VK_KHR_shader_float_controls",
"VK_KHR_shader_integer_dot_product",
"VK_KHR_shader_non_semantic_info",
"VK_KHR_shader_subgroup_extended_types",
"VK_KHR_shader_subgroup_uniform_control_flow",
"VK_KHR_shader_terminate_invocation",
"VK_KHR_shared_presentable_image",
"VK_KHR_spirv_1_4",
"VK_KHR_storage_buffer_storage_class",
"VK_KHR_swapchain",
"VK_KHR_swapchain_mutable_format",
"VK_KHR_synchronization2",
"VK_KHR_timeline_semaphore",
"VK_KHR_uniform_buffer_standard_layout",
"VK_KHR_variable_pointers",
"VK_KHR_video_decode_queue",
"VK_KHR_video_encode_queue",
"VK_KHR_video_queue",
"VK_KHR_vulkan_memory_model",
"VK_KHR_win32_keyed_mutex",
"VK_KHR_workgroup_memory_explicit_layout",
"VK_KHR_zero_initialize_workgroup_memory",
"VK_EXT_4444_formats",
"VK_EXT_astc_decode_mode",
"VK_EXT_blend_operation_advanced",
"VK_EXT_border_color_swizzle",
"VK_EXT_buffer_device_address",
"VK_EXT_calibrated_timestamps",
"VK_EXT_color_write_enable",
"VK_EXT_conditional_rendering",
"VK_EXT_conservative_rasterization",
"VK_EXT_custom_border_color",
"VK_EXT_debug_marker",
"VK_EXT_depth_clip_control",
"VK_EXT_depth_clip_enable",
"VK_EXT_depth_range_unrestricted",
"VK_EXT_descriptor_indexing",
"VK_EXT_device_memory_report",
"VK_EXT_discard_rectangles",
"VK_EXT_display_control",
"VK_EXT_extended_dynamic_state",
"VK_EXT_extended_dynamic_state2",
"VK_EXT_external_memory_dma_buf",
"VK_EXT_external_memory_host",
"VK_EXT_filter_cubic",
"VK_EXT_fragment_density_map",
"VK_EXT_fragment_density_map2",
"VK_EXT_fragment_shader_interlock",
"VK_EXT_full_screen_exclusive",
"VK_EXT_global_priority",
"VK_EXT_global_priority_query",
"VK_EXT_hdr_metadata",
"VK_EXT_host_query_reset",
"VK_EXT_image_drm_format_modifier",
"VK_EXT_image_robustness",
"VK_EXT_image_view_min_lod",
"VK_EXT_index_type_uint8",
"VK_EXT_inline_uniform_block",
"VK_EXT_line_rasterization",
"VK_EXT_load_store_op_none",
"VK_EXT_memory_budget",
"VK_EXT_memory_priority",
"VK_EXT_multi_draw",
"VK_EXT_pageable_device_local_memory",
"VK_EXT_pci_bus_info",
"VK_EXT_physical_device_drm",
"VK_EXT_pipeline_creation_cache_control",
"VK_EXT_pipeline_creation_feedback",
"VK_EXT_post_depth_coverage",
"VK_EXT_primitive_topology_list_restart",
"VK_EXT_private_data",
"VK_EXT_provoking_vertex",
"VK_EXT_queue_family_foreign",
"VK_EXT_rgba10x6_formats",
"VK_EXT_robustness2",
"VK_EXT_sample_locations",
"VK_EXT_sampler_filter_minmax",
"VK_EXT_scalar_block_layout",
"VK_EXT_separate_stencil_usage",
"VK_EXT_shader_atomic_float",
"VK_EXT_shader_atomic_float2",
"VK_EXT_shader_demote_to_helper_invocation",
"VK_EXT_shader_image_atomic_int64",
"VK_EXT_shader_stencil_export",
"VK_EXT_shader_subgroup_ballot",
"VK_EXT_shader_subgroup_vote",
"VK_EXT_shader_viewport_index_layer",
"VK_EXT_subgroup_size_control",
"VK_EXT_texel_buffer_alignment",
"VK_EXT_texture_compression_astc_hdr",
"VK_EXT_tooling_info",
"VK_EXT_transform_feedback",
"VK_EXT_validation_cache",
"VK_EXT_vertex_attribute_divisor",
"VK_EXT_vertex_input_dynamic_state",
"VK_EXT_video_decode_h264",
"VK_EXT_video_decode_h265",
"VK_EXT_video_encode_h264",
"VK_EXT_video_encode_h265",
"VK_EXT_ycbcr_2plane_444_formats",
"VK_EXT_ycbcr_image_arrays",
"VK_AMD_buffer_marker",
"VK_AMD_device_coherent_memory",
"VK_AMD_display_native_hdr",
"VK_AMD_draw_indirect_count",
"VK_AMD_gcn_shader",
"VK_AMD_gpu_shader_half_float",
"VK_AMD_gpu_shader_int16",
"VK_AMD_memory_overallocation_behavior",
"VK_AMD_mixed_attachment_samples",
"VK_AMD_negative_viewport_height",
"VK_AMD_pipeline_compiler_control",
"VK_AMD_rasterization_order",
"VK_AMD_shader_ballot",
"VK_AMD_shader_core_properties",
"VK_AMD_shader_core_properties2",
"VK_AMD_shader_explicit_vertex_parameter",
"VK_AMD_shader_fragment_mask",
"VK_AMD_shader_image_load_store_lod",
"VK_AMD_shader_info",
"VK_AMD_shader_trinary_minmax",
"VK_AMD_texture_gather_bias_lod",
"VK_ANDROID_external_memory_android_hardware_buffer",
"VK_ARM_rasterization_order_attachment_access",
"VK_FUCHSIA_buffer_collection",
"VK_FUCHSIA_external_memory",
"VK_FUCHSIA_external_semaphore",
"VK_GGP_frame_token",
"VK_GOOGLE_decorate_string",
"VK_GOOGLE_display_timing",
"VK_GOOGLE_hlsl_functionality1",
"VK_GOOGLE_user_type",
"VK_HUAWEI_invocation_mask",
"VK_HUAWEI_subpass_shading",
"VK_IMG_filter_cubic",
"VK_IMG_format_pvrtc",
"VK_INTEL_performance_query",
"VK_INTEL_shader_integer_functions2",
"VK_NV_acquire_winrt_display",
"VK_NV_clip_space_w_scaling",
"VK_NV_compute_shader_derivatives",
"VK_NV_cooperative_matrix",
"VK_NV_corner_sampled_image",
"VK_NV_coverage_reduction_mode",
"VK_NV_dedicated_allocation",
"VK_NV_dedicated_allocation_image_aliasing",
"VK_NV_device_diagnostic_checkpoints",
"VK_NV_device_diagnostics_config",
"VK_NV_device_generated_commands",
"VK_NV_external_memory",
"VK_NV_external_memory_rdma",
"VK_NV_external_memory_win32",
"VK_NV_fill_rectangle",
"VK_NV_fragment_coverage_to_color",
"VK_NV_fragment_shader_barycentric",
"VK_NV_fragment_shading_rate_enums",
"VK_NV_framebuffer_mixed_samples",
"VK_NV_geometry_shader_passthrough",
"VK_NV_glsl_shader",
"VK_NV_inherited_viewport_scissor",
"VK_NV_mesh_shader",
"VK_NV_ray_tracing",
"VK_NV_ray_tracing_motion_blur",
"VK_NV_representative_fragment_test",
"VK_NV_sample_mask_override_coverage",
"VK_NV_scissor_exclusive",
"VK_NV_shader_image_footprint",
"VK_NV_shader_sm_builtins",
"VK_NV_shader_subgroup_partitioned",
"VK_NV_shading_rate_image",
"VK_NV_viewport_array2",
"VK_NV_viewport_swizzle",
"VK_NV_win32_keyed_mutex",
"VK_QCOM_render_pass_shader_resolve",
"VK_QCOM_render_pass_store_ops",
"VK_QCOM_render_pass_transform",
"VK_QCOM_rotated_copy_commands",
"VK_VALVE_mutable_descriptor_type",
"VK_QCOM_fragment_density_map_offset",
"VK_NV_linear_color_attachment",
"VK_KHR_global_priority"
],
"default": []
},
{
"key": "exclude_formats",
"label": "Exclude Formats",
"description": "Removes the format feature flags from being reported by the Vulkan physical device.",
"status": "STABLE",
"type": "LIST",
"list": [
"VK_FORMAT_R4G4_UNORM_PACK8",
"VK_FORMAT_R4G4B4A4_UNORM_PACK16",
"VK_FORMAT_B4G4R4A4_UNORM_PACK16",
"VK_FORMAT_R5G6B5_UNORM_PACK16",
"VK_FORMAT_B5G6R5_UNORM_PACK16",
"VK_FORMAT_R5G5B5A1_UNORM_PACK16",
"VK_FORMAT_B5G5R5A1_UNORM_PACK16",
"VK_FORMAT_A1R5G5B5_UNORM_PACK16",
"VK_FORMAT_R8_UNORM",
"VK_FORMAT_R8_SNORM",
"VK_FORMAT_R8_USCALED",
"VK_FORMAT_R8_SSCALED",
"VK_FORMAT_R8_UINT",
"VK_FORMAT_R8_SINT",
"VK_FORMAT_R8_SRGB",
"VK_FORMAT_R8G8_UNORM",
"VK_FORMAT_R8G8_SNORM",
"VK_FORMAT_R8G8_USCALED",
"VK_FORMAT_R8G8_SSCALED",
"VK_FORMAT_R8G8_UINT",
"VK_FORMAT_R8G8_SINT",
"VK_FORMAT_R8G8_SRGB",
"VK_FORMAT_R8G8B8_UNORM",
"VK_FORMAT_R8G8B8_SNORM",
"VK_FORMAT_R8G8B8_USCALED",
"VK_FORMAT_R8G8B8_SSCALED",
"VK_FORMAT_R8G8B8_UINT",
"VK_FORMAT_R8G8B8_SINT",
"VK_FORMAT_R8G8B8_SRGB",
"VK_FORMAT_B8G8R8_UNORM",
"VK_FORMAT_B8G8R8_SNORM",
"VK_FORMAT_B8G8R8_USCALED",
"VK_FORMAT_B8G8R8_SSCALED",
"VK_FORMAT_B8G8R8_UINT",
"VK_FORMAT_B8G8R8_SINT",
"VK_FORMAT_B8G8R8_SRGB",
"VK_FORMAT_R8G8B8A8_UNORM",
"VK_FORMAT_R8G8B8A8_SNORM",
"VK_FORMAT_R8G8B8A8_USCALED",
"VK_FORMAT_R8G8B8A8_SSCALED",
"VK_FORMAT_R8G8B8A8_UINT",
"VK_FORMAT_R8G8B8A8_SINT",
"VK_FORMAT_R8G8B8A8_SRGB",
"VK_FORMAT_B8G8R8A8_UNORM",
"VK_FORMAT_B8G8R8A8_SNORM",
"VK_FORMAT_B8G8R8A8_USCALED",
"VK_FORMAT_B8G8R8A8_SSCALED",
"VK_FORMAT_B8G8R8A8_UINT",
"VK_FORMAT_B8G8R8A8_SINT",
"VK_FORMAT_B8G8R8A8_SRGB",
"VK_FORMAT_A8B8G8R8_UNORM_PACK32",
"VK_FORMAT_A8B8G8R8_SNORM_PACK32",
"VK_FORMAT_A8B8G8R8_USCALED_PACK32",
"VK_FORMAT_A8B8G8R8_SSCALED_PACK32",
"VK_FORMAT_A8B8G8R8_UINT_PACK32",
"VK_FORMAT_A8B8G8R8_SINT_PACK32",
"VK_FORMAT_A8B8G8R8_SRGB_PACK32",
"VK_FORMAT_A2R10G10B10_UNORM_PACK32",
"VK_FORMAT_A2R10G10B10_SNORM_PACK32",
"VK_FORMAT_A2R10G10B10_USCALED_PACK32",
"VK_FORMAT_A2R10G10B10_SSCALED_PACK32",
"VK_FORMAT_A2R10G10B10_UINT_PACK32",
"VK_FORMAT_A2R10G10B10_SINT_PACK32",
"VK_FORMAT_A2B10G10R10_UNORM_PACK32",
"VK_FORMAT_A2B10G10R10_SNORM_PACK32",
"VK_FORMAT_A2B10G10R10_USCALED_PACK32",
"VK_FORMAT_A2B10G10R10_SSCALED_PACK32",
"VK_FORMAT_A2B10G10R10_UINT_PACK32",
"VK_FORMAT_A2B10G10R10_SINT_PACK32",
"VK_FORMAT_R16_UNORM",
"VK_FORMAT_R16_SNORM",
"VK_FORMAT_R16_USCALED",
"VK_FORMAT_R16_SSCALED",
"VK_FORMAT_R16_UINT",
"VK_FORMAT_R16_SINT",
"VK_FORMAT_R16_SFLOAT",
"VK_FORMAT_R16G16_UNORM",
"VK_FORMAT_R16G16_SNORM",
"VK_FORMAT_R16G16_USCALED",
"VK_FORMAT_R16G16_SSCALED",
"VK_FORMAT_R16G16_UINT",
"VK_FORMAT_R16G16_SINT",
"VK_FORMAT_R16G16_SFLOAT",
"VK_FORMAT_R16G16B16_UNORM",
"VK_FORMAT_R16G16B16_SNORM",
"VK_FORMAT_R16G16B16_USCALED",
"VK_FORMAT_R16G16B16_SSCALED",
"VK_FORMAT_R16G16B16_UINT",
"VK_FORMAT_R16G16B16_SINT",
"VK_FORMAT_R16G16B16_SFLOAT",
"VK_FORMAT_R16G16B16A16_UNORM",
"VK_FORMAT_R16G16B16A16_SNORM",
"VK_FORMAT_R16G16B16A16_USCALED",
"VK_FORMAT_R16G16B16A16_SSCALED",
"VK_FORMAT_R16G16B16A16_UINT",
"VK_FORMAT_R16G16B16A16_SINT",
"VK_FORMAT_R16G16B16A16_SFLOAT",
"VK_FORMAT_R32_UINT",
"VK_FORMAT_R32_SINT",
"VK_FORMAT_R32_SFLOAT",
"VK_FORMAT_R32G32_UINT",
"VK_FORMAT_R32G32_SINT",
"VK_FORMAT_R32G32_SFLOAT",
"VK_FORMAT_R32G32B32_UINT",
"VK_FORMAT_R32G32B32_SINT",
"VK_FORMAT_R32G32B32_SFLOAT",
"VK_FORMAT_R32G32B32A32_UINT",
"VK_FORMAT_R32G32B32A32_SINT",
"VK_FORMAT_R32G32B32A32_SFLOAT",
"VK_FORMAT_R64_UINT",
"VK_FORMAT_R64_SINT",
"VK_FORMAT_R64_SFLOAT",
"VK_FORMAT_R64G64_UINT",
"VK_FORMAT_R64G64_SINT",
"VK_FORMAT_R64G64_SFLOAT",
"VK_FORMAT_R64G64B64_UINT",
"VK_FORMAT_R64G64B64_SINT",
"VK_FORMAT_R64G64B64_SFLOAT",
"VK_FORMAT_R64G64B64A64_UINT",
"VK_FORMAT_R64G64B64A64_SINT",
"VK_FORMAT_R64G64B64A64_SFLOAT",
"VK_FORMAT_B10G11R11_UFLOAT_PACK32",
"VK_FORMAT_E5B9G9R9_UFLOAT_PACK32",
"VK_FORMAT_D16_UNORM",
"VK_FORMAT_X8_D24_UNORM_PACK32",
"VK_FORMAT_D32_SFLOAT",
"VK_FORMAT_S8_UINT",
"VK_FORMAT_D16_UNORM_S8_UINT",
"VK_FORMAT_D24_UNORM_S8_UINT",
"VK_FORMAT_D32_SFLOAT_S8_UINT",
"VK_FORMAT_BC1_RGB_UNORM_BLOCK",
"VK_FORMAT_BC1_RGB_SRGB_BLOCK",
"VK_FORMAT_BC1_RGBA_UNORM_BLOCK",
"VK_FORMAT_BC1_RGBA_SRGB_BLOCK",
"VK_FORMAT_BC2_UNORM_BLOCK",
"VK_FORMAT_BC2_SRGB_BLOCK",
"VK_FORMAT_BC3_UNORM_BLOCK",
"VK_FORMAT_BC3_SRGB_BLOCK",
"VK_FORMAT_BC4_UNORM_BLOCK",
"VK_FORMAT_BC4_SNORM_BLOCK",
"VK_FORMAT_BC5_UNORM_BLOCK",
"VK_FORMAT_BC5_SNORM_BLOCK",
"VK_FORMAT_BC6H_UFLOAT_BLOCK",
"VK_FORMAT_BC6H_SFLOAT_BLOCK",
"VK_FORMAT_BC7_UNORM_BLOCK",
"VK_FORMAT_BC7_SRGB_BLOCK",
"VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK",
"VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK",
"VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK",
"VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK",
"VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK",
"VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK",
"VK_FORMAT_EAC_R11_UNORM_BLOCK",
"VK_FORMAT_EAC_R11_SNORM_BLOCK",
"VK_FORMAT_EAC_R11G11_UNORM_BLOCK",
"VK_FORMAT_EAC_R11G11_SNORM_BLOCK",
"VK_FORMAT_ASTC_4x4_UNORM_BLOCK",
"VK_FORMAT_ASTC_4x4_SRGB_BLOCK",
"VK_FORMAT_ASTC_5x4_UNORM_BLOCK",
"VK_FORMAT_ASTC_5x4_SRGB_BLOCK",
"VK_FORMAT_ASTC_5x5_UNORM_BLOCK",
"VK_FORMAT_ASTC_5x5_SRGB_BLOCK",
"VK_FORMAT_ASTC_6x5_UNORM_BLOCK",
"VK_FORMAT_ASTC_6x5_SRGB_BLOCK",
"VK_FORMAT_ASTC_6x6_UNORM_BLOCK",
"VK_FORMAT_ASTC_6x6_SRGB_BLOCK",
"VK_FORMAT_ASTC_8x5_UNORM_BLOCK",
"VK_FORMAT_ASTC_8x5_SRGB_BLOCK",
"VK_FORMAT_ASTC_8x6_UNORM_BLOCK",
"VK_FORMAT_ASTC_8x6_SRGB_BLOCK",
"VK_FORMAT_ASTC_8x8_UNORM_BLOCK",
"VK_FORMAT_ASTC_8x8_SRGB_BLOCK",
"VK_FORMAT_ASTC_10x5_UNORM_BLOCK",
"VK_FORMAT_ASTC_10x5_SRGB_BLOCK",
"VK_FORMAT_ASTC_10x6_UNORM_BLOCK",
"VK_FORMAT_ASTC_10x6_SRGB_BLOCK",
"VK_FORMAT_ASTC_10x8_UNORM_BLOCK",
"VK_FORMAT_ASTC_10x8_SRGB_BLOCK",
"VK_FORMAT_ASTC_10x10_UNORM_BLOCK",
"VK_FORMAT_ASTC_10x10_SRGB_BLOCK",
"VK_FORMAT_ASTC_12x10_UNORM_BLOCK",
"VK_FORMAT_ASTC_12x10_SRGB_BLOCK",
"VK_FORMAT_ASTC_12x12_UNORM_BLOCK",
"VK_FORMAT_ASTC_12x12_SRGB_BLOCK",
"VK_FORMAT_G8B8G8R8_422_UNORM",
"VK_FORMAT_B8G8R8G8_422_UNORM",
"VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM",
"VK_FORMAT_G8_B8R8_2PLANE_420_UNORM",
"VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM",
"VK_FORMAT_G8_B8R8_2PLANE_422_UNORM",
"VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM",
"VK_FORMAT_R10X6_UNORM_PACK16",
"VK_FORMAT_R10X6G10X6_UNORM_2PACK16",
"VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16",
"VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16",
"VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16",
"VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16",
"VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16",
"VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16",
"VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16",
"VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16",
"VK_FORMAT_R12X4_UNORM_PACK16",
"VK_FORMAT_R12X4G12X4_UNORM_2PACK16",
"VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16",
"VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16",
"VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16",
"VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16",
"VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16",
"VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16",
"VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16",
"VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16",
"VK_FORMAT_G16B16G16R16_422_UNORM",
"VK_FORMAT_B16G16R16G16_422_UNORM",
"VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM",
"VK_FORMAT_G16_B16R16_2PLANE_420_UNORM",
"VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM",
"VK_FORMAT_G16_B16R16_2PLANE_422_UNORM",
"VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM",
"VK_FORMAT_G8_B8R8_2PLANE_444_UNORM",
"VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16",
"VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16",
"VK_FORMAT_G16_B16R16_2PLANE_444_UNORM",
"VK_FORMAT_A4R4G4B4_UNORM_PACK16",
"VK_FORMAT_A4B4G4R4_UNORM_PACK16",
"VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK",
"VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK",
"VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG",
"VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG",
"VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG",
"VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG",
"VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG",
"VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG",
"VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG",
"VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"
],
"default": []
},
{
"key": "debug_actions",
"label": "Debug Actions",
"description": "This indicates what action is to be taken when a layer wants to report information",
"status": "STABLE",
"type": "FLAGS",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"flags": [
{
"key": "DEBUG_ACTION_STDOUT_BIT",
"label": "Log to stdout",
"description": "Log messages using the stdout."
},
{
"key": "DEBUG_ACTION_OUTPUT_BIT",
"label": "Log to OutputDebugString",
"description": "Log messages using the Windows OutputDebugString for Vulkan Studio output display.",
"platforms": [ "WINDOWS" ]
},
{
"key": "DEBUG_ACTION_FILE_BIT",
"label": "Log to File",
"description": "Log messages to a file.",
"settings": [
{
"key": "debug_filename",
"label": "Log Filename",
"description": "Specifies the output filename",
"type": "SAVE_FILE",
"default": "profiles_layer_log.txt",
"dependence": {
"mode": "ANY",
"settings": [
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_OUTPUT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT", "DEBUG_ACTION_OUTPUT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_OUTPUT_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT", "DEBUG_ACTION_OUTPUT_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
}
]
}
},
{
"key": "debug_file_clear",
"label": "Clear Log at Launch",
"description": "Discard the content of the log file between each layer run",
"type": "BOOL",
"default": true,
"dependence": {
"mode": "ANY",
"settings": [
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_OUTPUT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT", "DEBUG_ACTION_OUTPUT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_OUTPUT_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
},
{
"key": "debug_actions",
"value": [ "DEBUG_ACTION_FILE_BIT", "DEBUG_ACTION_STDOUT_BIT", "DEBUG_ACTION_OUTPUT_BIT", "DEBUG_ACTION_BREAKPOINT_BIT" ]
}
]
}
}
],
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"expanded": true
},
{
"key": "DEBUG_ACTION_BREAKPOINT_BIT",
"label": "Break",
"description": "Trigger a breakpoint if a debugger is in use."
}
],
"default": [ "DEBUG_ACTION_STDOUT_BIT" ]
},
{
"key": "debug_fail_on_error",
"label": "Fail on Error",
"description": "If the device doesn't support the capabilities of the selected Profile, the layer fail to load. When enabled, vkEnumeratePhysicalDevices will fail when the selected Profile is not supported.",
"status": "STABLE",
"type": "BOOL",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"default": false
},
{
"key": "debug_reports",
"label": "Message Types",
"description": "This is a comma-delineated list of options telling the layer what types of messages it should report back",
"status": "STABLE",
"type": "FLAGS",
"platforms": [ "WINDOWS", "LINUX", "MACOS" ],
"flags": [
{
"key": "DEBUG_REPORT_NOTIFICATION_BIT",
"label": "Notification",
"description": "Report notifications."
},
{
"key": "DEBUG_REPORT_WARNING_BIT",
"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": "DEBUG_REPORT_ERROR_BIT",
"label": "Error",
"description": "Report errors in API usage."
},
{
"key": "DEBUG_REPORT_DEBUG_BIT",
"label": "Debug",
"description": "Report debug information for the Profiles Layer development.",
"view": "ADVANCED"
}
],
"default": [
"DEBUG_REPORT_NOTIFICATION_BIT",
"DEBUG_REPORT_WARNING_BIT",
"DEBUG_REPORT_ERROR_BIT"
]
}
]
}
}
}
{
"file_format_version": "1.2.0",
"layer": {
"name": "VK_LAYER_KHRONOS_synchronization2",
"type": "GLOBAL",
"library_path": ".\\VkLayer_khronos_synchronization2.dll",
"api_version": "1.3.290",
"implementation_version": "1",
"description": "Khronos Synchronization2 layer",
"introduction": "The VK_LAYER_KHRONOS_synchronization2 extension layer implements the VK_KHR_synchronization2 extension.",
"url": "https://vulkan.lunarg.com/doc/sdk/latest/windows/synchronization2_layer.html",
"status": "STABLE",
"platforms": [ "WINDOWS", "LINUX", "MACOS", "ANDROID" ],
"instance_extensions": [
{
"name": "VK_EXT_layer_settings",
"spec_version": "2"
}
],
"device_extensions": [
{
"name": "VK_KHR_synchronization2",
"spec_version": "1",
"entrypoints": [
"vkCmdSetEvent2KHR",
"vkCmdResetEvent2KHR",
"vkCmdWaitEvents2KHR",
"vkCmdPipelineBarrier2KHR",
"vkCmdWriteTimestamp2KHR",
"vkQueueSubmit2KHR",
"vkCmdWriteBufferMarker2AMD",
"vkGetQueueCheckpointData2NV"
]
}
],
"features": {
"settings": [
{
"key": "force_enable",
"env": "VK_SYNCHRONIZATION2_FORCE_ENABLE",
"label": "Force Enable",
"description": "Force the layer to be active even if the underlying driver also implements the synchonization2 extension.",
"type": "BOOL",
"default": false
}
]
}
}
}
{
"file_format_version": "1.2.0",
"layer": {
"name": "VK_LAYER_KHRONOS_validation",
"type": "GLOBAL",
"library_path": ".\\VkLayer_khronos_validation.dll",
"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": []
}
]
}
}
}
File added