-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unclear blocking behavior in vkQueuePresentKHR #1158
Comments
Seems allowed. By "VSync" you mean exactly what in the context of composited windowed app? |
Already discussing internally, in relation to #1137. We are working clarification and guidance. |
With FIFO (vsync) presentation, ideally neither |
That behavior (ideally .. neither .. should block) isn't guaranteed by the spec and is unlikely to ever be true on some platforms. It's not uncommon for window systems to have limits of approximately the swapchain length on how deep the present queue is, so one of the two calls must block. |
I agree that |
Fix debuging autoenabling after first render
Hi, @jschnarr-nv ! I'm also having present-lags in my engine, and time spent into While waiting for proper fix, what wound be a good workaround for game developer to use? |
I'm writing a multi-window GUI application, which requires me to render to multiple windows, potentially at different rates depending on the refresh rate of the screen the window is on.
Reading through the spec, my expectation was that
vkAcquireNextImageKHR
would block until the next image were available in the swapchain (wait until buffers swapped with vsync), however it seems that, at least on my current NVIDIA drivers,vkQueuePresentKHR
blocks instead.It seems unclear to me if this is intentional or not, or where the driver is expected to wait. I've been told that AMD behaves differently, and blocks on
vkAcquireNextImageKHR
instead.The issue blocking on
vkQueuePresentKHR
results in, is that this means the rendering queue will be completely unavailable until presentation is done, since queues need to be externally synchronized. Since this can take up to 16ms on 60Hz windows, this slows down all windows in turn.What is the expected behavior here? Are drivers matching this behavior correctly? If this is expected and it's up to the driver where to block for VSync could this be clarified?
The text was updated successfully, but these errors were encountered: