KhronosGroup / KhronosGroup/Vulkan-Loader
`VK_INSTANCE_LAYERS` layers order is not always followed
- Dominant language
- C
- Stars
- 695
- Forks
- 343
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 17
Description
`VK_INSTANCE_LAYERS` allows enabling and ordering the layers.
This is working fine :
- When the `layers` section of `vk_loader_settings.json` is not written.
- When `layers` is written empty, `VK_INSTANCE_LAYERS` is ignored as expected.
However, the interaction between the `layers` section and `VK_INSTANCE_LAYERS` is not following the `VK_INSTANCE_LAYERS` order.
An obvious case is when `vk_loader_settings.json` is:
```
{
"file_format_version": "1.0.0",
"settings_array": [
{
"device_configurations": [
{
"deviceName": "AMD Radeon RX 6600 XT",
"deviceUUID": [
0,
0,
0,
0,
14,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"driverName": "AMD proprietary driver",
"driverUUID": [
65,
77,
68,
45,
87,
73,
78,
45,
68,
82,
86,
0,
0,
0,
0,
0
],
"driverVersion": 8388961
}
],
"layers": [
{
"control": "unordered_layer_location"
}
],
"stderr_log": [
"layer"
]
}
]
}
```
Then when I launch `vkcube`, I am getting this log (`VK_INSTANCE_LAYERS` order is not respected):
```
Launching Vulkan Application:
- Executable: E:\VulkanSDK\1.4.335.0-rc\Bin\vkcube.exe
- Working Directory: E:\VulkanSDK\1.4.335.0-beta1\Bin
- Command-line Arguments:
- --suppress_popups
- Environment Variables:
- VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus
- Log file: C:\Users\Piranha\VulkanSDK\vkcube.txt
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
Selected WSI platform: win32
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: opening device PCI\VEN_10DE&DEV_2208&SUBSYS_88021043&REV_A1\4&31ac7a68&0&0019
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 4 - DISPLAY\GSM7707\5&1D83BE85&1&UID45318
[Vulkan Loader] DEBUG | LAYER: windows_get_device_registry_files: GUID for 4 is not SoftwareComponent skipping
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: opening device PCI\VEN_1002&DEV_73FF&SUBSYS_448E1DA2&REV_C1\6&1c5499bc&0&0000001A
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 5 - SWD\DRIVERENUM\AMDFDANS&7&3384D6A1&2
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 6 - SWD\DRIVERENUM\AMDOCL&7&3384D6A1&2
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 7 - SWD\DRIVERENUM\AMDWIN&7&3384D6A1&2
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 8 - DISPLAY\GSM7707\7&3384D6A1&2&UID776
[Vulkan Loader] DEBUG | LAYER: windows_get_device_registry_files: GUID for 8 is not SoftwareComponent skipping
[Vulkan Loader] LAYER: windows_get_device_registry_files: found no registry files
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_api_dump.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_gfxreconstruct.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_synchronization2.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_monitor.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_screenshot.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_shader_object.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_crash_diagnostic.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] WARNING | LAYER: env var 'VK_INSTANCE_LAYERS' defined and adding layers: VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus
[Vulkan Loader] WARNING | LAYER: env var 'VK_INSTANCE_LAYERS' defined and adding layers: VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus
[Vulkan Loader] DEBUG | LAYER: Loading layer library E:\VulkanSDK\1.4.335.0-rc\Bin\.\VkLayer_khronos_profiles.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_KHRONOS_profiles" (E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library E:\VulkanSDK\1.4.335.0-rc\Bin\.\VkLayer_khronos_validation.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_KHRONOS_validation" (E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\.\nvoglv64.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_NV_present" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\.\nvoglv64.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_NV_optimus" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\.\amdvlk64.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_AMD_switchable_graphics" (C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll)
[Vulkan Loader] LAYER: vkCreateInstance layer callstack setup to:
[Vulkan Loader] LAYER:
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER:
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_AMD_switchable_graphics
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Implicit Layer
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amd-vulkan64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_optimus
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_OPTIMUS_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_present
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Implicit Layer
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_GR2608_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_KHRONOS_validation
[Vulkan Loader] LAYER: Type: Explicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Manifest: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.json
[Vulkan Loader] LAYER: Library: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_KHRONOS_profiles
[Vulkan Loader] LAYER: Type: Explicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Manifest: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.json
[Vulkan Loader] LAYER: Library: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER:
Selected GPU 0: AMD Radeon RX 6600 XT, type: DiscreteGpu
[Vulkan Loader] INFO | LAYER: Failed to find vkGetDeviceProcAddr in layer "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.dll"
[Vulkan Loader] INFO | LAYER: Inserted device layer "VK_LAYER_KHRONOS_validation" (E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll)
[Vulkan Loader] INFO | LAYER: Inserted device layer "VK_LAYER_NV_present" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] INFO | LAYER: Inserted device layer "VK_LAYER_NV_optimus" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] INFO | LAYER: Failed to find vkGetDeviceProcAddr in layer "C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll"
[Vulkan Loader] DRIVER: vkCreateDevice layer callstack setup to:
[Vulkan Loader] DRIVER:
[Vulkan Loader] DRIVER: ||
[Vulkan Loader] DRIVER:
[Vulkan Loader] DRIVER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_optimus
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_OPTIMUS_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_present
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Implicit Layer
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_GR2608_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_KHRONOS_validation
[Vulkan Loader] LAYER: Type: Explicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Manifest: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.json
[Vulkan Loader] LAYER: Library: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] DRIVER:
[Vulkan Loader] DRIVER: Using "AMD Radeon RX 6600 XT" with driver: "C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll"
```
As a comparison, when `layers` is not written, I am getting this log (`VK_INSTANCE_LAYERS` order is respected):
```
Launching Vulkan Application:
- Executable: E:\VulkanSDK\1.4.335.0-rc\Bin\vkcube.exe
- Working Directory: E:\VulkanSDK\1.4.335.0-beta1\Bin
- Command-line Arguments:
- --suppress_popups
- Environment Variables:
- VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus
- Log file: C:\Users\Piranha\VulkanSDK\vkcube.txt
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
Selected WSI platform: win32
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamOverlayVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files (x86)\Steam\SteamFossilizeVulkanLayer64.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "C:\Program Files\RenderDoc\renderdoc.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers"
[Vulkan Loader] LAYER: Checking for Layer Manifest files in Registry at HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: opening device PCI\VEN_10DE&DEV_2208&SUBSYS_88021043&REV_A1\4&31ac7a68&0&0019
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 4 - DISPLAY\GSM7707\5&1D83BE85&1&UID45318
[Vulkan Loader] DEBUG | LAYER: windows_get_device_registry_files: GUID for 4 is not SoftwareComponent skipping
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: opening device PCI\VEN_1002&DEV_73FF&SUBSYS_448E1DA2&REV_C1\6&1c5499bc&0&0000001A
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 5 - SWD\DRIVERENUM\AMDFDANS&7&3384D6A1&2
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 6 - SWD\DRIVERENUM\AMDOCL&7&3384D6A1&2
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 7 - SWD\DRIVERENUM\AMDWIN&7&3384D6A1&2
[Vulkan Loader] INFO | LAYER: windows_get_device_registry_files: Opening child device 8 - DISPLAY\GSM7707\7&3384D6A1&2&UID776
[Vulkan Loader] DEBUG | LAYER: windows_get_device_registry_files: GUID for 8 is not SoftwareComponent skipping
[Vulkan Loader] LAYER: windows_get_device_registry_files: found no registry files
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_api_dump.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_gfxreconstruct.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_synchronization2.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_monitor.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_screenshot.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_shader_object.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] INFO | LAYER: Located json file "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_crash_diagnostic.json" from registry "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers"
[Vulkan Loader] WARNING | LAYER: env var 'VK_INSTANCE_LAYERS' defined and adding layers "VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus"
[Vulkan Loader] WARNING | LAYER: env var 'VK_INSTANCE_LAYERS' defined and adding layers "VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus"
[Vulkan Loader] DEBUG | LAYER: Loading layer library C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\.\nvoglv64.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_NV_optimus" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library E:\VulkanSDK\1.4.335.0-rc\Bin\.\VkLayer_khronos_validation.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_KHRONOS_validation" (E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library E:\VulkanSDK\1.4.335.0-rc\Bin\.\VkLayer_khronos_profiles.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_KHRONOS_profiles" (E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\.\nvoglv64.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_NV_present" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] DEBUG | LAYER: Loading layer library C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\.\amdvlk64.dll
[Vulkan Loader] INFO | LAYER: Insert instance layer "VK_LAYER_AMD_switchable_graphics" (C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll)
[Vulkan Loader] LAYER: vkCreateInstance layer callstack setup to:
[Vulkan Loader] LAYER:
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER:
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_AMD_switchable_graphics
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Implicit Layer
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amd-vulkan64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_present
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Implicit Layer
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_GR2608_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_KHRONOS_profiles
[Vulkan Loader] LAYER: Type: Explicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Manifest: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.json
[Vulkan Loader] LAYER: Library: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_KHRONOS_validation
[Vulkan Loader] LAYER: Type: Explicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Manifest: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.json
[Vulkan Loader] LAYER: Library: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_optimus
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_OPTIMUS_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER:
Validation Error: [ UNASSIGNED-API-Version-Violation ] | MessageID = 0xc495fcb4
vkGetPhysicalDeviceProperties2(): Attempted to call with an effective API version of 1.0.0 (0x00400000), which is the minimum of version requested in pApplicationInfo (1.0.0 (0x00400000)) and supported by this physical device (1.4.315 (0x0040413b)), but this API was not promoted until version 1.1.0 (0x00401000).
Objects: 1
[0] VkInstance 0x2220ab7e690
Validation Error: [ UNASSIGNED-API-Version-Violation ] | MessageID = 0xc495fcb4
vkGetPhysicalDeviceFeatures2(): Attempted to call with an effective API version of 1.0.0 (0x00400000), which is the minimum of version requested in pApplicationInfo (1.0.0 (0x00400000)) and supported by this physical device (1.4.315 (0x0040413b)), but this API was not promoted until version 1.1.0 (0x00401000).
Objects: 1
[0] VkInstance 0x2220ab7e690
Validation Error: [ UNASSIGNED-API-Version-Violation ] | MessageID = 0xc495fcb4
vkGetPhysicalDeviceMemoryProperties2(): Attempted to call with an effective API version of 1.0.0 (0x00400000), which is the minimum of version requested in pApplicationInfo (1.0.0 (0x00400000)) and supported by this physical device (1.4.315 (0x0040413b)), but this API was not promoted until version 1.1.0 (0x00401000).
Objects: 1
[0] VkInstance 0x2220ab7e690
Selected GPU 0: AMD Radeon RX 6600 XT, type: DiscreteGpu
[Vulkan Loader] INFO | LAYER: Inserted device layer "VK_LAYER_NV_optimus" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] INFO | LAYER: Inserted device layer "VK_LAYER_KHRONOS_validation" (E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll)
[Vulkan Loader] INFO | LAYER: Failed to find vkGetDeviceProcAddr in layer "E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_profiles.dll"
[Vulkan Loader] INFO | LAYER: Inserted device layer "VK_LAYER_NV_present" (C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll)
[Vulkan Loader] INFO | LAYER: Failed to find vkGetDeviceProcAddr in layer "C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll"
[Vulkan Loader] DRIVER: vkCreateDevice layer callstack setup to:
[Vulkan Loader] DRIVER:
[Vulkan Loader] DRIVER: ||
[Vulkan Loader] DRIVER:
[Vulkan Loader] DRIVER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_present
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Implicit Layer
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_GR2608_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_KHRONOS_validation
[Vulkan Loader] LAYER: Type: Explicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Manifest: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.json
[Vulkan Loader] LAYER: Library: E:\VulkanSDK\1.4.335.0-rc\Bin\VkLayer_khronos_validation.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] LAYER: VK_LAYER_NV_optimus
[Vulkan Loader] LAYER: Type: Implicit
[Vulkan Loader] LAYER: Enabled By: Environment Variable VK_INSTANCE_LAYERS
[Vulkan Loader] LAYER: Disable Env Var: DISABLE_LAYER_NV_OPTIMUS_1
[Vulkan Loader] LAYER: Manifest: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nv-vk64.json
[Vulkan Loader] LAYER: Library: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_20ae8f14a487d5db\nvoglv64.dll
[Vulkan Loader] LAYER: ||
[Vulkan Loader] DRIVER:
[Vulkan Loader] DRIVER: Using "AMD Radeon RX 6600 XT" with driver: "C:\WINDOWS\System32\DriverStore\FileRepository\u0420421.inf_amd64_8465bc45599a509e\B419571\amdvlk64.dll"
```
The question becomes how to handle `VK_INSTANCE_LAYERS` layers order when `vk_loader_settings.json` `layers` section contains more than `unordered_layer_location`. I believe this case was already discussed in the past.
When the `layers` section is created as follow:
```
"layers": [
{
"control": "unordered_layer_location"
},
{
"control": "on",
"name": "VK_LAYER_KHRONOS_validation",
"path": "E:\\VulkanSDK\\1.4.335.0-rc\\Bin\\VkLayer_khronos_validation.json",
"treat_as_implicit_manifest": false
}
],
```
and VK_INSTANCE_LAYERS set to
```
VK_LAYER_KHRONOS_profiles;VK_LAYER_KHRONOS_validation;VK_LAYER_NV_optimus
```
Then, I would expect the layers to be ordered like:
```
VK_LAYER_KHRONOS_profiles
VK_LAYER_NV_optimus
VK_LAYER_KHRONOS_validation
```
It remains the case of the *implicit layers* and *application enabled layers* that are not listed in `layers` or `VK_INSTANCE_LAYERS`, my recollection of our discussion was that we should follow this diagram:
within the `unordered_layer_location` section.
So following my case, we see that my system has also VK_LAYER_AMD_switchable_graphics and VK_LAYER_NV_present layers, so the order should be:
```
VK_LAYER_AMD_switchable_graphics (implict enabled)
VK_LAYER_NV_present (implict enabled)
VK_LAYER_KHRONOS_profiles (VK_INSTANCE_LAYERS enabled)
VK_LAYER_NV_optimus (VK_INSTANCE_LAYERS enabled)
(here would come application enabled layers not in `layers` section)
VK_LAYER_KHRONOS_validation (`layers` enabled)
```
Contributor guide
Assessment
This issue has not been assessed yet.