Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b739fc23ac7aa46d59d44bfc9ed0a4a81998ac4e
https://github.com/WebKit/WebKit/commit/b739fc23ac7aa46d59d44bfc9ed0a4a81998ac4e
Author: Kimmo Kinnunen <[email protected]>
Date: 2025-04-09 (Wed, 09 Apr 2025)
Changed paths:
M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
Log Message:
-----------
GPUP: Drawing spends time in converting weak RemoteImageBufferProxy to strong
ref
https://bugs.webkit.org/show_bug.cgi?id=291318
rdar://148902028
Reviewed by Simon Fraser.
Frequent GraphicsContext draw commands on RemoteDisplayListRecorderProxy
would be slowed down by the recorder -> imagebuffer back pointer
traversal.
Fix by tracking the flush need in RemoteDisplayListRecorderProxy,
similar to how GraphicsContextCG tracks the flush need. This is the
better place. Only traverse the back pointer upon first draw after
flush.
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::send):
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
(WebKit::RemoteDisplayListRecorderProxy::consumeHasDrawn):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxy::backingStoreWillChange):
(WebKit::RemoteImageBufferProxy::disconnect):
(WebKit::RemoteImageBufferProxy::flushDrawingContext):
(WebKit::RemoteImageBufferProxy::flushDrawingContextAsync):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
Canonical link: https://commits.webkit.org/293465@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes