wgpu
wgpu copied to clipboard
Windows 11's WARP Passes the Water Example Image Comparison Test
Description
Follow up to #2746 which found that Windows 11's version of WARP passes the image comparison tests while Windows 10's don't. We currently have no way of representing this state in our testing framework.
We need some way of exposing something like the driver version, which we can hopefully use to guard the tests.
Repro steps
Run cargo nextest run water
and see the test fail because the image comparison succeeded.
DirextX doesn't seem to provide a way of getting the driver version directly, so you have to dig through the registry instead. GPUDetect implements the prior explanation plus verifying the LUID here.
I pulled these values from three PCs: one that came with Windows 11, one that was upgraded to Windows 11, and one on Windows 10.
OS | Product | Version | Subversion | Build | Age |
---|---|---|---|---|---|
Windows 11 | 0xa | 0x0000 | 0x55f0 | 0x0001 | newest |
Windows 11 (upgraded) | 0xa | 0x0000 | 0x55f0 | 0x0001 | newest |
Windows 11 (upgraded) | 0xa | 0x0000 | 0x4a61 | 0x0364 | oldest |
Windows 10 | 0xa | 0x0000 | 0x4a61 | 0x0364 | newest |
Windows 10 | 0xa | 0x0000 | 0x4a61 | 0x0054 | oldest |
The Subversion field being >=0x55f0 seems to be a reliable indicator of the Microsoft Basic Render Driver being the fixed Windows 11 driver, 0x4a61 being the original Windows 10 driver.
All good information - I think as this is a testing problem, we should just encourage people who hit this problem to get the new WARP nuget package, so they can just fix the problem.
I will look to get information on how to actually use it.