How to test separate present queue case?


since a separate present queue requires extra code like ImageMemoryBarrier stuff
to transfer image ownership from graphics to present queue, I would like to be able
to actually test if related code works.

Unfortunately it seems that at least my NVidia GTX 1080 does not offer a separate
present queue. Actually of the 3 available queues there is only one which has
vk::QueueFlagBits::eGraphics set and this is also the only one for which
getSurfaceSupportKHR() returns that it supports present.

So how can this case even be tested using a mainstream graphics card?

Help is very appreciated!

Note: It seems the extra code can be avoided (?) by using VK_SHARING_MODE_CONCURRENT
for setImageSharingMode() in SwapchainCreateInfoKHR() but still I would like to know if there is
a way to test the case.

Database says differently:

There seems present support on both Graphics and Compute family.

That’s what I do. No reason to overthink and preoptimize a code path for a platform that does not even exist.

Just verified that the queue count is also 3 and iterated again through all of them.
For the 3rd family the compute bit is set but NOT the present support.
Maybe a mistake in the database or could it also depend on system/driver?
I am on Ubuntu 19.10 using “nvidia-driver-440 (open source)”.

Agree, they even switched to this approach in the latest LunarG vulkan examples.

Yea, linux driver is different.