[Mesa-dev] Playing with display timing -- VK_MESA_present_period
keithp at keithp.org
Tue Feb 18 02:50:00 UTC 2020
Michel Dänzer <michel at daenzer.net> writes:
> Should this extension specify how it interacts with the various
> VK_PRESENT_MODE_* modes?
Yes. It needs to be clear on how this extension interacts with all
existing display stuff. Thanks for pointing out one pretty important
> For one example: With VK_PRESENT_MODE_MAILBOX_KHR, does the period
> specified by this extension correspond to:
> a) The time between when the image is placed in the the queue of
> pending presentation requests and when the next image is placed in the
> b) The time between when the image is taken from the queue to be
> actually presented and when the same thing happens for another image
> (which happens to be in the queue at the time)
> c) Yet something else?
> If it's a), given the extension talks about rounding to the nearest
> upcoming frame, does VK_PRESENT_MODE_MAILBOX_KHR effectively behave
> the same as VK_PRESENT_MODE_FIFO(_RELAXED)_KHR with this extension?
> If it's b), there can be any number of images entering and leaving the
> queue during the period, so it's not clear what purpose the period
> would serve?
Given that the period is defined as being relative to the time when the
image was presented to the screen (not when the image is queued for
presentation), and that the extension specifies that future images will
be delayed by that period, I think the right definition will be that
specifying non-zero present_period for a QueuePresent call will force
images queued later to not replace the first image and be delayed for
display until the specified present_period has passed.
Which looks a lot like FIFO, but only for QueuePresent calls which
specify a non-zero present_period.
I think I've got enough to start writing a more 'formal' specification
for the extension, which I'll do as a patch to the Vulkan
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 832 bytes
Desc: not available
More information about the mesa-dev