r200: fix swtcl - slow but works

This commit is contained in:
Dave Airlie 2009-01-29 23:19:11 +10:00
parent 70661f678e
commit 08bb7eedfb

View file

@ -310,6 +310,9 @@ r200AllocDmaLowVerts( r200ContextPtr rmesa, int nverts, int vsize )
{ {
GLuint bytes = vsize * nverts; GLuint bytes = vsize * nverts;
if (rmesa->swtcl.flush)
rmesa->swtcl.flush(rmesa->radeon.glCtx);
rmesa->swtcl.bo = radeon_bo_open(rmesa->radeon.radeonScreen->bom, rmesa->swtcl.bo = radeon_bo_open(rmesa->radeon.radeonScreen->bom,
0, bytes, 4, RADEON_GEM_DOMAIN_GTT, 0); 0, bytes, 4, RADEON_GEM_DOMAIN_GTT, 0);
radeon_bo_map(rmesa->swtcl.bo, 1); radeon_bo_map(rmesa->swtcl.bo, 1);
@ -317,6 +320,7 @@ r200AllocDmaLowVerts( r200ContextPtr rmesa, int nverts, int vsize )
rmesa->radeon.glCtx->Driver.NeedFlush |= FLUSH_STORED_VERTICES; rmesa->radeon.glCtx->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
rmesa->radeon.dma.flush = flush_last_swtcl_prim; rmesa->radeon.dma.flush = flush_last_swtcl_prim;
} }
rmesa->swtcl.numverts = nverts;
return rmesa->swtcl.bo->ptr; return rmesa->swtcl.bo->ptr;