Textures may be queued for presentation even if they are not successfully submitted
Categories
(Core :: Graphics: WebGPU, defect, P2)
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
| Reporter | ||
Updated•1 day ago
|
| Assignee | ||
Updated•14 hours ago
|
| Assignee | ||
Comment 1•13 hours ago
|
||
| Assignee | ||
Comment 2•12 hours ago
|
||
Updated•11 hours ago
|
Description
•