Diablo IV (closed beta) depends on DEVPKEY_Device_MatchingDeviceId being present for GPUs (once it is able to match GPU luid to the one obtained from dxgi). It also depends on the MatchingDeviceId conating "ven_" and "dev_" substrings. Without those it doesn't consider the gpu as valid, which currently results in the game complaining about no GPUs found. I guess that maybe it is trying to filter out software GPUs and such this way.
As far as my testing goes, DEVPKEY_Device_MatchingDeviceId has this form with hardware GPUs only and maybe with the recent enough Win10 or Win11.
The other two device properties being added are also queried by the game although they are not strictly needed for it.
--
v4: win32u: Set DEVPKEY_Device_RemovalPolicy for GPUs.
win32u: Set DEVPKEY_Device_BusNumber for GPUs.
win32u: Set DEVPKEY_Device_MatchingDeviceId for GPUs.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2449
This corrects what interface should be returned, there isn't a hierarchy with
these IUISettings at all. It should return IUISettings and then QI for
any others that it requires.
--
v2: windows.ui: Use DEFINE_IINSPECTABLE for IUISettings3
windows.ui: Add IUISettings2 stub interface
windows.ui: Add Stubbed interface IUISettings
include: Add Missing IUISettings interfaces.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2465