diff --git a/glamor/glamor_copyarea.c b/glamor/glamor_copyarea.c index 077c44ffd..b0f6a7e2f 100644 --- a/glamor/glamor_copyarea.c +++ b/glamor/glamor_copyarea.c @@ -79,6 +79,8 @@ glamor_copy_area(DrawablePtr src, DrawablePtr dst, GCPtr gc, glamor_pixmap_private *src_priv = glamor_get_pixmap_private(src_pixmap); RegionPtr region; + goto fail; + if (!GLEW_EXT_framebuffer_blit) { glamor_fallback("glamor_copy_area(): " "EXT_framebuffer_blit unsupported\n"); diff --git a/glamor/glamor_fill.c b/glamor/glamor_fill.c index 6290f1210..b3418a91d 100644 --- a/glamor/glamor_fill.c +++ b/glamor/glamor_fill.c @@ -42,6 +42,8 @@ glamor_fill(DrawablePtr drawable, { PixmapPtr dst_pixmap = glamor_get_drawable_pixmap(drawable); + assert(0); + switch (gc->fillStyle) { case FillSolid: glamor_solid(dst_pixmap, diff --git a/glamor/glamor_fillspans.c b/glamor/glamor_fillspans.c index 120e3467d..9b070eced 100644 --- a/glamor/glamor_fillspans.c +++ b/glamor/glamor_fillspans.c @@ -45,6 +45,8 @@ glamor_fill_spans(DrawablePtr drawable, int fullX1, fullX2, fullY1; int partX1, partX2; + goto fail; + extents = REGION_EXTENTS(gc->pScreen, clip); extentX1 = extents->x1; extentY1 = extents->y1; @@ -97,4 +99,15 @@ glamor_fill_spans(DrawablePtr drawable, } } } + return; +fail: + glamor_fallback("to %p (%c)\n", drawable, + glamor_get_drawable_location(drawable)); + if (glamor_prepare_access(drawable, GLAMOR_ACCESS_RW)) { + if (glamor_prepare_access_gc(gc)) { + fbFillSpans(drawable, gc, n, points, widths, sorted); + glamor_finish_access_gc(gc); + } + glamor_finish_access(drawable); + } } diff --git a/glamor/glamor_getspans.c b/glamor/glamor_getspans.c index 8339eb130..6e92b4d0b 100644 --- a/glamor/glamor_getspans.c +++ b/glamor/glamor_getspans.c @@ -56,6 +56,8 @@ glamor_get_spans(DrawablePtr drawable, int i, j; uint8_t *temp_dst = NULL, *readpixels_dst = (uint8_t *)dst; + goto fail; + switch (drawable->depth) { case 1: temp_dst = xalloc(wmax); diff --git a/glamor/glamor_polyfillrect.c b/glamor/glamor_polyfillrect.c index ae8963dac..dc3c0e69a 100644 --- a/glamor/glamor_polyfillrect.c +++ b/glamor/glamor_polyfillrect.c @@ -52,6 +52,8 @@ glamor_poly_fill_rect(DrawablePtr drawable, int xorg, yorg; int n; + goto fail; + xorg = drawable->x; yorg = drawable->y; @@ -115,4 +117,17 @@ glamor_poly_fill_rect(DrawablePtr drawable, } } } + return; + +fail: + glamor_fallback("glamor_poly_fill_rect() to %p (%c)\n", + drawable, glamor_get_drawable_location(drawable)); + + if (glamor_prepare_access(drawable, GLAMOR_ACCESS_RW)) { + if (glamor_prepare_access_gc(gc)) { + fbPolyFillRect(drawable, gc, nrect, prect ); + glamor_finish_access_gc(gc); + } + glamor_finish_access(drawable); + } } diff --git a/glamor/glamor_putimage.c b/glamor/glamor_putimage.c index 39f120eca..537992101 100644 --- a/glamor/glamor_putimage.c +++ b/glamor/glamor_putimage.c @@ -245,6 +245,8 @@ glamor_put_image(DrawablePtr drawable, GCPtr gc, int depth, int x, int y, int bpp = drawable->bitsPerPixel; int src_stride = PixmapBytePad(w, drawable->depth); + goto fail; + if (!glamor_set_destination_pixmap(pixmap)) { fbPutImage(drawable, gc, depth, x, y, w, h, left_pad, image_format, bits); diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c index b6f6b86cb..f9e7341c1 100644 --- a/glamor/glamor_render.c +++ b/glamor/glamor_render.c @@ -424,6 +424,8 @@ glamor_composite(CARD8 op, RegionRec region; int i; + goto fail; + /* Do two-pass PictOpOver componentAlpha, until we enable * dual source color blending. */ diff --git a/glamor/glamor_setspans.c b/glamor/glamor_setspans.c index 0bd0ac1c2..32f7bc515 100644 --- a/glamor/glamor_setspans.c +++ b/glamor/glamor_setspans.c @@ -43,6 +43,8 @@ glamor_set_spans(DrawablePtr drawable, GCPtr gc, char *src, RegionPtr clip = fbGetCompositeClip(gc); BoxRec *pbox; + goto fail; + for (i = 0 ; i < n; i++) { if (wmax < widths[i]) wmax = widths[i];