Vulkan timeline semaphore: waiting for value 3 does not implicitly wait for 1 and 2?

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:

  1. Wait for all three semaphores explicitly (wait 1, 2, 3 separately), OR
  2. 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?

Separate semaphores are separate. Unless there is synchronization between them, neither happens before the other.