KhronosGroup / KhronosGroup/Vulkan-Docs
vkQueueBindSparse not covered by vkQueueWaitIdle?
- Dominant language
- JavaScript
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 2
Description
In _signal operation order_, the `vkQueueBindSparse` is missing. I suppose that means the state of its fence cannot be inferred by another fence singlan. I.e.:
```
VkQueue q;
VkFence f1, f2, f3, f4;
vkQueueSubmit(q, f1);
vkQueueSubmit(q, f2);
vkWaitForFences(f2);
// I know both f1 and f2 are signaled now
vkQueueBindSparse(q, f3);
vkQueueSubmit(q, f4);
vkWaitForFences(f4);
// I know both f4 is signaled, but I do not know the state of f3
```
Now, `vkQueueWaitIdle` (and by transitional property, `vkDeviceWaitIdle`) seems to be defined in terms of `vkQueueSubmit`:
> `vkQueueWaitIdle` is equivalent to submitting a fence to a queue and waiting with an infinite timeout for that fence to signal.
That means it would **not** cover `vkQueueBindSparse`:
```
VkQueue q; VkFence f;
vkQueueBindSparse(q, f);
vkQueueWaitIdle(q); // equivalent to vkQueueSubmit(q, implicit_f); vkWaitFences(implicit_f);
vkDeviceWaitIdle(); // equivalent to vkQueueWaitIdle( all(VkQueue) )
// I still don't know the state of f
```
Since this seems bit awkward, I want to ask if this is intentional. If so, perhaps it is worth a Note.
(Similar issue with `vkAquireNextImageKHR` fence and `vkDeviceWaitIdle`, but I suppose that was already answered by #1059.)
Contributor guide
Research direction
Start with the Vulkan specification language for vkQueueBindSparse, vkQueueSubmit, vkQueueWaitIdle, and vkDeviceWaitIdle, then compare the stated fence and operation-order guarantees. Confirm whether the described uncertainty is intentional and document the result with a note or clarification in the relevant specification section.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100