diff options
| -rw-r--r-- | src/mesa/drivers/dri/r200/r200_tcl.c | 5 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_common.c | 17 | 
2 files changed, 6 insertions, 16 deletions
| diff --git a/src/mesa/drivers/dri/r200/r200_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c index 455a4bbd6b..196cc2ab62 100644 --- a/src/mesa/drivers/dri/r200/r200_tcl.c +++ b/src/mesa/drivers/dri/r200/r200_tcl.c @@ -156,8 +156,6 @@ static GLushort *r200AllocElts( r200ContextPtr rmesa, GLuint nr )        if (rmesa->radeon.dma.flush)  	 rmesa->radeon.dma.flush( rmesa->radeon.glCtx ); -      rcommonEnsureCmdBufSpace(&rmesa->radeon, AOS_BUFSZ(rmesa->radeon.tcl.aos_count), __FUNCTION__); -        r200EmitAOS( rmesa,  		   rmesa->radeon.tcl.aos_count, 0 ); @@ -187,9 +185,6 @@ static void r200EmitPrim( GLcontext *ctx,     r200TclPrimitive( ctx, prim, hwprim );     //   fprintf(stderr,"Emit prim %d\n", rmesa->radeon.tcl.aos_count); -   rcommonEnsureCmdBufSpace( &rmesa->radeon, -			     AOS_BUFSZ(rmesa->radeon.tcl.aos_count) + -			     rmesa->radeon.hw.max_state_size + VBUF_BUFSZ, __FUNCTION__ );     r200EmitAOS( rmesa,  		rmesa->radeon.tcl.aos_count, diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index 4240ec5f18..f0cf31c55f 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -1032,12 +1032,6 @@ void radeonEmitState(radeonContextPtr radeon)  	if (radeon->cmdbuf.cs->cdw && !radeon->hw.is_dirty && !radeon->hw.all_dirty)  		return; -	/* To avoid going across the entire set of states multiple times, just check -	 * for enough space for the case of emitting all state, and inline the -	 * radeonAllocCmdBuf code here without all the checks. -	 */ -	rcommonEnsureCmdBufSpace(radeon, radeon->hw.max_state_size, __FUNCTION__); -  	if (!radeon->cmdbuf.cs->cdw) {  		if (RADEON_DEBUG & DEBUG_STATE)  			fprintf(stderr, "Begin reemit state\n"); @@ -1197,10 +1191,12 @@ int rcommonFlushCmdBuf(radeonContextPtr rmesa, const char *caller)   */  void rcommonEnsureCmdBufSpace(radeonContextPtr rmesa, int dwords, const char *caller)  { -	if ((rmesa->cmdbuf.cs->cdw + dwords + 128) > rmesa->cmdbuf.size || -	    radeon_cs_need_flush(rmesa->cmdbuf.cs)) { -		rcommonFlushCmdBuf(rmesa, caller); -	} +   if ((rmesa->cmdbuf.cs->cdw + dwords + 128) > rmesa->cmdbuf.size +	 || radeon_cs_need_flush(rmesa->cmdbuf.cs)) { +      /* If we try to flush empty buffer there is too big rendering operation. */ +      assert(rmesa->cmdbuf.cs->cdw); +      rcommonFlushCmdBuf(rmesa, caller); +   }  }  void rcommonInitCmdBuf(radeonContextPtr rmesa) @@ -1275,7 +1271,6 @@ void rcommonBeginBatch(radeonContextPtr rmesa, int n,  		       const char *function,  		       int line)  { -	rcommonEnsureCmdBufSpace(rmesa, n, function);  	if (!rmesa->cmdbuf.cs->cdw && dostate) {  		if (RADEON_DEBUG & DEBUG_IOCTL)  			fprintf(stderr, "Reemit state after flush (from %s)\n", function); | 
