[webkit-changes] [WebKit/WebKit] 19b6a7: Cherry-pick 260790 at main (71065ff83269). https://bu...

Michael Catanzaro noreply at github.com
Sat Feb 25 15:00:36 PST 2023


  Branch: refs/heads/webkitglib/2.40
  Home:   https://github.com/WebKit/WebKit
  Commit: 19b6a7d45363d658f1dacfe32dc9493338563442
      https://github.com/WebKit/WebKit/commit/19b6a7d45363d658f1dacfe32dc9493338563442
  Author: Žan Doberšek <zdobersek at igalia.com>
  Date:   2023-02-26 (Sun, 26 Feb 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gbm/DMABufEGLUtilities.h
    M Source/WebCore/platform/graphics/gbm/DMABufObject.h
    M Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 260790 at main (71065ff83269). https://bugs.webkit.org/show_bug.cgi?id=252744

    [Linux] DMABufObject modifiers should default to being not-present
    https://bugs.webkit.org/show_bug.cgi?id=252744

    Reviewed by Carlos Garcia Campos.

    Until now, the modifier values on the DMABufObject instances defaulted to 0,
    which is equivalent to DRM_FORMAT_MOD_LINEAR. These values were then used in
    the constructEGLCreateImageAttributes() helper, specifying the modifier value
    for the EGLImage import as long as the driver supported the relevant extension.

    DRM_FORMAT_MOD_LINEAR enforces the linear format, but that is not the same as
    leaving the modifier unspecified. The latter step is necessary when the
    modifier value has not been specified otherwise, since it allows the driver to
    detect the corresponding modifier through internal logic.

    This problem has been exhibited with some GStreamer decoders that yield DMABufs
    without any modifier specified (perhaps because a specified modifier isn't
    required, but mostly because the GStreamer pipeline doesn't relay that
    information yet). When the linear modifier was specified, sampling of the
    DMABuf-backed EGLImage was incorrect.

    To fix this, modifier presence is now tracked alongside the per-plane modifier
    value. Only when the modifier usage is enabled and the modifier is actually
    present, the relevant EGL attributes are set during the EGLImage import.

    GStreamer sink, when operating on DMABufs, leaves the modifiers unspecified,
    since for now there's no information to work with. In GBMBufferSwapchain, when
    creating a DMABufObject for a given buffer, that information is retrievable
    through libgbm API, and the modifier for a given plane is marked as present.

    * Source/WebCore/platform/graphics/gbm/DMABufEGLUtilities.h:
    (WebCore::DMABufEGLUtilities::constructEGLCreateImageAttributes):
    * Source/WebCore/platform/graphics/gbm/DMABufObject.h:
    (WebCore::DMABufObject::encode):
    (WebCore::DMABufObject::decode):
    * Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp:
    (WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

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


  Commit: fe62fa076c5ebdfaab9f27efb162726729017b38
      https://github.com/WebKit/WebKit/commit/fe62fa076c5ebdfaab9f27efb162726729017b38
  Author: Michael Catanzaro <mcatanzaro at redhat.com>
  Date:   2023-02-26 (Sun, 26 Feb 2023)

  Changed paths:
    M Source/cmake/OptionsCommon.cmake

  Log Message:
  -----------
  Cherry-pick 260818 at main (fe4fdc28cd21). https://bugs.webkit.org/show_bug.cgi?id=252679

    [CMake] Rework decision to enable -gsplit-dwarf by default
    https://bugs.webkit.org/show_bug.cgi?id=252679

    Reviewed by Adrian Perez de Castro.

    -gsplit-dwarf breaks RPM builds due to zero-sized debug files. I could
    override this with -DDEBUG_FISSION=OFF, but we're probably trying to be
    _too_ helpful here by injecting debug flags into non-debug build types.
    I doubt Fedora is the only distro that's not prepared for -gsplit-dwarf
    so let's only inject it if the CMake build type is a debug build type,
    and if ENABLE_DEVELOPER_MODE (set e.g. by build-webkit) which is a good
    indication that incremental builds are desired. (The primary goal of
    -gsplit-dwarf is to make incremental builds faster.) That way, we
    improve CMake's default behavior for developers doing incremental
    builds, but anyone manually passing CFLAGS will still get exactly what
    they request without modification, and we avoid breaking find-debuginfo
    scripts or other debuginfo machinery that CMake does not know about.

    * Source/cmake/OptionsCommon.cmake:

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


Compare: https://github.com/WebKit/WebKit/compare/ecf56e6c564a...fe62fa076c5e


More information about the webkit-changes mailing list