Open Bug 2050173 Opened 1 day ago Updated 7 hours ago

Textures may be queued for presentation even if they are not successfully submitted

Categories

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

defect

Tracking

()

People

(Reporter: aleiserson, Assigned: sotaro)

References

Details

Attachments

(3 files)

WebGPU canvas contexts are attached to command encoders based on calls to TrackPresentationContext. When the resultant command buffer is submitted, SwapChainPresent is scheduled for those contexts. The canvas is expected to be ready for compositing shortly, and if it isn't, the compositor may block (bug 2045240, comment 10) or SwapChainPresent may report a "Texture is not submitted" error.

It is possible to reach the "Textures is not submitted" case if errors occur during command encoding in the PWebGPU server. For example, bug 2019441.

Attaching a test case.

I am not sure how serious this issue is. In bug 2019441, the application does not recover, but that may be due to other factors. With the test case, display of the page seems to hang when the error occurs, but it recovers if the tab or window is hidden and then restored.

2026-06-24 15:08:37.198 Nightly GPU Helper[86336:42183300] Failure on line 688 in function id scheduleApplicationNotification(LSNotificationCode, NSWorkspaceNotificationCenter *): noErr == _LSModifyNotification(notificationID, 1, &code, 0, NULL, NULL, NULL)
2026-06-24 15:08:37.316 Nightly GPU Helper[86336:42183300] Error received in message reply handler: Connection invalid
2026-06-24 15:08:37.316 Nightly GPU Helper[86336:42183319] Connection Invalid error for service com.apple.hiservices-xpcservice.
UNSUPPORTED (log once): POSSIBLE ISSUE: unit 1 GLD_TEXTURE_INDEX_2D is unloadable and bound to sampler type (Float) - using zero texture because texture unloadable
[RTDBG] DeviceCreateSwapChain register owner=1 pid=86347
[RTDBG] RegisterTextureOwner owner=1 pid=86347
[RTDBG] SwapChainPresent enter owner=1 remoteTexture=1 pid=86347
[RTDBG] SwapChainPresent bail: not submitted owner=1 textureId=4294967296
JavaScript warning: , line 0: Uncaptured WebGPU error: In a set_pipeline command, caused by: Render pipeline targets are incompatible with render pass, caused by: Incompatible color attachments at indices [0]: the RenderPass uses textures with formats [Some(Bgra8Unorm)] but the RenderPipeline with '' label uses attachments with formats [Some(Rgba8Unorm)]
Crash Annotation GraphicsCriticalError: |[G0][GFX1-]: Texture is not submitted (t=1.28694) [GFX1-]: Texture is not submitted
No longer blocks: 2019441
See Also: → 2019441
Assignee: nobody → sotaro.ikeda.g
Attachment #9601184 - Attachment description: Bug 2050173 - Post dummy texture when shared texture is not submitted in WebGPUParent::SwapChainPresent() → Bug 2050173 - Post dummy texture when shared texture is not submitted in WebGPUParent::SwapChainPresent()
Pushed by sikeda.birchill@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/ab21dc75c504 https://hg.mozilla.org/integration/autoland/rev/4fe480d2b9a5 Post dummy texture when shared texture is not submitted in WebGPUParent::SwapChainPresent() r=webgpu-reviewers,ErichDonGubler
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: