If you want glamor, just use modesetting instead.
---
 configure.ac          |  11 ---
 man/nouveau.man       |   3 +-
 src/Makefile.am       |   2 -
 src/drmmode_display.c |   7 --
 src/nouveau_glamor.c  | 253 --------------------------------------------------
 src/nouveau_glamor.h  |  33 -------
 src/nouveau_present.c |  29 +-----
 src/nouveau_wfb.c     |   8 +-
 src/nouveau_xv.c      |   4 -
 src/nv_driver.c       |  16 ----
 src/nv_type.h         |   1 -
 11 files changed, 3 insertions(+), 364 deletions(-)
 delete mode 100644 src/nouveau_glamor.c
 delete mode 100644 src/nouveau_glamor.h

diff --git a/configure.ac b/configure.ac
index 03563c1..9c77f94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -140,17 +140,6 @@ if test "x$have_list_h" = xyes; then
                    #include "list.h"])
 fi
 
-AC_CHECK_HEADERS([glamor.h],[found_glamor_header=yes],[found_glamor_header=no],
-                [#include "xorg-server.h"])
-AC_MSG_CHECKING([whether to include GLAMOR support])
-if test "x$found_glamor_header" = xyes && pkg-config --exists "xorg-server >= 
1.15.99.901"
-then
-       AC_DEFINE(HAVE_GLAMOR, 1, [Build support for glamor acceleration])
-       AC_MSG_RESULT([yes])
-else
-       AC_MSG_RESULT([no])
-fi
-
 AC_CONFIG_FILES([
        Makefile
        src/Makefile
diff --git a/man/nouveau.man b/man/nouveau.man
index 129bb7f..c39c113 100644
--- a/man/nouveau.man
+++ b/man/nouveau.man
@@ -81,8 +81,7 @@ are supported:
 Enable or disable the HW cursor.  Default: on.
 .TP
 .BI "Option \*qAccelMethod\*q \*q" string \*q
-Specify the acceleration method. One of \*qnone\*q, \*qexa\*q, or
-\*qglamor\*q. Default: exa, except for GMxxx which default to glamor.
+Specify the acceleration method. One of \*qnone\*q, or \*qexa\*q. Default: exa.
 .TP
 .BI "Option \*qNoAccel\*q \*q" boolean \*q
 Disable or enable acceleration.  Default: acceleration is enabled.
diff --git a/src/Makefile.am b/src/Makefile.am
index 9d39a00..1e04ddf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,7 +35,6 @@ nouveau_drv_la_SOURCES = \
                         nouveau_copy90b5.c \
                         nouveau_copya0b5.c \
                         nouveau_exa.c nouveau_xv.c nouveau_dri2.c \
-                        nouveau_glamor.c \
                         nouveau_present.c \
                         nouveau_sync.c \
                         nouveau_wfb.c \
@@ -123,7 +122,6 @@ EXTRA_DIST = hwdefs/nv_3ddefs.xml.h \
             shader/Makefile \
             nouveau_local.h \
             nouveau_copy.h \
-            nouveau_glamor.h \
             nouveau_present.h \
             nouveau_sync.h \
             nv_const.h \
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index cd13820..6495961 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -42,8 +42,6 @@
 #include "libudev.h"
 #endif
 
-#include "nouveau_glamor.h"
-
 static Bool drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height);
 typedef struct {
     int fd;
@@ -107,8 +105,6 @@ static inline struct nouveau_pixmap *
 drmmode_pixmap(PixmapPtr ppix)
 {
        NVPtr pNv = NVPTR(xf86ScreenToScrn(ppix->drawable.pScreen));
-       if (pNv->AccelMethod == GLAMOR)
-               return nouveau_glamor_pixmap_get(ppix);
        return nouveau_pixmap(ppix);
 }
 
@@ -1393,9 +1389,6 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int 
height)
                                       crtc->rotation, crtc->x, crtc->y);
        }
 
-       if (pNv->AccelMethod == GLAMOR)
-               nouveau_glamor_create_screen_resources(scrn->pScreen);
-
        if (old_fb_id)
                drmModeRmFB(drmmode->fd, old_fb_id);
        nouveau_bo_ref(NULL, &old_bo);
diff --git a/src/nouveau_glamor.c b/src/nouveau_glamor.c
deleted file mode 100644
index b8bca17..0000000
--- a/src/nouveau_glamor.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright 2014 Red Hat Inc.
- *
- * 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 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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: Ben Skeggs <bske...@redhat.com>
- */
-
-#include "nouveau_glamor.h"
-#ifdef HAVE_GLAMOR
-
-static DevPrivateKeyRec glamor_private;
-
-void
-nouveau_glamor_pixmap_set(PixmapPtr pixmap, struct nouveau_pixmap *priv)
-{
-       dixSetPrivate(&pixmap->devPrivates, &glamor_private, priv);
-}
-
-struct nouveau_pixmap *
-nouveau_glamor_pixmap_get(PixmapPtr pixmap)
-{
-       return dixGetPrivate(&pixmap->devPrivates, &glamor_private);
-}
-
-static Bool
-nouveau_glamor_destroy_pixmap(PixmapPtr pixmap)
-{
-       struct nouveau_pixmap *priv = nouveau_glamor_pixmap_get(pixmap);
-       if (pixmap->refcnt == 1) {
-               glamor_egl_destroy_textured_pixmap(pixmap);
-               if (priv)
-                       nouveau_bo_ref(NULL, &priv->bo);
-       }
-       fbDestroyPixmap(pixmap);
-       return TRUE;
-}
-
-static PixmapPtr
-nouveau_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
-                            unsigned usage)
-{
-       ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
-       struct nouveau_pixmap *priv;
-       PixmapPtr pixmap;
-       int pitch;
-
-       if (usage != CREATE_PIXMAP_USAGE_SHARED)
-               return glamor_create_pixmap(screen, w, h, depth, usage);
-       if (depth == 1)
-               return fbCreatePixmap(screen, w, h, depth, usage);
-       if (w > 32767 || h > 32767)
-               return NullPixmap;
-
-       pixmap = fbCreatePixmap(screen, 0, 0, depth, usage);
-       if (pixmap == NullPixmap || !w || !h)
-               return pixmap;
-
-       priv = calloc(1, sizeof(*priv));
-       if (!priv)
-               goto fail_priv;
-
-       if (!nouveau_allocate_surface(scrn, w, h,
-                                    pixmap->drawable.bitsPerPixel,
-                                    usage, &pitch, &priv->bo))
-               goto fail_bo;
-
-       nouveau_glamor_pixmap_set(pixmap, priv);
-       screen->ModifyPixmapHeader(pixmap, w, h, 0, 0, pitch, NULL);
-
-       if (!glamor_egl_create_textured_pixmap(pixmap, priv->bo->handle,
-                                              pixmap->devKind)) {
-               xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-                          "[GLAMOR] failed to create textured PRIME pixmap.");
-               return pixmap;
-       }
-
-       return pixmap;
-fail_bo:
-       free(priv);
-fail_priv:
-       fbDestroyPixmap(pixmap);
-       return fbCreatePixmap(screen, w, h, depth, usage);
-}
-
-static Bool
-nouveau_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
-                                   void **phandle)
-{
-       struct nouveau_pixmap *priv = nouveau_glamor_pixmap_get(pixmap);
-       int ret, handle;
-
-       ret = nouveau_bo_set_prime(priv->bo, &handle);
-       if (ret)
-               return FALSE;
-
-       priv->shared = TRUE;
-       *phandle = (void *)(long)handle;
-       return TRUE;
-}
-
-static Bool
-nouveau_glamor_set_shared_pixmap_backing(PixmapPtr pixmap, void *_handle)
-{
-       struct nouveau_pixmap *priv = nouveau_glamor_pixmap_get(pixmap);
-       ScreenPtr screen = pixmap->drawable.pScreen;
-       ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
-       NVPtr pNv = NVPTR(scrn);
-       struct nouveau_bo *bo;
-       int ret, handle = (int)(long)_handle;
-
-       ret = nouveau_bo_prime_handle_ref(pNv->dev, handle, &bo);
-       if (ret)
-               return FALSE;
-
-       if (!priv) {
-               priv = calloc(1, sizeof(*priv));
-               if (!priv)
-                       return FALSE;
-               nouveau_glamor_pixmap_set(pixmap, priv);
-       }
-
-       priv->bo = bo;
-       priv->shared = TRUE;
-       close(handle);
-
-       if (!glamor_egl_create_textured_pixmap(pixmap, priv->bo->handle,
-                                              pixmap->devKind)) {
-               xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-                          "[GLAMOR] failed to get PRIME drawable\n");
-               return FALSE;
-       }
-
-       return TRUE;
-}
-
-static void
-nouveau_glamor_flush(ScrnInfoPtr pScrn)
-{
-       glamor_block_handler(pScrn->pScreen);
-}
-
-Bool
-nouveau_glamor_create_screen_resources(ScreenPtr screen)
-{
-       PixmapPtr ppix = screen->GetScreenPixmap(screen);
-       ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
-       NVPtr pNv = NVPTR(scrn);
-
-       if (!glamor_glyphs_init(screen))
-               return FALSE;
-
-       if (!glamor_egl_create_textured_screen_ext(screen,
-                                                  pNv->scanout->handle,
-                                                  scrn->displayWidth *
-                                                  scrn->bitsPerPixel / 8,
-                                                  NULL))
-               return FALSE;
-
-       if (!nouveau_glamor_pixmap_get(ppix)) {
-               struct nouveau_pixmap *priv = calloc(1, sizeof(*priv));
-               if (priv) {
-                       nouveau_bo_ref(pNv->scanout, &priv->bo);
-                       nouveau_glamor_pixmap_set(ppix, priv);
-               }
-       }
-
-       return TRUE;
-}
-
-Bool
-nouveau_glamor_pre_init(ScrnInfoPtr scrn)
-{
-       NVPtr pNv = NVPTR(scrn);
-       pointer glamor_module;
-
-       if (scrn->depth < 24) {
-               xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-                          "[GLAMOR] requires depth >= 24\n");
-               return FALSE;
-       }
-
-       if ((glamor_module = xf86LoadSubModule(scrn, GLAMOR_EGL_MODULE_NAME))) {
-               if (!glamor_egl_init(scrn, pNv->dev->fd)) {
-                       xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-                                  "[GLAMOR] failed to initialise EGL\n");
-                       return FALSE;
-               }
-       } else {
-               xf86DrvMsg(scrn->scrnIndex, X_ERROR, "[GLAMOR] unavailable\n");
-               return FALSE;
-       }
-
-       xf86DrvMsg(scrn->scrnIndex, X_INFO, "[GLAMOR] EGL initialised\n");
-       return TRUE;
-}
-
-Bool
-nouveau_glamor_init(ScreenPtr screen)
-{
-       ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
-       NVPtr pNv = NVPTR(scrn);
-
-       if (!glamor_init(screen, GLAMOR_INVERTED_Y_AXIS |
-                                GLAMOR_USE_EGL_SCREEN |
-                                GLAMOR_USE_SCREEN |
-                                GLAMOR_USE_PICTURE_SCREEN)) {
-               xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-                          "[GLAMOR] failed to initialise\n");
-               return FALSE;
-       }
-
-       if (!glamor_egl_init_textured_pixmap(screen)) {
-               xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-                          "[GLAMOR] failed to initialize screen pixmap\n");
-               return FALSE;
-       }
-
-       if (!dixRegisterPrivateKey(&glamor_private, PRIVATE_PIXMAP, 0))
-               return FALSE;
-
-       screen->CreatePixmap = nouveau_glamor_create_pixmap;
-       screen->DestroyPixmap = nouveau_glamor_destroy_pixmap;
-       screen->SharePixmapBacking = nouveau_glamor_share_pixmap_backing;
-       screen->SetSharedPixmapBacking = 
nouveau_glamor_set_shared_pixmap_backing;
-
-       xf86DrvMsg(scrn->scrnIndex, X_INFO, "[GLAMOR] initialised\n");
-       pNv->Flush = nouveau_glamor_flush;
-       return TRUE;
-}
-
-XF86VideoAdaptorPtr
-nouveau_glamor_xv_init(ScreenPtr pScreen, int num_adapt)
-{
-       return glamor_xv_init(pScreen, num_adapt);
-}
-#endif
diff --git a/src/nouveau_glamor.h b/src/nouveau_glamor.h
deleted file mode 100644
index fb6565d..0000000
--- a/src/nouveau_glamor.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __NOUVEAU_GLAMOR_H__
-#define __NOUVEAU_GLAMOR_H__
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "xf86xv.h"
-
-#ifdef HAVE_GLAMOR
-#include "nv_include.h"
-#define GLAMOR_FOR_XORG 1
-#include "glamor.h"
-
-Bool nouveau_glamor_pre_init(ScrnInfoPtr scrn);
-Bool nouveau_glamor_init(ScreenPtr screen);
-Bool nouveau_glamor_create_screen_resources(ScreenPtr screen);
-XF86VideoAdaptorPtr nouveau_glamor_xv_init(ScreenPtr pScreen, int num_adapt);
-void nouveau_glamor_pixmap_set(PixmapPtr pixmap, struct nouveau_pixmap *priv);
-struct nouveau_pixmap *nouveau_glamor_pixmap_get(PixmapPtr pixmap);
-#else
-static inline Bool nouveau_glamor_pre_init(ScrnInfoPtr scrn) { return FALSE; }
-static inline Bool nouveau_glamor_init(ScreenPtr screen) { return FALSE; }
-static inline Bool
-nouveau_glamor_create_screen_resources(ScreenPtr screen) { return FALSE; }
-static inline void
-nouveau_glamor_pixmap_set(PixmapPtr pixmap, void *priv) { }
-static inline struct nouveau_pixmap *
-nouveau_glamor_pixmap_get(PixmapPtr pixmap) { return NULL; }
-static inline XF86VideoAdaptorPtr
-nouveau_glamor_xv_init(ScreenPtr pScreen, int num_adapt) { return NULL; }
-#endif
-
-#endif
diff --git a/src/nouveau_present.c b/src/nouveau_present.c
index 4de1e6e..b14db7d 100644
--- a/src/nouveau_present.c
+++ b/src/nouveau_present.c
@@ -25,7 +25,6 @@
 #include "nouveau_present.h"
 #if defined(DRI3)
 #include "nv_include.h"
-#include "nouveau_glamor.h"
 #include "xf86drmMode.h"
 
 struct nouveau_present {
@@ -177,38 +176,12 @@ static Bool
 nouveau_present_flip_exec(ScrnInfoPtr scrn, uint64_t event_id, int sync,
                          uint64_t target_msc, PixmapPtr pixmap, Bool vsync)
 {
-       ScreenPtr screen = scrn->pScreen;
-       struct nouveau_pixmap *priv = NULL;
+       struct nouveau_pixmap *priv = nouveau_pixmap(pixmap);
        NVPtr pNv = NVPTR(scrn);
        uint32_t next_fb;
-       CARD16 stride;
-       CARD32 size;
        void *token;
        int ret;
 
-#ifdef HAVE_GLAMOR
-       if (pNv->AccelMethod == GLAMOR &&
-           !(priv = nouveau_glamor_pixmap_get(pixmap))) {
-               int fd = glamor_fd_from_pixmap(screen, pixmap, &stride, &size);
-               if (fd < 0)
-                       return FALSE;
-
-               priv = calloc(1, sizeof(*priv));
-               if (!priv)
-                       return FALSE;
-
-               ret = nouveau_bo_prime_handle_ref(pNv->dev, fd, &priv->bo);
-               if (ret) {
-                       free(priv);
-                       return FALSE;
-               }
-
-               nouveau_glamor_pixmap_set(pixmap, priv);
-       } else
-#endif
-       if (!priv)
-               priv = nouveau_pixmap(pixmap);
-
        ret = drmModeAddFB(pNv->dev->fd, pixmap->drawable.width,
                           pixmap->drawable.height, pixmap->drawable.depth,
                           pixmap->drawable.bitsPerPixel, pixmap->devKind,
diff --git a/src/nouveau_wfb.c b/src/nouveau_wfb.c
index 10f0f27..a52f2fd 100644
--- a/src/nouveau_wfb.c
+++ b/src/nouveau_wfb.c
@@ -26,7 +26,6 @@
  */
 
 #include "nv_include.h"
-#include "nouveau_glamor.h"
 
 struct wfb_pixmap {
        PixmapPtr ppix;
@@ -136,12 +135,7 @@ nouveau_wfb_setup_wrap(ReadMemoryProcPtr *pRead, 
WriteMemoryProcPtr *pWrite,
 
        ppix = NVGetDrawablePixmap(pDraw);
        if (ppix) {
-               NVPtr pNv = NVPTR(xf86ScreenToScrn(pDraw->pScreen));
-               struct nouveau_pixmap *priv;
-               if (pNv->AccelMethod == GLAMOR)
-                       priv = nouveau_glamor_pixmap_get(ppix);
-               else
-                       priv = nouveau_pixmap(ppix);
+               struct nouveau_pixmap *priv = nouveau_pixmap(ppix);
                bo = priv ? priv->bo : NULL;
        }
 
diff --git a/src/nouveau_xv.c b/src/nouveau_xv.c
index a479d38..a82ef2c 100644
--- a/src/nouveau_xv.c
+++ b/src/nouveau_xv.c
@@ -38,7 +38,6 @@
 
 #include "nv_include.h"
 #include "nv_dma.h"
-#include "nouveau_glamor.h"
 
 #include "vl_hwmc.h"
 
@@ -2182,9 +2181,6 @@ NVInitVideo(ScreenPtr pScreen)
                }
 
                NVSetupTexturedVideo(pScreen, textureAdaptor);
-       } else
-       if (pNv->AccelMethod == GLAMOR) {
-               blitAdaptor = nouveau_glamor_xv_init(pScreen, 16);
        }
 
        num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 4218e4f..a5ffbce 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -34,7 +34,6 @@
 #endif
 
 #include "nouveau_copy.h"
-#include "nouveau_glamor.h"
 #include "nouveau_present.h"
 #include "nouveau_sync.h"
 
@@ -625,9 +624,6 @@ NVCreateScreenResources(ScreenPtr pScreen)
        if (pNv->AccelMethod == EXA) {
                PixmapPtr ppix = pScreen->GetScreenPixmap(pScreen);
                nouveau_bo_ref(pNv->scanout, &nouveau_pixmap(ppix)->bo);
-       } else
-       if (pNv->AccelMethod == GLAMOR) {
-               nouveau_glamor_create_screen_resources(pScreen);
        }
 
        return TRUE;
@@ -1049,9 +1045,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
        if (string) {
                if      (!strcmp(string,   "none")) pNv->AccelMethod = NONE;
                else if (!strcmp(string,    "exa")) pNv->AccelMethod = EXA;
-#ifdef HAVE_GLAMOR
-               else if (!strcmp(string, "glamor")) pNv->AccelMethod = GLAMOR;
-#endif
                else {
                        xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
                                   "Invalid AccelMethod specified\n");
@@ -1087,11 +1080,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
                pNv->tiled_scanout = TRUE;
        }
 
-       if (pNv->AccelMethod == GLAMOR) {
-               if (!nouveau_glamor_pre_init(pScrn))
-                       pNv->AccelMethod = EXA;
-       }
-
        pNv->ce_enabled =
                xf86ReturnOptValBool(pNv->Options, OPTION_ASYNC_COPY, FALSE);
 
@@ -1477,10 +1465,6 @@ NVScreenInit(SCREEN_INIT_ARGS_DECL)
        nouveau_present_init(pScreen);
        nouveau_sync_init(pScreen);
        nouveau_dri2_init(pScreen);
-       if (pNv->AccelMethod == GLAMOR) {
-               if (!nouveau_glamor_init(pScreen))
-                       return FALSE;
-       } else
        if (pNv->AccelMethod == EXA) {
                if (!nouveau_dri3_screen_init(pScreen))
                        return FALSE;
diff --git a/src/nv_type.h b/src/nv_type.h
index e6ab192..e8b1dce 100644
--- a/src/nv_type.h
+++ b/src/nv_type.h
@@ -53,7 +53,6 @@ typedef struct _NVRec {
            UNKNOWN = 0,
            NONE,
            EXA,
-           GLAMOR,
     } AccelMethod;
     void (*Flush)(ScrnInfoPtr);
 
-- 
2.3.6

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to