Open Bug 1825419 Opened 2 years ago Updated 11 months ago

WebGPU CTS fails to initialize DirectX debug layer(s)

Categories

(Core :: Graphics: WebGPU, defect, P2)

Desktop
Windows
defect

Tracking

()

Tracking Status
firefox-esr102 --- unaffected
firefox111 --- unaffected
firefox112 --- unaffected
firefox113 --- disabled
firefox114 --- fix-optional

People

(Reporter: ErichDonGubler, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

WebGPU CTS currently fails to initialize debugging layers for its dx12 back end. This is a potentially significant problem for debugging failures in Windows builds; clear diagnostics are often key to resolving impactful issues such as portability hazards and undefined behavior. We'd like to ensure that this runs correctly in at least our CI runners on Windows machines.

Steps to reproduce

  1. Configure WebGPU to run on Firefox. ATOW, this means setting the dom.webgpu.enabled pref. to true, but this may not be necessary soon.

  2. Ensure that the dom.webgpu.wgpu-backend pref. is set to dx12.

  3. Ensure that the RUST_LOG environment variable is set to at least wgpu_hal=info.

  4. Invoke Firefox in a context where WebGPU will be exercised, and observe log messages like the following:

     [WARN  wgpu_hal::dx12::instance] Unable to enable D3D12 debug interface: 0x887A002D
     [WARN  wgpu_hal::auxil::dxgi::factory] Unable to enable DXGI debug interface: 0x887A002D
    

To give a concrete example of the above, you can apply the following patch, which sets the correct prefs. for WebGPU's current CTS tests:

--- a/testing/web-platform/mozilla/meta/webgpu/__dir__.ini
+++ b/testing/web-platform/mozilla/meta/webgpu/__dir__.ini
@@ -1,1 +1,2 @@
-prefs: [dom.webgpu.enabled:true]
+prefs: [dom.webgpu.enabled:true,
+        dom.webgpu.wgpu-backend:dx12]

…and run one of the reftests:

RUST_LOG=wgpu_hal=info ./mach wpt /_mozilla/webgpu/webgpu/web_platform/reftests/canvas_colorspace_rgba8unorm.https.html

Observations

This issue has been observed only on Windows 11 until now. It's possible that other versions of Windows also have this issue, and we haven't witnessed it and recorded it here yet.

Blocks: webgpu-v1
Type: task → defect
Keywords: regression
Regressed by: webgpu-cts
Severity: -- → S3

Set release status flags based on info from the regressing bug 1720941

Priority: -- → P3
Assignee: nobody → egubler
Priority: P3 → P2
Status: NEW → ASSIGNED
Blocks: webgpu-dx12-on-windows
No longer blocks: webgpu-v1

The entry in DXGI_ERROR for the error code I listed in the description:

DXGI_ERROR_SDK_COMPONENT_MISSING

0x887A002D

The operation depends on an SDK component that is missing or mismatched.

Assignee: egubler → nobody
Status: ASSIGNED → NEW
Blocks: webgpu-v1
No longer blocks: webgpu-dx12-on-windows
You need to log in before you can comment on or make changes to this bug.