Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5abe8ab78cbb3a00c4e190faa2b602ed7b199432
      
https://github.com/WebKit/WebKit/commit/5abe8ab78cbb3a00c4e190faa2b602ed7b199432
  Author: Nikolas Zimmermann <nzimmerm...@igalia.com>
  Date:   2025-03-31 (Mon, 31 Mar 2025)

  Changed paths:
    M Source/WebCore/platform/Skia.cmake
    M Source/WebCore/platform/SourcesSkia.txt
    M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp
    M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h
    A Source/WebCore/platform/graphics/skia/SkiaRecordingResult.cpp
    A Source/WebCore/platform/graphics/skia/SkiaRecordingResult.h
    M Source/WebCore/platform/graphics/skia/SkiaReplayCanvas.cpp
    M Source/WebCore/platform/graphics/skia/SkiaReplayCanvas.h
    M 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
    M 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
    M 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h

  Log Message:
  -----------
  [GTK][WPE][Skia] Record all dirty tiles of a layer once, don't record each 
tile
https://bugs.webkit.org/show_bug.cgi?id=290614

Reviewed by Carlos Garcia Campos.

For each layer, we currently record each dirty tile, then replay in a worker
thread. We can do better and once record a SkPicture of the area spanning all
dirty tiles, and then use the same SkPicture for replaying N times, for each
dirty tile.

Covered by existing tests.

* Source/WebCore/platform/Skia.cmake:
* Source/WebCore/platform/SourcesSkia.txt:
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:
(WebCore::SkiaPaintingEngine::paint):
(WebCore::SkiaPaintingEngine::record):
(WebCore::SkiaPaintingEngine::replay):
(WebCore::SkiaPaintingEngine::paintGraphicsLayerIntoBuffer const): Deleted.
(WebCore::SkiaPaintingEngine::paintLayer): Deleted.
(WebCore::SkiaPaintingEngine::postPaintingTask): Deleted.
(WebCore::SkiaPaintingEngine::performPaintingTask): Deleted.
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h:
(WebCore::SkiaPaintingEngine::useThreadedRendering const):
* Source/WebCore/platform/graphics/skia/SkiaRecordingResult.cpp: Added.
(WebCore::SkiaRecordingResult::SkiaRecordingResult):
(WebCore::SkiaRecordingResult::create):
(WebCore::SkiaRecordingResult::hasFences):
(WebCore::SkiaRecordingResult::waitForFenceIfNeeded):
* Source/WebCore/platform/graphics/skia/SkiaRecordingResult.h: Added.
* Source/WebCore/platform/graphics/skia/SkiaReplayCanvas.cpp:
(WebCore::SkiaReplayCanvas::SkiaReplayCanvas):
(WebCore::SkiaReplayCanvas::create):
(WebCore::SkiaReplayCanvas::waitForRenderingCompletionAndRewrapImageIfNeeded):
* Source/WebCore/platform/graphics/skia/SkiaReplayCanvas.h:
* 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
* 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::paint):
(WebCore::CoordinatedPlatformLayer::record):
(WebCore::CoordinatedPlatformLayer::replay):
* 
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:

Canonical link: https://commits.webkit.org/292929@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