-
Notifications
You must be signed in to change notification settings - Fork 876
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 the triage suspected machinery and break cycles with weak refs #5910
Conversation
renderpass benchmark results of current trunk vs this PR (TLDR: 39-64% less time spent in
|
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.
Great work! This makes significant changes to some pretty complicated systems. The changes look good to me although I usually have a firmer understanding of the potential side effects when I approve a PR.
So this calls for some more thorough testing than usual or a second pair of eyes.
I modified the benchmark to check the poll time to see what impact removing
|
All in all, perf of submit + poll has improved by 22-32%.
|
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.
This looks great! I have one comment about the trackers. Did you do much changes in the trackers, or just moving code around, it's a bit hard to tell.
Love the diff numbers!
The only behavioral change was |
…ources. It's worth noting that `suspected_resources` never contained those resources.
The Vec only ever contained 0 or 1 command buffers. We now acquire an encoder on every submit for pending writes but that's not a problem since those are coming from a pool anyway.
…ive in `LifetimeTracker.handle_mapping` This change doesn't change behavior as `Global.buffer_drop` already unmaps the buffer.
Resolves #5560.
Resolves #5120.
Resolves #5592 & resolves #5583 by removing
Device::temp_suspected
.PR doesn't need to be squashed, each commit builds by itself.