vulkan/wsi: Take Xwayland into account for x11_min_image_count and adapt zink to Venus
For wayland we report four images, so for Xwayland we should report the same number of images.
In addition, for Zink on Venus we add another image so that any OpenGL application will actually use five swapchain images on Zink/Venus. With this combination the gap between Zink and VirGL becomes smaller for a number of work loads, especially on the host AMD graphics hardware in some cases Zink/Venus even surpasses VirGL (see below).
zink (Virtio-GPU Venus (Host: RADV RENOIR)) / VirGL
Benchmark VirGL baseline Zink/Venus +1
and Xwayland +1
==================================================================
OpenArena (FPS) 63.8 60.1 148.5
Unigine Sancuary (FPS) 129.1 121.4 164.7
Unigine Tropics (FPS) 107.2 85.7 114.3
Unigine Heaven (FPS) 48.5 48.0 51.5
Unigine Valley (FPS) 48.0 45.6 47.4
Xonotic (FPS) 90.5 59.4 89.2
GpuTest/Volcano (Points) 2960 2966 3013
zink (Virtio-GPU Venus (Host: Intel Xe TGL GT2)) / VirGL
Benchmark VirGL baseline Zink/Venus +1
and Xwayland +1
===========================================================
OpenArena (FPS) 95.1 59.8 78.9
Unigine Sancuary (FPS) 85.5 76.6 81.8
Unigine Tropics (FPS) 66.0 59.8 62.7
Unigine Heaven (FPS) 28.8 28.7 28.0
Unigine Valley (FPS) 29.0 28.0 27.0
Xonotic (FPS) 64.2 49.4 51.1
GpuTest/Volcano (Points) 2855 2718 2747
The benchmarks that also include two other options (Set the minimum number to five images only in x11_min_image_count
and set the number to x+2 image in Zink when on Venus) AMD host and the Intel Xe host indicates that adding one image for XWayland, and one in Zink when on Venus is the better option for most tested use cases.