summaryrefslogtreecommitdiff
path: root/src/radeon_accel.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2004-06-20 07:26:08 +0000
committerEric Anholt <anholt@freebsd.org>2004-06-20 07:26:08 +0000
commit8c1b37420ea890f76edb97aed61ee427a871cd3f (patch)
tree91ee9ae38e7fa59acc14d595e4a474ed8393e005 /src/radeon_accel.c
parent6ecf374d500afe6da494dfdd6566396ec65b6d6a (diff)
Bug #748:
- Add Render acceleration for Radeon 100 and 200-series cards, enabled by default. Notable performance gains include 27fps in cairogears instead of 6fps (compared to 50 with glitz), and my disks are now the bottleneck in an ls -lR in gnome-terminal. Only supported in DRI mode because the MMIO submission hangs the card so far, but the code is left in because it may be supportable soon. - Add xorg.conf options to disable Render acceleration and to force the subpixel order in the server (Hui Yu). Many thanks to Hui Yu at ATI for the code this was based off of, Michel Daenzer for bugfixes and suggestions, and LinuxFund for sponsoring the work.
Diffstat (limited to 'src/radeon_accel.c')
-rw-r--r--src/radeon_accel.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/radeon_accel.c b/src/radeon_accel.c
index ccf9a390..b4c44ed3 100644
--- a/src/radeon_accel.c
+++ b/src/radeon_accel.c
@@ -318,6 +318,14 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn)
OUTREG(RADEON_DP_SRC_BKGD_CLR, 0x00000000);
OUTREG(RADEON_DP_WRITE_MASK, 0xffffffff);
+#ifdef RENDER
+ /* In the DRI case, it's initialized when the server grabs the lock. We
+ * don't hold the lock here, so don't do it in that case.
+ */
+ if (!info->directRenderingEnabled && info->RenderAccel)
+ RADEONInit3DEngineForRender(pScrn);
+#endif
+
RADEONWaitForIdleMMIO(pScrn);
}
@@ -378,6 +386,9 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
#define OUT_ACCEL_REG(reg, val) OUTREG(reg, val)
#define FINISH_ACCEL()
+#ifdef RENDER
+#include "radeon_render.c"
+#endif
#include "radeon_accelfuncs.c"
#undef ACCEL_MMIO
@@ -396,6 +407,9 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
#define OUT_ACCEL_REG(reg, val) OUT_RING_REG(reg, val)
#define FINISH_ACCEL() ADVANCE_RING()
+#ifdef RENDER
+#include "radeon_render.c"
+#endif
#include "radeon_accelfuncs.c"
#undef ACCEL_CP