diff options
author | dawes <dawes> | 2001-03-28 18:29:31 +0000 |
---|---|---|
committer | dawes <dawes> | 2001-03-28 18:29:31 +0000 |
commit | 024d1a25cb3355da76983b7015a054a620d15cbb (patch) | |
tree | fdc0266809e86035dfd7d8a10b5c2db262ce73d5 | |
parent | 8e64ede5f2ce1ded9ed60e162e60f56de11fa089 (diff) |
- mga, tdfx: add a "DRI" option to make it possible to turn DRI on/off per
screen, and to turn it off in a static server.
- mga, tdfx, i810: make the "Direct rendering enabled/disabled" message
the same across these drivers, and print the appropriate "reason" flag
with the message.
Note: other drivers should get these changes too.
3 files changed, 39 insertions, 27 deletions
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c index 9bf19d0eb..d5bda3113 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c @@ -1658,6 +1658,7 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { vgaHWPtr hwp; I810Ptr pI810; VisualPtr visual; + MessageType driFrom = X_DEFAULT; pScrn = xf86Screens[pScreen->myNum]; pI810 = I810PTR(pScrn); @@ -1696,11 +1697,12 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { * InitGLXVisuals call back. */ - if (!xf86ReturnOptValBool(I810Options, OPTION_NOACCEL, FALSE) && - xf86ReturnOptValBool(I810Options, OPTION_DRI, TRUE)) { - pI810->directRenderingEnabled = I810DRIScreenInit(pScreen); - } else { + if (xf86ReturnOptValBool(I810Options, OPTION_NOACCEL, FALSE) || + !xf86ReturnOptValBool(I810Options, OPTION_DRI, TRUE)) { pI810->directRenderingEnabled = FALSE; + driFrom = X_CONFIG; + } else { + pI810->directRenderingEnabled = I810DRIScreenInit(pScreen); } #else @@ -1754,7 +1756,8 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { #ifdef XF86DRI if (pI810->LpRing.mem.Start == 0 && pI810->directRenderingEnabled) { - pI810->directRenderingEnabled = 0; + pI810->directRenderingEnabled = FALSE; + driFrom = X_PROBED; I810DRICloseScreen(pScreen); } @@ -1828,15 +1831,9 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { #endif if (pI810->directRenderingEnabled) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Enabled\n"); + xf86DrvMsg(pScrn->scrnIndex, driFrom, "Direct rendering enabled\n"); } else { - if(pI810->agpAcquired2d == TRUE) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Disabled\n"); - } - else { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Failed\n"); - return FALSE; - } + xf86DrvMsg(pScrn->scrnIndex, driFrom, "Direct rendering disabled\n"); } pScreen->SaveScreen = I810SaveScreen; diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c index ec0918929..a7eb5511b 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c @@ -212,7 +212,8 @@ typedef enum { OPTION_CABLETYPE, OPTION_USEIRQZERO, OPTION_NOHAL, - OPTION_SWAPPED_HEAD + OPTION_SWAPPED_HEAD, + OPTION_DRI } MGAOpts; static OptionInfoRec MGAOptions[] = { @@ -241,7 +242,8 @@ static OptionInfoRec MGAOptions[] = { { OPTION_TVSTANDARD, "TVStandard", OPTV_ANYSTR, {0}, FALSE }, { OPTION_CABLETYPE, "CableType", OPTV_ANYSTR, {0}, FALSE }, { OPTION_NOHAL, "NoHal", OPTV_BOOLEAN, {0}, FALSE }, - { OPTION_SWAPPED_HEAD, "SwappedHead", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_SWAPPED_HEAD, "SwappedHead", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_DRI, "DRI", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -2767,6 +2769,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) int width, height, displayWidth; MGAEntPtr pMgaEnt = NULL; int f; + MessageType driFrom = X_DEFAULT; /* * First get the ScrnInfoRec @@ -2962,15 +2965,19 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) * InitGLXVisuals call back. * The DRI does not work when textured video is enabled at this time. */ - if ( pMga->NoAccel ) { + if (!xf86ReturnOptValBool(MGAOptions, OPTION_DRI, TRUE)) { + driFrom = X_CONFIG; + } else if ( pMga->NoAccel ) { xf86DrvMsg( pScrn->scrnIndex, X_ERROR, "Acceleration disabled, not initializing the DRI\n" ); pMga->directRenderingEnabled = FALSE; + driFrom = X_CONFIG; } else if ( pMga->TexturedVideo == TRUE ) { xf86DrvMsg( pScrn->scrnIndex, X_ERROR, "Textured video enabled, not initializing the DRI\n" ); pMga->directRenderingEnabled = FALSE; + driFrom = X_CONFIG; } else if ( pMga->SecondCrtc == TRUE ) { xf86DrvMsg( pScrn->scrnIndex, X_ERROR, @@ -2986,6 +2993,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) (3 * displayWidth * height * (pScrn->bitsPerPixel >> 3)) / 1024 ); pMga->directRenderingEnabled = FALSE; + driFrom = X_PROBED; } else { pMga->directRenderingEnabled = MGADRIScreenInit(pScreen); @@ -3111,9 +3119,9 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) pMga->directRenderingEnabled = MGADRIFinishScreenInit(pScreen); } if (pMga->directRenderingEnabled) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Direct rendering enabled\n"); + xf86DrvMsg(pScrn->scrnIndex, driFrom, "Direct rendering enabled\n"); } else { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Direct rendering disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, driFrom, "Direct rendering disabled\n"); } if (xf86IsEntityShared(pScrn->entityList[0]) && pMga->SecondCrtc == FALSE) pMgaEnt->directRenderingEnabled = pMga->directRenderingEnabled; diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c index 55b2ad447..ca31bb47f 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c @@ -172,7 +172,8 @@ typedef enum { OPTION_USE_PIO, OPTION_SHOWCACHE, OPTION_VIDEO_KEY, - OPTION_NO_SLI + OPTION_NO_SLI, + OPTION_DRI } TDFXOpts; static OptionInfoRec TDFXOptions[] = { @@ -182,6 +183,7 @@ static OptionInfoRec TDFXOptions[] = { { OPTION_SHOWCACHE, "ShowCache", OPTV_BOOLEAN, {0}, FALSE}, { OPTION_VIDEO_KEY, "VideoKey", OPTV_INTEGER, {0}, FALSE}, { OPTION_NO_SLI, "NoSLI", OPTV_BOOLEAN, {0}, FALSE}, + { OPTION_DRI, "DRI", OPTV_BOOLEAN, {0}, FALSE}, { -1, NULL, OPTV_NONE, {0}, FALSE} }; @@ -677,6 +679,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) if (xf86LoadSubModule(pScrn, "int10")) { xf86Int10InfoPtr pInt; +#if 0 xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Softbooting the board (through the int10 interface).\n"); pInt = xf86InitInt10(pTDFX->pEnt->index); @@ -691,6 +694,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) "Softbooting the board succeeded.\n"); xf86FreeInt10(pInt); } +#endif } match=pTDFX->PciInfo=xf86GetPciInfoForEntity(pTDFX->pEnt->index); @@ -1768,6 +1772,7 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { TDFXPtr pTDFX; VisualPtr visual; BoxRec MemBox; + MessageType driFrom = X_DEFAULT; TDFXTRACE("TDFXScreenInit start\n"); pScrn = xf86Screens[pScreen->myNum]; @@ -1851,10 +1856,14 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { * is called. fbScreenInit will eventually call into the drivers * InitGLXVisuals call back. */ - if (!pTDFX->NoAccel) { - if ((pTDFX->backOffset != -1) && (pTDFX->depthOffset != -1)) { + if (!xf86ReturnOptValBool(TDFXOptions, OPTION_DRI, TRUE) || pTDFX->NoAccel) { + pTDFX->directRenderingEnabled = FALSE; + driFrom = X_CONFIG; + } else if ((pTDFX->backOffset != -1) && (pTDFX->depthOffset != -1)) { + pTDFX->directRenderingEnabled = FALSE; + driFrom = X_PROBED; + } else { pTDFX->directRenderingEnabled = TDFXDRIScreenInit(pScreen); - } } #endif @@ -1934,18 +1943,16 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { xf86DPMSInit(pScreen, TDFXDisplayPowerManagementSet, 0); #ifdef XF86DRI - if (!pTDFX->NoAccel) { - if (pTDFX->directRenderingEnabled) { + if (pTDFX->directRenderingEnabled) { /* Now that mi, fb, drm and others have done their thing, * complete the DRI setup. */ pTDFX->directRenderingEnabled = TDFXDRIFinishScreenInit(pScreen); - } } if (pTDFX->directRenderingEnabled) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering enabled\n"); + xf86DrvMsg(pScrn->scrnIndex, driFrom, "Direct rendering enabled\n"); } else { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, driFrom, "Direct rendering disabled\n"); } #endif |