Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

frankiee

macrumors regular
May 31, 2008
198
94
Yes, it is not loaded, and the question is: why? Maybe still something wrong with the personalities matching?
 

joevt

macrumors 604
Jun 21, 2012
6,963
4,257
Hey Joevt, thanks a lot for posting your kext. However, in the containg info.plist, the entry for IOPCIMatch ist just empty.
It's not empty. It's using more than one line. Use a text editor like BBEdit.app to look at it. It looks like this:
Code:
			<key>IOPCIMatch</key>
			<string>
				0x17c210de&amp;0xffffffff
				0x220410de&amp;0xffffffff
			</string>
The mask of &amp;0xffffffff can be excluded because that's the default (0xffffffff matches every bit).

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,
In my Info.plist, I guess it would be added like this:
Code:
			<key>IOPCIMatch</key>
			<string>0x17c210de 0x220410de 0x220610de</string>

but the kext does not seem being loaded:

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

Are you using Catalina? I use the attached script to install the kext:
Code:
source ~/Downloads/KextUtil.sh
installkext FakeNvidia.kext
rebuildkextcache
then restart.
 

Attachments

  • KextUtil.sh.zip
    1.3 KB · Views: 173

frankiee

macrumors regular
May 31, 2008
198
94
It's not empty. It's using more than one line. Use a text editor like BBEdit.app to look at it. It looks like this:
Code:
            <key>IOPCIMatch</key>
            <string>
                0x17c210de&amp;0xffffffff
                0x220410de&amp;0xffffffff
            </string>
The mask of &amp;0xffffffff can be excluded because that's the default (0xffffffff matches every bit).
Ah, yes you are right. Opened it first in XCode so I did not see this. OK, so I left the existing entries, and added another one for the 3080, like so:

Code:
<string>
    0x17c210de&amp;0xffffffff
    0x220410de&amp;0xffffffff
    0x220610de&amp;0xffffffff
</string>

Are you using Catalina? I use the attached script to install the kext:
Code:
source ~/Downloads/KextUtil.sh
installkext FakeNvidia.kext
rebuildkextcache
then restart.
Yes, am using Catalina. But no matter what install method I use (also tried your script), the kext is accepted for inclusion in the cache, but not loaded. Also I have the following console message when I try to manually load the kext:

Code:
standard    16:15:23.049216+0100    kernel    Notice - new kext com.joevt.driver.FakeNvidia, v1.0.1 matches prelinked kext but can't determine if executables are the same (no UUIDs).

Any ideas?
 

CatoTheElder

macrumors member
May 7, 2020
40
3
I tried your KextUtil script and got the message:
Code:
Kext with invalid signature (-67062) allowed: <OSKext 0x7f9f857ef600 [0x7fff88f5bcc0]> { URL = "file:///Library/Extensions/FakeNvidia.kext/", ID = "com.joevt.driver.FakeNvidia" }

So far, so good. After rebooting the login took a lot longer, and the screen went black in the middle of it. That *felt* different.
But still: kextstat | grep -v com.apple does not yield a result.

Any ideas?
 

frankiee

macrumors regular
May 31, 2008
198
94
So yeah, seems not to load for you as well. No idea what is different with joevt's setup.
 

CatoTheElder

macrumors member
May 7, 2020
40
3
But there is a major difference: sleep mode "kind of" works... at least the display goes off, and "waking up" does not crash it. But it does not really sleep either, at least the lights on the USB components are still on and the computer fans are still audible.
 

frankiee

macrumors regular
May 31, 2008
198
94
UPDATE: seems joevt's solution seems to work anyways! So the messages regardin kext not being loaded may be misleading. I too noticed the longer black screen on boot, so I thought something must have been happened.

So I just put the MP into sleep, and guess what! It woke perfectly! Maybe you just try the same?

Edit: just saw your message, and at least for me it seems that the machine is able to totally shut off.

Maybe others with 30XX sleep problems (apparently that affects all cards) can try this route as well, and see how it works?

Edit2: so there is another hint that this is actually working, just look at the ioRegistryExplorer (screen attached)

Now, the quesion would be if this runs for Big Sur as well, but apparently on Catalina it does!

joevt, you might be the true hero of the day!!! I thank you soooo much!

OK, I will do some further testing, and see if there are any other side effects. Will let you know how it went!
 

Attachments

  • Bildschirmfoto 2020-12-20 um 16.47.43.png
    Bildschirmfoto 2020-12-20 um 16.47.43.png
    52.2 KB · Views: 125

frankiee

macrumors regular
May 31, 2008
198
94
Haha, one second faster than you :) Does yours "really" sleep?
Yes, totally! I.e. fans shut off completely with no noise coming from the machine anymore. Will now try if automatic sleep also works, but manual does definetly. I just tried it several times, and it works perfectly, also wakes up pretty fast (hwoever, taking it into full sleep seems to take a bit longer than before, you might need to wait a bit)
 

frankiee

macrumors regular
May 31, 2008
198
94
Update: while manual sleep works, automatic sleep does apparently not, i.e. only invoking display sleep (but also being able to wake from it). Issuing pmset -g assertions gives me the following:
Code:
Idle sleep preventers: IODisplayWrangler
Not sure if this is due to the FakeNVIDIA kext. Any ideas?
 

joevt

macrumors 604
Jun 21, 2012
6,963
4,257
But still: kextstat | grep -v com.apple does not yield a result.
kextstat doesn't show codeless kexts because a codeless kext points at a different binary for the code. In this case, we are using the binary that includes the IOService driver, which is the base for all other drivers. The binary is com.apple.kpi.iokit.

Edit2: so there is another hint that this is actually working, just look at the ioRegistryExplorer (screen attached)
Yes, ioreg -rn FakeNvidia will tell you if it got loaded.
 
  • Like
Reactions: CatoTheElder

joevt

macrumors 604
Jun 21, 2012
6,963
4,257
Update: while manual sleep works, automatic sleep does apparently not, i.e. only invoking display sleep (but also being able to wake from it). Issuing pmset -g assertions gives me the following:
Code:
Idle sleep preventers: IODisplayWrangler
Not sure if this is due to the FakeNVIDIA kext. Any ideas?
There must be some driver that is modifying the properties of the GPU device without attaching to the GPU device (for example, the name is changed to "display", and there's properties like "connector-type", "hda-gfx", and "NVDAType").

I would try removing all the NVIDIA drivers, starting with NVDAStartup by itself. Restart. Test. If good then stop, else also remove NVDAResman.

NVDAStartup matches GPUs belonging to Nvidia. It sets "NVDAType" to "Official". I guess it must also set it to "Unsupported" when it sees that the GPU is not supported.
 
  • Like
Reactions: CatoTheElder

joevt

macrumors 604
Jun 21, 2012
6,963
4,257
About the IODisplayWrangler,
the following command
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a
may include the Nvidia GPU in the GPUWrangler section and displaypolicy. Hopefully, removing the NVDAStartup kext will remove that.
 
  • Like
Reactions: CatoTheElder

CatoTheElder

macrumors member
May 7, 2020
40
3
Yes, ioreg -rn FakeNvidia will tell you if it got loaded.
OK, understood - thanks. And by the way... thanks for all your support, you have been of great help!

What do you make of this though? It says !registered and !matched... (but obviously it somehow worked)

Code:
ioreg -rn FakeNvidia
+-o FakeNvidia  <class IOService, id 0x100000aae, !registered, !matched, act$
    {
      "IOProbeScore" = 30000
      "CFBundleIdentifier" = "com.apple.kpi.iokit"
      "IOProviderClass" = "IOPCIDevice"
      "IOClass" = "IOService"
      "IOMatchCategory" = "IOFramebuffer"
      "IOPCIMatch" = "                 0x17c210de&0xffffffff         0x220410de&0xffffffff     $
      "IOName" = "FakeNvidia"
      "IOPersonalityPublisher" = "com.joevt.driver.FakeNvidia"
      "CFBundleIdentifierKernel" = "com.apple.kpi.iokit"
    }
 

CatoTheElder

macrumors member
May 7, 2020
40
3
Oh, and in the meantime I have tested the MSI 3090 Ventus that - according to some other user - should work with sleep mode.
However: it does not. Same error as with all the other cards... so I will stick with the "FakeNvidia" solution.
 

joevt

macrumors 604
Jun 21, 2012
6,963
4,257
OK, understood - thanks. And by the way... thanks for all your support, you have been of great help!

What do you make of this though? It says !registered and !matched... (but obviously it somehow worked)

Code:
ioreg -rn FakeNvidia
+-o FakeNvidia  <class IOService, id 0x100000aae, !registered, !matched, act$
    {
      "IOProbeScore" = 30000
      "CFBundleIdentifier" = "com.apple.kpi.iokit"
      "IOProviderClass" = "IOPCIDevice"
      "IOClass" = "IOService"
      "IOMatchCategory" = "IOFramebuffer"
      "IOPCIMatch" = "                 0x17c210de&0xffffffff         0x220410de&0xffffffff     $
      "IOName" = "FakeNvidia"
      "IOPersonalityPublisher" = "com.joevt.driver.FakeNvidia"
      "CFBundleIdentifierKernel" = "com.apple.kpi.iokit"
    }
Type ioreg. You can see that many entries are not registered and not matched.
I believe an IOService needs to be registered if it is to have children automatically match with it. However, an unregistered IOService can make its own children.

In my ioreg, only the following exist:
Code:
registered, matched
!registered, !matched
It seems to be that if a IOService is not registered, then matching won't happen and therefore matched is always false in that case.
When the IOService is registered, then matching can happen, and when all the matching is done, then matched is true.
The source code for IOService is available at opensource.apple.com
 
  • Like
Reactions: startergo

Jupiter-8

macrumors newbie
Oct 27, 2019
12
4
California
The Mac Pro's fans ramp up during Cyberpunk but it's not because of the RTX, it's because of the CPU. It's one of the few games that scales well to multiple cores and with ray tracing involved (which also uses multiple threads) it gets the CPU to toasty temperatures. My 16 core Mac Pro hovers around 40% CPU usage, all nicely divided between the cores, and the CPU gets to around 70 celsius.

That being said, I just don't care about the fan noise for this particular game. Sometimes the game is absolutely breathtaking. I'm playing all paths simultaneously on an Xbox Series X, PS5 and the Mac Pro (yeah, I'm that much of a nerd). Ray tracing makes a huge difference and I'm getting a consistent 60FPS only on the Mac (the consoles bog down in some parts of the game, even with much lower graphical settings).
Yep. You're totally right. The fan noise is simply to tame the excellent scaled CPU usage. It looks and plays beautifully on this setup. I'm getting a buttery smooth 60fps (v-sync) at 4K resolution (with Digital Foundry settings).

1-2 weeks in and I'm absolutely loving the ASUS 3090 TUF OC in my 16-core Mac Pro. I ended up leaving the card voltage settings at stock. I also didn't touch the Mac Pro fan settings either. Everything is out-of-the-box "default". During gaming/full CPU load, the Mac Pro fan noise really doesn't bother me at all. Heck, if you've ever played any last-gen gaming console and had to put up with a relentless jet engine, then the gentle whirr from a fully loaded Mac Pro is pretty zen and soothing by comparison. If it bothers you, then you can follow Alex's excellent tips on undervolting along with custom Mac Pro fan settings.

I've also been loving the Moshi USB-C to DisplayPort Cable (from the Apple Store). It doesn't require any connector shaving/hacks to fit into the DisplayPort on the card and it looks premium alongside the Pro Display XDR. I've come to realize that the lack of brightness functionality in Windows 10 isn't an issue for my setup. I just make sure my brightness is set to max in macOS before booting into Boot Camp and it's ready for max brightness gaming. Easy.

My Belkin Charge and Sync Cable (for Huawei VR Glass) arrived from China but I'm not crazy about it TBH. The outer cable sheath does that weird rippled (saggy skin-like) bending that some cables do. I also don't like the plastic connector (that will need shaved/hacked) to fit into the DisplayPort on the card. The whole cable feels cheap - and yes, it's a Belkin genuine cable. The cable is also REALLY long. This might be really good for some setups, but it just looks messy under my desk. I'll probably sell it on and continue to use the Moshi cable.

As much as "Cyperpunk 2077" and other titles such as "Control" look mind-bindingly amazing, I've been mostly floored/blown away by digging into the world of emulation. "Breath of the Wild" on Cemu (Wii U Emulator) at 4K/60fps (v-sync) is simply stunning.

PS. Since installing Amphetamine (Mac App) I haven't had a single issue with sleep issues/black screen of death under macOS.
 
Last edited:

frankiee

macrumors regular
May 31, 2008
198
94
Yep. You're totally right. The fan noise is simply to tame the excellent scaled CPU usage. It looks and plays beautifully on this setup. I'm getting a buttery smooth 60fps (v-sync) at 4K resolution (with Digital Foundry settings).

Interesting, for me it was more like the middle fan that was relatively loud. And at the same time the 3080s fans were relatively low, so it felt like the MPs fans were doing the work for the GPU. First, I nailed the middle fan to 500RPM (by using macs fan control) and then the 3080 fans really ramped up, to the point of being annoying. To balance things out I have set the middle fan to 750RPM, so it delivers enough fresh air to the GPU, and also helps with overall cooling. Also I removed some PCI covers to help the 3080 FE airflow.

The result is that now, while all fans ramp do up when being under load (also cyberpunk in my case ;) none of them do so much that is really loud or annoying. GPU still stays under 75 degrees all the time (Cap is always power limit, not temps) and I guess I even have some headroom for overclocking without the machine getting really loud.

Resume: the MP 7,1 is one of the most silent gaming PCs on the market ;)

(and that while being air cooled!)

PS. Since installing Amphetamine (Mac App) I haven't had a single issue with sleep issues/black screen of death under macOS.

You also could go with the FakeNVIDIA kext discussed in this thread. So, you get at least display sleep back, and also manual full sleep without any crashes. Only thing not working right now is autosleep, but as soon as I have some time I try to find a solution (also thanks again to joevt for all his work and help!)
 

DrEGPU

macrumors regular
Apr 17, 2020
192
82
How’s the sound/noise of the RTX 3090 in the Mac Pro 7,1? Sorry, I haven’t read all 14 pages of this thread! :)
 

frankiee

macrumors regular
May 31, 2008
198
94
If you mean the 3090 FE: it won't fit anyways, so stay away. If you have some 3rd party 3090, it depends on the manufacturers cooling solution. All I can say ist that the 3080 FE is quite good with noise levels, but you may need to tweak the MP fan settings to get best results (see my post above).
 

DrEGPU

macrumors regular
Apr 17, 2020
192
82
I have 2x Zotac RTX 3090’s in my current workstation. Moving them to the Mac Pro and was curious. They’re not too loud in my Lian Li O11-XL so I figured they’d probably be ok in the Mac Pro, which is arriving next week for me.
 

frankiee

macrumors regular
May 31, 2008
198
94
Yeah, the MP should be able to handle it (not sure about 2x 3090 though, are there enough power connectors?)

The main problem is more on the macOS side, where you will definetly loose some sleep / power management abilities. Hope this also can be solved / improved.
 

DrEGPU

macrumors regular
Apr 17, 2020
192
82
There are enough power connectors (just!). Sleep isn’t so important for me. I find sleep to be troublesome no matter what device or OS I use, with the exception iOS devices. (I’m sure android works well, but I’m locked into iOS).
 

DrEGPU

macrumors regular
Apr 17, 2020
192
82
Well, neither the Zotac trinity 3090 nor the gigabyte gaming oc 3090 fit. Time to do some trimming!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.