Setup:
Windows 11
NVidia Quadro sync II card
NVidia A5000 x2
Vulkan: 1.4.328
NVidia Driver 581.42
Sync firmware 3.0.6
There is a problem I came around recently when trying to migrate OpenGL WGL_NV_swap_group extended video wall code to Vulkan.
I have 2 monitors that are in sync (sync pulse active), Quadro sync card and 2x A5000 cards.
Everything is plugged in fine, as WGL_NV_swap_group works.
However when I try to create 2 fullscreen swapchains within a single application the first is created, but the second one is not, and it says: Failed to join presentBarrier (5) from NVIDIA Validation layer.
I couldn’t find any explanation or example of how to do it right.
I validate support on each step (Physical Device/Surface/Swapchain Creation)
Here is the application I’m using:
I have tested both with and without mosaic, originally I had 5 monitors with 2x2 of them being mosaic monitors (2 mosaics with 2 monitors each). All connected using the same cables (display port), all the same model. If I disable mosaic the number is changed to (3) with the same error.
The repro steps:
compile and launch
you will have 2 small windows, position them over monitors you’d like to use for test (those monitors should be synchronized via NVidia control panel, sync pulse should be present)
press ok on the message box
Expected: synchronized output from both swapchains (identical numbers)
Reality: error is logged (in debug mode), swapchains are created and are unsynced or crash