xserver/hw/kdrive/ati ati_draw.c,1.29,1.30 ati_reg.h,1.15,1.16
Keith Packard <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Mon, 24 Jan 2005 22:04:23 -0800 (PST)
| Newsgroups | gmane.comp.freedesktop.xserver.cvs |
|---|---|
| Message-ID | <[email protected]> |
Committed by: keithp Update of /cvs/xserver/xserver/hw/kdrive/ati In directory gabe:/tmp/cvs-serv9277 Modified Files: ati_draw.c ati_reg.h Log Message: Fix R100 text by forcing the 3d engine to idle before executing more 3d commands. Add docs for the ISYNC_CNTL register, which doesn't quite do what we want. Index: ati_draw.c =================================================================== RCS file: /cvs/xserver/xserver/hw/kdrive/ati/ati_draw.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- ati_draw.c 25 Jan 2005 03:37:05 -0000 1.29 +++ ati_draw.c 25 Jan 2005 06:04:21 -0000 1.30 @@ -214,8 +214,9 @@ ENTER_DRAW(0); BEGIN_DMA(4); OUT_REG(RADEON_REG_RB3D_DSTCACHE_CTLSTAT, RADEON_RB3D_DC_FLUSH); + /* We must wait for 3d to idle, in case source was just written as a dest. */ OUT_REG(ATI_REG_WAIT_UNTIL, - RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN); + RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN); END_DMA(); LEAVE_DRAW(0); } Index: ati_reg.h =================================================================== RCS file: /cvs/xserver/xserver/hw/kdrive/ati/ati_reg.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- ati_reg.h 25 Jan 2005 03:37:05 -0000 1.15 +++ ati_reg.h 25 Jan 2005 06:04:21 -0000 1.16 @@ -416,6 +416,10 @@ # define RADEON_WAIT_BOTH_CRTC_PFLIP (1 << 30) # define RADEON_ENG_DISPLAY_SELECT (1 << 31) +#define RADEON_REG_ISYNC_CNTL 0x1724 +#define ISYNC_ANY2D_IDLE3D 0x1 +#define ISYNC_ANY3D_IDLE2D 0x2 + #define R128_REG_GUI_STAT 0x1740 # define R128_GUI_ACTIVE (1 << 31)