Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 10435abe82ca31859fc6d3290c43857925f2df92 https://github.com/WebKit/WebKit/commit/10435abe82ca31859fc6d3290c43857925f2df92 Author: Nikolas Zimmermann <nzimmerm...@igalia.com> Date: 2024-11-19 (Tue, 19 Nov 2024)
Changed paths: M Source/WebCore/platform/graphics/displaylists/DisplayList.h M Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListItem.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.h M Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h M Source/WebCore/platform/graphics/skia/SkiaThreadedPaintingPool.cpp Log Message: ----------- [GTK][WPE][Skia] Use GPU synchronization primitives for ImageBuffer/NativeImage during DisplayList recording/replaying https://bugs.webkit.org/show_bug.cgi?id=283292 Reviewed by Said Abou-Hallawa. Prepare for threaded GPU painting: Use new GPU synchronization primitives in ImageBuffer/NativeImage during DisplayList recording/replaying. During recording, when a NativeImage/ImageBuffer is used call finishAcceleratedRenderingAndCreateFence(), to make sure the rendering commands are flushed to the GPU, and a fence is injected in the GL command stream, so that we can wait during replaying (in a worker thread!) that the GPU finished processing, before we attempt to use the NativeImage or ImageBuffer (in the accelerated case only!). Covered by existing tests. * Source/WebCore/platform/graphics/displaylists/DisplayList.h: (WebCore::DisplayList::DisplayList::DisplayList): (WebCore::DisplayList::DisplayList::replayOptions const): * Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp: (WebCore::DisplayList::applyFilteredImageBufferItem): (WebCore::DisplayList::applyImageBufferItem): (WebCore::DisplayList::applyNativeImageItem): (WebCore::DisplayList::applySourceImageItem): (WebCore::DisplayList::applySetStateItem): (WebCore::DisplayList::applyItem): * Source/WebCore/platform/graphics/displaylists/DisplayListItem.h: * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp: (WebCore::DisplayList::RecorderImpl::recordResourceUse): * Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp: (WebCore::DisplayList::Replayer::Replayer): (WebCore::DisplayList::Replayer::replay): * Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.h: (WebCore::DisplayList::Replayer::Replayer): * Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h: (WebCore::DisplayList::ResourceHeap::getImageBuffer): (WebCore::DisplayList::ResourceHeap::getNativeImage): (WebCore::DisplayList::ResourceHeap::getSourceImage): (WebCore::DisplayList::ResourceHeap::getImageBuffer const): Deleted. (WebCore::DisplayList::ResourceHeap::getNativeImage const): Deleted. (WebCore::DisplayList::ResourceHeap::getSourceImage const): Deleted. * Source/WebCore/platform/graphics/skia/SkiaThreadedPaintingPool.cpp: (WebCore::SkiaThreadedPaintingPool::recordDisplayList const): Canonical link: https://commits.webkit.org/286787@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes