reapply Keiths workaround for zbs emit that got dropped during

state change patches....
This commit is contained in:
Dave Airlie 2005-01-23 22:09:30 +00:00
parent 0b5a5a9efb
commit 72e3664996

View file

@ -179,8 +179,7 @@ void radeonEmitState( radeonContextPtr rmesa )
rmesa->save_on_next_emit = GL_FALSE;
}
if (!rmesa->hw.is_dirty && !rmesa->hw.all_dirty)
return;
/* this code used to return here but now it emits zbs */
/* 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
@ -189,6 +188,12 @@ void radeonEmitState( radeonContextPtr rmesa )
radeonEnsureCmdBufSpace(rmesa, rmesa->hw.max_state_size);
dest = rmesa->store.cmd_buf + rmesa->store.cmd_used;
/* We always always emit zbs, this is due to a bug found by keithw in
the hardware and rediscovered after Erics changes by me.
if you ever touch this code make sure you emit zbs otherwise
you get tcl lockups on at least M7/7500 class of chips - airlied */
rmesa->hw.zbs.dirty=1;
if (RADEON_DEBUG & DEBUG_STATE) {
foreach(atom, &rmesa->hw.atomlist) {
if (atom->dirty || rmesa->hw.all_dirty) {