From 1077270f8ac6ffdfc0b5dd7693cfe0aad7169ad9 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Thu, 3 Aug 2017 10:39:50 +0200 Subject: nx-X11: Render.c: Improve situation for multiple trapezoid requests. Backported from Arctica GH 3.6.x branch. v2: backport to nx-libs 3.5.0.x (Mihai Moldovan) Adds: - debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch --- debian/changelog | 5 ++ ...1_Render.c-Improve-situation-fo.full+lite.patch | 68 ++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 74 insertions(+) create mode 100644 debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch diff --git a/debian/changelog b/debian/changelog index 026f8d845..bd0f8ffbd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -71,6 +71,11 @@ nx-libs (2:3.5.0.33-0x2go1) UNRELEASED; urgency=low v2: backport to nx-libs 3.5.0.x (Mihai Moldovan) Adds: - debian/patches/1300_nxcomp_Set-TokenSize-to-1536-for-lin.full+lite.patch + * nx-X11: Render.c: Improve situation for multiple trapezoid requests. + Backported from Arctica GH 3.6.x branch. + v2: backport to nx-libs 3.5.0.x (Mihai Moldovan) + Adds: + - debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch -- X2Go Release Manager Sat, 04 Jul 2015 06:29:19 +0200 diff --git a/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch b/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch new file mode 100644 index 000000000..ca875f3cf --- /dev/null +++ b/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch @@ -0,0 +1,68 @@ +From da43f047a0d1f9e3a4850f3e8a15a67e81826dae Mon Sep 17 00:00:00 2001 +From: Oleksandr Shneyder +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 + diff --git a/debian/patches/series b/debian/patches/series index 988e11643..c475dc72f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -149,6 +149,7 @@ 1260_nx-X11_xserver-Avoid-sending-uninitialized-padd.full.patch 1270_nx-X11_CVE-2017-2624-Use-timingsafe_memcmp-to-c.full.patch 1300_nxcomp_Set-TokenSize-to-1536-for-lin.full+lite.patch +1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch 9900-dxpc-license-history.full+lite.patch 0016_nx-X11_install-location.debian.patch 0102_xserver-xext_set-securitypolicy-path.debian.patch -- cgit v1.2.3