KhronosGroup / KhronosGroup/Vulkan-Docs
Clarify behavior of a fence after vkQueuePresentKHR()
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
Since `vkQueuePresentKHR()` is mostly a "set-it-and-forget-it" operation from the app side, it doesn't allow setting any semaphores or fences as part of its submission to a queue.
But what guarantees are made about the queued present if I submit a fence to the queue and wait on it, either manually or as a result of `vkWaitQueueIdle()` or `vkWaitDeviceIdle()`?
I **think** that the answer is that the fence would signal once the present request was processed, but before the presentation engine resets the semaphore and presents the image.
I draw my conclusion from this text, but if I'm correct it might be nice for it to be more explicit:
```
The presentation command itself does not delay processing of subsequent commands on the queue, however, presentation requests sent to a particular queue are always performed in order. Exact presentation timing is controlled by the semantics of the presentation engine and native platform in use.
```
Contributor guide
Research direction
Start with the vkQueuePresentKHR entry point and the quoted specification passage about subsequent queue commands and presentation order. Verify the guarantees for a submitted fence and vkWaitQueueIdle() or vkWaitDeviceIdle(), then make the documentation explicit about when the queued present is considered complete.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100