KhronosGroup / Vulkan-LoaderAndValidationLayers

**Deprecated repository** for Vulkan loader and validation layers
Apache License 2.0
414 stars 172 forks source link

WSI Swapchain interframe dependency tracking #1225

Open szdarkhack opened 7 years ago

szdarkhack commented 7 years ago

In the current implementation of core validation, when a WSI fence is retired it is not associated with any queue and thus does not retire any work, leading to incorrect errors about resources being in use when in fact they are not. It should be the case that when an acquire fence is waited upon for a particular image index, all previous work for which the respective presentation submission waited should in turn be retired. For instance:

render loop acquire image and wait on fence submit work that signals a semaphore queue present that waits upon that semaphore end render loop

It should be the case that when the acquire fence is signaled the presentation must have finished, and as such the work submitted prior to the presentation (to the same image index) must also have finished. Therefore, resources used by that submission should be marked as not being in flight (command buffers etc).

mark-lunarg commented 7 years ago

Maybe @chrisforbes might have a go at this one?

chrisforbes commented 7 years ago

@mark-lunarg Yes, I'll take care of this.