-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Support for binding arrays of RT acceleration structures #8923
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
base: trunk
Are you sure you want to change the base?
Conversation
|
I'm curious, are you planning to use more than one TLAS? |
|
@JMS55 yes, exactly. |
Vecvec
left a comment
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.
Thank you for adding this into wgpu as well as naga! I think that bind groups containing binding arrays of acceleration structures should have a new limit like all the other resources. It would also be nice to mention this in the ray tracing API docs.
| /// - Vulkan | ||
| /// | ||
| /// This is a native only feature. | ||
| const ACCELERATION_STRUCTURE_BINDING_ARRAY = 1 << 59; |
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.
Because binding arrays do not validate out of bounds indexing, this should probably be listed as experimental.
|
@Vecvec thank you for reviewing!
I don't see other non-uniform indexing declared as experimental, e.g. |
Sorry, for some reason I though that the default for normal acceleration structures (16) was significantly lower than others and therefore the same might be the case for the bindless version. If it doesn't hurt this value then it should probably just be integrated into the same limit.
They were added before experimental features were a concept, see #8619. |
|
Small comparison on the limits:
So, indeed the inclusion of acceleration structures would lower the bounds if the feature is enabled. Not a good thing.
Can we defer to the moment where this issue will be implemented to convert them in bulk? |
|
For most of the API it isn't really my design choices, so @cwfitzgerald probably has final say on most of this.
I'm perfectly happy to defer the change.
This is very confusing, I thought the update after bind limits had a significantly higher limit (50,000) vs 'normal' limits. That said, they do seem to be much lower for acceleration structures even for the limits higher than that, so I think it would be safer. |
Connections
Description
In addition to samplers, buffers, and images, we need to support TLAS in binding arrays.
Testing
Included.
Squash or Rebase?
Rebase.
Checklist
cargo fmt.taplo format.cargo clippy --tests. If applicable, add:--target wasm32-unknown-unknowncargo xtask testto run tests.CHANGELOG.mdentry.