maya-usd icon indicating copy to clipboard operation
maya-usd copied to clipboard

Materials refresh too aggressively, causing lag

Open cawney4 opened this issue 1 year ago • 3 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: https://github.com/Autodesk/maya-usd/blob/92aea58bd21570aeeb0435d12ff83c602cac98f2/lib/mayaUsd/render/vp2RenderDelegate/proxyRenderDelegate.cpp#L1183-L1197

It’s using _combinedDisplayStyles to determine whether textures are required. However, styles get erased if they haven’t been used for over 8 frames. https://github.com/Autodesk/maya-usd/blob/92aea58bd21570aeeb0435d12ff83c602cac98f2/lib/mayaUsd/render/vp2RenderDelegate/proxyRenderDelegate.cpp#L1062

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: https://github.com/Autodesk/maya-usd/issues/3400

Steps to reproduce

  1. Launch Maya and load the mayaUsd plugin
  2. Click Create -> USD -> Create from File
  3. Select the provided texture_lag.usda
  4. Press the space bar in the viewport in order to enter 4 viewport view
  5. Turn on hardware texturing for all 4 viewports
  6. Turn off hardware texturing for the persp viewport
  7. Tumble a few times in the persp viewport, one immediately after the other. Make sure to release the mouse after each tumble.
  8. 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.

cawney4 avatar Jun 18 '24 23:06 cawney4

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?

santosd avatar Jun 27 '24 17:06 santosd

Hello @santosd, thanks for the response! Yes, I'm part of the beta program and can test it out. Do you happen to know what part contains the fix -- in Maya beta, mayaUSD, or the new USD version?

cawney4 avatar Jul 16 '24 18:07 cawney4

Our animators noticed the exact same issue over here. It is not unusual to work with multiple viewports in Animation.

We have very similar specs compared to @cawney4 :

  • Maya 2024.2
  • mayaUSD 0.30.0
  • AlmaLinux 9.4

Last message here is from in July 2024, are there any news related to that?

sbissonnette avatar Mar 24 '25 19:03 sbissonnette