Search Issue Tracker

Active

Under Consideration for 6000.4.X

Votes

0

Found in

6000.0.72f1

6000.3.13f1

6000.4.2f1

Issue ID

UUM-140868

Regression

No

Excessive memmove calls on the render thread and performance drop when using GraphicsBuffer.SetData()

Metal

-

How to reproduce:
1. Open the attached “IN-135569“ project
2. In the top menu, click (Sparrows > OTS > "Reimport all models")
3. Open the "Scenes/Init" scene
4. Enter Play Mode
5. Open Instruments (Cmd + Space, type "Instruments")
6. Select the "Time Profiler" template
7. In the target dropdown, attach to the running Unity process
8. Click Record for 10 seconds, then Stop
9. Observe the “Heaviest Stack Trace by Weight“ section

Actual result: _platform_memmove dominates the render thread (10.14s out of 12.20s in a 29s capture)
Expected result: _platform_memmove is not the dominant function on the render thread

Reproducible with: 6000.0.55f1, 6000.0.72f1, 6000.3.13f1, 6000.4.2f1
Could not test with: 2023.1.0a10 (Rendering API errors), 6000.0.40f1 (Could not get game to render), 6000.5.0b3, 6000.6.0a2 (Rendering API errors)

Reproducible on: macOS 26.4 (M1 Max)
Not reproducible on: Windows 10

Note: Using the Unity Profiler (Window > Analysis > Profiler), the render thread is ~40ms with matrix upload enabled and drops to ~5ms when disabled via (MacOsBug > Disable Matrix Upload)

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.