Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: de7538e40c42ca6292df250a984e8737ca9baec6 https://github.com/WebKit/WebKit/commit/de7538e40c42ca6292df250a984e8737ca9baec6 Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2023-09-26 (Tue, 26 Sep 2023)
Changed paths: M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h Log Message: ----------- REGRESSION(268243@main) ~9/21: MotionMark Images 15% on multiple models https://bugs.webkit.org/show_bug.cgi?id=262032 rdar://115907669 Reviewed by Matt Woodrow. Before 268243@main, call ImageBuffer::copyImageForDrawing() would do the work: if (can use ref) <do the work of create native image reference> else <do the work of copy native image> After 268243@main, the invocation was moved to GraphicsContext::nativeImageForDrawing(): if (can use ref) imageBuffer->createNativeImageReference(); else imageBuffer->copyNativeImage(); ImageBufferShareableMappedIOSurfaceBackend happened to have an copyNativeImage() override that caused a difference in behavior. Remove this code altogether, it was a leftover from eariler days working around the issues of backbuffer reading from WP and updating from GPUP. This code was not needed anymore. It is not correct, as IOSurface seed cannot be used to determine read cache invalidation accurately. The seed is updated during HW rasterization, which happens at undefined time. The drawing commands might be on their way from WP -> GPUP or from GPUP -> CG, and not yet issued at the HW rasterization level. The read cache is cleared when the drawing context, e.g. RemoteDisplayListRecorderProxy detects the first modification after a copyNativeImage() call. RemoteImageBufferProxy::backingStoreWillChange() notification will invalidate the read caches. * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h: * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp: Canonical link: https://commits.webkit.org/268438@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes