public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Eric Anholt <eric@anholt.net>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org, Theo Hill <Theo0x48@gmail.com>
Subject: Re: [PATCH] UXA: Wait until a pageflip actually completes to report it.
Date: Thu, 08 May 2014 13:55:30 -0700	[thread overview]
Message-ID: <87d2fo9eil.fsf@eliezer.anholt.net> (raw)
In-Reply-To: <20140508204359.GC3443@nuc-i3427.alporthouse.com>


[-- Attachment #1.1: Type: text/plain, Size: 1826 bytes --]

Chris Wilson <chris@chris-wilson.co.uk> writes:

> On Thu, May 08, 2014 at 08:54:52AM -0700, Eric Anholt wrote:
>> Chris Wilson <chris@chris-wilson.co.uk> writes:
>> 
>> > On Wed, May 07, 2014 at 10:44:23PM -0700, Jamey Sharp wrote:
>> >> On Wed, May 07, 2014 at 04:55:18PM +0100, Chris Wilson wrote:
>> >> > On Mon, May 05, 2014 at 11:05:07PM -0700, Jamey Sharp wrote:
>> >> > > UXA was reporting page-flip completion as soon as the flip was scheduled
>> >> > > with the kernel, instead of waiting for the kernel to indicate that the
>> >> > > flip had actually completed.
>> >> > > 
>> >> > > Moving the DRI2SwapComplete call to the right place fixes all of our
>> >> > > Piglit tests for OML_sync_control when run on xf86-video-intel/UXA,
>> >> > > aside from a bit of difficult-to-reproduce flakiness when using a
>> >> > > divisor > 1.
>> >> > 
>> >> > The violation is intentional, as it gives us triple buffering by
>> >> > default. It can be disabled.
>> >> 
>> >> As far as I can tell, this patch has no effect on triple-buffering. I
>> >> verified that by logging new_front->handle in intel_do_pageflip: It
>> >> rotates through three different BO's on successive flips.
>> >
>> > The patch blocks clients in GetBuffers until the swap completes,
>> > preventing them from rendering to the third buffer.
>> 
>> I don't see where the client gets blocked in a swapbuffers.  Can you
>> point that out?
>
> DRI2ThrottleClient() called by GetBuffers and SwapBuffers will call
> IgnoreClient() if swapsPending >= swap_limit and will only wake the
> client on calling DRI2SwapComplete(). The premature SwapComplete is to
> allow the clients next call to GetBuffers to succeed promptly returning
> the third buffer prior to the page flip completing.

Oh, so swap_limit is just set wrong?

[-- Attachment #1.2: Type: application/pgp-signature, Size: 818 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2014-05-08 20:55 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-06  6:05 [PATCH] UXA: Wait until a pageflip actually completes to report it Jamey Sharp
2014-05-07 15:55 ` Chris Wilson
2014-05-08  5:44   ` Jamey Sharp
2014-05-08  6:08     ` Chris Wilson
2014-05-08 15:54       ` Eric Anholt
2014-05-08 20:43         ` Chris Wilson
2014-05-08 20:55           ` Eric Anholt [this message]
2014-05-08 21:09             ` Chris Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d2fo9eil.fsf@eliezer.anholt.net \
    --to=eric@anholt.net \
    --cc=Theo0x48@gmail.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox