xserver: Branch 'master'

Keith Packard keithp at kemper.freedesktop.org
Mon May 12 14:47:52 PDT 2014


 glamor/glamor_segment.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 6dd86f3cba7cca67f3a9102db2e90722d32a34cb
Author: Eric Anholt <eric at anholt.net>
Date:   Mon May 5 17:01:14 2014 -0700

    glamor: Don't forget to check whether we can fall back in polysegment.
    
    Part of the _nf contract is that glamor will only return FALSE if
    glamor has checked that UXA can actually map the pixmaps (UXA only
    allocates the BO itself in the screen pixmap and DRI2 cases, and can't
    map it otherwise).  Fixes server segfaults zooming in and out of
    libreoffice spreadsheets.
    
    Signed-off-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/glamor/glamor_segment.c b/glamor/glamor_segment.c
index 84b27ac..53f7da0 100644
--- a/glamor/glamor_segment.c
+++ b/glamor/glamor_segment.c
@@ -26,14 +26,19 @@ Bool
 glamor_poly_segment_nf(DrawablePtr drawable, GCPtr gc, int nseg,
                        xSegment *seg)
 {
-    return FALSE;
+    if (glamor_ddx_fallback_check_pixmap(drawable) &&
+        glamor_ddx_fallback_check_gc(gc)) {
+        return FALSE;
+    }
+
+    miPolySegment(drawable, gc, nseg, seg);
+
+    return TRUE;
 }
 
 void
 glamor_poly_segment(DrawablePtr drawable, GCPtr gc, int nseg,
                     xSegment *seg)
 {
-    if (glamor_poly_segment_nf(drawable, gc, nseg, seg))
-        return;
     miPolySegment(drawable, gc, nseg, seg);
 }


More information about the xorg-commit mailing list