Open Bug 1873496 Opened 9 months ago Updated 7 months ago

WebGPU CTS test cases' init. of D3D12 occasionally fail with `DXGI_ERROR_INVALID_CALL` in CI

Categories

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

defect

Tracking

()

People

(Reporter: ErichDonGubler, Unassigned)

References

(Blocks 2 open bugs)

Details

For some reason, attempts to initialize WebGPU adapters against the D3D12 backend occasionally run into an issue where a DXGI_ERROR_INVALID_CALL (hex. value 0x887A0001) is returned from Windows APIs. The cause is unclear; we are uncertain if this is environmental, or something that needs to be improved with all usage of D3D12 in WGPU. Impact is well-understood: this causes arbitrary WebGPU CTS tests to fail in large swaths.

This can be observed in jobs like this one: https://treeherder.mozilla.org/logviewer?job_id=441762378&repo=try&lineNumber=22331-22366

[task 2023-12-30T21:42:03.276Z] 21:42:03     INFO - TEST-START | /_mozilla/webgpu/cts/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,state:*
[task 2023-12-30T21:42:03.293Z] 21:42:03     INFO - Closing window e7ce6a19-b34a-4e85-97f9-f313d197ff9b
[task 2023-12-30T21:42:03.353Z] 21:42:03     INFO - PID 7596 | [Child 9296, Main Thread] WARNING: NS_ENSURE_TRUE(!mHasOrHasHadOwnerWindow || mOwnerWindow) failed: file /builds/worker/checkouts/gecko/dom/base/GlobalTeardownObserver.cpp:51
[task 2023-12-30T21:42:04.271Z] 21:42:04     INFO - PID 7596 | [WARN  wgpu_hal::dx12::adapter] Device creation failed: 0x887A0001
[task 2023-12-30T21:42:04.286Z] 21:42:04     INFO - PID 7596 | Validation error without device target: Failed to create adapter for dx12
[task 2023-12-30T21:42:04.345Z] 21:42:04     INFO - 
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO - TEST-FAIL | /_mozilla/webgpu/cts/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,state:* | :state="nocontext" - assert_unreached: 
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -   - EXCEPTION: WebGPU device failed to initialize with Error "requestAdapter returned null"; not retrying
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -     assert@https://web-platform.test:8443/_mozilla/webgpu/common/util/util.js:38:11
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -     acquire@https://web-platform.test:8443/_mozilla/webgpu/webgpu/util/device_pool.js:42:11
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -     
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -  Reached unreachable code
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO - wpt_fn@https://web-platform.test:8443/_mozilla/webgpu/common/runtime/wpt.js:75:25
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO - TEST-KNOWN-INTERMITTENT-FAIL | /_mozilla/webgpu/cts/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,state:* | :state="detached-nocontext" - assert_unreached: 
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -   - EXCEPTION: WebGPU device failed to initialize; not retrying
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -     assert@https://web-platform.test:8443/_mozilla/webgpu/common/util/util.js:38:11
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -     acquire@https://web-platform.test:8443/_mozilla/webgpu/webgpu/util/device_pool.js:42:11
[task 2023-12-30T21:42:04.346Z] 21:42:04     INFO -     selectDeviceOrSkipTestCase@https://web-platform.test:8443/_mozilla/webgpu/webgpu/gpu_test.js:135:32
[task 2023-12-30T21:42:04.347Z] 21:42:04     INFO -     acquireProvider@https://web-platform.test:8443/_mozilla/webgpu/webgpu/gpu_test.js:112:12
[task 2023-12-30T21:42:04.347Z] 21:42:04     INFO -     postInit@https://web-platform.test:8443/_mozilla/webgpu/webgpu/gpu_test.js:96:16
[task 2023-12-30T21:42:04.347Z] 21:42:04     INFO -     run@https://web-platform.test:8443/_mozilla/webgpu/common/internal/test_group.js:592:27
[task 2023-12-30T21:42:04.347Z] 21:42:04     INFO -     
[task 2023-12-30T21:42:04.347Z] 21:42:04     INFO -  Reached unreachable code
[task 2023-12-30T21:42:04.347Z] 21:42:04     INFO - wpt_fn@https://web-platform.test:8443/_mozilla/webgpu/common/runtime/wpt.js:75:25
[task 2023-12-30T21:42:04.349Z] 21:42:04     INFO - 
[task 2023-12-30T21:42:04.349Z] 21:42:04     INFO - TEST-KNOWN-INTERMITTENT-FAIL | /_mozilla/webgpu/cts/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,state:* | :state="detached-hascontext" - assert_unreached: 
[task 2023-12-30T21:42:04.349Z] 21:42:04     INFO -   - EXCEPTION: WebGPU device failed to initialize; not retrying
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     assert@https://web-platform.test:8443/_mozilla/webgpu/common/util/util.js:38:11
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     acquire@https://web-platform.test:8443/_mozilla/webgpu/webgpu/util/device_pool.js:42:11
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     selectDeviceOrSkipTestCase@https://web-platform.test:8443/_mozilla/webgpu/webgpu/gpu_test.js:135:32
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     acquireProvider@https://web-platform.test:8443/_mozilla/webgpu/webgpu/gpu_test.js:112:12
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     postInit@https://web-platform.test:8443/_mozilla/webgpu/webgpu/gpu_test.js:96:16
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     run@https://web-platform.test:8443/_mozilla/webgpu/common/internal/test_group.js:592:27
[task 2023-12-30T21:42:04.350Z] 21:42:04     INFO -     
[task 2023-12-30T21:42:04.351Z] 21:42:04     INFO -  Reached unreachable code
[task 2023-12-30T21:42:04.351Z] 21:42:04     INFO - wpt_fn@https://web-platform.test:8443/_mozilla/webgpu/common/runtime/wpt.js:75:25

WebGPU is unreleased tech. Dropping Severity to S3 to remove from org tracking.

Severity: S2 → S3

I'm not currently working on this; dropping assignment to indicate such.

Assignee: egubler → nobody
Status: ASSIGNED → NEW
Priority: P1 → P2
You need to log in before you can comment on or make changes to this bug.