Search Issue Tracker
By Design
Votes
1
Found in
2019.4
2020.3
2021.1
2021.2
2021.2.0b2
2022.1
Issue ID
1352465
Regression
No
Unity does not use dedicated graphics card when graphics API is set to Metal
Reproduction steps:
1. Open the attached project "Karting.zip"
2. Open the "Karting/Scenes/MainScene" Scene
3. Open "Unity > Preferences > General" and select a dedicated graphics card as "Device To Use"
4. Restart Unity and reopen the project if needed
5. Open the "Activity Monitor" macOS application's "Energy" tab and observe which graphic card is being utilized
6. Open the Game View in Unity
7. Enable Stats to observe the framerate
Expected result: Graphics Card field reads "High Perf." and the framerate increases
Actual result: Graphics Card field reads "Integrated" and the framerate stays similar regardless of what device is being used
Reproducible with: 2019.4.29f1, 2020.3.15f1, 2021.1.16f1, 2021.2.0b5, 2022.1.0a4
Notes:
1. The issue is not reproducible when using OpenGLCore graphics API
2. Editor.log indicates that the high-performance graphics card is being used
3. When "Device To Use" is set to Automatic, the behavior remains the same
-
HofiOne
Jan 12, 2022 08:00
Please take a look at the end of this thread
I've added a result of a detailed test on how you can reproduce the real issue we have here, it seems the issue is not that unity does not select the user preferred GPU but it is doing it wrong in some situations that could lead huge performance issues.
-
ay_ahmet
Jul 26, 2021 13:11
This is not only about Activity Monitor not showing the correct gpu in use. Unity somehow "thinks" it's using the dedicated gpu but the frame time results tell the opposite in an empty project. I can barely hit 100 fps in an empty project with my AMD Radeon Pro 5500M. Which is not the case when I switch from Metal to OpenGL, I can easily see thousands of fps.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Any small change in UI Builder Inspector refreshes Editor Inspector
- Inaccurate Box Collider boundaries on a rotated child Cube when the parent GameObject Scale is non-uniform
- [Android] "SHADOWS_SCREEN" set as shader Keyword when no "_ShadowMapTexture" is bound leads to freeze on a build on some Mali GPU devices
- The global scene list is overridden in a project built with command line when the Override Global Scene List setting is disabled in the build profile
- Global Scenes are not included in the Build when building multiple Build Profiles at the same time
Resolution Note (2022.1.X):
Unity respects the systemwide choices and uses the correct device chosen in Preferences.
The behaviour can be observed using 'Activity Monitor' and opening the 'GPU History' window. In 'GPU History' window, you can examine the GPU loads happening on system wide and there it can be verified that Unity does indeed respect and use the Discrete GPU available in the mentioned macbook pro model. Or integrated, when it's chosen from preferences. There is a clear performance difference between the 2 choices given the right GPU load.
In 'Activity Monitor' Energy tab, Applications shown as "high perf" or not, does not indicate which graphics card the given application is actually using. But it would seem that OpenGL applications will be flagged as "high perf". For metal, regardless of which adapter chosen, Intel or AMD, will result in the value being "no".