forked from pool/webkit2gtk3
Accepting request 1123045 from GNOME:Factory
- Add webkit2gtk3-disable-dmabuf-nvidia.patch: disable DMABuf renderer for NVIDIA proprietary drivers (boo#1216778). (forwarded request 1121694 from mgorse) OBS-URL: https://build.opensuse.org/request/show/1123045 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/webkit2gtk3?expand=0&rev=179
This commit is contained in:
commit
f823a4fe89
63
webkit2gtk3-disable-dmabuf-nvidia.patch
Normal file
63
webkit2gtk3-disable-dmabuf-nvidia.patch
Normal file
@ -0,0 +1,63 @@
|
||||
From: Carlos Garcia Campos <cgarcia@igalia.com>
|
||||
Subject: Disable DMABuf renderer for NVIDIA proprietary drivers
|
||||
Bug: https://bugs.webkit.org/show_bug.cgi?id=262607
|
||||
Bug-Debian: https://bugs.debian.org/1039720
|
||||
Origin: https://github.com/WebKit/WebKit/pull/18614
|
||||
Index: webkitgtk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
||||
===================================================================
|
||||
--- webkitgtk.orig/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
||||
+++ webkitgtk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
||||
@@ -36,11 +36,13 @@
|
||||
#include <WebCore/GLContext.h>
|
||||
#include <WebCore/IntRect.h>
|
||||
#include <WebCore/PlatformDisplay.h>
|
||||
+#include <WebCore/PlatformDisplaySurfaceless.h>
|
||||
#include <epoxy/egl.h>
|
||||
#include <wtf/glib/GUniquePtr.h>
|
||||
|
||||
#if USE(GBM)
|
||||
#include <WebCore/DMABufFormat.h>
|
||||
+#include <WebCore/PlatformDisplayGBM.h>
|
||||
#include <gbm.h>
|
||||
static constexpr uint64_t s_dmabufInvalidModifier = uint64_t(WebCore::DMABufFormat::Modifier::Invalid);
|
||||
#else
|
||||
@@ -53,6 +55,29 @@ static constexpr uint64_t s_dmabufInvali
|
||||
|
||||
namespace WebKit {
|
||||
|
||||
+static bool isNVIDIA()
|
||||
+{
|
||||
+ const char* forceDMABuf = getenv("WEBKIT_FORCE_DMABUF_RENDERER");
|
||||
+ if (forceDMABuf && strcmp(forceDMABuf, "0"))
|
||||
+ return false;
|
||||
+
|
||||
+ std::unique_ptr<WebCore::PlatformDisplay> platformDisplay;
|
||||
+#if USE(GBM)
|
||||
+ const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM");
|
||||
+ if (!disableGBM || !strcmp(disableGBM, "0")) {
|
||||
+ if (auto* device = WebCore::PlatformDisplay::sharedDisplay().gbmDevice())
|
||||
+ platformDisplay = WebCore::PlatformDisplayGBM::create(device);
|
||||
+ }
|
||||
+#endif
|
||||
+ if (!platformDisplay)
|
||||
+ platformDisplay = WebCore::PlatformDisplaySurfaceless::create();
|
||||
+
|
||||
+ WebCore::GLContext::ScopedGLContext glContext(WebCore::GLContext::createOffscreen(platformDisplay ? *platformDisplay : WebCore::PlatformDisplay::sharedDisplay()));
|
||||
+ if (strstr(reinterpret_cast<const char*>(glGetString(GL_VENDOR)), "NVIDIA"))
|
||||
+ return true;
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
OptionSet<DMABufRendererBufferMode> AcceleratedBackingStoreDMABuf::rendererBufferMode()
|
||||
{
|
||||
static OptionSet<DMABufRendererBufferMode> mode;
|
||||
@@ -68,6 +93,9 @@ OptionSet<DMABufRendererBufferMode> Acce
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (isNVIDIA())
|
||||
+ return;
|
||||
+
|
||||
mode.add(DMABufRendererBufferMode::SharedMemory);
|
||||
|
||||
const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions();
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 1 19:52:33 UTC 2023 - Mike Gorse <mgorse@suse.com>
|
||||
|
||||
- Add webkit2gtk3-disable-dmabuf-nvidia.patch: disable DMABuf
|
||||
renderer for NVIDIA proprietary drivers (boo#1216778).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 23 18:48:15 UTC 2023 - Mike Gorse <mgorse@suse.com>
|
||||
|
||||
|
@ -89,6 +89,8 @@ Source99: webkit2gtk3.keyring
|
||||
Patch0: reproducibility.patch
|
||||
# PATCH-FIX-UPSTREAM webkit2gtk3-create-destroy-egl-image.patch boo#1216483 mgorse@suse.com -- fix "No provider of EglDestroyImage found".
|
||||
Patch1: webkit2gtk3-create-destroy-egl-image.patch
|
||||
# PATCH-FIX-UPSTREAM webkit2gtk3-disable-dmabuf-nvidia.patch boo#1216778 mgorse@suse.com -- disable the DMABuf renderer for NVIDIA proprietary drivers.
|
||||
Patch2: webkit2gtk3-disable-dmabuf-nvidia.patch
|
||||
|
||||
BuildRequires: Mesa-libEGL-devel
|
||||
BuildRequires: Mesa-libGL-devel
|
||||
@ -426,6 +428,7 @@ Group: Development/Tools/Other
|
||||
A small test browswer from webkit, useful for testing features.
|
||||
|
||||
# Expand %%lang_package to Obsoletes its older-name counterpart
|
||||
|
||||
%package -n WebKitGTK-%{_apiver}-lang
|
||||
Summary: Translations for package %{name}
|
||||
Group: System/Localization
|
||||
|
Loading…
Reference in New Issue
Block a user