-
-
Notifications
You must be signed in to change notification settings - Fork 35.5k
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 extra renderpass when using depth sensing #27743
Conversation
📦 Bundle sizeFull ESM build, minified and gzipped.
🌳 Bundle size after tree-shakingMinimal build including a renderer, camera, empty scene, and dependencies.
|
@mrdoob thoughts? This will reduce overhead on mobile gpu's. I'm still trying to find out where that invalidOperation error is coming from. :-\ |
I'm thinking of refactoring the current implementation. |
Sounds good! That gl warning is throwing me for a loop so maybe it will go away with the refactor. |
If you want to debug renderpasses, you could use ovrgpuprofiler |
Hmm... Does the Quest Pro support depth sensing? |
It does not unfortunately. |
Ah! Won't be able to work on this until Monday then... |
Did you end up refactoring it? |
Fixed via #28530 🎉 . |
The current implementation of depth sensing introduces an extra renderpass.
I was tracing some WebXR experiences with depth sensing and noticed that if there's also a shadowmap, the WebXR texture ends up being flushed. In addition to the extra overhead, this also removes foveation (because it is no longer applied after a flush)
This change makes the painting of the depth values part of the regular draw pass.
Output of the render pass profiler with old code:
Notice saving and restoring of the depth stencil buffer which adds overhead
Output of the render pass profiler with new code:
This contribution is funded by Meta