summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_cmdbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_cmdbuf.c')
-rw-r--r--src/mesa/drivers/dri/r300/r300_cmdbuf.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.c b/src/mesa/drivers/dri/r300/r300_cmdbuf.c
index 8d2165106a..32bd82ed10 100644
--- a/src/mesa/drivers/dri/r300/r300_cmdbuf.c
+++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.c
@@ -169,16 +169,24 @@ static __inline__ void r300DoEmitState(r300ContextPtr r300, GLboolean dirty)
}
}
-
/* Emit WAIT */
*dest = cmdwait(R300_WAIT_3D | R300_WAIT_3D_CLEAN);
dest ++;
r300->cmdbuf.count_used ++;
+ *dest = cmdpacket0(R300_TX_CNTL, 1);
+ dest ++;
+ r300->cmdbuf.count_used ++;
+
+ *dest = 0x0;
+ dest ++;
+ r300->cmdbuf.count_used ++;
+
/* Emit END3D */
*dest = cmdpacify();
dest ++;
r300->cmdbuf.count_used ++;
+
/* Emit actual atoms */
@@ -273,7 +281,7 @@ void r300InitCmdBuf(r300ContextPtr r300)
{
int size, mtu;
- r300->hw.max_state_size = 2; /* reserve extra space for WAIT_IDLE */
+ r300->hw.max_state_size = 2+2; /* reserve extra space for WAIT_IDLE and tex cache flush */
mtu = r300->radeon.glCtx->Const.MaxTextureUnits;
if (RADEON_DEBUG & DEBUG_TEXTURE) {