From patchwork Thu Jul 24 23:18:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Keith Packard X-Patchwork-Id: 4620501 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id ABCF79F375 for ; Thu, 24 Jul 2014 23:19:07 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BFF4D201CD for ; Thu, 24 Jul 2014 23:19:05 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id AF75B20170 for ; Thu, 24 Jul 2014 23:19:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C9B3A6E788; Thu, 24 Jul 2014 16:19:02 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from keithp.com (home.keithp.com [63.227.221.253]) by gabe.freedesktop.org (Postfix) with ESMTP id AA1236E78F; Thu, 24 Jul 2014 16:19:01 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id CA8F076012D; Thu, 24 Jul 2014 16:19:00 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at keithp.com Received: from keithp.com ([127.0.0.1]) by localhost (keithp.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 6SW6A6vxbMn8; Thu, 24 Jul 2014 16:18:51 -0700 (PDT) Received: by keithp.com (Postfix, from userid 1033) id 26C2E76013B; Thu, 24 Jul 2014 16:18:34 -0700 (PDT) Received: from hiro.keithp.com (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id B5023760142; Thu, 24 Jul 2014 16:18:34 -0700 (PDT) Received: by hiro.keithp.com (Postfix, from userid 1001) id 7F82474A642; Thu, 24 Jul 2014 16:18:32 -0700 (PDT) From: Keith Packard To: xorg-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Date: Thu, 24 Jul 2014 16:18:22 -0700 Message-Id: <1406243908-1123-7-git-send-email-keithp@keithp.com> X-Mailer: git-send-email 2.0.1 In-Reply-To: <1406243908-1123-1-git-send-email-keithp@keithp.com> References: <1406243908-1123-1-git-send-email-keithp@keithp.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 06/12] Remove glamor support from UXA acceleration X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Makes UXA no longer include calls to glamor acceleration functions. Signed-off-by: Keith Packard --- src/uxa/Makefile.am | 9 -- src/uxa/intel_dri.c | 60 +------------ src/uxa/intel_driver.c | 1 - src/uxa/intel_uxa.c | 49 ----------- src/uxa/intel_uxa.h | 1 - src/uxa/uxa-accel.c | 230 ------------------------------------------------- src/uxa/uxa-glamor.h | 65 -------------- src/uxa/uxa-glyphs.c | 28 ------ src/uxa/uxa-render.c | 79 ----------------- src/uxa/uxa.c | 7 -- src/uxa/uxa.h | 16 ---- 11 files changed, 2 insertions(+), 543 deletions(-) delete mode 100644 src/uxa/uxa-glamor.h diff --git a/src/uxa/Makefile.am b/src/uxa/Makefile.am index 23b074d..b9618c9 100644 --- a/src/uxa/Makefile.am +++ b/src/uxa/Makefile.am @@ -34,7 +34,6 @@ libuxa_la_SOURCES = \ intel_batchbuffer.h \ intel_display.c \ intel_driver.c \ - intel_glamor.h \ intel_memory.c \ intel_uxa.c \ intel_video.c \ @@ -65,14 +64,6 @@ libuxa_la_SOURCES = \ uxa-unaccel.c $(NULL) -if GLAMOR -AM_CFLAGS += $(LIBGLAMOR_CFLAGS) -libuxa_la_LIBADD += $(LIBGLAMOR_LIBS) -libuxa_la_SOURCES += \ - intel_glamor.c \ - $(NULL) -endif - if DRI2 AM_CFLAGS += $(DRI2_CFLAGS) libuxa_la_SOURCES += \ diff --git a/src/uxa/intel_dri.c b/src/uxa/intel_dri.c index 65612f7..79978ab 100644 --- a/src/uxa/intel_dri.c +++ b/src/uxa/intel_dri.c @@ -793,38 +793,6 @@ I830DRI2ExchangeBuffers(struct intel_screen_private *intel, DRI2BufferPtr front, dri_bo_reference (intel->front_buffer); } -static PixmapPtr -intel_glamor_create_back_pixmap(ScreenPtr screen, - PixmapPtr front_pixmap, - drm_intel_bo *back_bo) -{ - PixmapPtr back_pixmap; - - back_pixmap = screen->CreatePixmap(screen, - 0, - 0, - front_pixmap->drawable.depth, - 0); - if (back_pixmap == NULL) - return NULL; - - screen->ModifyPixmapHeader(back_pixmap, - front_pixmap->drawable.width, - front_pixmap->drawable.height, - 0, 0, - front_pixmap->devKind, - 0); - intel_set_pixmap_bo(back_pixmap, back_bo); - if (!intel_glamor_create_textured_pixmap(back_pixmap)) { - ScrnInfoPtr scrn = xf86ScreenToScrn(screen); - xf86DrvMsg(scrn->scrnIndex, X_WARNING, - "Failed to create textured back pixmap.\n"); - screen->DestroyPixmap(back_pixmap); - return NULL; - } - return back_pixmap; -} - static drm_intel_bo *get_pixmap_bo(I830DRI2BufferPrivatePtr priv) { drm_intel_bo *bo = intel_get_pixmap_bo(priv->pixmap); @@ -883,10 +851,6 @@ I830DRI2ScheduleFlip(struct intel_screen_private *intel, } if (intel->back_buffer == NULL) { - I830DRI2BufferPrivatePtr drvpriv; - PixmapPtr front_pixmap, back_pixmap; - ScreenPtr screen; - new_back = drm_intel_bo_alloc(intel->bufmgr, "front buffer", intel->front_buffer->size, 0); if (new_back == NULL) @@ -903,21 +867,6 @@ I830DRI2ScheduleFlip(struct intel_screen_private *intel, drm_intel_bo_disable_reuse(new_back); dri_bo_flink(new_back, &intel->back_name); - - if ((intel->uxa_flags & UXA_USE_GLAMOR)) { - screen = draw->pScreen; - drvpriv = info->front->driverPrivate; - front_pixmap = drvpriv->pixmap; - - back_pixmap = intel_glamor_create_back_pixmap(screen, - front_pixmap, - new_back); - if (back_pixmap == NULL) { - drm_intel_bo_unreference(new_back); - return FALSE; - } - intel->back_pixmap = back_pixmap; - } } else { new_back = intel->back_buffer; intel->back_buffer = NULL; @@ -937,13 +886,8 @@ I830DRI2ScheduleFlip(struct intel_screen_private *intel, intel->back_buffer = intel->front_buffer; drm_intel_bo_reference(intel->back_buffer); - if (!(intel->uxa_flags & UXA_USE_GLAMOR)) { - intel_set_pixmap_bo(priv->pixmap, new_back); - drm_intel_bo_unreference(new_back); - } - else - intel_exchange_pixmap_buffers(intel, priv->pixmap, - intel->back_pixmap); + intel_set_pixmap_bo(priv->pixmap, new_back); + drm_intel_bo_unreference(new_back); tmp_name = info->front->name; info->front->name = intel->back_name; diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c index 8ab2252..d9f918b 100644 --- a/src/uxa/intel_driver.c +++ b/src/uxa/intel_driver.c @@ -963,7 +963,6 @@ I830ScreenInit(SCREEN_INIT_ARGS_DECL) intel->CreateScreenResources = screen->CreateScreenResources; screen->CreateScreenResources = i830CreateScreenResources; - intel_glamor_init(screen); if (!xf86CrtcScreenInit(screen)) return FALSE; diff --git a/src/uxa/intel_uxa.c b/src/uxa/intel_uxa.c index 7ea9325..da4eb97 100644 --- a/src/uxa/intel_uxa.c +++ b/src/uxa/intel_uxa.c @@ -40,7 +40,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include "intel.h" -#include "intel_glamor.h" #include "uxa.h" #include "i830_reg.h" @@ -660,16 +659,6 @@ static Bool intel_uxa_prepare_access(PixmapPtr pixmap, uxa_access_t access) dri_bo *bo = priv->bo; int ret; - /* Transitioning to glamor acceleration, we need to flush all pending - * usage by UXA. */ - if (access == UXA_GLAMOR_ACCESS_RW || access == UXA_GLAMOR_ACCESS_RO) { - if (!list_is_empty(&priv->batch)) - intel_batch_submit(scrn); - return TRUE; - } - - /* When falling back to swrast, flush all pending operations */ - intel_glamor_flush(intel); if (access == UXA_ACCESS_RW || priv->dirty) intel_batch_submit(scrn); @@ -695,9 +684,6 @@ static void intel_uxa_finish_access(PixmapPtr pixmap, uxa_access_t access) { struct intel_uxa_pixmap *priv; - if (access == UXA_GLAMOR_ACCESS_RW || access == UXA_GLAMOR_ACCESS_RO) - return; - priv = intel_uxa_get_pixmap_private(pixmap); if (priv == NULL) return; @@ -967,7 +953,6 @@ void intel_uxa_block_handler(intel_screen_private *intel) * and beyond rendering results may not hit the * framebuffer until significantly later. */ - intel_glamor_flush(intel); intel_flush_rendering(intel); intel_throttle(intel); } @@ -981,12 +966,6 @@ intel_uxa_create_pixmap(ScreenPtr screen, int w, int h, int depth, struct intel_uxa_pixmap *priv; PixmapPtr pixmap, new_pixmap = NULL; - if (!(usage & INTEL_CREATE_PIXMAP_DRI2)) { - pixmap = intel_glamor_create_pixmap(screen, w, h, depth, usage); - if (pixmap) - return pixmap; - } - if (w > 32767 || h > 32767) return NullPixmap; @@ -1067,34 +1046,10 @@ intel_uxa_create_pixmap(ScreenPtr screen, int w, int h, int depth, screen->ModifyPixmapHeader(pixmap, w, h, 0, 0, stride, NULL); - if (!intel_glamor_create_textured_pixmap(pixmap)) - goto fallback_glamor; } return pixmap; -fallback_glamor: - if (usage & INTEL_CREATE_PIXMAP_DRI2) { - /* XXX need further work to handle the DRI2 failure case. - * Glamor don't know how to handle a BO only pixmap. Put - * a warning indicator here. - */ - xf86DrvMsg(scrn->scrnIndex, X_WARNING, - "Failed to create textured DRI2 pixmap."); - return pixmap; - } - /* Create textured pixmap failed means glamor failed to - * create a texture from current BO for some reasons. We turn - * to create a new glamor pixmap and clean up current one. - * One thing need to be noted, this new pixmap doesn't - * has a priv and bo attached to it. It's glamor's responsbility - * to take care of it. Glamor will mark this new pixmap as a - * texture only pixmap and will never fallback to DDX layer - * afterwards. - */ - new_pixmap = intel_glamor_create_pixmap(screen, w, h, - depth, usage); - dri_bo_unreference(priv->bo); fallback_priv: free(priv); fallback_pixmap: @@ -1108,7 +1063,6 @@ fallback_pixmap: static Bool intel_uxa_destroy_pixmap(PixmapPtr pixmap) { if (pixmap->refcnt == 1) { - intel_glamor_destroy_pixmap(pixmap); intel_uxa_set_pixmap_bo(pixmap, NULL); } fbDestroyPixmap(pixmap); @@ -1146,9 +1100,6 @@ Bool intel_uxa_create_screen_resources(ScreenPtr screen) if (intel_uxa_get_pixmap_private(pixmap) == NULL) goto err; - if (!intel_glamor_create_screen_resources(screen)) - goto err; - intel_uxa_get_pixmap_private(pixmap)->pinned |= PIN_SCANOUT; scrn->displayWidth = intel->front_pitch / intel->cpp; diff --git a/src/uxa/intel_uxa.h b/src/uxa/intel_uxa.h index 34903a3..69500a8 100644 --- a/src/uxa/intel_uxa.h +++ b/src/uxa/intel_uxa.h @@ -40,7 +40,6 @@ struct intel_uxa_pixmap { #define PIN_DRI2 0x2 #define PIN_DRI3 0x4 #define PIN_PRIME 0x8 -#define PIN_GLAMOR 0x10 }; #if HAS_DEVPRIVATEKEYREC diff --git a/src/uxa/uxa-accel.c b/src/uxa/uxa-accel.c index 757b276..b0d3c80 100644 --- a/src/uxa/uxa-accel.c +++ b/src/uxa/uxa-accel.c @@ -32,7 +32,6 @@ #include #endif #include "uxa-priv.h" -#include "uxa-glamor.h" #include #include "dixfontstr.h" #include "uxa.h" @@ -50,21 +49,6 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n, int x1, x2, y; int off_x, off_y; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_fill_spans_nf(pDrawable, - pGC, n, ppt, pwidth, fSorted); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (!ok) - goto fallback; - - return; - } - if (uxa_screen->force_fallback) goto fallback; @@ -210,26 +194,9 @@ static void uxa_put_image(DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y, int w, int h, int leftPad, int format, char *bits) { - uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_put_image_nf(pDrawable, - pGC, depth, x, y, w, h, - leftPad, format, bits); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - if (!ok) - goto fallback; - - return; - } if (!uxa_do_put_image(pDrawable, pGC, depth, x, y, w, h, format, bits, PixmapBytePad(w, pDrawable->depth))) { -fallback: uxa_check_put_image(pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits); } @@ -374,26 +341,6 @@ uxa_copy_n_to_n(DrawablePtr pSrcDrawable, int dst_off_x, dst_off_y; PixmapPtr pSrcPixmap, pDstPixmap; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pSrcDrawable, UXA_GLAMOR_ACCESS_RO)) { - if (uxa_prepare_access(pDstDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_copy_n_to_n_nf(pSrcDrawable, pDstDrawable, - pGC, pbox, nbox, dx, dy, - reverse, upsidedown, bitplane, - closure); - uxa_finish_access(pDstDrawable, UXA_GLAMOR_ACCESS_RW); - } - uxa_finish_access(pSrcDrawable, UXA_GLAMOR_ACCESS_RO); - } - - if (!ok) - goto fallback; - - return; - } - if (uxa_screen->force_fallback) goto fallback; @@ -560,19 +507,6 @@ uxa_poly_point(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, { int i; xRectangle *prect; - uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_poly_point_nf(pDrawable, pGC, mode, npt, ppt); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (ok) - return; - } /* If we can't reuse the current GC as is, don't bother accelerating the * points. @@ -611,19 +545,6 @@ uxa_poly_lines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, xRectangle *prect; int x1, x2, y1, y2; int i; - uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_poly_lines_nf(pDrawable, pGC, mode, npt, ppt); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (ok) - return; - } /* Don't try to do wide lines or non-solid fill style. */ if (pGC->lineWidth != 0 || pGC->lineStyle != LineSolid || @@ -685,19 +606,6 @@ uxa_poly_segment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg) { xRectangle *prect; int i; - uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_poly_segment_nf(pDrawable, pGC, nseg, pSeg); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (ok) - return; - } /* Don't try to do wide lines or non-solid fill style. */ if (pGC->lineWidth != 0 || pGC->lineStyle != LineSolid || @@ -762,20 +670,6 @@ uxa_poly_fill_rect(DrawablePtr pDrawable, int xorg, yorg; int n; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_poly_fill_rect_nf(pDrawable, pGC, nrect, prect); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (!ok) - uxa_check_poly_fill_rect(pDrawable, pGC, nrect, prect); - - return; - } - /* Compute intersection of rects and clip region */ pReg = RECTS_TO_REGION(pScreen, nrect, prect, CT_UNSORTED); REGION_TRANSLATE(pScreen, pReg, pDrawable->x, pDrawable->y); @@ -885,25 +779,6 @@ uxa_get_spans(DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, int *pwidth, int nspans, char *pdstStart) { - ScreenPtr screen = pDrawable->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_get_spans_nf(pDrawable, wMax, ppt, - pwidth, nspans, pdstStart); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (!ok) - goto fallback; - - return; - } - -fallback: uxa_check_get_spans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); } @@ -911,25 +786,6 @@ static void uxa_set_spans(DrawablePtr pDrawable, GCPtr gc, char *src, DDXPointPtr points, int *widths, int n, int sorted) { - ScreenPtr screen = pDrawable->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_set_spans_nf(pDrawable, gc, src, - points, widths, n, sorted); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (!ok) - goto fallback; - - return; - } - -fallback: uxa_check_set_spans(pDrawable, gc, src, points, widths, n, sorted); } @@ -938,27 +794,6 @@ uxa_copy_plane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, int srcx, int srcy, int w, int h, int dstx, int dsty, unsigned long bitPlane) { - ScreenPtr screen = pDst->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - RegionPtr region = NULL; - int ok = 0; - - if (uxa_prepare_access(pDst, UXA_GLAMOR_ACCESS_RW)) { - if (uxa_prepare_access(pSrc, UXA_GLAMOR_ACCESS_RO)) { - ok = glamor_copy_plane_nf(pSrc, pDst, pGC, srcx, srcy, w, h, - dstx, dsty, bitPlane, ®ion); - uxa_finish_access(pSrc, UXA_GLAMOR_ACCESS_RO); - } - uxa_finish_access(pDst, UXA_GLAMOR_ACCESS_RW); - } - if (!ok) - goto fallback; - return region; - } - -fallback: return uxa_check_copy_plane(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty, bitPlane); } @@ -968,22 +803,6 @@ uxa_image_glyph_blt(DrawablePtr pDrawable, GCPtr pGC, int x, int y, unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase) { - ScreenPtr screen = pDrawable->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_image_glyph_blt_nf(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - if (!ok) - goto fallback; - return; - } - -fallback: uxa_check_image_glyph_blt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); } @@ -992,22 +811,6 @@ uxa_poly_glyph_blt(DrawablePtr pDrawable, GCPtr pGC, int x, int y, unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase) { - ScreenPtr screen = pDrawable->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_poly_glyph_blt_nf(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - if (!ok) - goto fallback; - return; - } - -fallback: uxa_check_poly_glyph_blt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); } @@ -1015,25 +818,6 @@ static void uxa_push_pixels(GCPtr pGC, PixmapPtr pBitmap, DrawablePtr pDrawable, int w, int h, int x, int y) { - ScreenPtr screen = pDrawable->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok = 0; - - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - if (uxa_prepare_access(&pBitmap->drawable, UXA_GLAMOR_ACCESS_RO)) { - ok = glamor_push_pixels_nf(pGC, pBitmap, pDrawable, w, h, x, y); - uxa_finish_access(&pBitmap->drawable, UXA_GLAMOR_ACCESS_RO); - } - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - if (!ok) - goto fallback; - return; - } - -fallback: uxa_check_push_pixels(pGC, pBitmap, pDrawable, w, h, x, y); } @@ -1244,20 +1028,6 @@ uxa_get_image(DrawablePtr pDrawable, int x, int y, int w, int h, Box.x2 = Box.x1 + w; Box.y2 = Box.y1 + h; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - ok = 0; - if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) { - ok = glamor_get_image_nf(pDrawable, x, y, w, h, - format, planeMask, d); - uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW); - } - - if (!ok) - goto fallback; - - return; - } - if (uxa_screen->force_fallback) goto fallback; diff --git a/src/uxa/uxa-glamor.h b/src/uxa/uxa-glamor.h deleted file mode 100644 index 5ff19e0..0000000 --- a/src/uxa/uxa-glamor.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright © 2011 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including - * the next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Authors: - * Zhigang Gong - * - */ - -#ifndef UXA_GLAMOR_H -#define UXA_GLAMOR_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifdef USE_GLAMOR -#include "glamor.h" -#else -#define glamor_fill_spans_nf(...) FALSE -#define glamor_poly_fill_rect_nf(...) FALSE -#define glamor_put_image_nf(...) FALSE -#define glamor_copy_n_to_n_nf(...) FALSE -#define glamor_get_spans_nf(...) FALSE -#define glamor_set_spans_nf(...) FALSE -#define glamor_get_image_nf(...) FALSE -#define glamor_glyphs_nf(...) FALSE -#define glamor_glyph_unrealize(...) do { } while(0) -#define glamor_composite_nf(...) FALSE -#define glamor_composite_rects_nf(...) FALSE -#define glamor_trapezoids_nf(...) FALSE -#define glamor_triangles_nf(...) FALSE -#define glamor_add_traps_nf(...) FALSE -#define glamor_create_gc(...) FALSE -#define glamor_validate_gc(...) do { } while(0) -#define glamor_poly_point_nf(...) FALSE -#define glamor_poly_segment_nf(...) FALSE -#define glamor_poly_lines_nf(...) FALSE -#define glamor_push_pixels_nf(...) FALSE -#define glamor_copy_plane_nf(...) FALSE -#define glamor_image_glyph_blt_nf(...) FALSE -#define glamor_poly_glyph_blt_nf(...) FALSE -#endif - -#endif /* UXA_GLAMOR_H */ diff --git a/src/uxa/uxa-glyphs.c b/src/uxa/uxa-glyphs.c index 7f35863..d24ba51 100644 --- a/src/uxa/uxa-glyphs.c +++ b/src/uxa/uxa-glyphs.c @@ -65,7 +65,6 @@ #include #include "uxa-priv.h" -#include "uxa-glamor.h" #include "common.h" /* Width of the pixmaps we use for the caches; this should be less than @@ -210,10 +209,6 @@ bail: Bool uxa_glyphs_init(ScreenPtr pScreen) { - uxa_screen_t *uxa_screen = uxa_get_screen(pScreen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) - return TRUE; #if HAS_DIXREGISTERPRIVATEKEY if (!dixRegisterPrivateKey(&uxa_glyph_key, PRIVATE_GLYPH, 0)) return FALSE; @@ -308,12 +303,6 @@ uxa_glyph_unrealize(ScreenPtr screen, GlyphPtr glyph) { struct uxa_glyph *priv; - uxa_screen_t *uxa_screen = uxa_get_screen(screen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - glamor_glyph_unrealize(screen, glyph); - return; - } /* Use Lookup in case we have not attached to this glyph. */ priv = dixLookupPrivate(&glyph->devPrivates, &uxa_glyph_key); @@ -975,23 +964,6 @@ uxa_glyphs(CARD8 op, ScreenPtr screen = pDst->pDrawable->pScreen; uxa_screen_t *uxa_screen = uxa_get_screen(screen); - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok; - - uxa_picture_prepare_access(pDst, UXA_GLAMOR_ACCESS_RW); - uxa_picture_prepare_access(pSrc, UXA_GLAMOR_ACCESS_RO); - ok = glamor_glyphs_nf(op, - pSrc, pDst, maskFormat, - xSrc, ySrc, nlist, list, glyphs); - uxa_picture_finish_access(pSrc, UXA_GLAMOR_ACCESS_RO); - uxa_picture_finish_access(pDst, UXA_GLAMOR_ACCESS_RW); - - if (!ok) - goto fallback; - - return; - } - if (!uxa_screen->info->prepare_composite || uxa_screen->force_fallback || !uxa_drawable_is_offscreen(pDst->pDrawable) || diff --git a/src/uxa/uxa-render.c b/src/uxa/uxa-render.c index a138f16..438623c 100644 --- a/src/uxa/uxa-render.c +++ b/src/uxa/uxa-render.c @@ -29,7 +29,6 @@ #include #include "uxa-priv.h" -#include "uxa-glamor.h" #ifdef RENDER #include "mipict.h" @@ -1357,30 +1356,6 @@ uxa_composite(CARD8 op, RegionRec region; int tx, ty; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok; - - uxa_picture_prepare_access(pDst, UXA_GLAMOR_ACCESS_RW); - uxa_picture_prepare_access(pSrc, UXA_GLAMOR_ACCESS_RO); - if (pMask) - uxa_picture_prepare_access(pMask, UXA_GLAMOR_ACCESS_RO); - - ok = glamor_composite_nf(op, - pSrc, pMask, pDst, xSrc, ySrc, - xMask, yMask, xDst, yDst, - width, height); - - if (pMask) - uxa_picture_finish_access(pMask, UXA_GLAMOR_ACCESS_RO); - uxa_picture_finish_access(pSrc, UXA_GLAMOR_ACCESS_RO); - uxa_picture_finish_access(pDst, UXA_GLAMOR_ACCESS_RW); - - if (!ok) - goto fallback; - - return; - } - if (uxa_screen->force_fallback) goto fallback; @@ -1722,25 +1697,7 @@ uxa_trapezoids(CARD8 op, PicturePtr src, PicturePtr dst, BoxRec bounds; Bool direct; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok; - - uxa_picture_prepare_access(dst, UXA_GLAMOR_ACCESS_RW); - uxa_picture_prepare_access(src, UXA_GLAMOR_ACCESS_RO); - ok = glamor_trapezoids_nf(op, - src, dst, maskFormat, xSrc, - ySrc, ntrap, traps); - uxa_picture_finish_access(src, UXA_GLAMOR_ACCESS_RO); - uxa_picture_finish_access(dst, UXA_GLAMOR_ACCESS_RW); - - if (!ok) - goto fallback; - - return; - } - if (uxa_screen->force_fallback) { -fallback: uxa_check_trapezoids(op, src, dst, maskFormat, xSrc, ySrc, ntrap, traps); return; } @@ -1951,25 +1908,7 @@ uxa_triangles(CARD8 op, PicturePtr pSrc, PicturePtr pDst, BoxRec bounds; Bool direct; - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok; - - uxa_picture_prepare_access(pDst, UXA_GLAMOR_ACCESS_RW); - uxa_picture_prepare_access(pSrc, UXA_GLAMOR_ACCESS_RO); - ok = glamor_triangles_nf(op, - pSrc, pDst, maskFormat, xSrc, - ySrc, ntri, tris); - uxa_picture_finish_access(pSrc, UXA_GLAMOR_ACCESS_RO); - uxa_picture_finish_access(pDst, UXA_GLAMOR_ACCESS_RW); - - if (!ok) - goto fallback; - - return; - } - if (uxa_screen->force_fallback) { -fallback: uxa_check_triangles(op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris); return; @@ -2051,23 +1990,5 @@ void uxa_add_traps(PicturePtr pPicture, INT16 x_off, INT16 y_off, int ntrap, xTrap * traps) { - ScreenPtr pScreen = pPicture->pDrawable->pScreen; - uxa_screen_t *uxa_screen = uxa_get_screen(pScreen); - - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - int ok; - - uxa_picture_prepare_access(pPicture, UXA_GLAMOR_ACCESS_RW); - ok = glamor_add_traps_nf(pPicture, - x_off, y_off, ntrap, traps); - uxa_picture_finish_access(pPicture, UXA_GLAMOR_ACCESS_RW); - - if (!ok) - goto fallback; - - return; - } - -fallback: uxa_check_add_traps(pPicture, x_off, y_off, ntrap, traps); } diff --git a/src/uxa/uxa.c b/src/uxa/uxa.c index c8d7900..905667d 100644 --- a/src/uxa/uxa.c +++ b/src/uxa/uxa.c @@ -38,7 +38,6 @@ #include #include "dixfontstr.h" #include "uxa.h" -#include "uxa-glamor.h" #if HAS_DEVPRIVATEKEYREC DevPrivateKeyRec uxa_screen_index; @@ -184,7 +183,6 @@ void uxa_finish_access(DrawablePtr pDrawable, uxa_access_t access) static void uxa_validate_gc(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) { - uxa_screen_t *uxa_screen = uxa_get_screen(pGC->pScreen); /* fbValidateGC will do direct access to pixmaps if the tiling has * changed. * Preempt fbValidateGC by doing its work and masking the change out, so @@ -195,10 +193,6 @@ uxa_validate_gc(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) * may be pure GLAMOR pixmap, then we should let the glamor * to do the validation. */ - if (uxa_screen->info->flags & UXA_USE_GLAMOR) { - glamor_validate_gc(pGC, changes, pDrawable); - goto set_ops; - } #ifdef FB_24_32BIT if ((changes & GCTile) && fbGetRotatedPixmap(pGC)) { (*pGC->pScreen->DestroyPixmap) (fbGetRotatedPixmap(pGC)); @@ -267,7 +261,6 @@ uxa_validate_gc(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) fbValidateGC(pGC, changes, pDrawable); } -set_ops: pGC->ops = (GCOps *) & uxa_ops; } diff --git a/src/uxa/uxa.h b/src/uxa/uxa.h index b8569f0..d08c601 100644 --- a/src/uxa/uxa.h +++ b/src/uxa/uxa.h @@ -46,8 +46,6 @@ typedef enum { UXA_ACCESS_RO, UXA_ACCESS_RW, - UXA_GLAMOR_ACCESS_RO, - UXA_GLAMOR_ACCESS_RW } uxa_access_t; /** @@ -545,20 +543,6 @@ typedef struct _UxaDriver { */ #define UXA_TWO_BITBLT_DIRECTIONS (1 << 2) -/** - * UXA_USE_GLAMOR indicates to use glamor acceleration to perform rendering. - * And if glamor fail to accelerate the rendering, then goto fallback to - * use CPU to do the rendering. This flag will be set only when glamor get - * initialized successfully. - * Note, in ddx close screen, this bit need to be cleared. - */ -#define UXA_USE_GLAMOR (1 << 3) - -/* UXA_GLAMOR_EGL_INITIALIZED indicates glamor egl layer get initialized - * successfully. UXA layer does not use this flag, before call to - * glamor_init, ddx need to check this flag. */ -#define UXA_GLAMOR_EGL_INITIALIZED (1 << 4) - /** @} */ /** @name UXA CreatePixmap hint flags * @{