Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 48431e4b36163b94454ea2e55f5223e8c653b318
      
https://github.com/WebKit/WebKit/commit/48431e4b36163b94454ea2e55f5223e8c653b318
  Author: Matt Woodrow <[email protected]>
  Date:   2026-09-29 (Tue, 29 Sep 2026)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp
    M 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm

  Log Message:
  -----------
  com.apple.WebKit.GPU at RemoteImageBufferSet.cpp _NUM_: Invalid message 
dispatched void WebKit::RemoteImageBufferSet::ensureBufferForDisplay(): Can't 
asynchronously require full display for a buffer set.
https://bugs.webkit.org/show_bug.cgi?id=325573
<rdar://184646958>

Reviewed by Simon Fraser.

Software layer rendering was allocating a RGBA10 shared memory surface, which
isn't supported by CG, so all buffer allocations fail. Attempting to then render
a partial update on frame 2 triggers the MESSAGE_CHECK since it has no previous
front buffer to read from.

Fix by falling back to RGBAF16 when using software backed buffers.

Also fix the MESSAGE_CHECK problem for cases where allocation failed
legitimately, return the failure through the existing parameter on
EndPrepareForDisplay, so the web process knows to render the full layer bounds
on its next attempt.

* Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp:
(WebKit::RemoteImageBufferSet::endPrepareForDisplay):
(WebKit::RemoteImageBufferSet::ensureBufferForDisplay):
* 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStore::hasFrontBuffer const):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp:
(WebKit::RemoteImageBufferSetProxy::flushFrontBufferAsync):
(WebKit::RemoteImageBufferSetProxy::willPrepareForDisplay):
(WebKit::RemoteImageBufferSetProxy::remoteFrontBufferIsMissing):
(WebKit::RemoteImageBufferSetProxy::disconnect):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h:
(WebKit::RemoteImageBufferSetProxy::WTF_GUARDED_BY_LOCK):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::displayColorSpace const):
(WebKit::backingStoreContentsFormat):
(WebKit::PlatformCALayerRemote::updateBackingStore):

Canonical link: https://commits.webkit.org/322246@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to