-
Notifications
You must be signed in to change notification settings - Fork 344
Add GPURenderBundle #301
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
Add GPURenderBundle #301
Conversation
kvark
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.
Approach is good in general, it's in line with what we've been discussing.
Got some concerns about the details
|
Thanks @RafaelCintron for all the explanation on D3D12 optimizations. In the call yesterday you said you wanted to think more about bundles. I'd like to clarify again what the different uses for bundles are:
My understanding is you have concerns that WebGPU implementation using bundles will have to use the DESCRIPTORS_VOLATILE flag. That's likely necessary in all cases because we can't guarantee that the content of uniform buffers will not change so we don't want the D3D driver to inline part of it in the root signature.
Dawn made an implementation choice to always replay commands from software command buffer, but some other implementation can choose to back WebGPU bundles with D3D12 bundles, at which point there is the same performance tradeoff that you mentioned in your comment. WDYT? Does it make you more comfortable with this PR? |
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.
@Kangz Bikeshed raises some errors.
Please make sure documentation is up to date as well.
Nit: Why executeBundles instead of setBundles?
|
@beaufortfrancois |
|
Discussed at 8 July 2019 teleconference |
|
Merging as discussed in yesterday's call. |
286: RenderBundle support r=cwfitzgerald a=kvark Implements the API of gpuweb/gpuweb#301 The general concept here is having re-usable command streams, which seems much desired given that our command buffers are not reusable. Currently, only "software" render bundles are supported. That means, they are just smaller chunks of render pass commands, not backed by any driver object. TODO: - [x] gfx-rs/wgpu-rs#357 - [x] gfx-rs/wgpu-native#37 - [x] figure out the lifetime solution Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
* Add validation tests for mapAsync, getMappedRange and unmap. * Address comments * Make createBufferWithState not modify the incoming object Co-authored-by: Kai Ninomiya <kainino@chromium.org>
edited: Fixes #286
Preview | Diff