Open Bug 1827116 (webgpu-external-textures) Opened 2 years ago Updated 2 months ago

External texture API missing in WebGPU (`GPUDevice.importExternalTexture`, `GPUExternalTexture`, `texture_external`)

Categories

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

Firefox 113
defect

Tracking

()

People

(Reporter: bugz, Unassigned)

References

(Depends on 1 open bug, Blocks 6 open bugs)

Details

(Keywords: parity-chrome, parity-safari)

Attachments

(1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0

Steps to reproduce:

visit thimbleberry.dev and click the webcam button, or the sample media and then the 'jump' video

Actual results:

The video path processing path fails because:
importExternalTexture is undefined

src here: https://github.com/mighdoll/thimbleberry/blob/main/image-demo/src/ImageProcessing.ts

Assignee: nobody → egubler
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: importExternalTexture not defined → External texture APIs missing in WebGPU

This bug happens because GPUDevice.importExternalTexture (orig. spec PR, current spec) is part of the current v1 draft of the WebGPU API spec, but not yet implemented. The effort involved to resolve this is not yet clear. Assigning this bug to myself to figure it out.

Summary: External texture APIs missing in WebGPU → `GPUQueue.copyExternalImageToTexture` missing in WebGPU
Summary: `GPUQueue.copyExternalImageToTexture` missing in WebGPU → `GPUDevice.importExternalTexture` missing in WebGPU
Attachment #9329590 - Attachment is obsolete: true

This API is definitely necessary for webgpu-v1-samples' videoUploading and videoUploadingCodecs demos, which is a relatively high priority for us to resolve in Firefox's WebGPU implementation. However, we believe we should unblock some other bugs that block that specific issue before attending to this one specifically. I'm going to unassign myself for now, since I'm not giving any active attention to this bug.

Assignee: egubler → nobody

For reference of the future assignee to this bug, here's what I was able to find relevant to this set of APIs; we basically need to implement these pieces of the current drafts of the v1 spec.:

  • Section 6.4 of the v1 WebGPU API spec. (GPUExternalTexture).
  • Section 5.4.4 of the v1 WGSL spec. (External sampled texture types).
Summary: `GPUDevice.importExternalTexture` missing in WebGPU → External texture API missing in WebGPU `GPUDevice.importExternalTexture` missing in WebGPU
Summary: External texture API missing in WebGPU `GPUDevice.importExternalTexture` missing in WebGPU → External texture API missing in WebGPU (`GPUDevice.importExternalTexture`, `GPUExternalTexture`, `texture_external`)

VideoFrame blocks the videoUploadingWebCodecs demo specifically.

Alias: webgpu-external-textures

I'll take this, up to but excluding VideoFrame for now.

Assignee: nobody → jgilbert
Severity: -- → S3
Priority: -- → P3
See Also: → 1843891
Assignee: jgilbert → nobody
See Also: → 1880601
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: