]> git.pld-linux.org Git - packages/XFree86.git/blobdiff - XFree86-tdfxdrmfixes.patch
This commit was manufactured by cvs2git to create branch 'AC-branch'.
[packages/XFree86.git] / XFree86-tdfxdrmfixes.patch
diff --git a/XFree86-tdfxdrmfixes.patch b/XFree86-tdfxdrmfixes.patch
deleted file mode 100644 (file)
index 8c7df5f..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
---- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.c.chmou Tue Sep 19 17:34:43 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.c       Tue Sep 19 18:30:25 2000
-@@ -127,9 +127,10 @@
-       }
-     }
-     if (i!=numConfigs) {
--      ErrorF("Incorrect initialization of visuals\n");
-+      xf86DrvMsg(pScreen->myNum, X_ERROR,
-+                 "Incorrect initialization of visuals\n");
-       return FALSE;
--    } else ErrorF("Created %d visuals\n", numConfigs);
-+    }
-     break; /* 16bpp */
-   case 24:
-@@ -224,7 +225,7 @@
-       xf86DrvMsg(pScreen->myNum, X_ERROR,
-                  "Incorrect initialization of visuals\n");
-       return FALSE;
--    } else ErrorF("Created %d visuals\n", numConfigs);
-+    }
-     break;
-   }
-   pTDFX->numVisualConfigs = numConfigs;
-@@ -263,12 +264,21 @@
-   switch (pScrn->bitsPerPixel) {
-   case 8:
-+    xf86DrvMsg(pScreen->myNum, X_ERROR,
-+                 "DRI not supported in 8 bpp mode, disabling DRI.\n");
-     return FALSE;
-   case 16:
-     break;
-   case 24:
-+    xf86DrvMsg(pScreen->myNum, X_ERROR,
-+                 "DRI not supported in 24 bpp mode, disabling DRI.\n");
-+    return FALSE;
-   case 32:
--    if (pTDFX->ChipType<=PCI_CHIP_VOODOO3) return FALSE;
-+     if (pTDFX->ChipType<=PCI_CHIP_VOODOO3) {
-+       xf86DrvMsg(pScreen->myNum, X_ERROR,
-+                  "DRI requires Voodoo3 or later, disabling DRI.\n");
-+       return FALSE;
-+     }
-   }
-     /* Check that the GLX, DRI, and DRM modules have been loaded by testing
-@@ -295,8 +305,12 @@
-   }
-   pDRIInfo = DRICreateInfoRec();
--  if (!pDRIInfo)
--     return FALSE;
-+  if (!pDRIInfo) {
-+    xf86DrvMsg(pScreen->myNum, X_ERROR,
-+               "DRICreatInfoRect() failed, disabling DRI.\n");
-+    return FALSE;
-+  }
-+
-   pTDFX->pDRIInfo = pDRIInfo;
-   pDRIInfo->drmDriverName = TDFXKernelDriverName;
-@@ -336,13 +350,14 @@
-    * in the SAREA header
-    */
-   if (sizeof(XF86DRISAREARec)+sizeof(TDFXSAREAPriv)>SAREA_MAX) {
--     xf86DrvMsg(pScreen->myNum, X_ERROR, "Data does not fit in SAREA\n");
-+    xf86DrvMsg(pScreen->myNum, X_ERROR, "Data does not fit in SAREA\n");
-     return FALSE;
-   }
-   pDRIInfo->SAREASize = SAREA_MAX;
- #endif
-   if (!(pTDFXDRI = (TDFXDRIPtr)xnfcalloc(sizeof(TDFXDRIRec),1))) {
-+    xf86DrvMsg(pScreen->myNum, X_ERROR, "DRI memory allocation failed, disabling DRI.\n");
-     DRIDestroyInfoRec(pTDFX->pDRIInfo);
-     pTDFX->pDRIInfo=0;
-     return FALSE;
-@@ -363,6 +378,8 @@
-     pDRIInfo->devPrivate=0;
-     DRIDestroyInfoRec(pTDFX->pDRIInfo);
-     pTDFX->pDRIInfo=0;
-+    xf86DrvMsg(pScreen->myNum, X_ERROR, "DRIScreenInit failed, disabling DRI.\n");
-+
-     return FALSE;
-   }
-@@ -391,6 +408,7 @@
-   if (drmAddMap(pTDFX->drmSubFD, (drmHandle)pTDFX->MMIOAddr[0], 
-               pTDFXDRI->regsSize, DRM_REGISTERS, 0, &pTDFXDRI->regs)<0) {
-     TDFXDRICloseScreen(pScreen);
-+    xf86DrvMsg(pScreen->myNum, X_ERROR, "drmAddMap failed, disabling DRI.\n");
-     return FALSE;
-   }
-   xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] Registers = 0x%08lx\n",
-@@ -398,6 +416,7 @@
-   if (!(TDFXInitVisualConfigs(pScreen))) {
-     TDFXDRICloseScreen(pScreen);
-+    xf86DrvMsg(pScreen->myNum, X_ERROR, "TDFXInitVisualConfigs failed, disabling DRI.\n");
-     return FALSE;
-   }
-   xf86DrvMsg(pScrn->scrnIndex, X_INFO, "visual configs initialized\n" );
---- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c.chmou      Tue Sep 19 17:34:43 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c    Tue Sep 19 18:30:25 2000
-@@ -636,7 +636,6 @@
-   ClockRangePtr clockRanges;
-   int i;
-   MessageType from;
--  char *mod=0, *reqSym=0;
-   int flags24;
-   rgb defaultWeight = {0, 0, 0};
-   pciVideoPtr match;
-@@ -663,7 +662,7 @@
-   if (flags & PROBE_DETECT) {
-     TDFXProbeDDC(pScrn, pTDFX->pEnt->index);
--    return FALSE;
-+    return TRUE;
-   }
-   
-   /* The vgahw module should be loaded here when needed */
-@@ -1195,7 +1194,10 @@
-     maxm=24;
-   } else {
-     minm=1;
--    maxm=64;
-+    maxm=57; /* This used to be 64, alas it seems the last 8 (funny that ?)
-+              * values cause jittering at lower resolutions. I've not done
-+              * any calculations to what the adjustment affects clock ranges,
-+              * but I can still run at 1600x1200@75Hz */
-   }
-   for (n=1; n<256; n++) {
-     f_cur=REFFREQ*(n+2);
-@@ -1604,15 +1606,6 @@
-   pTDFX = TDFXPTR(pScrn);
-   pTDFX->stride = pScrn->displayWidth*pTDFX->cpp;
--  /* Layout the memory.  Start with all the ram */
--  memRemaining=pScrn->videoRam<<10;
--  /* Remove the cursor space */
--  memRemaining-=4096;
--  /* Remove the main screen and offscreen pixmaps */
--  memRemaining-=pTDFX->stride*(pScrn->virtualY+128);
--  /* Remove one scanline for page alignment */
--  memRemaining-=4095;
--  /* Remove the back and Z buffers */
-   if (pTDFX->cpp!=3) {
-     screenSizeInTiles=calcBufferSize(pScrn->virtualX, pScrn->virtualY,
-                                    TRUE, pTDFX->cpp);
-@@ -1622,41 +1615,77 @@
-     screenSizeInTiles=calcBufferSize(pScrn->virtualX, pScrn->virtualY,
-                                    TRUE, 4);
-   }
--  memRemaining-=screenSizeInTiles*2;
--
--  /* Give all the rest to textures, rounded down to a page */
--  texSize=memRemaining&~0xFFF;
--
--  /* Make sure fifo has CMDFIFO_PAGES<fifoSize<255 pages */
--  if (memRemaining-texSize<CMDFIFO_PAGES<<12)
--    texSize=(memRemaining-(CMDFIFO_PAGES<<12))&~0xFFF;
--  /* Fifo uses the remaining space up to 255 pages */
--  fifoSize = (memRemaining-texSize)&~0xFFF;
--  if (fifoSize>255<<12) fifoSize=255<<12;
--
--  /* Assign the variables */
--  /* Cursor */
--  pTDFX->cursorOffset=0; /* Size 1024 bytes */
--
--  /* Point the fifo at the first page */
-+  memRemaining=((pScrn->videoRam<<10) - 1) &~ 0xFFF;
-+  /* Note that a page is 4096 bytes, and a  */
-+  /* tile is 32 x 128 = 4096 bytes.  So,    */
-+  /* page and tile boundaries are the same  */
-+  /* Place the depth offset first, forcing  */
-+  /* it to be on an *odd* page boundary.    */
-+  pTDFX->depthOffset = (memRemaining - screenSizeInTiles) &~ 0xFFF;
-+  if ((pTDFX->depthOffset & (0x1 << 12)) == 0) {
-+#if   0
-+      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+                 "Changing depth offset from 0x%08x to 0x%08x\n",
-+                 pTDFX->depthOffset,
-+                 pTDFX->depthOffset - (0x1 << 12));
-+#endif
-+      pTDFX->depthOffset -= (0x1 << 12);
-+  }
-+  /* Now, place the back buffer, forcing it */
-+  /* to be on an *even* page boundary.      */
-+  pTDFX->backOffset = (pTDFX->depthOffset - screenSizeInTiles) &~ 0xFFF;
-+  if (pTDFX->backOffset & (0x1 << 12)) {
-+#if   0
-+      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+                 "Changing back offset from 0x%08x to 0x%08x\n",
-+                 pTDFX->backOffset,
-+                 pTDFX->backOffset - (0x1 << 12));
-+#endif
-+      pTDFX->backOffset -= (0x1 << 12);
-+  }
-+  /* Now, place the front buffer, forcing   */
-+  /* it to be on a page boundary too, just  */
-+  /* for giggles.                           */
-+  pTDFX->fbOffset
-+      = (pTDFX->backOffset - (pScrn->virtualY+128)*pTDFX->stride) &~ 0xFFF;
-+  /* Give the cmd fifo at least             */
-+  /* CMDFIFO_PAGES pages, but no more than  */
-+  /* 255.                                   */
-+  fifoSize = ((255 <= CMDFIFO_PAGES) ? 255 : CMDFIFO_PAGES) << 12;
-+  /* We give 4096 bytes to the cursor, fifoSize to the */
-+  /* FIFO, and everything to textures.                 */
-+  texSize = (pTDFX->fbOffset - fifoSize - 4096);
-+  pTDFX->texOffset = pTDFX->fbOffset - texSize;
-+  pTDFX->texSize = texSize;
-   pTDFX->fifoOffset = 4096;
-   pTDFX->fifoSize = fifoSize;
--
--  /* Textures */
--  pTDFX->texOffset = pTDFX->fifoOffset+fifoSize;
--  pTDFX->texSize = texSize;
--
--  /* Frame buffer */
--  pTDFX->fbOffset=pTDFX->texOffset+pTDFX->texSize;
--
--  /* Back buffer */
--  pTDFX->backOffset=pTDFX->fbOffset+(pScrn->virtualY+128)*pTDFX->stride;
--  /* Round off to a page */
--  pTDFX->backOffset=(pTDFX->backOffset+4095)&~0xFFF;
--
--  /* Depth buffer */
--  pTDFX->depthOffset=pTDFX->backOffset+screenSizeInTiles;
--
-+  pTDFX->cursorOffset = 0;
-+#if   0
-+  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+             "Cursor Offset: [0x%08X,0x%08X)\n",
-+             pTDFX->cursorOffset,
-+             pTDFX->cursorOffset+1024);
-+  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+             "Fifo Offset: [0x%08X, 0x%08X)\n",
-+             pTDFX->fifoOffset,
-+             pTDFX->fifoOffset+fifoSize);
-+  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+             "Texture Offset: [0x%08X, 0x%08X)\n",
-+             pTDFX->texOffset,
-+             pTDFX->texOffset + texSize);
-+  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+             "Front Buffer Offset: [0x%08X, 0x%08X)\n",
-+             pTDFX->fbOffset,
-+             pTDFX->fbOffset + (pScrn->virtualY+128)*pTDFX->stride);
-+  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+             "BackOffset: [0x%08X, 0x%08X)\n",
-+             pTDFX->backOffset,
-+             pTDFX->backOffset+screenSizeInTiles);
-+  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+             "DepthOffset: [0x%08X, 0x%08X)\n",
-+             pTDFX->depthOffset,
-+             pTDFX->depthOffset+screenSizeInTiles);
-+#endif        /* 0/1 */
-   xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textures Memory %0.02f MB\n",
-            (float)texSize/1024.0/1024.0);
- }
---- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c.chmou       Tue Sep 19 17:34:43 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c     Tue Sep 19 18:30:25 2000
-@@ -163,12 +163,22 @@
-   } else {
-     int chip;
-     int stride, bits;
-+    int TileAperturePitch, lg2TileAperturePitch;
-     if (pTDFX->cpp==2) stride=pTDFX->stride;
-     else stride=4*pTDFX->stride/pTDFX->cpp;
-     bits=pTDFX->backOffset>>12;
-+    for (lg2TileAperturePitch = 0, TileAperturePitch = 1024;
-+         (lg2TileAperturePitch < 5) &&
-+             TileAperturePitch < stride;
-+         lg2TileAperturePitch += 1, TileAperturePitch <<= 1);
-+#if   0
-+    fprintf(stderr, "Using %d (== lg2(%d)-10) for tile aperture pitch\n",
-+            lg2TileAperturePitch, TileAperturePitch);
-+    fprintf(stderr, "stride == %d\n", stride);
-+#endif
-     for (chip=0; chip<pTDFX->numChips; chip++) {
-       TDFXWriteChipLongMMIO(pTDFX, chip, LFBMEMORYCONFIG, (bits&0x1FFF) |
--                          SST_RAW_LFB_ADDR_STRIDE_4K | 
-+                          SST_RAW_LFB_ADDR_STRIDE(lg2TileAperturePitch) | 
-                           ((bits&0x6000)<<10) |
-                           ((stride+127)/128)<<SST_RAW_LFB_TILE_STRIDE_SHIFT);
-     }
---- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_sli.c.chmou Tue Sep 19 17:34:43 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_sli.c       Tue Sep 19 18:30:25 2000
-@@ -1,4 +1,3 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_sli.c,v 1.2 2000/06/17 18:23:23 dawes Exp $ */
- #include "xf86.h"
- #include "xf86_ansic.h"
---- XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfxdefs.h.chmou Tue Sep 19 17:34:43 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfxdefs.h       Tue Sep 19 18:30:25 2000
-@@ -52,8 +52,26 @@
- #define MEM_TYPE_SGRAM  0
- #define MEM_TYPE_SDRAM  1
-+/*
-+ * SST_RAW_LFB_ADDR_STRIDE(Lg2SizeInK) takes the
-+ * lfbMemoryConfig value for SGRAMStrideInTiles.  This
-+ * is given by this table:
-+ *  SGRAMStrideInBytes        lfbMemoryConfig Value
-+ *  ==================        =====================
-+ *          1k                          0
-+ *          2k                          1
-+ *          4k                          2
-+ *          8k                          3
-+ *         16k                          4
-+ *
-+ * FWIW, the right hand column is log2(left hand column)-10
-+ */
- #define SST_RAW_LFB_ADDR_STRIDE_SHIFT 13
--#define SST_RAW_LFB_ADDR_STRIDE_4K 0x2<<SST_RAW_LFB_ADDR_STRIDE_SHIFT
-+#define SST_RAW_LFB_ADDR_STRIDE(Lg2SizeInK) \
-+              ((Lg2SizeInK)<<SST_RAW_LFB_ADDR_STRIDE_SHIFT)
-+#define SST_RAW_LFB_ADDR_STRIDE_4K SST_RAW_LFB_ADDR_STRIDE(2)
-+#define SST_RAW_LFB_ADDR_STRIDE_8K SST_RAW_LFB_ADDR_STRIDE(3)
-+#define SST_RAW_LFB_ADDR_STRIDE_16K SST_RAW_LFB_ADDR_STRIDE(4)
- #define SST_RAW_LFB_TILE_STRIDE_SHIFT 16
- #define BLIT_LEFT 1
This page took 0.100709 seconds and 4 git commands to generate.