-
-
Notifications
You must be signed in to change notification settings - Fork 24.1k
Fix OpenXR depth submission data dropped #114697
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
Fix OpenXR depth submission data dropped #114697
Conversation
m4gr3d
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.
Looks good to me!
|
Thanks! However, I think a better fix might be having |
Thanks for this recommendation, it sounds like the Right Thing to do. I am pulling on this thread now and I think it may turn into a bigger change. OpenXRCompositionLayerDepthExtension doesn't do much right now and I don't see enough data exposed through OpenXRAPI / OpenXRExtensionWrapper to move implementation over there without adding some "internal to the engine" (sorry not sure what term is) functions for OpenXRAPI and OpenXRCompositionLayerDepthExtension to use. There's a bunch of levels of how far this can go:
Alternatively, I could do a smaller change, along the lines of what I have here, but instead of |
|
Yeah, there would be some refactoring involved.
This alternative could be the "quick fix" for Godot 4.6, and we could try to do The Right Thing (tm) in another PR targeting Godot 4.7? |
b2b90d3 to
35aaac7
Compare
Yeah I think this is the safe thing to do. I think the refactor is too big to do so close to release. |
35aaac7 to
14b6ca1
Compare
dsnopek
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.
Thanks! Looks good to me :-)
|
Thanks! |
After upgrading to 4.6 Beta 2, I noticed the depth buffers submitted to OpenXR were missing. I tracked it down to the OpenXRFrameSynthesisExtension extension being added which caused
projection_views_extensionsgoing from 0 to 1 and hit this code path that causes thenextpointer to be nulled out. Over in thecreate_main_swapchains()function is where thenextpointer is set on theprojection_viewsstructs to point to thedepth_viewsso thisnextpointer needs to be preserved.