Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Yeah, that would have been too good .... what is also strange that the panic is seemingly coming from the AMD card. So maybe the type of already installed AMD cards also plays a role here?
 
Unfortunately it doesn't work. I still get exactly the same crash when resuming from sleep:

panic(cpu 16 caller 0xffffff7f989455f2): "[9:0:0][PPLIB] PowerPlay Failed Resume. TTL Error Message: .
"@/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/GPUDriversAMD/GPUDriversAMD-4.2.13/Common/IONDRV/ATI/AMDUniversalFramebuffer/AMDUniversalFramebuffer/Controller/Controllers/AmdRadeonController.cpp:1790

How unfortunate... seemed to be promising.
What card model do you have?
 
In the Hackintosh Forums the problem has been solved by using custom DSDT/SSDTs for ACPI and OpenCore.
What I don't understand is if this could be leveraged for a stock Mac... does anyone have experience with this?

Sources:
 
In the Hackintosh Forums the problem has been solved by using custom DSDT/SSDTs for ACPI and OpenCore.
What I don't understand is if this could be leveraged for a stock Mac... does anyone have experience with this?

Sources:
From what I understood these files are loaded by a macOS loader and change what the BIOS exposes to macOS. Since we have no loader, I doubt we can use this method.

This gave me the idea of seeing what driver the RTX is using, since it's being recognized by macOS.

Screenshot 2020-12-18 at 09.49.44.png
Screenshot 2020-12-18 at 09.50.10.png


So, no kext loaded but there's a driver installed?

Under System/Library/Extensions I couldn't find anything with vga on its name. I thought about renaming the kext/driver, so that macOS couldn't find the appropriate kext and couldn't treat the RTX as a display card, but I haven't tinkered in OSes in decades and I'll progress slowly, if at all.
 
From what I understood these files are loaded by a macOS loader and change what the BIOS exposes to macOS. Since we have no loader, I doubt we can use this method.

This gave me the idea of seeing what driver the RTX is using, since it's being recognized by macOS.

View attachment 1696796View attachment 1696797

So, no kext loaded but there's a driver installed?

Under System/Library/Extensions I couldn't find anything with vga on its name. I thought about renaming the kext/driver, so that macOS couldn't find the appropriate kext and couldn't treat the RTX as a display card, but I haven't tinkered in OSes in decades and I'll progress slowly, if at all.
Use IORegistryExplorer.app to view the IO Registry and see the driver that is attached to that PCIe device.
 
  • Like
Reactions: CatoTheElder
Thanks @joevt.

There doesn't seem to be anything under slot 3:
There's lots of stuff under slot 3:

device: PC03 (third PCI pool - MacPro7,1 has four of these {1: Slot-1, 2: Pool A, 3: Slot-3, 4: Pool B}. Most Macs only have 1. M1 Macs have 3 but ARM instead of ACPI)
driver: AppleACPIPCI

device: BR3A (Slot-3)
driver: IOPP

device: display (pci10de,2204 - the Nvidia GPU, 0x10de is the vendor ID for Nvidia, 0x2204 is the device id for RTX 3090 : https://pci-ids.ucw.cz/read/PC/10de/2204 ).
driver: IONDRVFramebuffer

device: pci10de,1aef@0,1 (Nvidia audio device with no driver attached)


The driver you probably want to replace is IONDRVFramebuffer. Maybe try creating a codeless kext NvidiaRTX.kext containing just an Info.plist in the Contents folder. In the Info.plist, specify a higher probe score than what IONDRVFramebuffer uses, such as 30000. Specify PCI match with 10de:2204 vendor/device id. CFBundleIdentifier and IOClass in the personality should be that of IOService so it does nothing for sleep/wake. You probably need to use IOMatchCategory IOFramebuffer to properly override IONDRVFramebuffer.
 
Last edited:
  • Like
Reactions: CatoTheElder
So I finally got my 3080FE.

The good news:
  • Performs well under windows, roughly about double the performance of a W5700X
  • Easy install, even did not need to disable my 5700X
  • Good thermals, card stays under 75 degrees. Increased noise under full load, but not too bad. Left out the PCI covers under the card to help thermals, no need to adapt MP fans. Card is completely silent when running under macOS
But, the bad news:
  • Sleep does NOT work. While the machine is being able to sleep, it crashes when waking, or even shuts down. However, no crash reports that would help debugging
  • And I have to say, I am a bit underwhelmed with all that raytracing stuff. At lewast with Cyberpunk, you really need to compare screenshots with and without to clearly see the difference (or you need to know where to look for)
So I have no idea why sleep works (alledegly) for one user with almost the same setup but not with mine. So either the info he gave me was just plain wrong, or there are more factors which come into play.

The last thing I am trying right now is to install Big Sur on a separate drive and see if there are any improvements. Not sure if I keep the card, not being able to sleep is a big bummer for me. Damn!

Any more ideas?
 
Last edited:
Edit: so I tried with Big Sur as well, but no improvement. Machine just shuts down on wake, but this time I at least got a crash report, that looks similar to what Cato posted. Well ...
 
Last edited:
I found a very practical tip.

I have an AMD RX 580 card and an RTX 3090

To play FS2020 it must of course be the rtx to have the performance of the GPU.
On the other hand I lose the sound of my LG 5K screen and the sound is shifted to the Mac Pro internal speaker.

Here is what I do.

I launch the game with the screen connected to the RTX.
Once the game is launched I unplug the RTX to connect the AMD to the screen and everything works perfectly.

Yes!!
 
Oh my, it is even worse than I thought, at least for me even display sleep does not work (screen remains blank). So I think the infos we got from here were just plain wrong ... I even would go so far and assume that NONE of those cards result in proper sleep.

Only route left I can imagine now is trying to do some ACPI patches with a bootloader like Clover or Open Core, I think the latter would be the best shot. But I am not sure if I want to try this. Anyone else? ;)
 
  • Like
Reactions: louisitou
The driver you probably want to replace is IONDRVFramebuffer. Maybe try creating a codeless kext NvidiaRTX.kext containing just an Info.plist in the Contents folder. In the Info.plist, specify a higher probe score than what IONDRVFramebuffer uses, such as 30000. Specify PCI match with 10de:2204 vendor/device id. CFBundleIdentifier and IOClass in the personality should be that of IOService so it does nothing for sleep/wake. You probably need to use IOMatchCategory IOFramebuffer to properly override IONDRVFramebuffer.
Any additional help here would be greatly appreciated. I tried to use the plist from IONDRVSupport.kext and adapt it (of course without the binary) and all I get is: "Can't read info dictionary for /Library/Extensions/FAKENVIDIA.kext: IOCFUnserialize: syntax error near line 58"

I admit I have no idea what I am doing, but I want to try ;)
 
Any additional help here would be greatly appreciated. I tried to use the plist from IONDRVSupport.kext and adapt it (of course without the binary) and all I get is: "Can't read info dictionary for /Library/Extensions/FAKENVIDIA.kext: IOCFUnserialize: syntax error near line 58"

I admit I have no idea what I am doing, but I want to try ;)
There's a couple examples of codeless kexts at https://www.insanelymac.com/forum/topic/337363-3rd-party-sata-controller-marvell-asmedia/

I made the attached FakeNvidia.kext. It works for me in Catalina when installed to /Library/Extensions. I don't know if it will work in Big Sur. I don't know if it fixes the sleep problem. You probably have to disable SIP to use it.

The Info.plist file has the IDs for my Titan X (Maxwell) and the RTX 3090. I guess you'll need to add the id for the RTX 3080.
 

Attachments

  • FakeNvidia.kext.zip
    1.7 KB · Views: 241
  • Like
Reactions: CatoTheElder
Hey Joevt, thanks a lot for posting your kext. However, in the containg info.plist, the entry for IOPCIMatch ist just empty. After researching the format for this entry, this should be 0x220610de for the RTX 3080, correct? ("2206" for the RTX 3080, "10de" for NVIDIA). So I entered this value, but the kext does not seem being loaded:

Code:
Version:    1.0.1
  Last Modified:    20.12.20, 03:10
  Bundle ID:    com.joevt.driver.FakeNvidia
  Notarised:    Unknown
  Loaded:    No
  Obtained from:    Not Signed
  Location:    /Library/Extensions/FakeNvidia.kext
  Kext Version:    1.0.1
  Loadable:    No
  Signature Validation Errors:    Not Signed
  Dependencies:    Satisfied
  Signed by:    Not Signed

I also tried with IOPCIPrimaryMatch instead of IOPCIMatch, but no difference. Any idea what I am doing wrong?

Have also attached my current (edited) info.plist version. Any help greatly appreciated!
 

Attachments

  • Info.plist.zip
    1.2 KB · Views: 178
I thought vendor ID is last, and device ID is first? Also, not sure about the ":", did not see it like this in the examples I found.
 
And I have trouble installing it... how did you do it?

Code:
Kext with invalid signature (-67062) denied: /private/var/db/KernelExtensionManagement/Staging/tmp.GCHRH2/1FD7B18E-9C0D-44AE-9F97-8D12E4DD95E3.kext
Bundle (/Library/Extensions/FakeNvidia.kext) failed to validate, deleting: /private/var/db/KernelExtensionManagement/Staging/tmp.GCHRH2/1FD7B18E-9C0D-44AE-9F97-8D12E4DD95E3.kext
Unable to stage kext (/Library/Extensions/FakeNvidia.kext) to secure location.

And it is not signed, but I was unable to do so.
I tried:

Code:
codesign --display --verbose=4 FakeNvidia.kext
 
I did the following to install:

First, copy the kext to "/Library/Extensions", then issue the following terminal commands:

Code:
sudo chmod -R 755 /Library/Extensions/FakeNvidia.kext
sudo chown -R root:wheel /Library/Extensions/FakeNvidia.kext
sudo touch /Library/Extensions
sudo kextcache -update-volume /

Result:

Code:
Kext with invalid signature (-67062) allowed: <OSKext 0x7fdf60e051e0 [0x7fff8fef6cc0]> { URL = "file:///Library/Extensions/FakeNvidia.kext/", ID = "com.joevt.driver.FakeNvidia" }

So it seems the kext is at least incorporated in the kernel cache (but does not actually load). Would there be a problem with signing, you should see an error here. Of course, you need to disable SIP first to do this.
 
I have received an RTX3080 Founders edition today however, I'm yet to receive all the PC components to build my new system.

Could I buy a GPU enclosure and use the card with my Macbook Pro i9 running Windows in Bootcamp? if so, which would be a good enclosure to get?
 
Still not working... here is what I did:
- Downloaded the kext and changed the info.pflist with Xcode, saved it
- Bootet to recovery mode and disabled SIP with "csrutil disable", rebootet to MacOS
- Used terminal to sudo copy the kext to /Library/Extensions
- used above commands to change permissions and update the kextcache
- used "kextstat | grep -v com.apple" to check for non-apple kexts...

But it isn't loaded... anything missing?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.