You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current design fails to account that a call to ~IGPUDescriptorSet or ~IDescriptorPool can come from any thread and we can't impose external synchronization constraints on them.
A similar issue may affect CommandBuffers and CommandPools.
The most important observation is that we can assume that when we hit ~IReferenceCounted the object is truly unreachable, ergo we don't concern ourselves with it running parallel to any other method of the object.
Describe the bug
The current design fails to account that a call to
~IGPUDescriptorSet
or~IDescriptorPool
can come from any thread and we can't impose external synchronization constraints on them.A similar issue may affect CommandBuffers and CommandPools.
We decided to not tackle that as part of #345
Steps to Reproduce
Just think about it.
Expected vs observed behavior
Destructors should be thread safe, and anything needed to ensure that should propagate to other functions.
However other methods of DescriptorPool and Set should retain their external synchronisation obligation.
Environment
Everywhere
The text was updated successfully, but these errors were encountered: