[PATCH xserver 7/7] ephyr: Remove the -fakexa option.

Eric Anholt eric at anholt.net
Wed Mar 22 22:11:36 UTC 2017


It fatal errors at startup, I haven't used it in 5 years, and I don't
think anyone else has either.
---
 hw/kdrive/ephyr/Makefile.am  |   5 +-
 hw/kdrive/ephyr/ephyr.h      |  15 --
 hw/kdrive/ephyr/ephyr_draw.c | 531 -------------------------------------------
 hw/kdrive/ephyr/ephyrinit.c  |   9 -
 4 files changed, 1 insertion(+), 559 deletions(-)
 delete mode 100644 hw/kdrive/ephyr/ephyr_draw.c

diff --git a/hw/kdrive/ephyr/Makefile.am b/hw/kdrive/ephyr/Makefile.am
index f4bd060f816d..4d3711a80b22 100644
--- a/hw/kdrive/ephyr/Makefile.am
+++ b/hw/kdrive/ephyr/Makefile.am
@@ -28,8 +28,7 @@ AM_CPPFLAGS = 			\
 	@XEPHYR_CFLAGS@		\
 	-DHAVE_DIX_CONFIG_H	\
 	-I$(top_srcdir)		\
-	-I$(top_srcdir)/glamor	\
-	-I$(top_srcdir)/exa
+	-I$(top_srcdir)/glamor
 
 if XV
 XV_SRCS = ephyrvideo.c
@@ -53,7 +52,6 @@ Xephyr_SOURCES = \
 	ephyr.c \
 	ephyr.h \
 	ephyrlog.h \
-	ephyr_draw.c \
 	os.c \
 	ephyrinit.c \
 	ephyrcursor.c \
@@ -72,7 +70,6 @@ XEPHYR_GLAMOR_LIB = \
 endif
 
 Xephyr_LDADD = 						\
-	$(top_builddir)/exa/libexa.la			\
 	$(XEPHYR_GLAMOR_LIB)				\
 	@KDRIVE_LIBS@					\
 	@XEPHYR_LIBS@
diff --git a/hw/kdrive/ephyr/ephyr.h b/hw/kdrive/ephyr/ephyr.h
index b48a21ce2f93..d0a2f3dcab63 100644
--- a/hw/kdrive/ephyr/ephyr.h
+++ b/hw/kdrive/ephyr/ephyr.h
@@ -46,26 +46,11 @@ typedef struct _ephyrPriv {
     int bytes_per_line;
 } EphyrPriv;
 
-typedef struct _ephyrFakexaPriv {
-    ExaDriverPtr exa;
-    Bool is_synced;
-
-    /* The following are arguments and other information from Prepare* calls
-     * which are stored for use in the inner calls.
-     */
-    int op;
-    PicturePtr pSrcPicture, pMaskPicture, pDstPicture;
-    void *saved_ptrs[3];
-    PixmapPtr pDst, pSrc, pMask;
-    GCPtr pGC;
-} EphyrFakexaPriv;
-
 typedef struct _ephyrScrPriv {
     /* ephyr server info */
     Rotation randr;
     Bool shadow;
     DamagePtr pDamage;
-    EphyrFakexaPriv *fakexa;
 
     /* Host X window info */
     xcb_window_t win;
diff --git a/hw/kdrive/ephyr/ephyr_draw.c b/hw/kdrive/ephyr/ephyr_draw.c
deleted file mode 100644
index 0b467860a170..000000000000
--- a/hw/kdrive/ephyr/ephyr_draw.c
+++ /dev/null
@@ -1,531 +0,0 @@
-/*
- * Copyright © 2006 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:
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include "ephyr.h"
-#include "exa_priv.h"
-#include "fbpict.h"
-
-#define EPHYR_TRACE_DRAW 0
-
-#if EPHYR_TRACE_DRAW
-#define TRACE_DRAW() ErrorF("%s\n", __FUNCTION__);
-#else
-#define TRACE_DRAW() do { } while (0)
-#endif
-
-/* Use some oddball alignments, to expose issues in alignment handling in EXA. */
-#define EPHYR_OFFSET_ALIGN	24
-#define EPHYR_PITCH_ALIGN	24
-
-#define EPHYR_OFFSCREEN_SIZE	(16 * 1024 * 1024)
-#define EPHYR_OFFSCREEN_BASE	(1 * 1024 * 1024)
-
-/**
- * Forces a real devPrivate.ptr for hidden pixmaps, so that we can call down to
- * fb functions.
- */
-static void
-ephyrPreparePipelinedAccess(PixmapPtr pPix, int index)
-{
-    KdScreenPriv(pPix->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    assert(fakexa->saved_ptrs[index] == NULL);
-    fakexa->saved_ptrs[index] = pPix->devPrivate.ptr;
-
-    if (pPix->devPrivate.ptr != NULL)
-        return;
-
-    pPix->devPrivate.ptr = fakexa->exa->memoryBase + exaGetPixmapOffset(pPix);
-}
-
-/**
- * Restores the original devPrivate.ptr of the pixmap from before we messed with
- * it.
- */
-static void
-ephyrFinishPipelinedAccess(PixmapPtr pPix, int index)
-{
-    KdScreenPriv(pPix->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    pPix->devPrivate.ptr = fakexa->saved_ptrs[index];
-    fakexa->saved_ptrs[index] = NULL;
-}
-
-/**
- * Sets up a scratch GC for fbFill, and saves other parameters for the
- * ephyrSolid implementation.
- */
-static Bool
-ephyrPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg)
-{
-    ScreenPtr pScreen = pPix->drawable.pScreen;
-
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-    ChangeGCVal tmpval[3];
-
-    ephyrPreparePipelinedAccess(pPix, EXA_PREPARE_DEST);
-
-    fakexa->pDst = pPix;
-    fakexa->pGC = GetScratchGC(pPix->drawable.depth, pScreen);
-
-    tmpval[0].val = alu;
-    tmpval[1].val = pm;
-    tmpval[2].val = fg;
-    ChangeGC(NullClient, fakexa->pGC, GCFunction | GCPlaneMask | GCForeground,
-             tmpval);
-
-    ValidateGC(&pPix->drawable, fakexa->pGC);
-
-    TRACE_DRAW();
-
-    return TRUE;
-}
-
-/**
- * Does an fbFill of the rectangle to be drawn.
- */
-static void
-ephyrSolid(PixmapPtr pPix, int x1, int y1, int x2, int y2)
-{
-    ScreenPtr pScreen = pPix->drawable.pScreen;
-
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    fbFill(&fakexa->pDst->drawable, fakexa->pGC, x1, y1, x2 - x1, y2 - y1);
-}
-
-/**
- * Cleans up the scratch GC created in ephyrPrepareSolid.
- */
-static void
-ephyrDoneSolid(PixmapPtr pPix)
-{
-    ScreenPtr pScreen = pPix->drawable.pScreen;
-
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    FreeScratchGC(fakexa->pGC);
-
-    ephyrFinishPipelinedAccess(pPix, EXA_PREPARE_DEST);
-}
-
-/**
- * Sets up a scratch GC for fbCopyArea, and saves other parameters for the
- * ephyrCopy implementation.
- */
-static Bool
-ephyrPrepareCopy(PixmapPtr pSrc, PixmapPtr pDst, int dx, int dy, int alu,
-                 Pixel pm)
-{
-    ScreenPtr pScreen = pDst->drawable.pScreen;
-
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-    ChangeGCVal tmpval[2];
-
-    ephyrPreparePipelinedAccess(pDst, EXA_PREPARE_DEST);
-    ephyrPreparePipelinedAccess(pSrc, EXA_PREPARE_SRC);
-
-    fakexa->pSrc = pSrc;
-    fakexa->pDst = pDst;
-    fakexa->pGC = GetScratchGC(pDst->drawable.depth, pScreen);
-
-    tmpval[0].val = alu;
-    tmpval[1].val = pm;
-    ChangeGC(NullClient, fakexa->pGC, GCFunction | GCPlaneMask, tmpval);
-
-    ValidateGC(&pDst->drawable, fakexa->pGC);
-
-    TRACE_DRAW();
-
-    return TRUE;
-}
-
-/**
- * Does an fbCopyArea to take care of the requested copy.
- */
-static void
-ephyrCopy(PixmapPtr pDst, int srcX, int srcY, int dstX, int dstY, int w, int h)
-{
-    ScreenPtr pScreen = pDst->drawable.pScreen;
-
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    fbCopyArea(&fakexa->pSrc->drawable, &fakexa->pDst->drawable, fakexa->pGC,
-               srcX, srcY, w, h, dstX, dstY);
-}
-
-/**
- * Cleans up the scratch GC created in ephyrPrepareCopy.
- */
-static void
-ephyrDoneCopy(PixmapPtr pDst)
-{
-    ScreenPtr pScreen = pDst->drawable.pScreen;
-
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    FreeScratchGC(fakexa->pGC);
-
-    ephyrFinishPipelinedAccess(fakexa->pSrc, EXA_PREPARE_SRC);
-    ephyrFinishPipelinedAccess(fakexa->pDst, EXA_PREPARE_DEST);
-}
-
-/**
- * Reports that we can always accelerate the given operation.  This may not be
- * desirable from an EXA testing standpoint -- testing the fallback paths would
- * be useful, too.
- */
-static Bool
-ephyrCheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
-                    PicturePtr pDstPicture)
-{
-    /* Exercise the component alpha helper, so fail on this case like a normal
-     * driver
-     */
-    if (pMaskPicture && pMaskPicture->componentAlpha && op == PictOpOver)
-        return FALSE;
-
-    return TRUE;
-}
-
-/**
- * Saves off the parameters for ephyrComposite.
- */
-static Bool
-ephyrPrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
-                      PicturePtr pDstPicture, PixmapPtr pSrc, PixmapPtr pMask,
-                      PixmapPtr pDst)
-{
-    KdScreenPriv(pDst->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    ephyrPreparePipelinedAccess(pDst, EXA_PREPARE_DEST);
-    ephyrPreparePipelinedAccess(pSrc, EXA_PREPARE_SRC);
-    if (pMask != NULL)
-        ephyrPreparePipelinedAccess(pMask, EXA_PREPARE_MASK);
-
-    fakexa->op = op;
-    fakexa->pSrcPicture = pSrcPicture;
-    fakexa->pMaskPicture = pMaskPicture;
-    fakexa->pDstPicture = pDstPicture;
-    fakexa->pSrc = pSrc;
-    fakexa->pMask = pMask;
-    fakexa->pDst = pDst;
-
-    TRACE_DRAW();
-
-    return TRUE;
-}
-
-/**
- * Does an fbComposite to complete the requested drawing operation.
- */
-static void
-ephyrComposite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
-               int dstX, int dstY, int w, int h)
-{
-    KdScreenPriv(pDst->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    fbComposite(fakexa->op, fakexa->pSrcPicture, fakexa->pMaskPicture,
-                fakexa->pDstPicture, srcX, srcY, maskX, maskY, dstX, dstY,
-                w, h);
-}
-
-static void
-ephyrDoneComposite(PixmapPtr pDst)
-{
-    KdScreenPriv(pDst->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    if (fakexa->pMask != NULL)
-        ephyrFinishPipelinedAccess(fakexa->pMask, EXA_PREPARE_MASK);
-    ephyrFinishPipelinedAccess(fakexa->pSrc, EXA_PREPARE_SRC);
-    ephyrFinishPipelinedAccess(fakexa->pDst, EXA_PREPARE_DEST);
-}
-
-/**
- * Does fake acceleration of DownloadFromScren using memcpy.
- */
-static Bool
-ephyrDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst,
-                        int dst_pitch)
-{
-    KdScreenPriv(pSrc->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-    unsigned char *src;
-    int src_pitch, cpp;
-
-    if (pSrc->drawable.bitsPerPixel < 8)
-        return FALSE;
-
-    ephyrPreparePipelinedAccess(pSrc, EXA_PREPARE_SRC);
-
-    cpp = pSrc->drawable.bitsPerPixel / 8;
-    src_pitch = exaGetPixmapPitch(pSrc);
-    src = fakexa->exa->memoryBase + exaGetPixmapOffset(pSrc);
-    src += y * src_pitch + x * cpp;
-
-    for (; h > 0; h--) {
-        memcpy(dst, src, w * cpp);
-        dst += dst_pitch;
-        src += src_pitch;
-    }
-
-    exaMarkSync(pSrc->drawable.pScreen);
-
-    ephyrFinishPipelinedAccess(pSrc, EXA_PREPARE_SRC);
-
-    return TRUE;
-}
-
-/**
- * Does fake acceleration of UploadToScreen using memcpy.
- */
-static Bool
-ephyrUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src,
-                    int src_pitch)
-{
-    KdScreenPriv(pDst->drawable.pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-    unsigned char *dst;
-    int dst_pitch, cpp;
-
-    if (pDst->drawable.bitsPerPixel < 8)
-        return FALSE;
-
-    ephyrPreparePipelinedAccess(pDst, EXA_PREPARE_DEST);
-
-    cpp = pDst->drawable.bitsPerPixel / 8;
-    dst_pitch = exaGetPixmapPitch(pDst);
-    dst = fakexa->exa->memoryBase + exaGetPixmapOffset(pDst);
-    dst += y * dst_pitch + x * cpp;
-
-    for (; h > 0; h--) {
-        memcpy(dst, src, w * cpp);
-        dst += dst_pitch;
-        src += src_pitch;
-    }
-
-    exaMarkSync(pDst->drawable.pScreen);
-
-    ephyrFinishPipelinedAccess(pDst, EXA_PREPARE_DEST);
-
-    return TRUE;
-}
-
-static Bool
-ephyrPrepareAccess(PixmapPtr pPix, int index)
-{
-    /* Make sure we don't somehow end up with a pointer that is in framebuffer
-     * and hasn't been readied for us.
-     */
-    assert(pPix->devPrivate.ptr != NULL);
-
-    return TRUE;
-}
-
-/**
- * In fakexa, we currently only track whether we have synced to the latest
- * "accelerated" drawing that has happened or not.  It's not used for anything
- * yet.
- */
-static int
-ephyrMarkSync(ScreenPtr pScreen)
-{
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    fakexa->is_synced = FALSE;
-
-    return 0;
-}
-
-/**
- * Assumes that we're waiting on the latest marker.  When EXA gets smarter and
- * starts using markers in a fine-grained way (for example, waiting on drawing
- * to required pixmaps to complete, rather than waiting for all drawing to
- * complete), we'll want to make the ephyrMarkSync/ephyrWaitMarker
- * implementation fine-grained as well.
- */
-static void
-ephyrWaitMarker(ScreenPtr pScreen, int marker)
-{
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrFakexaPriv *fakexa = scrpriv->fakexa;
-
-    fakexa->is_synced = TRUE;
-}
-
-/**
- * This function initializes EXA to use the fake acceleration implementation
- * which just falls through to software.  The purpose is to have a reliable,
- * correct driver with which to test changes to the EXA core.
- */
-Bool
-ephyrDrawInit(ScreenPtr pScreen)
-{
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-    EphyrScrPriv *scrpriv = screen->driver;
-    EphyrPriv *priv = screen->card->driver;
-    EphyrFakexaPriv *fakexa;
-    Bool success;
-
-    fakexa = calloc(1, sizeof(*fakexa));
-    if (fakexa == NULL)
-        return FALSE;
-
-    fakexa->exa = exaDriverAlloc();
-    if (fakexa->exa == NULL) {
-        free(fakexa);
-        return FALSE;
-    }
-
-    fakexa->exa->memoryBase = (CARD8 *) (priv->base);
-    fakexa->exa->memorySize = priv->bytes_per_line * ephyrBufferHeight(screen);
-    fakexa->exa->offScreenBase = priv->bytes_per_line * screen->height;
-
-    /* Since we statically link against EXA, we shouldn't have to be smart about
-     * versioning.
-     */
-    fakexa->exa->exa_major = 2;
-    fakexa->exa->exa_minor = 0;
-
-    fakexa->exa->PrepareSolid = ephyrPrepareSolid;
-    fakexa->exa->Solid = ephyrSolid;
-    fakexa->exa->DoneSolid = ephyrDoneSolid;
-
-    fakexa->exa->PrepareCopy = ephyrPrepareCopy;
-    fakexa->exa->Copy = ephyrCopy;
-    fakexa->exa->DoneCopy = ephyrDoneCopy;
-
-    fakexa->exa->CheckComposite = ephyrCheckComposite;
-    fakexa->exa->PrepareComposite = ephyrPrepareComposite;
-    fakexa->exa->Composite = ephyrComposite;
-    fakexa->exa->DoneComposite = ephyrDoneComposite;
-
-    fakexa->exa->DownloadFromScreen = ephyrDownloadFromScreen;
-    fakexa->exa->UploadToScreen = ephyrUploadToScreen;
-
-    fakexa->exa->MarkSync = ephyrMarkSync;
-    fakexa->exa->WaitMarker = ephyrWaitMarker;
-
-    fakexa->exa->PrepareAccess = ephyrPrepareAccess;
-
-    fakexa->exa->pixmapOffsetAlign = EPHYR_OFFSET_ALIGN;
-    fakexa->exa->pixmapPitchAlign = EPHYR_PITCH_ALIGN;
-
-    fakexa->exa->maxX = 1023;
-    fakexa->exa->maxY = 1023;
-
-    fakexa->exa->flags = EXA_OFFSCREEN_PIXMAPS;
-
-    success = exaDriverInit(pScreen, fakexa->exa);
-    if (success) {
-        ErrorF("Initialized fake EXA acceleration\n");
-        scrpriv->fakexa = fakexa;
-    }
-    else {
-        ErrorF("Failed to initialize EXA\n");
-        free(fakexa->exa);
-        free(fakexa);
-    }
-
-    return success;
-}
-
-void
-ephyrDrawEnable(ScreenPtr pScreen)
-{
-}
-
-void
-ephyrDrawDisable(ScreenPtr pScreen)
-{
-}
-
-void
-ephyrDrawFini(ScreenPtr pScreen)
-{
-}
-
-/**
- * exaDDXDriverInit is required by the top-level EXA module, and is used by
- * the xorg DDX to hook in its EnableDisableFB wrapper.  We don't need it, since
- * we won't be enabling/disabling the FB.
- */
-void
-exaDDXDriverInit(ScreenPtr pScreen)
-{
-    ExaScreenPriv(pScreen);
-
-    pExaScr->migration = ExaMigrationSmart;
-    pExaScr->checkDirtyCorrectness = TRUE;
-}
diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
index 383fa9f7c72a..13dc993aee1a 100644
--- a/hw/kdrive/ephyr/ephyrinit.c
+++ b/hw/kdrive/ephyr/ephyrinit.c
@@ -140,8 +140,6 @@ ddxUseMsg(void)
     ErrorF("-glamor_gles2        Enable 2D acceleration using glamor (with GLES2 only)\n");
     ErrorF("-glamor-skip-present Skip presenting the output when using glamor (for internal testing optimization)\n");
 #endif
-    ErrorF
-        ("-fakexa              Simulate acceleration using software rendering\n");
     ErrorF("-verbosity <level>   Set log verbosity level\n");
     ErrorF("-noxv                do not use XV\n");
     ErrorF("-name [name]         define the name in the WM_CLASS property\n");
@@ -284,13 +282,6 @@ ddxProcessArgument(int argc, char **argv, int i)
         return 1;
     }
 #endif
-    else if (!strcmp(argv[i], "-fakexa")) {
-        ephyrFuncs.initAccel = ephyrDrawInit;
-        ephyrFuncs.enableAccel = ephyrDrawEnable;
-        ephyrFuncs.disableAccel = ephyrDrawDisable;
-        ephyrFuncs.finiAccel = ephyrDrawFini;
-        return 1;
-    }
     else if (!strcmp(argv[i], "-verbosity")) {
         if (i + 1 < argc && argv[i + 1][0] != '-') {
             int verbosity = atoi(argv[i + 1]);
-- 
2.11.0



More information about the xorg-devel mailing list