# Mac Pro Tower - Sapphire Radeon Rx580 is really, really slow

I recently installed a Sapphire Pulse Radeon Rx580 8gb on my 2010 era (with upgraded CPU) Mac Pro tower. I did this because my former GPU, a NVIDIA GTX 970 is not "Metal Compatible" and would not allow me to upgrade to Mojave. I selected this GPU because it was one of the few recommended GPU for Mac Pros. I use blender a lot, and was hoping that I would get something of a boost in performance from the upgrade.

Alas, no dice. In fact, the GPU is even slower than the CPU when rendering benchmarks like "Classroom" or "BMW". With my GTX 970, I got a good boost, with benchmark times sometimes as much as 3x faster.

I'm beginning to regret the "upgrade". I don't need amazing performance, just something that makes cycles run quicker.

Am I doing anything wrong? Is there any patch or fix that I can download that will help?

Thanks!

• "Am I doing anything wrong?" Buying hardware without previous thorough investigation. Mac platform was never any good for GPU rendering. AS far as I know for future versions of Blender 2.8+ Cycles GPU rendering support is being dropped because of lack of support for Metal API. – Duarte Farrajota Ramos Jan 14 at 4:24

Unfortunately Apple has deprecated OpenCL and OpenGL in favor of their own Metal API. In fact, Blender has recently dropped OpenCL support on macOS completely, due to too many bugs in the macOS OpenCL compiler.

Long story short, due to apple's rejection of widely used open APIs, it's unlikely there will be any support for OpenCL rendering on macOS in the immediate foreseeable future. Perhaps someday it will be supported via vulkan, but in the meantime it looks like you're out of luck/stuck on old versions of blender.

If you don't want to shell out the \$ to dual-boot Windows, you might try running Linux. Historically, Linux has outperformed Windows when it comes to CPU rendering (it usually matters less for GPU rendering, but it's often a little faster there too). That said, I was unable to find any up-to-date benchmarks comparing the two, so take this with a grain of salt.

Yes, you doing it all wrong. Mac\metal support of opencl gpu rendering in cycles is non-existant.

https://linustechtips.com/main/topic/975081-cuda-1060-6gb-opencl-rx-580-for-blender/

Just install Windows 7-10 on mac as second os. Thats the optimal solution I think, and easiest one. My rx580 is really much faster (like 10-20 times faster) in cycles rendering than cpu.

• Given that I'm locked into to MacOS for the dozens of other pieces of software that I use, what's the best solution? Has anyone gotten a RX580 to work decently well on a Mac? – Brad Hoehne Jan 14 at 4:50
• Just install Windows 7-10 on mac as second os. Thats the optimal solution I think, and easiest one. My rx580 is really much faster (like 10-20 times faster) in cycles rendering than cpu. – Blending in Trance Jan 14 at 4:52
• Neither the text in the answer nor in particular the link seem to actually attempt to answer the question. Maybe edit the answer to include your latest comment, and even entirely replace the commentary you originally posted. – tripleee Jan 14 at 5:26
• I went ahead and installed windows on a BootCamp partition. Blender on Windows 10, on my Mac Pro, works great. The only hassle is having to reboot. Windows takes a long time to boot. – Brad Hoehne Mar 12 at 20:47

If you want to do GPU rendering, your only option is to not use Cycles and use a Metal supported renderer (Radeon ProRender) instead:

As previously mentioned, OpenCL rendering is no longer supported in Blender on Macs.

As a workaround, you can perhaps invest a bit in a skeleton Windows PC with a high end graphics-card and use it as a render client.

Or you can use VirtualBox to Virtualize a Linux System ( eg. Ubuntu Studio ) and use PCI-Passthrough to give it direct Hardware access to the Video card. If your Mac has proper iommu Support that should be the best Option without dualbooting.

Check:

The intel_iommu=on boot option could be needed. Search for DMAR and PCI-DMA in kernel boot log.

Once you made sure that the host kernel supports the IOMMU, the next step is to select the PCI card and attach it to the guest. To figure out the list of available PCI devices, use the lspci command. The output will look as follows:

01:00.0 VGA compatible controller: ATI Technologies Inc Cedar PRO [Radeon HD 5450] 01:00.1 Audio device: ATI Technologies Inc Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) 03:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) 03:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) 06:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1) The first column is a PCI address, in the format bus:device.function. This address could be used to identify the device for further operations. For example, to attach a PCI network controller on the system listed above to the second PCI bus in the guest, as device 5, function 0, use the following command:

VBoxManage modifyvm "VM name" --pciattach 02:00.0@01:05.0 To detach the same device, use:

VBoxManage modifyvm "VM name" --pcidetach 02:00.0

..