summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2004-06-16 09:24:02 +0000
committerEric Anholt <anholt@freebsd.org>2004-06-16 09:24:02 +0000
commit982a12c6ae9d15e4d22d579de4f2c8fac1a2dcee (patch)
tree121c8499e5b40b6d0a3cf3d6d1bb36cdca673eb4
parent6f6d502351b3c7da0585791375b0102aa65e48be (diff)
DRI XFree86-4_3_99_12-merge importDRI-XFree86-4_3_99_12-merge
-rw-r--r--man/tdfx.man41
-rw-r--r--src/tdfx.h2
-rw-r--r--src/tdfx_accel.c2
-rw-r--r--src/tdfx_dga.c2
-rw-r--r--src/tdfx_dri.h2
-rw-r--r--src/tdfx_dripriv.h2
-rw-r--r--src/tdfx_driver.c83
-rw-r--r--src/tdfx_hwcurs.c2
-rw-r--r--src/tdfx_io.c2
-rw-r--r--src/tdfx_priv.c2
-rw-r--r--src/tdfx_priv.h2
-rw-r--r--src/tdfx_sli.c2
-rw-r--r--src/tdfx_video.c21
-rw-r--r--src/tdfxdefs.h2
14 files changed, 64 insertions, 103 deletions
diff --git a/man/tdfx.man b/man/tdfx.man
index 17b3aba..1dd66a7 100644
--- a/man/tdfx.man
+++ b/man/tdfx.man
@@ -14,48 +14,17 @@ tdfx \- 3Dfx video driver
.fi
.SH DESCRIPTION
.B tdfx
-is an __xservername__ driver for 3Dfx video cards.
+is an XFree86 driver for 3Dfx video cards.
+It supports the Voodoo Banshee, Voodoo3, Voodoo4 and Voodoo5 cards.
.SH SUPPORTED HARDWARE
The
.B tdfx
-driver supports Voodoo Banshee, Voodoo3, Voodoo4 and Voodoo5 cards.
+driver supports...
.SH CONFIGURATION DETAILS
-Please refer to __xconfigfile__(__filemansuffix__) for general configuration
+Please refer to XF86Config(__filemansuffix__) for general configuration
details. This section only covers configuration details specific to this
driver.
-.PP
-The following driver
-.B Options
-are supported:
-.TP
-.BI "Option \*qNoAccel\*q \*q" boolean \*q
-Disable or enable acceleration. Default: acceleration is enabled.
-.TP
-.BI "Option \*qSWCursor\*q \*q" boolean \*q
-Disable or enable software cursor. Default: software cursor is disable
-and a hardware cursor is used for configurations where the hardware cursor
-is available.
-.TP
-.BI "Option \*qDRI\*q \*q" boolean \*q
-Disable or enable DRI support. By default, DRI is on.
-.TP
-.BI "Option \*qTexturedVideo\*q \*q" boolean \*q
-This has XvImage support use the texture engine rather than the video overlay.
-.TP
-.BI "Option \*qVideoKey\*q \*q" integer \*q
-This sets the default pixel value for the YUV video overlay key.
-Default: undefined.
-.PP
-The following additional
-.B Options
-are supported:
-.TP
-.BI "Option \*qShowCache\*q \*q" boolean \*q
-Enable or disable viewing offscreen cache memory. A development debug option.
-Default: off.
-.SH FILES
-tdfx_drv.o
.SH "SEE ALSO"
-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
.SH AUTHORS
Authors include: ...
diff --git a/src/tdfx.h b/src/tdfx.h
index a2c581c..b869065 100644
--- a/src/tdfx.h
+++ b/src/tdfx.h
@@ -5,7 +5,7 @@
Copyright: 1998,1999
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.h,v 1.26 2002/01/25 21:56:11 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.h,v 1.27 2002/10/17 01:02:08 dawes Exp $ */
#ifndef _TDFX_H_
#define _TDFX_H_
diff --git a/src/tdfx_accel.c b/src/tdfx_accel.c
index 4bd24c1..d7c11b7 100644
--- a/src/tdfx_accel.c
+++ b/src/tdfx_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c,v 1.19 2001/04/05 21:29:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c,v 1.20 2001/10/28 03:33:49 tsi Exp $ */
/* All drivers should typically include these */
#include "xf86.h"
diff --git a/src/tdfx_dga.c b/src/tdfx_dga.c
index f52859e..f0a97a3 100644
--- a/src/tdfx_dga.c
+++ b/src/tdfx_dga.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dga.c,v 1.5 2001/01/13 00:06:29 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dga.c,v 1.6 2001/03/21 17:02:26 dawes Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/src/tdfx_dri.h b/src/tdfx_dri.h
index ecd4022..956b7e7 100644
--- a/src/tdfx_dri.h
+++ b/src/tdfx_dri.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.h,v 1.4 2001/03/03 22:41:34 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.h,v 1.5 2001/03/21 17:02:26 dawes Exp $ */
#ifndef _TDFX_DRI_
#define _TDFX_DRI_
diff --git a/src/tdfx_dripriv.h b/src/tdfx_dripriv.h
index 22b0670..69f0d04 100644
--- a/src/tdfx_dripriv.h
+++ b/src/tdfx_dripriv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dripriv.h,v 1.1 1999/08/29 12:21:03 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dripriv.h,v 1.2 1999/12/14 01:33:50 robin Exp $ */
#ifndef _TDFX_DRIPRIV_H_
#define _TDFX_DRIPRIV_H_
diff --git a/src/tdfx_driver.c b/src/tdfx_driver.c
index c910461..fdedb6f 100644
--- a/src/tdfx_driver.c
+++ b/src/tdfx_driver.c
@@ -27,7 +27,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.104tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.99 2003/08/23 16:09:20 dawes Exp $ */
/*
* Authors:
@@ -129,8 +129,8 @@ static Bool TDFXSaveScreen(ScreenPtr pScreen, int mode);
static void TDFXFreeScreen(int scrnIndex, int flags);
/* Check if a mode is valid on the hardware */
-static ModeStatus TDFXValidMode(int scrnIndex, DisplayModePtr mode,
- Bool verbose, int flags);
+static int TDFXValidMode(int scrnIndex, DisplayModePtr mode, Bool
+ verbose, int flags);
static void TDFXBlockHandler(int, pointer, pointer, pointer);
@@ -244,6 +244,8 @@ static const char *int10Symbols[] = {
NULL
};
+#ifdef XFree86LOADER
+
#ifdef XF86DRI
static const char *drmSymbols[] = {
"drmAddMap",
@@ -269,8 +271,6 @@ static const char *driSymbols[] = {
#endif
-#ifdef XFree86LOADER
-
static MODULESETUPPROTO(tdfxSetup);
static XF86ModuleVersionInfo tdfxVersRec =
@@ -279,7 +279,7 @@ static XF86ModuleVersionInfo tdfxVersRec =
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
- XORG_VERSION_CURRENT,
+ XF86_VERSION_CURRENT,
TDFX_MAJOR_VERSION, TDFX_MINOR_VERSION, TDFX_PATCHLEVEL,
ABI_CLASS_VIDEODRV,
ABI_VIDEODRV_VERSION,
@@ -485,8 +485,8 @@ TDFXCountRam(ScrnInfoPtr pScrn) {
/* Some information about the timing register (for later debugging) */
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "DRAMINIT1 read 0x%x, programming 0x%lx (not Banshee)\n",
- pTDFX->readLong(pTDFX, DRAMINIT1), (unsigned long)dramInit1);
+ "DRAMINIT1 read 0x%x, programming 0x%x (not Banshee)\n",
+ pTDFX->readLong(pTDFX, DRAMINIT1), dramInit1);
/*
* Here we don't whack the timing register on the Banshee boards as the
@@ -513,7 +513,7 @@ TDFXCountRam(ScrnInfoPtr pScrn) {
} else if ( (dramInit0_strap & SST_SGRAM_TYPE) == SST_SGRAM_TYPE_16MBIT) {
partSize = 16;
} else {
- ErrorF("Invalid sgram type = 0x%lx",
+ ErrorF("Invalid sgram type = 0x%x",
(dramInit0_strap & SST_SGRAM_TYPE) << SST_SGRAM_TYPE_SHIFT );
return 0;
}
@@ -525,10 +525,8 @@ TDFXCountRam(ScrnInfoPtr pScrn) {
banks=((dramInit0_strap&BIT(30))==0) ? 2 : 4;
vmemSize=nChips*partSize*banks;
}
- TDFXTRACEREG("dramInit0 = %lx dramInit1 = %lx\n",
- (unsigned long)dramInit0_strap, (unsigned long)dramInit1_strap);
- TDFXTRACEREG("MemConfig %d chips %ld size %ld total\n", (int)nChips,
- (unsigned long)partSize, (unsigned long)vmemSize);
+ TDFXTRACEREG("dramInit0 = %x dramInit1 = %x\n", dramInit0_strap, dramInit1_strap);
+ TDFXTRACEREG("MemConfig %d chips %d size %d total\n", nChips, partSize, vmemSize);
/*
disable block writes for SDRAM
@@ -600,12 +598,8 @@ static void
TDFXInitChips(ScrnInfoPtr pScrn)
{
TDFXPtr pTDFX;
- int i;
-#if 0
- int v;
-#endif
- unsigned long cfgbits, initbits;
- unsigned long mem0base, mem1base, mem0size, mem0bits, mem1size, mem1bits;
+ int i, v, cfgbits, initbits;
+ int mem0base, mem1base, mem0size, mem0bits, mem1size, mem1bits;
pTDFX=TDFXPTR(pScrn);
cfgbits=pciReadLong(pTDFX->PciTag[0], CFG_PCI_DECODE);
@@ -636,8 +630,8 @@ TDFXInitChips(ScrnInfoPtr pScrn)
for (i=0; i<pTDFX->numChips; i++) {
initbits|=BIT(10);
pciWriteLong(pTDFX->PciTag[i], CFG_INIT_ENABLE, initbits);
-#if 0
v=pciReadWord(pTDFX->PciTag[i], CFG_PCI_COMMAND);
+#if 0
if (!i)
pciWriteWord(pTDFX->PciTag[i], CFG_PCI_COMMAND, v|0x3);
else
@@ -894,7 +888,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags)
/* Multiple by two because tiled access requires more address space */
pTDFX->FbMapSize = pScrn->videoRam*1024*2;
- xf86DrvMsg(pScrn->scrnIndex, from, "VideoRAM: %d kByte Mapping %ld kByte\n",
+ xf86DrvMsg(pScrn->scrnIndex, from, "VideoRAM: %d kByte Mapping %d kByte\n",
pScrn->videoRam, pTDFX->FbMapSize/1024);
/* Since we can do gamma correction, we call xf86SetGamma */
@@ -1098,14 +1092,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags)
pTDFX->writeLong(pTDFX, MISCINIT0, pTDFX->ModeReg.miscinit0);
#endif
-#ifdef XF86DRI
- /* Load the dri module if requested. */
- if (xf86ReturnOptValBool(pTDFX->Options, OPTION_DRI, FALSE)) {
- if (xf86LoadSubModule(pScrn, "dri")) {
- xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL);
- }
- }
-#endif
+
return TRUE;
}
@@ -1622,8 +1609,8 @@ TDFXSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode) {
TDFXPtr pTDFX;
TDFXRegPtr tdfxReg;
vgaRegPtr pVga;
- int hbs, hbe, vbs, vbe, hse;
- int hd, hss, ht, vt, vd;
+ int hbs, hbe, vbs, vbe, hse, wd;
+ int hd, hss, ht, vss, vt, vd, vse;
TDFXTRACE("TDFXSetMode start\n");
@@ -1631,6 +1618,11 @@ TDFXSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode) {
tdfxReg = &pTDFX->ModeReg;
pVga = &VGAHWPTR(pScrn)->ModeReg;
+ if (pTDFX->cpp==4)
+ wd = pScrn->displayWidth>>1;
+ else
+ wd = pScrn->displayWidth>>(4-pTDFX->cpp);
+
/* Tell the board we're using a programmable clock */
pVga->MiscOutReg |= 0xC;
@@ -1643,6 +1635,8 @@ TDFXSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode) {
hbe = (mode->CrtcHBlankEnd>>3)-1;
vd = mode->CrtcVDisplay-1;
+ vss = mode->CrtcVSyncStart;
+ vse = mode->CrtcVSyncEnd;
vt = mode->CrtcVTotal-2;
vbs = mode->CrtcVBlankStart-1;
vbe = mode->CrtcVBlankEnd-1;
@@ -2228,21 +2222,6 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
xf86DPMSInit(pScreen, TDFXDisplayPowerManagementSet, 0);
- /* Initialize Xv support */
- TDFXInitVideo (pScreen);
-
- pScreen->SaveScreen = TDFXSaveScreen;
- pTDFX->CloseScreen = pScreen->CloseScreen;
- pScreen->CloseScreen = TDFXCloseScreen;
-
- pTDFX->BlockHandler = pScreen->BlockHandler;
- pScreen->BlockHandler = TDFXBlockHandler;
-
- /*
- * DRICloseScreen isn't called thru a wrapper but explicitely
- * in of TDFXCloseScreen() before the rest is unwrapped
- */
-
#ifdef XF86DRI
if (pTDFX->directRenderingEnabled) {
/* Now that mi, fb, drm and others have done their thing,
@@ -2257,6 +2236,16 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
}
#endif
+ /* Initialize Xv support */
+ TDFXInitVideo (pScreen);
+
+ pScreen->SaveScreen = TDFXSaveScreen;
+ pTDFX->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = TDFXCloseScreen;
+
+ pTDFX->BlockHandler = pScreen->BlockHandler;
+ pScreen->BlockHandler = TDFXBlockHandler;
+
if (serverGeneration == 1)
xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options);
@@ -2399,7 +2388,7 @@ TDFXFreeScreen(int scrnIndex, int flags) {
vgaHWFreeHWRec(xf86Screens[scrnIndex]);
}
-static ModeStatus
+static int
TDFXValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) {
ScrnInfoPtr pScrn;
TDFXPtr pTDFX;
diff --git a/src/tdfx_hwcurs.c b/src/tdfx_hwcurs.c
index 6f9fec1..637ece4 100644
--- a/src/tdfx_hwcurs.c
+++ b/src/tdfx_hwcurs.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_hwcurs.c,v 1.4 2001/04/05 21:29:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_hwcurs.c,v 1.5 2001/10/28 03:33:50 tsi Exp $ */
/*
Voodoo Banshee driver version 1.0.2
diff --git a/src/tdfx_io.c b/src/tdfx_io.c
index 0382ffe..5de08d7 100644
--- a/src/tdfx_io.c
+++ b/src/tdfx_io.c
@@ -24,7 +24,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c,v 1.6 2000/08/25 16:25:36 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c,v 1.7 2001/04/05 21:29:17 dawes Exp $ */
/*
* Authors:
diff --git a/src/tdfx_priv.c b/src/tdfx_priv.c
index fca4e8d..c4de4ce 100644
--- a/src/tdfx_priv.c
+++ b/src/tdfx_priv.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_priv.c,v 1.15 2001/04/05 21:29:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_priv.c,v 1.16 2001/05/21 21:43:55 dawes Exp $ */
#include "xf86.h"
diff --git a/src/tdfx_priv.h b/src/tdfx_priv.h
index 316187e..28f72f3 100644
--- a/src/tdfx_priv.h
+++ b/src/tdfx_priv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_priv.h,v 1.10 2001/05/21 21:43:55 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_priv.h,v 1.11 2001/06/05 15:54:15 alanh Exp $ */
#ifndef _TDFX_FIFO_H_
diff --git a/src/tdfx_sli.c b/src/tdfx_sli.c
index a13d91d..803a0db 100644
--- a/src/tdfx_sli.c
+++ b/src/tdfx_sli.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_sli.c,v 1.6 2000/12/15 15:19:35 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_sli.c,v 1.7 2001/03/21 17:02:26 dawes Exp $ */
#include "xf86.h"
#include "xf86_ansic.h"
diff --git a/src/tdfx_video.c b/src/tdfx_video.c
index 04b3cac..8971588 100644
--- a/src/tdfx_video.c
+++ b/src/tdfx_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_video.c,v 1.20tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_video.c,v 1.17 2003/04/23 21:51:47 tsi Exp $ */
#include "xf86.h"
#include "tdfx.h"
@@ -239,7 +239,7 @@ TDFXSetupImageVideoOverlay(ScreenPtr pScreen)
pTDFX->overlayAdaptor = adapt;
pPriv = (TDFXPortPrivPtr)(adapt->pPortPrivates[0].ptr);
- REGION_NULL(pScreen, &(pPriv->clip));
+ REGION_INIT(pScreen, &(pPriv->clip), NullBox, 0);
TDFXResetVideoOverlay(pScrn);
@@ -258,7 +258,7 @@ TDFXSetupImageVideoTexture(ScreenPtr pScreen)
return NULL;
adapt->type = XvWindowMask | XvInputMask | XvImageMask;
- adapt->flags = VIDEO_OVERLAID_IMAGES;
+ adapt->flags = 0;
adapt->name = "3dfx Video Texture";
adapt->nPorts = TDFX_MAX_TEXTURE_PORTS;
adapt->nEncodings = sizeof(TextureEncoding) / sizeof(XF86VideoEncodingRec);
@@ -507,6 +507,9 @@ static void
TDFXStopVideoTexture(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
{
TDFXPtr pTDFX = TDFXPTR(pScrn);
+ TDFXPortPrivPtr pPriv = (TDFXPortPrivPtr)data;
+
+ REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
if (cleanup) {
if(pTDFX->textureBuffer) {
@@ -534,7 +537,6 @@ TDFXScreenToScreenYUVStretchBlit (ScrnInfoPtr pScrn,
INT32 src_h = (src_y2 - src_y1) & 0x1FFF;
INT32 dst_w = (dst_x2 - dst_x1) & 0x1FFF;
INT32 dst_h = (dst_y2 - dst_y1) & 0x1FFF;
-
/* Setup for blit src and dest */
TDFXMakeRoom(pTDFX, 4);
DECLARE(SSTCP_DSTSIZE|SSTCP_SRCSIZE|SSTCP_DSTXY|SSTCP_COMMAND/*|SSTCP_COMMANDEXTRA*/);
@@ -796,8 +798,7 @@ TDFXDisplayVideoOverlay(
int dudx, dvdy;
dudx = (src_w << 20) / drw_w;
- /* subtract 1 to eliminate garbage on last line */
- dvdy = (( src_h - 1 )<< 20) / drw_h;
+ dvdy = (src_h << 20) / drw_h;
offset += ((left >> 16) & ~1) << 1;
left = (left & 0x0001ffff) << 3;
@@ -827,7 +828,7 @@ TDFXDisplayVideoOverlay(
pTDFX->writeLong(pTDFX, VIDDESKTOPOVERLAYSTRIDE, pTDFX->ModeReg.stride);
pTDFX->writeLong(pTDFX, SST_3D_LEFTOVERLAYBUF, offset & ~3);
pTDFX->writeLong(pTDFX, VIDINADDR0, offset & ~3);
- TDFXTRACE("TDFXDisplayVideoOverlay: done, offset=0x%x\n", offset);
+ TDFXTRACE("TDFXDisplayVideoOverlay: done, offset=0x%x\n");
}
@@ -889,7 +890,7 @@ TDFXPutImageOverlay(
TDFXPortPrivPtr pPriv = (TDFXPortPrivPtr)data;
INT32 xa, xb, ya, yb;
unsigned char *dst_start;
- int new_size, offset;
+ int pitch, new_size, offset;
int s2offset = 0, s3offset = 0;
int srcPitch = 0, srcPitch2 = 0;
int dstPitch;
@@ -935,6 +936,7 @@ TDFXPutImageOverlay(
dstBox.y2 -= pScrn->frameY0;
bpp = pScrn->bitsPerPixel >> 3;
+ pitch = bpp * pScrn->displayWidth;
switch(id) {
case FOURCC_YV12:
@@ -1163,7 +1165,7 @@ TDFXAllocateSurface(
){
TDFXPtr pTDFX = TDFXPTR(pScrn);
FBLinearPtr linear;
- int pitch, size, bpp;
+ int pitch, fbpitch, size, bpp;
OffscreenPrivPtr pPriv;
if((w > 2048) || (h > 2048))
@@ -1172,6 +1174,7 @@ TDFXAllocateSurface(
w = (w + 1) & ~1;
pitch = ((w << 1) + 15) & ~15;
bpp = pScrn->bitsPerPixel >> 3;
+ fbpitch = bpp * pScrn->displayWidth;
size = ((pitch * h) + bpp - 1) / bpp;
if(!(linear = TDFXAllocateMemoryLinear(pScrn, NULL, size)))
diff --git a/src/tdfxdefs.h b/src/tdfxdefs.h
index f4fada7..b9c01ce 100644
--- a/src/tdfxdefs.h
+++ b/src/tdfxdefs.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfxdefs.h,v 1.12 2001/04/05 21:29:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfxdefs.h,v 1.14 2003/06/18 16:17:41 eich Exp $ */
/*
Voodoo Banshee driver version 1.0.1