Closed Bug 1904364 Opened 1 year ago Closed 6 months ago

WebGPU: add test coverage for dedicated and shared workers via CTS

Categories

(Core :: Graphics: WebGPU, task, P1)

task

Tracking

()

RESOLVED FIXED
136 Branch
Tracking Status
firefox136 --- fixed

People

(Reporter: ErichDonGubler, Assigned: ErichDonGubler)

References

(Blocks 1 open bug)

Details

Attachments

(5 files, 1 obsolete file)

Converts bug 1818042, comment 10 into a separate task.

Attachment #9409257 - Attachment is obsolete: true

Ran into some blockers here. I've spent a few days on this task, which culminated in discovering gpuweb/cts#3834. IOW, contrary to appearances, there is not yet coverage for workers in upstream CTS that that's expected to work in a WPT environment. For this reason, no coverage for workers is available yet for the WPT target yet.

Un-assigning from myself, for now.

Assignee: egubler → nobody
Status: ASSIGNED → NEW
Priority: P1 → P3
Summary: Re-enable worker tests in CI runs of WebGPU CTS → Add test coverage of worker functionality via WebGPU CTS
See Also: → 1909606

gpuweb/cts#3834 is marked as fixed. Do we have a bug filed for the CTS import that will bring that fix in?

:jimb: Yep! Patches for bug 1909753 that should bring it in...except, for some reason, re-vendored WPT output appears to produce both *.as_worker.js and *.worker.js tests 😣. Re-opened the upstream issue.

  • Split components of meta-matching regex
    • Use named captures.
    • Use r strings to eliminate backslash escaping.
    • Split into easier-to-read concat!(…) pieces.
  • Use early return for regex capturing.
  • Derive some stuff for TimeoutLength.
  • Factor out WptEntry construction in insert_with_default_name helper.
Assignee: nobody → egubler
Status: NEW → ASSIGNED

…that is, vendor test cases from cts-withsomeworkers.https.html
instead of cts.https.html, which is a superset including worker
URL parameters.

TODO: I'm concerned about the sorting order of these tests. Maybe
worker parameters should be reordered to be last?

Depends on: 1938402

My latest patch revisions and their first Try push (try:87ae36fb4afd) gave way to some interesting discoveries today!

  1. Broadly speaking, CTS tests seem to Just Work™ and have similar test outcomes in service and dedicated worker contexts. Noice!
  2. Service workers seem to be universally failing to start WebGPU across the board. I'm going to start debugging at gpuweb/cts:bdee22a28e3bbd54c63ab8581fbdd82a12dc54fc:src/common/runtime/helper/test_worker.ts:162, where I suspect the URL for loading *.as_worker.js URLs for the service worker needs to be fixed in our case. Hopefully this is easy to figure out, but if not, I honestly think that's a pretty punt-able piece of worker support.

The outlook for getting this test coverage in review before EOY is good. Exciting!

See Also: → 1938659
See Also: → 1938663
Keywords: leave-open
Pushed by egubler@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3e0182fdaa35 chore(webgpu): CTS revendoring: preparatory refacs r=webgpu-reviewers,nical

It turns out that service workers are blocked in CTS because they are written as ES modules. This is a terrific thing, except we don't support those in service workers, at least until bug 1360870 is resolved.

I'm going to move the scope of test coverage for service workers to bug 1938663. Will rename this bug accordingly.

Priority: P3 → P1
Summary: Add test coverage of worker functionality via WebGPU CTS → WebGPU: add test coverage for dedicated and shared workers via CTS
Keywords: leave-open
Keywords: leave-open
Pushed by egubler@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/df15b4090113 test(webgpu): promote `webgpu:web_platform,worker,worker:shared_worker:*` to tier 2 r=webgpu-reviewers,nical
Attachment #9444600 - Attachment description: WIP: Bug 1904364 - test(webgpu): re-vendor same CTS with worker coverage r=#webgpu-reviewers! → Bug 1904364, part 1 - test(webgpu): re-vendor same CTS with worker coverage r=#webgpu-reviewers!
Attachment #9444601 - Attachment description: WIP: Bug 1904364 - test(webgpu): divide CTS files by worker type r=#webgpu-reviewers! → Bug 1904364, part 2 - test(webgpu): divide CTS files by worker type r=#webgpu-reviewers!
Depends on: 1938659
See Also: 1938659
Attachment #9459444 - Attachment description: WIP: Bug 1904364, part 3 - test(webgpu): add initial expected outcomes for workers in CTS r=#webgpu-reviewers! → Bug 1904364, part 3 - test(webgpu): add initial expected outcomes for workers in CTS r=#webgpu-reviewers!
Pushed by egubler@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9780868d8650 part 1 - test(webgpu): re-vendor same CTS with worker coverage r=webgpu-reviewers,nical https://hg.mozilla.org/integration/autoland/rev/c15e9e4fed96 part 2 - test(webgpu): divide CTS files by worker type r=webgpu-reviewers,nical https://hg.mozilla.org/integration/autoland/rev/916fb18598fd part 3 - test(webgpu): add initial expected outcomes for workers in CTS r=webgpu-reviewers,nical
Regressions: 1942886
Status: ASSIGNED → RESOLVED
Closed: 6 months ago
Keywords: leave-open
Resolution: --- → FIXED
Regressions: 1943776
Target Milestone: --- → 136 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: