-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Merge shared functionality from render and compute passes #7838
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
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
a0982b3
to
14b0af2
Compare
I am sorry about the conflicts from #7820. Some of the changes are just whitespace changes, it would probably help to look at that diff with whitespace changes ignored to get a sense of what's really going on. Let me know if I can help somehow. I wonder if making things generic over errors like I did with |
I hadn't thought of that, I'll give it a try. |
7bdc1e0
to
e827166
Compare
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.
Looks great overall - thanks for unifying these!
e827166
to
f55cc9a
Compare
f55cc9a
to
b1056f2
Compare
Added unit structs for those errors. Definitely make stuff clearer. |
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.
Nice!
Connections
Preparation for ray tracing pipelines (specifically the new pass that would be added).
Description
There were many duplicated functions, and some duplicated functionality between render and compute passes when actually recording the commands. This confused me, and I didn't realise there were two
set_bind_group
functions, and so some ray tracing validation was only in one. To implement ray tracing pipelines, a third pass would have to be introduced, which would cause a third duplication of this code.Some things to note:
For some reason, compute passes used a tracker which took things from a usage scope, while render passes just used the usage scope directly. I couldn't find a reason this was necessary, but there might be a particular reason.re-added this.todo
there, but I couldn't see why, and removed it as part of the refactor, but I can add it back if needed.Testing
Tries to just keep all existing functionality.
Squash or Rebase?
Squash
Checklist
cargo fmt
.cargo clippy --tests
.cargo xtask test
to run tests.CHANGELOG.md
entry. Internal changes only.