vulkan/wsi: Set X11 minImageCount to 3.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 27 Apr 2019 23:50:36 +0000 (01:50 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 19 May 2019 00:38:03 +0000 (00:38 +0000)
commit4689e98fe884d9412b72fd6293b6d6a69e3ef68e
tree905e866730a1af5adb88d50a3335de5cc6e7c1f4
parentccb8ea7acfb710c6c5298f3ffcadbe3d79b9b913
vulkan/wsi: Set X11 minImageCount to 3.

For IMMEDIATE and FIFO, most games work in a pipelined manner where the
can produce frames at a rate of 1/MAX(CPU duration, GPU duration), but
the render latency is CPU duration + GPU duration.

This means that with scanout from pageflipping we need 3 frames to run
full speed:
1) CPU rendering work
2) GPU rendering work
3) scanout

Once we have a nonblocking acquire that returns a semaphore we can merge
1 and 3. Hence the ideal implementation needs only 2 images, but games
cannot tellwe currently do not have an ideal implementation and that
hence they need to allocate 3 images. So let us do it for them.

This is a tradeoff as it uses more memory than needed for non-fullscreen
and non-performance intensive applications.

Since this is pretty much a TODO that can use the context I added this as
a comment.

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/vulkan/wsi/wsi_common_x11.c