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>
|
Mon Oct 23 18:48:15 UTC 2023 - Mike Gorse <mgorse@suse.com>
|
||||||
|
|
||||||
|
@ -89,6 +89,8 @@ Source99: webkit2gtk3.keyring
|
|||||||
Patch0: reproducibility.patch
|
Patch0: reproducibility.patch
|
||||||
# PATCH-FIX-UPSTREAM webkit2gtk3-create-destroy-egl-image.patch boo#1216483 mgorse@suse.com -- fix "No provider of EglDestroyImage found".
|
# 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
|
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-libEGL-devel
|
||||||
BuildRequires: Mesa-libGL-devel
|
BuildRequires: Mesa-libGL-devel
|
||||||
@ -426,6 +428,7 @@ Group: Development/Tools/Other
|
|||||||
A small test browswer from webkit, useful for testing features.
|
A small test browswer from webkit, useful for testing features.
|
||||||
|
|
||||||
# Expand %%lang_package to Obsoletes its older-name counterpart
|
# Expand %%lang_package to Obsoletes its older-name counterpart
|
||||||
|
|
||||||
%package -n WebKitGTK-%{_apiver}-lang
|
%package -n WebKitGTK-%{_apiver}-lang
|
||||||
Summary: Translations for package %{name}
|
Summary: Translations for package %{name}
|
||||||
Group: System/Localization
|
Group: System/Localization
|
||||||
|
Loading…
Reference in New Issue
Block a user