Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Threadsafeness of Refcounting on Descriptor Pools and Sets #472

Closed
devshgraphicsprogramming opened this issue Mar 10, 2023 · 1 comment · Fixed by #499
Closed

Fix Threadsafeness of Refcounting on Descriptor Pools and Sets #472

devshgraphicsprogramming opened this issue Mar 10, 2023 · 1 comment · Fixed by #499
Labels
bug Something isn't working

Comments

@devshgraphicsprogramming
Copy link
Member

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

@devshgraphicsprogramming devshgraphicsprogramming added the bug Something isn't working label Mar 10, 2023
@devshgraphicsprogramming
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant