How to test separate present queue case?

Hello,

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: https://vulkan.gpuinfo.org/displayreport.php?id=8016#queuefamilies

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.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.