[webkit-changes] [WebKit/WebKit] 5d5c73: [Gtk][WPE][Skia] CPU rendering fires an EGL relate...

Nikolas Zimmermann noreply at github.com
Mon Jan 27 02:14:23 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5d5c7351cfd8dcda26eb1b1159d750a5e9bbe406
      https://github.com/WebKit/WebKit/commit/5d5c7351cfd8dcda26eb1b1159d750a5e9bbe406
  Author: Nikolas Zimmermann <nzimmermann at igalia.com>
  Date:   2025-01-27 (Mon, 27 Jan 2025)

  Changed paths:
    M Source/WebCore/platform/graphics/displaylists/DisplayListItem.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h
    M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp
    M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h

  Log Message:
  -----------
  [Gtk][WPE][Skia] CPU rendering fires an EGL related assertion, when NativeImage/ImageBuffers are drawn
https://bugs.webkit.org/show_bug.cgi?id=286566

Reviewed by Carlos Garcia Campos.

Visiting e.g. igalia.com, fires an assertion when Skia/CPU rendering is
active. During recording of the displayl ist, we unconditionally create
fences when ImageBuffers/NativeImages are used. This is not correct for
CPU rendering and leads to the assertion, when the Skia/CPU painting
threads attempt to wait for fence completion:

    No provider of eglWaitSync found.  Requires one of:
        EGL 15

The painting threads don't own a SkiaGLContext in non-GPU painting mode,
therefore we see the EGL error from above. Fix that, by not passing
DisplayList::FlushImagesAndWaitForCompletion as ReplayOption during
display list recording. To clarify, that this option is intended to be
used with accelerated rendering, rename it to
DisplayList::FlushAcceleratedImagesAndWaitForCompletion.

Covered by existing tests, when CPU rendering is chosen.

* Source/WebCore/platform/graphics/displaylists/DisplayListItem.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordResourceUse):
* Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h:
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:
(WebCore::SkiaPaintingEngine::recordDisplayList const):
(WebCore::SkiaPaintingEngine::postPaintingTask):
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h:

Canonical link: https://commits.webkit.org/289419@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list