aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/1400_nx-X11_Render.c-Improve-situation-fo.full.patch
blob: ca875f3cfc9fb2772abe7f72450c8fcbeb03941d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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