-
Notifications
You must be signed in to change notification settings - Fork 201
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
Restrict UFE nodes according to proxyNode's primPath #3640
Restrict UFE nodes according to proxyNode's primPath #3640
Conversation
Only create UFE nodes that are ancestors or descendants of the proxy node's primPath. This addresses a performance issue we encountered in our Reference Assembly workflows. For these workflows, there were reference assemblies that were referencing very large Usd scenes, but drawing a very small subset of it. While Maya would only image the subset, UFE was populating every node from the Usd stage. This caused several performance problems, including: * viewport -> panel -> perspective slowness due to it traversing all the UFE nodes looking for cameras * selection with the transform tool This fix limits creation of UFE nodes to those "relevant" to the prim path This fix also changes behavior of imaging a proxy node with an invalid prim path. Previously, a non-empty invalid path would cause the entire stage to be imaged. With this change, we image nothing.
This will hopefully resolve a merge conflict that was encountered with the last push.
I fixed the typo in the comment in this branch but it looks like that part of the change is still being identified as a conflict. I would just accept my change in the conflict but I appear not to have permission to resolve it. |
Also, note that we added a test with the change. This is enabled internally, but I did not enable it in the open source build. I made a naive attempt, but I'm woefully undereducated when it comes to CMake so I gave up after I ran into some import errors with ufe and mayaUsd. It would be a good idea to enable it if you don't mind updating the makefiles to include it. Thank you! |
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.
I would like the function to be renamed for clarity.
You need to pull the dev branch, merge it in your branch and resolve conflicts locally on your computer and push your branch again. |
Will do, thanks - stand by for the commit |
OK the review notes and the conflict have been addressed. Thanks! |
@dj-mcg I ran the preflight for you and it failed. Currently because of a security issue the build logs are not being uploaded to github. So I've looked at the logs and included the error here. It is on all the Maya 2022 builds:
|
You need to replace isEmpty() by retrieving the length and comparing to zero. Unfortunate, but required for 2022 compat. |
OK, thanks! I should've tried building it against 2022 internally before pushing -- sorry about that! |
Added do not merge label, while we test this internally. |
Internal Autodesk QA tested these changes and confirmed it with design. Okay for merging now. |
Only create UFE nodes that are ancestors or descendants of the proxy node's primPath. This addresses a performance issue we encountered in our Reference Assembly workflows. For these workflows, there were reference assemblies that were referencing very large Usd scenes, but drawing a very small subset of it. While Maya would only image the subset, UFE was populating every node from the Usd stage.
This caused several performance problems, including:
This fix limits creation of UFE nodes to those "relevant" to the prim path
This fix also changes behavior of imaging a proxy node with an invalid prim path. Previously, a non-empty invalid path would cause the entire stage to be imaged. With this change, we image nothing.