-
Notifications
You must be signed in to change notification settings - Fork 167
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
latest hololens branch still doesn't use non-geometry fastpath #92
Comments
For those curious, what turned out to be the absolute biggest bottleneck in performance (via profiling) is the D3D11 Map() calls used to update uniforms via the one constant buffer, this absolutely crawls on HoloLens hardware. |
Thanks for letting us know. @austinkinross, any ideas on how we might speed this up for HoloLens? |
One idea may be to use D3D11_MAP_WRITE_NO_OVERWRITE, but honestly even when I shaved my uniforms down to only 5-10 components, I still see a huge draw call overhead (centered around the maps). HoloLens seems to hate any form of transfer between CPU/GPU memory. PS - in case you're wondering, here's some of the amazing demos your hard work on the ms-holo branch has enabled. I only had to cheat and drop into D3D for the spatial meshes rendering. |
While creating the depth-based image stabilization component, I noticed that mappable default buffers work on the HoloLens GPU. If we aren't already using those, they might offer us a speed boost by avoiding an extra on-GPU memory copy. Then again, I don't know why we aren't using the UpdateSubresource method here, which (as I understand it) can be faster by updating only what has changed. Thanks for the link, this is great to see! Hope you don't mind - I've shared it with a few other folks here at Microsoft. |
Please do! Check back on that channel from time to time, I hope to update it with more impressive demos. As for update sub resource, I tried doing that but got screwed in two places
|
Just pulled latest code, its still going into non-fastpath using GS which is very slow compared to true VPRT vertex+pixel only path.
Code even asserts so:
in programd3d.cpp
I verified that it is indeed setting a GS for my draw calls.
@MikeRiches
The text was updated successfully, but these errors were encountered: