diff options
author | Eric Anholt <[email protected]> | 2004-09-25 19:01:18 +0000 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2004-09-25 19:01:18 +0000 |
commit | 7b363b0dd492e7222e8503e24f35c651de0a0bfc (patch) | |
tree | 1a24e93bd143194b6d8c0b012292faa430f2aeee /src/mesa | |
parent | d166f2bffdb9cd8ab22825a2901baa513c4bc1eb (diff) |
Fix SiS AGP vertex dispatch by not trying to emit 0 vertices, which would hang
the hardware. Re-enable AGP by default.
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/sis/sis_screen.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/sis/sis_tris.c | 5 | ||||
-rw-r--r-- | src/mesa/drivers/dri/sis/sis_tris.h | 1 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/sis/sis_screen.c b/src/mesa/drivers/dri/sis/sis_screen.c index aa1cd9b5df5..1cf2211d302 100644 --- a/src/mesa/drivers/dri/sis/sis_screen.c +++ b/src/mesa/drivers/dri/sis/sis_screen.c @@ -46,7 +46,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. const char __driConfigOptions[] = DRI_CONF_BEGIN DRI_CONF_SECTION_DEBUG - DRI_CONF_OPT_BEGIN(agp_disable,bool,true) + DRI_CONF_OPT_BEGIN(agp_disable,bool,false) DRI_CONF_DESC(en,"Disable AGP vertex dispatch") DRI_CONF_OPT_END DRI_CONF_OPT_BEGIN(fallback_force,bool,false) diff --git a/src/mesa/drivers/dri/sis/sis_tris.c b/src/mesa/drivers/dri/sis/sis_tris.c index da23df5fe73..048ff848f4c 100644 --- a/src/mesa/drivers/dri/sis/sis_tris.c +++ b/src/mesa/drivers/dri/sis/sis_tris.c @@ -889,7 +889,8 @@ static void sisRenderFinish( GLcontext *ctx ) void sisFlushPrimsLocked(sisContextPtr smesa) { - GLuint *start; + if (smesa->vb_cur == smesa->vb_last) + return; sisUpdateHWState(smesa->glCtx); @@ -898,7 +899,7 @@ sisFlushPrimsLocked(sisContextPtr smesa) mEndPrimitive(); MMIO(REG_3D_AGPCmBase, (smesa->vb_last - smesa->vb) + smesa->vb_agp_offset); - MMIO(REG_3D_AGPTtDwNum, (smesa->vb_cur - smesa->vb_last) / 4 | + MMIO(REG_3D_AGPTtDwNum, ((smesa->vb_cur - smesa->vb_last) / 4) | 0x50000000); MMIO(REG_3D_ParsingSet, smesa->AGPParseSet); MMIO(REG_3D_AGPCmFire, (GLint)(-1)); diff --git a/src/mesa/drivers/dri/sis/sis_tris.h b/src/mesa/drivers/dri/sis/sis_tris.h index 0a8620e5ee1..5e07acc2118 100644 --- a/src/mesa/drivers/dri/sis/sis_tris.h +++ b/src/mesa/drivers/dri/sis/sis_tris.h @@ -51,6 +51,7 @@ do { \ static __inline GLuint *sisAllocDmaLow(sisContextPtr smesa, int bytes) { GLuint *start; + if (smesa->vb_cur + bytes >= smesa->vb_end) { LOCK_HARDWARE(); sisFlushPrimsLocked(smesa); |