From 6dd86f3cba7cca67f3a9102db2e90722d32a34cb Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 5 May 2014 17:01:14 -0700 Subject: [PATCH] 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 Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- glamor/glamor_segment.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/glamor/glamor_segment.c b/glamor/glamor_segment.c index 84b27acce..53f7da0cb 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); }