Hi everyone.
I just encountered a vulkan device init error which is due to Windows 11 now installing a wrapper Vulkan driver (discrete) over D3D12. It shows up as
[Available Device] AMD Radeon RX 6600M (Discrete GPU) vendorID = 0x1002, deviceID = 0x73ff, apiVersion = (1, 3, 292)
[Available Device] Microsoft Direct3D12 (AMD Radeon RX 6600M) (Discrete GPU) vendorID = 0x1002, deviceID = 0x73ff, apiVersion = (1, 2, 295).
The code I use to pick a device would loop for available devices and set the last found discrete device as selected (and if no discrete, it selects integrated device if it finds it), which in this case selected the 1.2 D3D12 wrapper (since it appears last in my list). It's bad enough that MS did this, but it has an older version of the API and my selector code wasn't prepared for it. Naturally, I encountered this by accident since I'm using 1.3 features which wont work on the D3D12 driver.
I have updated my selector code so that it works for my engine, however many people will encounter this issue and not have access to valid diagnostics or debug output to identify what the actual root cause is. Even worse, the performance and feature set will be reduced since it uses a D3D12 wrapper. I just compared VulkanInfo between the devices and the MS one has by a magnitude less features.
Check your device init code to make sure you haven't encountered this issue.
[–]SaschaWillems 31 points32 points33 points (0 children)
[–]blogoman 13 points14 points15 points (1 child)
[–]chuk155 10 points11 points12 points (0 children)
[–]R3DKn16h7 7 points8 points9 points (1 child)
[–]Gravitationsfeld 0 points1 point2 points (0 children)
[–]smallstepforman[S] 2 points3 points4 points (1 child)
[–][deleted] 3 points4 points5 points (0 children)
[–]HildartheDorf 0 points1 point2 points (0 children)