-
Notifications
You must be signed in to change notification settings - Fork 7
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
Remove Usage of std::set in ResidencySet #547
Conversation
I know there are some rough aspects to this PR, but just let me know what you think of the idea. |
SGTM. Nice idea. |
Can you rebase and push? |
Done. Still failing. |
Alright, please rebase again. |
Cool! That did it, thanks. I like your approach, let me know when I can review. |
You can review. Mostly just renaming things. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM but ResidencySet is an exported interface (public), so you'll also need to depreciate it or the integrations will fail.
Re-added ResidencySet + ExecuteCommandLists ResidencySet wrapper with /deprecated tag. Please lmk if this is what you meant. |
21c653e
to
38514ca
Compare
Looks good to me, thanks for fixing up the docs. FYI, the Dawn integration isn't up-streamed (obviously), so if you want to fully test you can |
Is D3D12ResidencyManagerTests.CreateResidencyManagerNoLeak known to be flaky? It failed but it does not appear I've made any changes that would cause it to fail. |
Not sure we can call it flaky yet - only 1 run failure on that patchset. Re-running it again, |
It flaked on GN/MSVC Debug initially, then passed: |
Good catch, filed #553 |
Removes usage of std::set in ResidencySet and replaces it with a vector. This does allow duplicat heaps to be inserted into the ResidencySet, however insertion will be O(1) instead of O(log(n)) and instead we can easily identify duplicate heaps by checking their last used fence value when when they are iterated.
Removes usage of std::set in ResidencySet and replaces it with a std::vector.
This does allow duplicate heaps to be inserted into the ResidencySet,
however insertion will be O(1) instead of O(log(n)) and instead we can
easily identify duplicate heaps by checking their last used fence value
when during iteration.