microsoft / MixedRealityToolkit-Unity

This repository is for the legacy Mixed Reality Toolkit (MRTK) v2. For the latest version of the MRTK please visit https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity
https://aka.ms/mrtkdocs
MIT License
6k stars 2.12k forks source link

Investigate performance improvements to canvas UI #11471

Closed AMollis closed 1 year ago

AMollis commented 1 year ago

This issue has been migrated a new MRTK repository, and the status of this issue will now be tracked at the following location:


Describe the problem

MRTK3's canvas buttons and canvas dialogs are noticeably less performant than MRTK2/3's non-canvas versions. We need to understand why, and how to improve these elements.

Describe the solution you'd like

Come up with a plan for improving canvas buttons and canvas dialogs

Additional context

This issue seems related to https://github.com/microsoft/MixedRealityToolkit-Unity/issues/6180

Part of the issue might be because of the multiple z-layers on the MRTK3 buttons, which cause less of draw call batching within canvas UI (more batching occurs in non-Canvas UI)

Goals

srinjoym commented 1 year ago

Started this investigation. On first glance, it seems like we are creating more draw calls in canvas UI vs. comparable non canvas UI leading to the performance bottleneck. Will continue profiling this with more comparable scenes and then investigate areas to reduce draw calls.

The biggest source of draw calls so far is the button front plate as the individual icon and text takes two draw calls minimum. The default canvas UI tearsheet scene has 469 draw calls. With no front plate, we drop to 149 draw calls

AMollis commented 1 year ago

Investigation was done, but no actionable items were found.