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).
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).