summaryrefslogtreecommitdiff
path: root/src/radeon_driver.c
diff options
context:
space:
mode:
authorVladimir Dergachev <volodya@mindspring.com>2004-12-12 16:05:35 +0000
committerVladimir Dergachev <volodya@mindspring.com>2004-12-12 16:05:35 +0000
commit36b92808e4ff1311f91543388c18cbe8e9eb4aab (patch)
tree6db8c8aa8db6cc665e44d832629170e6a4b58d98 /src/radeon_driver.c
parent68ea67ce98b8f3ad4c17f987e0e2b92f79a96fbf (diff)
Modified:
programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h Add R300 (and later) DRM support, protected by X_R300_DRM option. Note: at the moment this is for 2d support only, if enabled running glxgears locks up my machine, but DMAForXv=yes works fine.
Diffstat (limited to 'src/radeon_driver.c')
-rw-r--r--src/radeon_driver.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index faed1523..ba9f4c1c 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -142,6 +142,7 @@ typedef enum {
OPTION_PAGE_FLIP,
OPTION_NO_BACKBUFFER,
OPTION_XV_DMA,
+ OPTION_R300_DRM,
#endif
OPTION_PANEL_OFF,
OPTION_DDC_MODE,
@@ -195,6 +196,7 @@ static const OptionInfoRec RADEONOptions[] = {
{ OPTION_PAGE_FLIP, "EnablePageFlip", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_NO_BACKBUFFER, "NoBackBuffer", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_XV_DMA, "DMAForXv", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_R300_DRM, "X_R300_DRM", OPTV_BOOLEAN, {0}, FALSE },
#endif
{ OPTION_PANEL_OFF, "PanelOff", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_DDC_MODE, "DDCMode", OPTV_BOOLEAN, {0}, FALSE },
@@ -4709,11 +4711,21 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
(pScrn->displayWidth * pScrn->virtualY *
info->CurrentLayout.pixel_bytes * 3 + 1023) / 1024);
info->directRenderingEnabled = FALSE;
- } else if (info->ChipFamily >= CHIP_FAMILY_R300) {
- info->directRenderingEnabled = FALSE;
- xf86DrvMsg(scrnIndex, X_WARNING,
- "Direct rendering not yet supported on "
- "Radeon 9500 and newer cards\n");
+ } else if (info->ChipFamily >= CHIP_FAMILY_R300) {
+ if ( xf86ReturnOptValBool(info->Options, OPTION_R300_DRM, FALSE) ) {
+ xf86DrvMsg(scrnIndex, X_WARNING,
+ "Direct rendering support is highly experimental for "
+ "Radeon 9500/9700 and newer cards\n"
+ "\t\tIn fact, the only thing you could probably use it for is better 2d acceleration.\n"
+ );
+ info->directRenderingEnabled = RADEONDRIScreenInit(pScreen);
+ } else {
+ info->directRenderingEnabled = FALSE;
+ xf86DrvMsg(scrnIndex, X_WARNING,
+ "Direct rendering is not yet supported on "
+ "Radeon 9500 and newer cards. \n"
+ "\t\tTo enable it anyway turn on X_R300_DRM option. Note: this might lockup your computer\n");
+ }
} else if (info->IsSecondary) {
info->directRenderingEnabled = FALSE;
} else if (xf86IsEntityShared(info->pEnt->index)) {