[X2Go-Commits] [pale-moon] 02/02: debian/patches: add new patch that forces Xlib-based image surfaces when XRENDER usage is enabled.

git-admin at x2go.org git-admin at x2go.org
Sat Apr 27 05:05:41 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository pale-moon.

commit 16a65c2351da8918df2bc2e1cb08def26e2fc69e
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Sat Apr 27 05:03:46 2019 +0200

    debian/patches: add new patch that forces Xlib-based image surfaces when XRENDER usage is enabled.
    
    Should potentially work cross-platform (at least regarding GTK2 and
    GTK3) and lead to the same speedup.
---
 debian/changelog                                   |  3 ++
 ...Xlib-Offscreen-Image-Surface-with-XRENDER.patch | 36 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 40 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 7277c55..c844471 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,9 @@ palemoon (28.4.1+repack-1-0x2go1) UNRELEASED; urgency=medium
   * debian/patches:
     - Remove patch to revert back to non-offscreen image surfaces with GTK2.
       We've got something even better coming up.
+    - Add new patch that forces Xlib-based image surfaces when XRENDER usage
+      is enabled. Should potentially work cross-platform (at least regarding
+      GTK2 and GTK3) and lead to the same speedup.
 
  -- Mihai Moldovan <ionic at ionic.de>  Wed, 25 Apr 2019 09:19:33 +0200
 
diff --git a/debian/patches/fixes/Create-Xlib-Offscreen-Image-Surface-with-XRENDER.patch b/debian/patches/fixes/Create-Xlib-Offscreen-Image-Surface-with-XRENDER.patch
new file mode 100644
index 0000000..5f73977
--- /dev/null
+++ b/debian/patches/fixes/Create-Xlib-Offscreen-Image-Surface-with-XRENDER.patch
@@ -0,0 +1,36 @@
+--- a/gfx/thebes/gfxPlatformGtk.cpp
++++ b/gfx/thebes/gfxPlatformGtk.cpp
+@@ -156,7 +156,7 @@ gfxPlatformGtk::CreateOffscreenSurface(c
+     if (gdkScreen) {
+         // When forcing PaintedLayers to use image surfaces for content,
+         // force creation of gfxImageSurface surfaces.
+-        if (gfxVars::UseXRender() && !UseImageOffscreenSurfaces()) {
++        if (gfxVars::UseXRender()) {
+             Screen *screen = gdk_x11_screen_get_xscreen(gdkScreen);
+             XRenderPictFormat* xrenderFormat =
+                 gfxXlibSurface::FindRenderFormat(DisplayOfScreen(screen),
+@@ -166,13 +166,6 @@ gfxPlatformGtk::CreateOffscreenSurface(c
+                 newSurface = gfxXlibSurface::Create(screen, xrenderFormat,
+                                                     aSize);
+             }
+-        } else {
+-            // We're not going to use XRender, so we don't need to
+-            // search for a render format
+-            newSurface = new gfxImageSurface(aSize, aFormat);
+-            // The gfxImageSurface ctor zeroes this for us, no need to
+-            // waste time clearing again
+-            needsClear = false;
+         }
+     }
+ #endif
+@@ -182,6 +175,10 @@ gfxPlatformGtk::CreateOffscreenSurface(c
+         // e.g., no display, no RENDER, bad size, etc.
+         // Fall back to image surface for the data.
+         newSurface = new gfxImageSurface(aSize, aFormat);
++
++        // The gfxImageSurface ctor zeroes this for us, no need to
++        // waste time clearing again
++        needsClear = false;
+     }
+ 
+     if (newSurface->CairoStatus()) {
diff --git a/debian/patches/series b/debian/patches/series
index 0e06003..7d63e9b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch
 
+fixes/Create-Xlib-Offscreen-Image-Surface-with-XRENDER.patch

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git


More information about the x2go-commits mailing list