Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:MaxxedSUSE:Compiler-Tools-leap
webkit2gtk3
webkit2gtk3-disable-dmabuf-nvidia.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File webkit2gtk3-disable-dmabuf-nvidia.patch of Package webkit2gtk3
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-2.44.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp =================================================================== --- webkitgtk-2.44.0.orig/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +++ webkitgtk-2.44.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp @@ -37,6 +37,7 @@ #include <WebCore/GLContext.h> #include <WebCore/IntRect.h> #include <WebCore/PlatformDisplay.h> +#include <WebCore/PlatformDisplaySurfaceless.h> #include <WebCore/ShareableBitmap.h> #include <WebCore/SharedMemory.h> #include <epoxy/egl.h> @@ -45,6 +46,7 @@ #if USE(GBM) #include <drm_fourcc.h> +#include <WebCore/PlatformDisplayGBM.h> #include <gbm.h> static constexpr uint64_t s_dmabufInvalidModifier = DRM_FORMAT_MOD_INVALID; @@ -58,6 +60,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; @@ -73,6 +98,9 @@ OptionSet<DMABufRendererBufferMode> Acce return; } + if (isNVIDIA()) + return; + mode.add(DMABufRendererBufferMode::SharedMemory); const char* forceSHM = getenv("WEBKIT_DMABUF_RENDERER_FORCE_SHM");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor