[PATCH 3/3] glx/dri3: Request non-vsynced Present for swapinterval zero.

Mario Kleiner mario.kleiner.de at gmail.com
Tue Dec 16 21:20:16 PST 2014


On 12/17/2014 05:49 AM, Keith Packard wrote:
> Mario Kleiner <mario.kleiner.de at gmail.com> writes:
>
>> It's just that i need access to both, the old behaviour i described, and
>> the new "drop frame" behaviour, and i need a way to select what i want
>> at runtime via api without the need for easily overwhelmed and confused
>> users to change config files or environment variables. I also always
>> need meaningful and trustworthy feedback, at least for page-flipped
>> presents, about what really happened for a presented frame - was it
>> flipped, copied, exchanged, skipped, or did some error happen?
> Present reports precisely what it did with each frame; flipped, copied,
> or skipped.
>
>> That's why i'd like to have an extension to INTEL_swap_events to also
>> report some new completion type "skipped" and "error" and that one patch
>> 5/5 of mine for mesa reviewed and included, to make sure the swap_events
>> don't fall apart so easily.
> You can use Present events on the target drawable; they're generated to
> whoever requests them, so you don't need to rely on the intel swap
> events alone.

Never thought about that. Could you show me some short example snippet 
of XLib/GLX code how i reliably detect at runtime if Present is present, 
and then enable this? That would probably do for the moment and at the 
same time solve the problem that i don't know how to reliably detect at 
runtime if i'm on DRI2 or DRI3/Present. Making good use of this will 
require separate code-path and a way to select the right one.

It's still important to fix that wraparound handling bug from my patch 
5/5 for INTEL_swap_events.

>> As some kind of stop gap measure one could also think about defining a
>> new vblank_mode to enable the new behaviour instead of the old one.
> I really don't have a good suggestion here, given that we have such a
> limited API available.
>

I thought i just made a suggestion how we could wiggle through it within 
existing api?
And we can define new one for future extensions?

Need to sleep now, thanks
-mario



More information about the xorg-devel mailing list