diff options
Diffstat (limited to 'recipes-graphics/xorg-xserver/xserver-xorg-1.14.7')
-rw-r--r-- | recipes-graphics/xorg-xserver/xserver-xorg-1.14.7/Revert_Use_new_pixman_glyph_cache_t_API_that_will_be_in_pixman0.28.0.patch | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.14.7/Revert_Use_new_pixman_glyph_cache_t_API_that_will_be_in_pixman0.28.0.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.14.7/Revert_Use_new_pixman_glyph_cache_t_API_that_will_be_in_pixman0.28.0.patch deleted file mode 100644 index 8c7c0ca..0000000 --- a/recipes-graphics/xorg-xserver/xserver-xorg-1.14.7/Revert_Use_new_pixman_glyph_cache_t_API_that_will_be_in_pixman0.28.0.patch +++ /dev/null @@ -1,268 +0,0 @@ -This patch has issues with the tegra xdriver: -Some text, i.e the lxpanel clock, lxterminal terminal content is not visible. -Tested with libpixman 0.29.2, 0.30.0 -Revert: -From 9cbcb5bd6a5360a128d15b77a02d8d3351f74366 Mon Sep 17 00:00:00 2001 -From: Søren Sandmann Pedersen <ssp@redhat.com> -Date: Wed, 30 May 2012 09:19:08 +0000 -Subject: Use new pixman_glyph_cache_t API that will be in pixman 0.28.0 - -This new API allows glyphs to be cached in a data structure in pixman, -and entire glyph strings to be composited in one go. - -Also bump pixman dependency to 0.27.2. - -Results from the cairo peformance test suite running against Xvfb with -a screen size of 1680x1050@32bpp: - -Speedups -======== - xlib firefox-talos-gfx 12416.63 -> 3603.93 3.45x speedup -██▌ - xlib xfce4-terminal-a1 1727.57 -> 1048.85: 1.65x speedup -▋ - xlib evolution 1370.49 -> 869.34: 1.58x speedup -▋ - xlib gnome-terminal-vim 1832.83 -> 1251.94: 1.46x speedup -▌ - xlib poppler 1519.70 -> 1204.05: 1.26x speedup -▎ - xlib firefox-planet-gnome 6982.55 -> 5598.16: 1.25x speedup -▎ - xlib ocitysmap 1142.77 -> 1071.53: 1.07x speedup -▏ - -No slowdowns were reported. - -Results of x11perf -aa10text: - -Before: - - 8000000 reps @ 0.0007 msec (1450000.0/sec) - 8000000 reps @ 0.0007 msec (1460000.0/sec) - 8000000 reps @ 0.0007 msec (1460000.0/sec) - 8000000 reps @ 0.0007 msec (1470000.0/sec) - 8000000 reps @ 0.0007 msec (1480000.0/sec) - 40000000 trep @ 0.0007 msec (1460000.0/sec) - -After: - - 32000000 reps @ 0.0002 msec (4910000.0/sec) - 32000000 reps @ 0.0002 msec (4830000.0/sec) - 32000000 reps @ 0.0002 msec (4890000.0/sec) - 32000000 reps @ 0.0002 msec (4830000.0/sec) - 32000000 reps @ 0.0002 msec (4900000.0/sec) - 160000000 trep @ 0.0002 msec (4870000.0/sec) - -Version 2: Destroy the glyph cache at server regen time - -Acked-by: Aaron Plattner <aplattner@nvidia.com> -Reviewed-by: Keith Packard <keithp@keithp.com> -Signed-off-by: Soren Sandmann <ssp@redhat.com> - -diff -Naur xorg-server-1.14.0.orig/configure.ac xorg-server-1.14.0/configure.ac ---- xorg-server-1.14.0.orig/configure.ac 2013-07-20 00:33:38.501103192 +0200 -+++ xorg-server-1.14.0/configure.ac 2013-07-21 10:31:15.420487572 +0200 -@@ -807,7 +807,7 @@ - LIBUDEV="libudev >= 143" - LIBSELINUX="libselinux >= 2.0.86" - LIBDBUS="dbus-1 >= 1.0" --LIBPIXMAN="pixman-1 >= 0.27.2" -+LIBPIXMAN="pixman-1 >= 0.21.8" - - dnl Pixman is always required, but we separate it out so we can link - dnl specific modules against it -diff -Naur xorg-server-1.14.0.orig/fb/fb.h xorg-server-1.14.0/fb/fb.h ---- xorg-server-1.14.0.orig/fb/fb.h 2012-10-27 03:04:34.000000000 +0200 -+++ xorg-server-1.14.0/fb/fb.h 2013-07-21 10:31:15.421487572 +0200 -@@ -1344,9 +1344,6 @@ - extern _X_EXPORT Bool - fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats); - --extern _X_EXPORT void --fbDestroyGlyphCache(void); -- - /* - * fbpixmap.c - */ -diff -Naur xorg-server-1.14.0.orig/fb/fbpict.c xorg-server-1.14.0/fb/fbpict.c ---- xorg-server-1.14.0.orig/fb/fbpict.c 2012-10-27 03:04:34.000000000 +0200 -+++ xorg-server-1.14.0/fb/fbpict.c 2013-07-21 10:31:15.421487572 +0200 -@@ -70,156 +70,6 @@ - free_pixman_pict(pDst, dest); - } - --static pixman_glyph_cache_t *glyphCache; -- --void --fbDestroyGlyphCache(void) --{ -- if (glyphCache) -- { -- pixman_glyph_cache_destroy (glyphCache); -- glyphCache = NULL; -- } --} -- --static void --fbUnrealizeGlyph(ScreenPtr pScreen, -- GlyphPtr pGlyph) --{ -- if (glyphCache) -- pixman_glyph_cache_remove (glyphCache, pGlyph, NULL); --} -- --static void --fbGlyphs(CARD8 op, -- PicturePtr pSrc, -- PicturePtr pDst, -- PictFormatPtr maskFormat, -- INT16 xSrc, -- INT16 ySrc, int nlist, -- GlyphListPtr list, -- GlyphPtr *glyphs) --{ --#define N_STACK_GLYPHS 512 -- ScreenPtr pScreen = pDst->pDrawable->pScreen; -- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS]; -- pixman_glyph_t *pglyphs = stack_glyphs; -- pixman_image_t *srcImage, *dstImage; -- int srcXoff, srcYoff, dstXoff, dstYoff; -- GlyphPtr glyph; -- int n_glyphs; -- int x, y; -- int i, n; -- int xDst = list->xOff, yDst = list->yOff; -- -- miCompositeSourceValidate(pSrc); -- -- n_glyphs = 0; -- for (i = 0; i < nlist; ++i) -- n_glyphs += list[i].len; -- -- if (!glyphCache) -- glyphCache = pixman_glyph_cache_create(); -- -- pixman_glyph_cache_freeze (glyphCache); -- -- if (n_glyphs > N_STACK_GLYPHS) { -- if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t)))) -- goto out; -- } -- -- i = 0; -- x = y = 0; -- while (nlist--) { -- x += list->xOff; -- y += list->yOff; -- n = list->len; -- while (n--) { -- const void *g; -- -- glyph = *glyphs++; -- -- if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) { -- pixman_image_t *glyphImage; -- PicturePtr pPicture; -- int xoff, yoff; -- -- pPicture = GetGlyphPicture(glyph, pScreen); -- if (!pPicture) { -- n_glyphs--; -- goto next; -- } -- -- if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff))) -- goto out; -- -- g = pixman_glyph_cache_insert(glyphCache, glyph, NULL, -- glyph->info.x, -- glyph->info.y, -- glyphImage); -- -- free_pixman_pict(pPicture, glyphImage); -- -- if (!g) -- goto out; -- } -- -- pglyphs[i].x = x; -- pglyphs[i].y = y; -- pglyphs[i].glyph = g; -- i++; -- -- next: -- x += glyph->info.xOff; -- y += glyph->info.yOff; -- } -- list++; -- } -- -- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff))) -- goto out; -- -- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff))) -- goto out_free_src; -- -- if (maskFormat) { -- pixman_format_code_t format; -- pixman_box32_t extents; -- int x, y; -- -- format = maskFormat->format | (maskFormat->depth << 24); -- -- pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents); -- -- x = extents.x1; -- y = extents.y1; -- -- pixman_composite_glyphs(op, srcImage, dstImage, format, -- xSrc + srcXoff + xDst, ySrc + srcYoff + yDst, -- x, y, -- x + dstXoff, y + dstYoff, -- extents.x2 - extents.x1, -- extents.y2 - extents.y1, -- glyphCache, n_glyphs, pglyphs); -- } -- else { -- pixman_composite_glyphs_no_mask(op, srcImage, dstImage, -- xSrc + srcXoff - xDst, ySrc + srcYoff - yDst, -- dstXoff, dstYoff, -- glyphCache, n_glyphs, pglyphs); -- } -- -- free_pixman_pict(pDst, dstImage); -- --out_free_src: -- free_pixman_pict(pSrc, srcImage); -- --out: -- pixman_glyph_cache_thaw(glyphCache); -- if (pglyphs != stack_glyphs) -- free(pglyphs); --} -- - static pixman_image_t * - create_solid_fill_image(PicturePtr pict) - { -@@ -507,8 +357,7 @@ - return FALSE; - ps = GetPictureScreen(pScreen); - ps->Composite = fbComposite; -- ps->Glyphs = fbGlyphs; -- ps->UnrealizeGlyph = fbUnrealizeGlyph; -+ ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; - ps->RasterizeTrapezoid = fbRasterizeTrapezoid; - ps->Trapezoids = fbTrapezoids; -diff -Naur xorg-server-1.14.0.orig/fb/fbscreen.c xorg-server-1.14.0/fb/fbscreen.c ---- xorg-server-1.14.0.orig/fb/fbscreen.c 2012-10-27 03:04:34.000000000 +0200 -+++ xorg-server-1.14.0/fb/fbscreen.c 2013-07-21 10:31:15.421487572 +0200 -@@ -32,7 +32,6 @@ - int d; - DepthPtr depths = pScreen->allowedDepths; - -- fbDestroyGlyphCache(); - for (d = 0; d < pScreen->numDepths; d++) - free(depths[d].vids); - free(depths); |