I have a question about Vulkan timeline semaphore synchronization.
Suppose I have three independent resources A, B, C, and they signal three separate timeline semaphores to values 1, 2, 3 respectively.
If my draw call only waits for the semaphore of C with value 3, does that automatically guarantee that A (value 1) and B (value 2) are also synchronized?
From my understanding:
- Timeline semaphore wait only checks if the current value >= N
- It does NOT implicitly wait for all smaller values of the same semaphore
- And it definitely does not wait for other semaphores
So to safely synchronize A, B, C, I must:
- Wait for all three semaphores explicitly (wait 1, 2, 3 separately), OR
- Use a single timeline semaphore and signal 1 → 2 → 3 in order, then wait for 3
Is my understanding correct according to the Vulkan spec?
Are there any official statements about this behavior?