If this is your first visit, be sure to check out the FAQ by clicking the link above.
You may have to register before you can post: click the register link above to proceed.
To start viewing messages, select the forum that you want to visit from the selection below.
I'm upgrading the power connections in my 2009 Mac Pro, to accommodate later graphics cards. Also, so I can power two modern cards at the same time.
Background - GPU Power
The 2009-2012 Mac Pro comes with 4x PCIe slots, which can each supply up to 75W to a plugged-in card. If a card needs more power, Apple included two supplemental power connectors on the logic board. You can add a cable to power a greedy card. Or use both connectors, to power two greedy cards.
However, GPU power demand has grown hugely since 2009. Today it's common for a single graphics card to need both connectors. And higher-end cards need more power than Apple allowed for.
Apple's extra power connectors are not documented anywhere outside Apple, but they are good for something like 100W each. If you draw too much, your Mac Pro will shut down to protect itself. In practice, cards rated up to 200W are stable with the supplemental cables, while cards rated 250W+ need extra power.
Cards rated 200-250W are a gamble. Manufacturers rate their cards differently, so actual power draw may exceed the rating. In practice, some 200W+ cards will be happy using both supplemental power plugs, while some will need more juice.
GPU Power Demand Has Grown
Over time, GPU power usage has definitely grown. Below is the rated wattage for various cards, sorted by introduction date. Watch the power demand wander up.
The cards our 2009-2012 Mac Pros came with:
nVidia GT-120 50 W powered by slot alone
Radeon HD 4870 150 W needs both extra cables
Radeon HD 5770 108 W needs extra cable
Radeon HD 5870 188 W needs both extra cables
Common Radeon Upgrades.
HD 7970 250 W ran OK for me with both cables
RX 480 150 W
RX 560 80 W
RX 570 150 W
RX 580 185 W
RX 590 225 W extra power recommended
Vega 56 210 W extra power recommended
Vega 64 295 W extra power required
Radeon VII 300 W extra power required
RX 5700 180 W
RX 5700 XT 225 W extra power recommended
RX 6600 132 W
RX 6600 XT 160 W
RX 6800 250 W extra power required
RX 6800 XT 300 W extra power required
RX 6900 XT 300 W extra power required
The Radeon HD 7970 Mac Edition is believed to be underclocked, which explains how it runs OK with the internal power connections. Actual wattage is probably closer to 200W. Beware using a PC version, such as the 7970 Gigahertz Edition.
These Radeons do not (yet?) have Mac drivers.
RX 6650 XT 180 W
RX 6950 XT 335 W extra power required
RX 7600 165 W
RX 7900 XT 315 W extra power required
RX 7900 XTX 355 W extra power required
Common nVidia Upgrades (supported through Big Sur)
GTX 680 195 W
GTX 780 166 W
GTX 970 145 W
GTX 980 165 W
GTX 980 Ti 250 W extra power required
These nVidia upgrades only work through High Sierra.
GTX 1060 120 W
GTX 1070 150 W
GTX 1080 180 W
GTX 1080 Ti 250 W extra power required
Later nVidia Upgrades denied to us by Apple.
RTX 2080 Ti 250 W extra power required
RTX 3080 Ti 350 W extra power required
RTX 3090 Ti 450 W probably needs 3x 8-pins
RTX 4070 200 W
RTX 4080 320 W extra power required
RTX 4090 450 W probably needs 3x 8-pins
There's a definite trend to insane power usage, where the GPU uses more juice than the rest of the computer combined. We're approaching 500W graphics cards. So I'm going to upgrade my power situation, with an eye towards future capacity.
Tapping the Mac Pro Power Supply
Our Mac Pro power supplies are not well documented. MacTracker lists system power consumption up to 309W, but does not list the PS capacity. It is 980W, which can currently supply any graphics card, and most dual GPU combinations.
Our power supplies have just one cable coming out - the connector for the logic board. It is possible to steal more juice from a SATA connection, but you only get 30W from each one. Also, plugging a cable into an HD bay makes the bay unusable for a drive. The optical bays have cables, so you can insert an adapter and not lose a bay. An extra 30W is not impressive against top-end GPUs, but it can be enough to settle down a marginal card.
I'd like a better solution - one that can handle even today's beasts. With power in reserve. Without losing any HD bays.
Enter the PIXLAS Mod (or Pixla's Mod). I recommend reading the linked article. It has good pics, and parts links. Most people who want more GPU power use this modification.
Pixlas taps into the logic board cable (before the logic board), giving you an extra 8-pin power cable. Which splits into 2x 6/8-pin cables near the graphics card. This supplies up to 300W. Allowing for the 75W from the PCIe slot, it can power cards a bit over 300W - sometimes. Recall that cards sometimes use more than rated.
It is possible to install 2x sets of Pixlas taps, and bring down 2x new power cables. Enough for 2x graphics cards, or a single 400W+ card.
I dislike the Pixlas method, because it uses insulation-offset connectors. Those are not reliable with high amperage in automotive use, and are not used in house wiring. They seem OK for the many people who have done PIXLAS mods. But if I'm going to pull up to ~900 watts, I want a better connection.
I plan to add 3x power taps, and am interested in a neater solution. Every time we've guessed how much power future GPUs need, we've always undershot. Better to round upwards just in case. It is possible to get 3x new power cables down into the case - this will be covered in a later post.
So I set out to add extra cables to the power supply. Time to pull that puppy out and start soldering.
Going After the Power Supply
First remove the power cord. We don't need special effects in this video.
Remove the optical bays. They're a frame that pulls out. Pull it halfway so you can reach the cables. Unplug those, and pull the rest of the way out. Excessive force is not needed - if the frame sticks, wiggle it a bit.
Next, remove the backplate behind the optical drives. Two phillips screws.
Pull out the logic board power connector. Squeeze the two side latches, and wiggle it up. Do not pull towards yourself, only upwards. Or rock a little side-to-side to get it free.
Now the fun starts for real. The power supply is locked in place with 4x screws from underneath (circled). Remove both rear HD bay sleds, and all PCIe cards. You will need a 2.5mm hex wrench or screwdriver. A flexible screw driver is a good choice. Don't let the tool slip and scuff the logic board.
The other screws in this area are all phillips-head screws. Don't remove any of those.
Once the screws are gone, the PS will come out. Pull it towards the fan a little, and tilt out the back to clear the case corner. Push the cable through from the optical bay, as the PS comes out. If in doubt, wiggle the PS a little. Gorilla strength is not needed.
The power bay is empty.
A straight pic angle, showing the whole bay. The black separator at the back is an airflow barrier, blocking air from bypassing the power supply. There's a matching one across the ceiling of the bay. So all the air flows through the power supply.
Out on the work table.
The actual power supply specifications. 980W, with 79 amps of 12V power. The 12V is what we're interested in for supplemental graphics power, which works out to about 963 watts.
There are 8x 12V wires. 4x positive and 4x ground return . So just under 20A per wire, or 240W max per wire tapped.
Remove the side trim panel. 4x screws.
There are 5x screws around the PS case. You must also free up the dust seal around the power plug before opening. Use your fingernail or a putty knife or spudger. Lift just enough along the opening for the socket to slide past.
Before the next steps, blow out the PS if you haven't already done so. Dust will contaminate adhesive in the next step if you don't blow it out first. Compressed air is best. Huffing and puffing will work, but have a fan ready to blow off the dust cloud. Or you'll do a good smoker cough imitation.
Next, you have to unplug a connector between the two internal boards (circled on right).
Then peel up a glued-down separator on bottom. The ivory (originally white?) smudge is an old adhesive drop. Scuff it away with a fingernail. Then peel up the clear plastic tab - it's only glued down.
The ground screw on upper left did not need to be removed. Not obvious until you reach this stage.
Note: there are charged capacitors within the PS, so don't be touching parts you don't need to.
Rotate the covers apart 90 degrees. You still need to unplug two more connectors. They're a pain to unplug, and the more you tilt open the case halves, the more you're torquing the board under the connectors. Tweezers can help. If you break the board, you'll be buying a new PS. So don't be too aggressive.
The two halves fully separated. We're interested in the upper half, with the black cable coming off. Remove four corner screws that hold the board down to the case.
Got the board fully out. The only thing we're interested in here is the cable taps coming off the far side.
The cable has 4x larger wires on each side, with a smaller bundle in the middle. The outer wires are 12V - they're the ones we want.
Unfortunately, the 12V wires go directly to the power supply board. I was hoping for connection terminals or solder posts. With room for extra wires. No such luck.
There is no room in here for adding more wires. If you go above the existing cable, it will conflict with the other power supply board. If you go under, you risk hitting that fragile-looking brown capacitor on lower left. As well as blocking access to the board corner mounting screw. And of course, blocking airflow through a 980W power supply.
After all this work, I had to reassemble the PS. Extra power taps have to be made on the outside cable, as internal taps are not practical.
The investigation did reveal the 12V wires are approximately AWG 10 guage, or 2.5mm diameter. This wire size can easily handle 30-40 Amps per wire, especially over short distances. So the Apple cable can carry the full capacity of the power supply.
This means taps (if done well) can safely pull 900W+ from the cable. There is no need for an internal connection to the power supply.
So the experimentation continues. Stay tuned.
Last edited by reader50; Jul 29, 2023 at 04:06 AM.
I have an idea that may be workable, depending on how much room you have to work with.
What I'm thinking of here is building a break out cable. The PS cable plugs into one side, the other plugs into the logic board, and the break out part goes to whatever kind of connectors you graphics cards need.
I can't find pictures of both sides of the logic board connector, but it looks like it's a Molex part. If you can find the numbers on the connector, you can look it up (assuming it is Molex) on their site, and the page for that connector will also have a link to compatible connectors, as in what it will connect to.
The plan is to get extra power cables from the Optical / Power level down to the PCIe bay. You cannot go straight down. Jumping between the bays will not work unless you leave the side panel off indefinitely. The side panel seals off the different bays.
Nor can you drill a hole straight down. The HD bays are right beneath - a hole would cost you a drive position.
There is limited cable space beside the logic board in the front corner. Apple brought the optical SATA cable up through that corner, ahead of HD Bay 1. And they made the hole large enough for the board-side connector to fit through. We'll take advantage of that extra space.
Green is the SATA cable for the opticals. Purple is the new GPU power cable fitted through ahead of the SATA.
It is possible to run a 2nd cable, though things get a lot tighter. Green for SATA, purple for GPU cable #1, orange for GPU cable #2. Work the extra cables through gently and one at a time. The logic board corner is down there - no need to break it.
Also visible - Apple's GPU power cables, behind the fan module. Those can still be used for less-greedy cards.
If you need a 3rd power cable, the location would be at the rear corner. Red for GPU cable #3.
This slot hasn't been widened by Apple, so it's narrow. You may not be able to get the cable jacket through - it may have to end where you dive through. Or just after. In the PCIe bay, route it above the slots, then down. This should avoid interfering with any PCIe cards.
I'm not installing the rear cable at this time. I'll add the 3rd power connector, but will not add the cable unless it's needed in the future.
Back to the front cables. Pull them farther through - the ends will need stripping before we're done.
The PIXLAS people recommend taps in the Green zone of the PS cable. As I plan to solder connectors onto the PS cable, and solder will make the wires solid, it would be a mistake to use the standard location. Stiffening up the cable right were it turns could make it difficult to align with the logic board connection.
Instead, I'm going to use the Blue section. Where the wires are straight, so making small parts of them solid will not matter.
In either case, you have to remove one of the tape bands to separate and work with individual wires. Purple arrow. The tape comes off easily, and has slim plastic stiffeners underneath, to keep the wires nicely flat. I'll put all those back afterwards, to keep the cable organized and slim.
Now a tedious part. Start with 3x GPU extensions. Cut the wires, with about 2/3 of the wire length on the plug ends. Those will be soldered to the PS cable, and you need some length to get the connectors clear of the cable.
The socket ends only get 1/3 of the wire length. Those will be soldered onto our new GPU cables, and they should be short. So the solder joints remain in the upper bay. I probably should have cut them shorter still.
Solder joints will replace the insulation-offset clips used in a standard PIXLAS mod, answering my objection to possible poor connections. And solder takes up less space, so a neater install.
Only 48x wire ends to strip. It took awhile.
Back to the PS cable. Clip some small gaps open for soldering. I used a strip tool to cut around each end of a band, then a Stanley knife to slice between them. Finally, a needle-nose to work the insulation free. The objective was to not cut any strands of the PS wires.
The outer pairs of wires are ground return (Green). The next pairs inwards are +12V (Red). The center bundle of smaller wires must be left alone. Those are +5V and some control wires going to the PS.
I opened the 12V wires in different places, so they could not touch by accident. Ground wire openings offset to the left, +12V offset to the right. They will be covered with liquid electrical tape before we're done.
Note: it does not matter if ground wires touch each other, or if +12V wires touch each other. They all connect together in the PS. The pairs tie together in the logic board connector. And they're probably fully tied again in the logic board.
Alas, it was not to be. When I went to solder the first group of GPU wires to a single PS wire, I could not get the solder to melt into the wire. Turns out the #10 / 2.5mm wire is an excellent heat conductor - it was hot all the way to the connector. And never got hot enough to melt my solder.
My soldering gun is an old Weller rated at 100W (low) and 140W (high). It's done everything else I asked of it, but I don't recall ever trying to solder such a large wire before.
Also visible, some genuine lead-tin solder. Getting rarer today. And liquid electrical tape to restore the insulation afterwards.
I could order a more powerful soldering gun. 260W versions are on Amazon, along with 300W versions. Either should get my soldering spots hot enough to finish the job.
However, I dislike how hot the wire end would get in the logic board connector. A soldering iron can melt most plastics, and 260-300 Watts might conduct enough heat to melt the plastic connector. Also, if I bought another gun, it would probably never be used for anything else.
Finally, I didn't like how my tap wires wrapped around the PS cable wire. If the soldering had worked, it would have been a bit ugly.
Anyway, I chose to go in a different direction. Ordered some parts - eBay this time. To be continued.
First, do a continuity check (ohm check) to confirm all the +12V wires are tied in the Power Supply. And that all grounds are tied too (not shown). This will let me group connections, as there is no advantage to splitting connector wires across all 12V wires.
Note for Glenn - the logic board connector has no writing on it anywhere. If it's a Molex variety, they forgot to add the numbers.
As soldering did not work out, and I'm unwilling to cut the PS cables for splicing, that leaves clamps that will assemble over the wires. Electricians use "split bolts" for this kind of hookup, though generally in large wire sizes.
I ordered the smallest ones I could find, rated for #10 though #16 wires (2.6mm - 1.2mm). They're a good size to the PS wires, though the nuts are larger than I wanted. The next smaller size might have been perfect. But I couldn't locate anything smaller on short notice.
Bigger split bolts shown for comparison.
Now some tinning of wire ends. I decided to skip the 3rd GPU power connector, as things were getting crowded. And with the split bolts, another connector could always be added in the future.
Tighten the split bolt over a pair of ground wires, along with the tinned ground bundle from the 1st GPU connector.
All connectors assembled. In hindsight, the spacing would have come out better if the ground-wire gaps were to the right, and the +12 gaps to the left. The cable wires could be spread enough for the +12 bolts to fit within the bundle.
It needs insulation next.
In electrical work, split bolts are wrapped with Fusion Tape, which merges with itself on contact. Two types of fusion tape shown - a generic on lower left, and wider Scotch-brand on lower right. Then the bolt is further wrapped in electrical tape. So you get two layers of insulation, with the fusion tape layer acting as padding against scraping or impacts.
In this case, we're dealing with a maximum of 12VDC, not 600VAC. And space is tight inserting the cable past the PS fan. So I went with a double wrap of wide electrical tape (middle).
Insert into the Mac Pro case. Then strip the GPU cable ends, ohm them to get the pins right, and solder on the connectors. Add shrink-wrap over the soldered connections. I never expected to be holding lit matches within my Mac Pro (to shrink the shrink wrap). This operation was quite tedious with 16x wires to fix up. While standing on a chair to reach the Mac Pro, that I wasn't willing to unplug and pull down for easier access.
Note: the cable people did not always maintain wire positions. The +12 (yellow) wires were always in the right places. And the Ground (black) wires were always right. But the pin positions changed between connectors. I'm having a hard time picturing a scenario where this would matter, but it bugged me as sloppy.
Note2: soldering went badly, until I remembered to check my tip nuts, and tightened them. After which soldering went smoothly. The loose nuts probably converted my 140W soldering gun into a ~25W gun. No wonder I'd been unable to solder the PS wires earlier. Which I had mis-diagnosed as needing a higher-powered soldering gun. Good thing I didn't buy a hotter gun.
Rather messy. And the bay backplate would not fit. I could probably tape each item to the rear case, until the cover fits. But I'm more likely to clean it up. Eliminate the extra connectors, and take the GPU cables directly to the split bolts.
I didn't do that on the first try, because I didn't want to be tightening & insulating the bolts while installed. It seemed better to make up a full custom cable, and snap the couplings together. But this mess is annoying.
Note: the GPU extension cables I used for connectors have smaller wires than the PIXLAS GPU cables. This wasn't obvious until the soldering stage. The PIXLAS cables split into 2x connectors at the graphics card. As each 8-pin connector is rated for 150W, the cables have to handle 300W. My extender wires appear sized for a single 8-pin connector, so they may get warm if maxxed out.
Yet another reason to clean up the wiring later, and eliminate the extenders. For now, they're not going to be stressed. I don't own any 300W+ cards (yet).
Time to add the graphics cards. Yes, I volt-checked every cable pin first, to confirm +12 and Ground were all in the right positions.
Top: nVidia GT-120 (powered by slot)
Middle: Radeon RX 580 (powered by logic board cables)
Bottom: Radeon HD 7970 (powered by PIXLAS cable)
Only one PIXLAS cable was needed here. If I owned 2x 300W cards, each one would need a PIXLAS cable. If the remaining single-slot card needed extra power, it would use the logic-board cables. However, the only single-slot cards I've found that need extra power are certain Pro cards. Like the Radeon WX-7100.
Side note, I'm getting tired of 2-slot graphics cards that take every bit of 2-slot space. There isn't room for their fans to draw air in when a card is installed above them. I had to stack the cards by length, with shorter ones above longer ones. They all get air, but there is some fan blockage. This would matter if I were maxxing out the graphics cards.
Testing the cards in High Sierra. The GT-120 is a non-Metal card. If you mix a Metal card with a non-Metal card, the OS will not boot in Mojave or later. Hence the testing in High Sierra, which helpfully has drivers for all three cards.
Curiously, the "About This Mac -> Displays" dialog only shows the first 2x displays (upper right). The Displays prefpane (lower right) shows all 3x monitors correctly. And System Profiler -> Graphics (left) sees all 3x cards.
System Profiler -> PCI confirms graphics drivers are all loaded. The unknown audio devices are the audio channels for the 7970 and 580. From Mojave onwards, audio can be output over HDMI and DisplayPort connections to built-in monitor speakers. But High Sierra does not have drivers for that.
Next up, some OS testing. I'll probably buy a higher-powered card at some point. But it's not clear yet if Apple has stopped releasing drivers for later cards.
macOS Graphics Drivers
Apple is late with the Radeon RX 7000 series. They should have released a 7000-series graphics module for the 2019 Mac Pro - the first Radeon Pro 7000 cards were released in April 2023. Or at least given us macOS drivers, so owners could buy 7000-series cards.
Apple's running late. They're also late adding support for the RX 6650 XT and 6950 XT. Those use the same chips as already-supported cards. Apple just needs to add the card ID numbers to macOS drivers so those cards will be recognized. A trivial change that is a year overdue.
Historically, Apple stops releasing new features for professional machines after a platform change. New PPC cards were not released once the first Intel Mac Pro came out. Apple didn't release any GPU upgrade cards for the Mac Pro cheesegraters after the Darth Pro came out, though drivers did continue to be released as Apple used GPU chips in other models. Apple never released *any* graphics card upgrades for the Darth Pro.
It was before my time as a Mac owner, but my impression is NuBus graphics cards stopped being released once Apple began selling PPC Macs. However, GPU acceleration was not much of a thing at the time, so card upgrades were not as important.
Now that the Apple Silicon Mac Pro is out, new toys for the 2019 Mac Pro may have stopped. And the AS Mac Pro doesn't support graphics cards itself - no ARM drivers for traditional graphics cards. So Apple may be slow-walking the driver development, or may have stopped it completely.
The 2019 Mac Pro was sold up to a few weeks ago, with prices in the $5K - $30K range. There are going to be some unhappy owners if Apple does not continue driver releases.
Note: the 2023 AS Mac Pro has PCIe slot spacing for double-width cards. MPX module width, sure. But it's setup for graphics cards too. Let us hope graphics support is coming. It's estimated Intel macOS support will continue through macOS 15, so we've got a couple years left for drivers to maybe come out.
I'm not going to buy a top-end card right away. I'll wait until Apple has definitely stopped releasing drivers, and get one of the most powerful cards supported. Right now, that's the Radeon RX-6900 XT. But if Apple does release another driver family or two, the RX 7900 XTX is up to 46% faster at 4K gaming. With notably improved ray tracing, though Radeon RT hasn't caught up to nVidia. Who knows how fast the RX 8900 XT will be in late 2024.
So I'll stick with my RX 580 for now. I'm more interested in putting my HD 5870 back in, for Snow Leopard drivers. Old PPC games only work through Snow Leopard. And I haven't wanted to swap graphics cards for each SL boot. Daily swaps might wear out a PCIe slot.
Annoyingly, there is not a single Metal card that has drivers in Snow Leopard. It's a complete cutoff if you use Mojave or later. You can use a Mac-firmware card to boot SL with software rendering. Using OpenCore with GOP injection works too for PC cards. This lets you reach AppleWorks files and other non-graphics-intensive apps. But for real games, you need a card with drivers.
Now that I've got the extra power cables, the RX 580 can remain in place and fully connected. Snow Leopard will ignore the unknown card. It would just be a matter of adding and removing the HD 5870 for each SL bootup.
The remaining problem is Mojave (and later) will not boot if there is a Metal and non-Metal card installed. But OpenCore may have changed that, perhaps by hiding the older card from the OS. Or by making it appear to be a later card, and doing API translations in the background. If so, I'd be able to leave the older card installed and not do an endurance test on a PCIe slot.
To be continued.
Last edited by reader50; Jul 27, 2023 at 03:51 PM.
With extra power taps, it is time to solve a compatibility problem. How to get a Snow Leopard graphics card to live with a modern one, allowing boot into Snow Leopard and any later OS. Especially Mojave and Monterey. Without switching cards and wearing out slots.
Snow Leopard (with my old games) is happy to boot with both cards present. It mostly ignores the modern card. It may use an attached monitor with software rendering if the modern card has Mac firmware (or OpenCore provides GOP injection). Both cards can be present through High Sierra.
But Mojave and later will not boot if there is both a Metal and non-Metal card installed. And no Metal card has drivers in Snow Leopard. Until recently, that was the end of the story. Swap one or both cards every time you boot back or forward.
OpenCore has changed that.
Later CPUs offer hardware virtualization. At least since 2009, and perhaps earlier. This was originally for servers, but over time the feature migrated down to regular CPU chips.
If you buy server time (like your own website), the data center will rarely give you a dedicated computer. Maybe, if you pay enough. More likely, there will be 50+ sites hosted on a single real machine. The machine boots a virtualizer (often called a Hypervisor or VMM) which then launches 50+ simulated machines. Intel and AMD moved some of the VMM functions into hardware, so there was almost no speed penalty to running within a virtual machine.
This doesn't do much for the average user, unless you are running a guest OS like Windows from within macOS. However, it started getting used in the Hackintosh community. Use the VMM functions to smooth over the differences between their PC and a real Mac. So macOS launches and sees the usual hardware. Behind the scenes, the VMM translates driver calls etc, between what macOS sees, and the actual incompatible hardware on the PC side.
The most popular implementation for this became the OpenCore bootloader. Then real Mac owners got interested. OpenCore can intercept and translate low-level graphics calls. ie - it can make a PC video card appear to have Mac firmware. Boot screens, a boot drive selector, etc. It could also enable later macOS features, by making supported hardware be present.
The Mac side of things has mostly evolved into OpenCore Legacy Patcher, which is a polished Mac app to enable installation of Big Sur, Monterey, Ventura, and (later this year) Sonoma. On older Macs that have been dropped by macOS. Besides later OSes, it can still give boot screens to PC graphics cards.
Easy Option - Use an Old Graphics Card
Mojave and later can be patched to use the old non-Metal rendering path. So you use an old card compatible with Snow Leopard. If you are using a Mac made before 2011 and it isn't a Mac Pro, this is your only easy option.
I've tested this with a 2009 iMac with a Radeon HD 4850 GPU. It works great through High Sierra. Mojave is OK too. Big Sur not tested. Monterey had occasional visual imperfections, which went away after a logout-login. I should have used the default OpenCore patching options. Ventura graphics were fine.
The main drawback is old cards have poor performance in later OSes. SL games run great, while modern games may need settings turned down. But at least your older iMac gets a new lease on life, with a modern macOS version. And access to the App Store.
Note1: iMacs made 2009-2011 have OEM graphics cards called MXM cards. They can be changed in theory. But MXM cards were not sold retail - you'd have to grab one from a later Mac, or from a PC. This quickly turns into serious hacking, so we're not exploring that here.
Note2: Macs made from 2011 onwards include Thunderbolt ports. A Metal-compatible eGPU can be plugged in. However, this gets complicated too. A) Apple disabled eGPU use over Thunderbolt 1 and 2. Takes minor hacking to bypass. B) The built-in card will still be non-Metal, causing complications booting into Mojave or later.
Difficult Option - Use Old and New cards
My Mac Pro has PCIe slots, so I plugged in both a Radeon HD 5870 and a Radeon RX-580. Then explored if OpenCore could smooth over the Metal / non-Metal divide.
1) Boot as normal. No screens lit up, crash on boot. A few tries and it somehow screwed up the security checksums on the later OSes. I eventually had to reinstall Monterey and Ventura before they would boot again. The boot screens were being sent to the 5870 (until the crashes), and there was no monitor attached to the 5870 at the time.
2) Boot into High Sierra. Both cards are seen and have drivers. Recompile OpenCore Legacy Patcher, reinstall to disk. No difference. OCLP could see both cards, but didn't do anything special during installation. It does macOS driver patching after booting into an OS, but nothing special before that. Which does not help, as Mojave+ will not boot when both cards are present.
3) Remove the RX 580. Boot with only the HD 5870. Everything boots OK, though you get software rendering in Mojave and later. I could fix that using OLCP's "Post-Install Root Patch" option, which patches the OS in Big Sur and later. Use DosDude's patched installers to patch Mojave or Catalina for older GPUs. I didn't do the OS patches because they probably break Metal cards, and I want to use the RX-580 in the later OSes.
4) Plug in both cards, and use OpenCore to hide the HD 5870. This finally did what I wanted, but it required manual work. Finally, it's time for the pictures.
Make a non-Metal graphics card invisible
This option has not been picked up on the Mac side yet. It's used by the Hackintosh people to hide an unsupported graphics card. We have to borrow their tricks, and apply them on the Mac side. You must install OpenCore Legacy Patcher before doing this, as you need to edit OCLP's config file on disk.
I set up shop in High Sierra to do the dirty work. I suggest keeping a High Sierra install on your Mac for troubleshooting. Any time you reinstall OpenCore for example, you'll have to redo some of the steps below. Note: the OCLP app currently requires Yosemite as the minimum OS. So your hacking digs could be in Yosemite, El Capitan, Sierra, or High Sierra.
Pull up System Profiler -> PCI again. Select the non-Metal card, and write down the ID numbers. You want the Vendor ID and Device ID.
In my case, the HD 5870 is in Slot-1, has a Vendor ID of 1002, with a Device ID of 6898. These are hex numbers, so besides digits, they can contain letters a-f. Note: "1002" is the vendor ID for AMD. Most AMD cards intended for Mac will be 1002. Your ID numbers will likely be different.
Now you need gfxutil which is a command-line utility used to collect PCI-related info from macOS. Download the app package and unzip it. You'll get a folder.
Open Terminal, type "cd " and drag/drop the gfxutil folder into your Terminal window. Note that "cd " has a trailing space.
"cd" means Change Directory. You're setting the path for Terminal to use this folder.
Type "./gfxutil" (return key) to run the utility.
You'll get a longish readout. Scroll up and down it, you're looking for the Vendor ID and Device ID you copied earlier.
Note the second column, 1002:6898 -- that's it. What you want is the final column, after the equal sign "= PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)". This is the internal path to your non-Metal graphics card. Copy the part after the equal sign. You need to enter this path later. This particular path is Slot-1 of a MacPro 5,1 -- it will almost certainly be different for other Macs.
Open Disk Utility. Go to the View menu, make sure the checkmark is beside "Show All Devices". In early macOS versions, this was a popup selector in the Disk Utility window.
Select the device you installed OpenCore to. OCLP is installed on the hidden EFI partition at the beginning of a drive. You need to mount that EFI partition, so you can reach OpenCore's config file.
Note the disk number of your OpenCore volume. In my case it is "disk1".
Now open another Terminal window. Type "sudo diskutil mount /dev/disk" (insert your disk number) "s1" and press return. It will ask for your password. Note: this only works from an Admin user account.
"sudo" means "Superuser Do" - your command is to be executed by the root user. Hence why it wants your password.
"diskutil" is the command-line tool for disk commands. You're telling it to mount the EFI partition, which is always "s1".
With the EFI partition mounted, navigate to it with the Finder.
/EFI/EFI/OC/config.plist is the one you want. The Apple folder is used for firmware updates, you don't want that one. You want the "OC" folder for OpenCore.
Note: make a copy of the config.plist file before starting. If you break the syntax, you can fix it without a reinstall of OCLP.
We are following the "DeviceProperties Method" described on the Hackintosh instructions page.
Open config.plist in a plist editor if you have one, and follow the instructions on the Hackintosh page. Insert the PCI path you copied earlier.
If you don't have a plist editor, use a text editor. Be careful here, syntax and typos can break OpenCore.
Scroll down the config file until you find the DeviceProperties section. Hopefully your non-Metal GPU will already be listed here for compatibility patching. If it isn't, you'll need to do some copy-paste work to edit the proper stuff in. If you've never programmed, borrow someone who has. Or get a plist editor. Warning - easy to break things.
Note: if you do break OpenCore, copy back the safety copy you made of config.plist earlier. If that doesn't do it (or you skipped the safety copy) you can re-install OpenCore Legacy Patcher. Then re-mount the EFI partition and try to edit again.
In my case, the non-Metal card was already listed.
So I deleted most of the dictionary entry below my key, and added the parts to make the card invisible. Using the instructions from the Hackintosh page. I kept the "rebuild-device-tree" command because it was sensible to do so. Not sure if it's actually necessary.
I suspect this makes only graphics cards invisible in Slot-1. Should something else be plugged into Slot-1, like a SATA card, it would probably be visible. Not tested.
Save the edited file and reboot. If you did everything right, then the job is done.
Hold the Option key while booting, so you boot without OpenCore. This is the way to run Snow Leopard through High Sierra. They'll see both cards. SL will either ignore the Metal card, or will run a software-rendered (non-accelerated) display. If so, make sure the menu bar is on the display with drivers, and game away.
OCLP will have left your boot sequence pointed to the EFI partition with OC on it. If you change that while directly booted into an earlier OS, boot with Option held again. Choose the EFI partition with the icon on it. You'll immediately get the OC boot selector, where you can pick your later OS of choice. Boot an OS through OpenCore, and the non-Metal card will be hidden when the boot process finishes.
Oddly, the boot progress bar can show on the non-Metal card until the high-level graphics drivers load. Right before the login screen appears (or it auto-logs in) the non-Metal display will freeze. Everything further will happen on the Metal card.
Monterey boots fine, and shows nothing in Slot-1. Success.
Note my RX 580 has a Device ID of 67df - remember, these are hex codes which can contain letters a-f.
When you reboot with OpenCore, you normally don't hold Option. Just wait - the OC boot selector will come up every time. You have 5 seconds to press a key, or click with the mouse or it will continue the boot. The 5-second delay can be changed by customizing the OCLP settings when you installed it. You can also change it in the config file - search for "<key>Timeout</key>". The integer value right below this is the boot selector timeout, in seconds.
When booting back before Mojave, remember to hold Option during boot, to get the original firmware selector (before OpenCore loads). If you boot Snow Leopard through OpenCore, SL will not see the old card either.
WARNING - if you reinstall OpenCore Legacy Patcher (perhaps to change a setting, or upgrade to a later OCLP version) you will have to repatch the config.plist file to hide your old graphics card again. Suggest leaving OCLP alone, and keeping a copy of your edited config.plist in a safe place. If/when you have to repatch, you can copy across the entry for your graphics card. DO NOT paste in your whole saved config file - it could mess up the newer OCLP installation. Only copy across your GPU entry.
I ran into one anomaly while testing. My older card got stuck with the fan on a high setting. Whatever speed it was running at when OC made it vanish during the boot process. The solution was to put my Mac to sleep, then wake it up. Sleep causes the PCI slots to power down. Killing power to the old card reset it to default - minimal fan.
While back in Snow Leopard, I tried some:
Return to Castle Wolfenstein
Call Of Duty 1
American McGee's Alice
Bugdom 2 (demo)
Not yet tested:
Jedi Knight II
Tomb Raider Anniversary (Demo)
... and many more.
Some of these do work up to Mojave, but most require PPC Rosetta. ie - Snow Leopard.
I haven't been back to Snow Leopard since installing Mojave. It's been a few years. Good times ahead.
Last edited by reader50; Jul 30, 2023 at 02:48 AM.