Fix SiS AGP vertex dispatch by not trying to emit 0 vertices, which would hang

the hardware.  Re-enable AGP by default.
This commit is contained in:
Eric Anholt
2004-09-25 19:01:18 +00:00
parent d166f2bffd
commit 7b363b0dd4
3 changed files with 5 additions and 3 deletions

View File

@@ -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)

View File

@@ -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));

View File

@@ -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);