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

Reply via email to