Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upmacOS Radeon performance woes #300
Comments
|
I've long had issues with Radeon OpenGL drivers on macOS. The solution may just be to move to the Metal backend… |
|
I did some quick and dirty® change from OpenGL to Metal and, although performance improved significantly, it still had pretty low fps. (Compiled with --release) https://gist.github.com/cemelo/213fcccad2605c9c4e61cd85355a59eb Specs: |
|
Yeah, I've consistently noticed performance problems with Radeon. It may have to do with the floating point render targets. On macOS I usually use Intel. Switching to surfman will let us do that. |
|
I've found a fix for this and it will probably land as part of the compute shader work I'm doing right now. |
|
Awesome! Thanks, Patrick. |
|
This is significantly improved now. |
|
I'm still seeing this happen when using AMD graphics (to drive external monitor). When I unplug that and switch to Intel, this goes away. Doing some more research, and it sounds like when some shader state changes, the driver is incorrectly deciding it needs to recompile the shader. There are discussions of similar things around: |
|
What about the Metal backend? |
|
I haven't tried to port the code to use the Metal backend directly, but trying it out using surfman and using the low power adaptor, I get a framerate of ~60fps. Switching it over to hardware adaptor, it hangs as if it was in a busy loop. It shows a framerate of ~95fps, but that's clearly not true, as the screen freezes for a couple of seconds, refreshes, then freezes again. Another thing I noticed is that, if you're using an external monitor, it doesn't matter whether you choose low power or hardware, it will always use the AMD GPU. All above applies only to the |
|
OK, with #337, the OpenGL Radeon backend on macOS seems to have better performance than Metal for me. |
|
Woah! This is looking great now! The GIF doesn't do justice, but you can see by the framerates that the animation runs smoothly. Also, you can see it's using the Radeon GPU, even though the example asks for a low power adapter. I guess this is because I'm using an external monitor. In my machine, FPS on Radeon is roughly twice as much as using Intel, and GPU time ~50%. Thank you, @pcwalton! |
|
Closing as this seems resolved now. |



It appears to be compiling shaders constantly as seen in the
attached Instruments screenshot.
My system is:
Model Name: MacBook Pro
Model Identifier: MacBookPro14,3
Processor Name: Intel Core i7
Processor Speed: 2.9 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 8 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB
System Version: macOS 10.14.6 (18G3020)
Kernel Version: Darwin 18.7.0
And my graphics / display hardware is:
Radeon Pro 560:
Chipset Model: Radeon Pro 560
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 4 GB
Vendor: AMD (0x1002)
Device ID: 0x67ef
Revision ID: 0x00c0
ROM Revision: 113-C980AJ-927
VBIOS Version: 113-C9801AU-A02
EFI Driver Version: 01.A0.927
Automatic Graphics Switching: Supported
gMux Version: 4.0.29 [3.2.8]
Metal: Supported, feature set macOS GPUFamily2 v1
Displays:
Color LCD:
Display Type: Built-In Retina LCD
Resolution: 2880 x 1800 Retina
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Main Display: Yes
Mirror: Off
Online: Yes
Rotation: Supported
Automatically Adjust Brightness: No
LG UltraFine:
Resolution: 5120 x 2880 (5K/UHD+ - Ultra High Definition Plus)
UI Looks like: 2560 x 1440 @ 60 Hz
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Display Serial Number: 910NTXRBJ538
Mirror: Off
Online: Yes
Rotation: Supported
Automatically Adjust Brightness: No
Connection Type: DisplayPort