Reland: WebGPU decoder: Add Associate/Dissociate mailbox

Reland with a fix for missing immediate data storage in the decoder

These WebGPU IPC commands allows wrapping a mailbox in a Dawn texture
and associate it to a given ID in dawn_wire. There is the respective
dissociate command too.

SharedImageRepresentationIOSurfaceDawn is changed to destroy() the Dawn
texture on EndAccess so it is an error to access the texture after the
mailbox has been dissociated. The class also gets some refcounting

This also makes some GPU service objects able to be used when no GL
context is present, as is the case when running WebGPU unittests.


Change-Id: Ib0c8f6251441c9dbe69252773279b53a1fec3736
Reviewed-by: Antoine Labour <>
Commit-Queue: Corentin Wallez <>
Cr-Commit-Position: refs/heads/master@{#653366}
35 files changed