uxa: Flush batch immediately after queuing a WAIT_FOR_EVENT
We still encounter hangs with kernel-3.5 with the culprit being a wait on a disabled pipe. As we thoroughly check before that the pipe is still disabled and flush before a modeset, the only possibility that remains is that DPMS is disabling the pipe before we submit. Close that race by always submitting the batch immediately after a WAIT_FOR_EVENT. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
6a14235477
commit
6211d0914e
|
|
@ -540,6 +540,11 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion,
|
|||
0, 0);
|
||||
|
||||
FreeScratchGC(gc);
|
||||
|
||||
/* And make sure the WAIT_FOR_EVENT is queued before any
|
||||
* modesetting/dpms operations on the pipe.
|
||||
*/
|
||||
intel_batch_submit(scrn);
|
||||
}
|
||||
|
||||
#if DRI2INFOREC_VERSION >= 4
|
||||
|
|
|
|||
|
|
@ -1585,6 +1585,11 @@ I830PutImageTextured(ScrnInfoPtr scrn,
|
|||
intel_get_screen_private(scrn)->needs_flush = TRUE;
|
||||
DamageDamageRegion(drawable, clipBoxes);
|
||||
|
||||
/* And make sure the WAIT_FOR_EVENT is queued before any
|
||||
* modesetting/dpms operations on the pipe.
|
||||
*/
|
||||
intel_batch_submit(scrn);
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue