sna: Tweak scanout flush

We now distinguish gpu_dirty whilst the bo is not flushed within a batch
and needs_flush for when it is dirty and still busy.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2014-06-25 09:00:04 +01:00
parent 26c4e850b8
commit 8c1729aab6
2 changed files with 3 additions and 2 deletions

View File

@ -5174,10 +5174,11 @@ static void __kgem_flush(struct kgem *kgem, struct kgem_bo *bo)
void kgem_scanout_flush(struct kgem *kgem, struct kgem_bo *bo)
{
kgem_bo_submit(kgem, bo);
if (!bo->needs_flush)
return;
kgem_bo_submit(kgem, bo);
/* If the kernel fails to emit the flush, then it will be forced when
* we assume direct access. And as the usual failure is EIO, we do
* not actually care.

View File

@ -17047,7 +17047,7 @@ static void timer_enable(struct sna *sna, int whom, int interval)
static bool sna_scanout_do_flush(struct sna *sna)
{
int interval = sna->vblank_interval ?: 20;
int interval = sna->vblank_interval ?: 50;
if (sna->timer_active & (1<<(FLUSH_TIMER))) {
int32_t delta = sna->timer_expire[FLUSH_TIMER] - TIME;
DBG(("%s: flush timer active: delta=%d\n",