Skip to content
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

Performance degraded for PointInstancer when using depth peeling mode #4047

Open
csyshing opened this issue Dec 13, 2024 · 1 comment
Open
Assignees
Labels
bug Something isn't working

Comments

@csyshing
Copy link
Collaborator

Describe the bug

Hi,

Our production has reported a performance degrade when switching from default 'object sorting' to 'depth peeling'.
This happens for PointInstancer but seems better for non-instanced prims.

Example - non-instanced prims: all the tiny cubes in the viewport are just regular prims:

  • 🆗Navigate the viewport on 'object sorting' in smooth shaded mode: performs reasonable;
  • 🆗Navigate the viewport on 'object sorting' in wireframe mode: performs reasonable;
  • 🆗Switch to 'depth peeling', without changing display mode: performs reasonable;
  • 🆗Then switch to either smooth shaded or wireframe mode: becomes unresponsive at first and then becomes reasonable later, Maya might be doing something at the beginning but as long as the viewport responses normally, I think it's acceptable.

non_instanced_prims

Example - PointInstancer prims: all the tiny cubes positions & numbers match exactly the non-instanced example:

  • 🆗Navigate the viewport on 'object sorting' in smooth shaded mode: performs reasonable;
  • 🆗Navigate the viewport on 'object sorting' in wireframe mode: performs reasonable;
  • 🆗Switch to 'depth peeling', without changing display mode: performs reasonable;
  • 🚫Then switch to either smooth shaded or wireframe mode: becomes unresponsive, needs to wait for much longer than non-instanced example until Maya UI responses, but then keep navigating the viewport, it's still unresponsive for a long time before coming back to user.

point_instancer

Example - Navite Maya geometries: imported (converted) from non-instanced example into Maya as native geometries, just for reference:

  • No matter which transparency mode and/or shading mode combination, viewport runs quite good actually.

native_Maya_geom

Steps to reproduce
Steps to reproduce the behavior:

  1. Launch Maya and load either the example USD file example_non_instanced_prims.usda or example_point_instancer.usda
  2. Change the transparency mode from default 'object sorting' to 'depth peeling'
  3. Switch viewport shading mode to either smooth shaded or wireframe mode
  4. Navigate in the viewport and observe the responsive time

Expected behavior
Improve the viewport performance for PointInstancer when using depth peeling mode.

Attachments
Example USD files:
performance_degrade_example_USD_files.zip

Specs (if applicable):

  • OS & version: CentOS 7.8
  • Compiler & version: gcc 6.3
  • Maya version: Tested on Maya 2022 / 2023.3
  • Maya USD commit SHA: Tested on official v0.23.0 / v0.26.0 / v0.30.0
  • Pixar USD commit SHA: Tested on official USD-22.05/24.03
@csyshing csyshing added the bug Something isn't working label Dec 13, 2024
@wallworm
Copy link
Collaborator

Thank you for reporting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants