gfx-rs/wgpu

Regression: wgpu no longer detects Dx12 backend on Intel(R) HD Graphics 4600

ByteNybbler opened this issue · 1 comments

Description
In wgpu 0.18, the Intel(R) HD Graphics 4600 adapter is properly detected as having both Dx12 and Gl backends.
In wgpu 0.19.4, the Intel(R) HD Graphics 4600 adapter is incorrectly detected as having only a Gl backend.

Repro steps
wgpu 0.19.4:

export RUST_LOG=wgpu_examples=info
cargo run --bin wgpu-examples hello

wgpu 0.18:

export RUST_LOG=wgpu=info
cargo run --bin hello

Expected vs observed behavior
The following shows that wgpu 0.19.4 displays one less available adapter than wgpu 0.18. The missing adapter in 0.19.4 is the Dx12 backend for the Intel(R) HD Graphics 4600 integrated GPU.

wgpu 0.19.4:

[2024-04-26T23:21:47Z INFO  wgpu_examples::hello] Available adapters:
[2024-04-26T23:21:47Z INFO  wgpu_examples::hello]     AdapterInfo { name: "Microsoft Basic Render Driver", vendor: 5140, device: 140, device_type: Cpu, driver: "", driver_info: "", backend: Dx12 }
[2024-04-26T23:21:47Z INFO  wgpu_examples::hello]     AdapterInfo { name: "Intel(R) HD Graphics 4600", vendor: 32902, device: 0, device_type: IntegratedGpu, driver: "OpenGL", driver_info: "4.3.0 - Build 20.19.15.4531", backend: Gl }
[2024-04-26T23:21:47Z INFO  wgpu_examples::hello] Selected adapter: AdapterInfo { name: "Intel(R) HD Graphics 4600", vendor: 32902, device: 0, device_type: IntegratedGpu, driver: "OpenGL", driver_info: "4.3.0 - Build 20.19.15.4531", backend: Gl }

wgpu 0.18:

[2024-04-27T01:13:57Z INFO  hello] Available adapters:
[2024-04-27T01:13:57Z INFO  hello]     AdapterInfo { name: "Intel(R) HD Graphics 4600", vendor: 32902, device: 1042, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Dx12 }
[2024-04-27T01:13:57Z INFO  hello]     AdapterInfo { name: "Microsoft Basic Render Driver", vendor: 5140, device: 140, device_type: Cpu, driver: "", driver_info: "", backend: Dx12 }
[2024-04-27T01:13:57Z INFO  hello]     AdapterInfo { name: "Intel(R) HD Graphics 4600", vendor: 32902, device: 0, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Gl }
[2024-04-27T01:13:57Z INFO  hello] Selected adapter: AdapterInfo { name: "Intel(R) HD Graphics 4600", vendor: 32902, device: 1042, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Dx12 }

Platform
SystemInfo { os: "Windows 10 Home", kernel: "19045", cpu: "Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz", core_count: "4", memory: "15.9 GiB" }

This is actually an intentional decision on our end because Haswell cards had their DX12 drivers removed. We explicitly filter them out, as those with dx12 drivers still, cause crashes later on.

https://github.com/gfx-rs/wgpu/blob/trunk/wgpu-hal/src/auxil/dxgi/factory.rs#L19-L37