Materials refresh too aggressively, causing lag
cawney4 opened this issue · 2 comments
Describe the bug
When multiple viewports are visible - some with hardware textures on and some with textures off - we experience lagging after each tumble in the viewport.
I did some preliminary debugging. It seems like materials are being marked dirty and refreshed after tumbling. It thinks that we are switching to textured mode all the time:
maya-usd/lib/mayaUsd/render/vp2RenderDelegate/proxyRenderDelegate.cpp
Lines 1183 to 1197 in 92aea58
It’s using _combinedDisplayStyles
to determine whether textures are required. However, styles get erased if they haven’t been used for over 8 frames.
When I tumble in a non-textured viewport, it exceeds the 8 frame limit and removes “smoothHull” from _combinedDisplayStyles
.
When it moves on to a textured viewport, it sees that “smoothHull” is not in _combinedDisplayStyles
and believes textures are being turned on. It refreshes all materials - even though textures were on the entire time - and that takes several seconds.
I found a similar reported issue except I'm seeing a lag, not a crash: #3400
Steps to reproduce
- Launch Maya and load the mayaUsd plugin
- Click Create -> USD -> Create from File
- Select the provided texture_lag.usda
- Press the space bar in the viewport in order to enter 4 viewport view
- Turn on hardware texturing for all 4 viewports
- Turn off hardware texturing for the persp viewport
- Tumble a few times in the persp viewport, one immediately after the other. Make sure to release the mouse after each tumble.
- After each tumble, there is a pause/lag before it draws the next tumble.
Attachments
texture_lag.zip
In the zip, there are two files:
- texture_lag.usda: USD file with 100 Mesh cubes and 100 Materials. The cubes are all identical and at origin. The materials are identical too. My goal here was to have 100 distinct Materials.
- green.png: The texture file for Materials.
Video of repro:
https://github.com/Autodesk/maya-usd/assets/8140553/7c8dec8f-d0bb-4ff9-9e10-5a5f7a7c02f8
Specs (if applicable):
- Rocky Linux 9.4
- Maya 2024.2
Additional context
I’ve noticed that turning off color management no longer lags, but we’d like to have color management on. Setting the preview_map’s source color space to “raw” also seems to alleviate it. But when it’s set to “sRGB” or “auto”, the lag happens.
Hello @cawney4,
I took a look at this issue. This is an issue that I had previously logged. We haven't specifically done work to fix this issue to this point however. I did some testing and I was able to reproduce the issue using the latest MayaUSD plugin with Maya 2025. However, I also tested our latest beta release which has a newer version of USD (24.05) https://github.com/PixarAnimationStudios/OpenUSD in the beta release version, I was no longer able to reproduce the issue. Are you part of our beta program and is it possible for you to test it out on your end?