aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch')
-rw-r--r--debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch b/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch
new file mode 100644
index 000000000..ca875f3cf
--- /dev/null
+++ b/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch
@@ -0,0 +1,68 @@
+From da43f047a0d1f9e3a4850f3e8a15a67e81826dae Mon Sep 17 00:00:00 2001
+From: Oleksandr Shneyder <o.schneyder@phoca-gmbh.de>
+Date: Mon, 31 Jul 2017 13:20:12 +0200
+Subject: [PATCH] Render.c: Improve situation for multiple trapezoid requests.
+
+ This change improves the situation in nxagent for the following
+ issue:
+
+ ```
+ "XRenderCompositeTrapezoids builds RenderTrapezoids requests to composite the
+ specified list of trapezoids to dst. XRenderCompositeTrapezoids will split
+ the list of trapezoids to build requests no larger than the maximum request
+ size supported by the server. This can create rendering artifacts as the
+ precompositing done by RenderTrapezoids when a maskFormat is specified
+ cannot span multiple requests."
+ ```
+
+ For more information see:
+ https://lists.freedesktop.org/archives/xorg/2008-June/036124.html
+
+ Fixes ArcticaProject/nx-libs#336.
+
+ Backported from Arctica GH 3.6.x branch.
+
+ v2: backport to nx-libs 3.5.0.x (Mihai Moldovan)
+---
+ nx-X11/programs/Xserver/hw/nxagent/Render.c | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+--- a/nx-X11/programs/Xserver/hw/nxagent/Render.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c
+@@ -84,12 +84,6 @@ FIXME: Most operations don't seem to pro
+ #undef SKIP_REALLY_ALL_LOUSY_RENDER_OPERATIONS
+
+ /*
+- * Do we split the big trapezoid requests?
+- */
+-
+-#define TRAPEZOIDS_PER_REQUEST 256
+-
+-/*
+ * Margin added around the glyphs extent (in pixels).
+ */
+
+@@ -1798,8 +1792,6 @@ FIXME: Is this useful or just a waste of
+ nxagentSynchronizeBox(pDst -> pDrawable, nxagentTrapezoidExtents, NEVER_BREAK);
+ }
+
+- while (remaining > 0)
+- {
+ XRenderCompositeTrapezoids(nxagentDisplay,
+ op,
+ nxagentPicturePriv(pSrc) -> picture,
+@@ -1807,13 +1799,8 @@ FIXME: Is this useful or just a waste of
+ pForm,
+ xSrc,
+ ySrc,
+- (XTrapezoid *) current,
+- (remaining > TRAPEZOIDS_PER_REQUEST ?
+- TRAPEZOIDS_PER_REQUEST : remaining));
++ (XTrapezoid *) current,remaining);
+
+- remaining -= TRAPEZOIDS_PER_REQUEST;
+- current += TRAPEZOIDS_PER_REQUEST;
+- }
+
+ #endif
+