remove extra renderpass when using depth sensing #27743
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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