summaryrefslogtreecommitdiff
path: root/src/savage_accel.c
diff options
context:
space:
mode:
authorFelix Kuehling <fxkuehl@gmx.de>2005-01-31 01:09:27 +0000
committerFelix Kuehling <fxkuehl@gmx.de>2005-01-31 01:09:27 +0000
commit37e6666824a771271f60ad12174a29b2ac6b826b (patch)
treef0a82ea5d4beb877525652543743791a6b93b779 /src/savage_accel.c
parent7712602bccc71210ad4319aaf2bc8e1b15b6a01a (diff)
- Shadow status update thresholds on Savage4 were reversed. Fixed now.
- Fixed cobIndex on Savage2K. It used only a 4K COB so far. Now we have full 128K. - Program the shadow status thresholds correctly on Savage2K. - Savage2K reports used entries in the queue in qword units instead of dwords. Fixed WaitQueue2K accordingly. - Event counter 0 is in status word 2 instead of status word 1 on Savage2K. Fixed ShadowWait accordingly. - Added a ShadowWaitQueue function that doesn't idle the engine all the time. This improves 3D animation smoothness with concurrent 2D activity when shadow status is enabled.
Diffstat (limited to 'src/savage_accel.c')
-rw-r--r--src/savage_accel.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/savage_accel.c b/src/savage_accel.c
index d7fdd3d..12a1afe 100644
--- a/src/savage_accel.c
+++ b/src/savage_accel.c
@@ -342,8 +342,8 @@ SavageInitialize2DEngine(ScrnInfoPtr pScrn)
}
/* Program shadow status update */ /* AGD: what should this be? */
{
- unsigned long thresholds = ((psav->bciThresholdHi & 0x1fffe0) << 11) |
- ((psav->bciThresholdLo & 0x1fffe0) >> 5);
+ unsigned long thresholds = ((psav->bciThresholdLo & 0x1fffe0) << 11) |
+ ((psav->bciThresholdHi & 0x1fffe0) >> 5);
OUTREG(0x48C10, thresholds);
}
/*OUTREG(0x48C10, 0x00700040);*/ /* tim */
@@ -378,8 +378,10 @@ SavageInitialize2DEngine(ScrnInfoPtr pScrn)
if( psav->ShadowStatus )
{
/* Set shadow update threshholds. */
- OUTREG(0x48C10, 0x6090 );
- OUTREG(0x48C14, 0x70A8 );
+ /*OUTREG(0x48C10, 0x6090 );
+ OUTREG(0x48C14, 0x70A8 );*/
+ OUTREG(0x48C10, psav->bciThresholdLo >> 2);
+ OUTREG(0x48C14, psav->bciThresholdHi >> 2);
/* Enable shadow status update */
OUTREG(0x48A30, psav->ShadowPhysical );
/* Enable BCI, command overflow buffer and shadow status. */