KhronosGroup / KhronosGroup/Vulkan-Docs

Clarify behavior of a fence after vkQueuePresentKHR()

Open
#595 3 comments 0 reactions 0 assignees View on GitHub
Resolving Inside Khronos System Integration
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.