[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