Jump to content

AMD R9 390 Framebuffer issue on 10.12 Sierra


Si Vis Pacem
 Share

14 posts in this topic

Recommended Posts

Heya guys,

 

anybody managed to get a R9 390 non-X 8GB working - Sapphire Nitro in my case?

 

my fully working patch for El Cap doesn't work even after modifying it to fit the new pattern with the insert of the zeroes.

 

 

Thanks in advance!

 

p.s.

 

This is my El Cap patch. Heaven 2560x1080 minimum of 25 fps with very high settings.

Patched Baladi framebuffer AMD8000Controller.kext working

NOTICE THIS LITTEL GUY	 |
			 v
00080000 04020000 00010101 22050403	changing from 00010100 to  00010101 here
00040000 04030000 00010200 12040101 
00040000 04030000 00010300 10000205 
00040000 04030000 00010400 20010306 
04000000 14020000 00010500 11020504 
00040000 04030000 00010600 20010606

Sierra patch not working

Sierra Baladi patch NOT working

00080000 04020000 00010101 00000000 22050403 00000000 
00040000 04030000 00010200 00000000 12040101 00000000 
00040000 04030000 00010300 00000000 10000205 00000000 
00040000 04030000 00010400 00000000 20010306 00000000 
04000000 14020000 00010500 00000000 11020504 00000000 
00040000 04030000 00010600 00000000 20010606 00000000
Link to comment
Share on other sites

Sometime one bangs his/her head so hard against a problem that the simple stuff gets ignored.

 

Solution was to set primary gpu to iGPU in Bios - used 32m/128m - init internal first.

 

Et voilá! It works. AMDX4000 gets loaded and Heaven Benchmark seems about the same as in El Capitan.

 

p.s.: I am using AtiInjection, injected DeviceID 0x67B11002 in AMD8000Controller and AMDX4000 under Hawaii and patched Baladi framebuffer - and gets loaded according to DPCI-Manager :)

 

Thanks to Pavo & Co for their work!

Link to comment
Share on other sites

  • 2 weeks later...

Sometime one bangs his/her head so hard against a problem that the simple stuff gets ignored.

 

Solution was to set primary gpu to iGPU in Bios - used 32m/128m - init internal first.

 

Et voilá! It works. AMDX4000 gets loaded and Heaven Benchmark seems about the same as in El Capitan.

 

p.s.: I am using AtiInjection, injected DeviceID 0x67B11002 in AMD8000Controller and AMDX4000 under Hawaii and patched Baladi framebuffer - and gets loaded according to DPCI-Manager :)

 

Thanks to Pavo & Co for their work!

 

Hi Loco.. I'm kinda of a noob on hackintoshes so please be patient. I'm trying to get my MSI 390 (non-X) to work on my newly Sierra installation but I'm kinda new to this patching world. Also I do my plist edits with CC.

 

I'm very interested in this line of your post I am using AtiInjection, injected DeviceID 0x67B11002 in AMD8000Controller and AMDX4000 under Hawaii and patched Baladi framebuffer

 

In clover plist I have put the same fake ID and have ticked ATI injection and that get my card recognised by the system but with 5 MB of memory, I cannot change the resolution and there's tearing everywhere. If you could please explain how you did it I'd be really thankful. The patching is done in Clover? why do you say you inject the ID into 2 kexts? Maybe there's a tutorial you can point me to. Thanks

Link to comment
Share on other sites

Hey there!

 

First of all I use an Ozmosis Bios Mod so Injection works a bit different for me.

 

There is a thread especially for your case:

 

[HOW TO] Modification of AMD FB + Clover injection

 

 

In essence you have to perform these steps:

 

1. iGPU as primary graphics device in Bios

 

2. Enable AtiInjection

 

3. Force FrameBuffer to be used - In the case of the non-x R9 390 it is Baladi

 

4. Patch the AMD8000Controller.kext/Contents/MacOs/AMD8000Controller with either perl or a hex editor - e.g. Hex Fiend.

sudo open -a "Hex Fiend" /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOs/AMD8000Controller

4.a) Find this

00040000 04030000 00010300 00000000 12040303 00000000 00040000 04030000 00010100 00000000 11020101 00000000 00040000 04030000 00010200 00000000 21030202 00000000 00040000 04030000 00010400 00000000 22050404 00000000 00040000 04030000 00010500 00000000 10000505 00000000 00040000 04030000 00010600 00000000 20010606 00000000

Every connector is Display-Port

 

 

4. b ) Replace with this

00080000 04020000 00010101 00000000 22050403 00000000 00040000 04030000 00010200 00000000 12040101 00000000 00040000 04030000 00010300 00000000 10000205 00000000 00040000 04030000 00010400 00000000 20010306 00000000 04000000 14020000 00010500 00000000 11020504 00000000 00040000 04030000 00010600 00000000 20010606 00000000

One HDMI, One DVI, rest Display-Port

 

 

4.c) To be able to save the changes, you have to 

sudo chown <Username> /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOs/AMD8000Controller

4.d) Change ownership back to root:wheel by 

sudo chown 0:0 /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOs/AMD8000Controller

5.) Add 0x67B11002 in AMDRadeonX4000.kext

sudo nano /System/Library/Extensions/AMDRadeonX4000.kext/Contents/Info.plist
<key>IOPCIMatch</key>
<string>0x67B01002 0x67B11002</string>
...
		</dict>
		<key>AMDHawaiiGraphicsAccelerator</key>
		<dict>
			<key>ATIEnableWideBlitSupport</key>
			<true/>
			<key>ATIUseTearingWideBlit</key>
			<false/>
			<key>CFBundleIdentifier</key>
			<string>com.apple.AMDRadeonX4000</string>
			<key>GpuDebugPolicy</key>
			<integer>0</integer>
			<key>IOClass</key>
			<string>AMDHawaiiGraphicsAccelerator</string>
			<key>IODVDBundleName</key>
			<string>AMDRadeonVADriver</string>
			<key>IOKitDebug</key>
			<integer>0</integer>
			<key>IOMatchCategory</key>
			<string>IOAccelerator</string>
			<key>IOPCIMatch</key>
			<string>0x67B01002 0x67B11002</string>
			<key>IOProbeScore</key>
			<integer>200</integer>
			<key>IOProviderClass</key>
			<string>IOPCIDevice</string>
			<key>IOSourceVersion</key>
			<string>0.0.0.0.0</string>
			<key>IOVARendererID</key>
			<integer>16908288</integer>
		</dict>
		<key>AMDPitcairnGraphicsAccelerator</key>
		<dict>
...

6. Add device ID 0x67B11002 in AMD8000Controller.kext

sudo nano /System/Library/Extensions/AMD8000Controller.kext/Contents/Info.plist
<string>AMD8000Controller</string>
<key>IOPCIMatch</key>
<string>0x45001002 0x46001002 0x66401002 0x66411002 0x66461002 0x66471002 0x66501002 0x66511002 0x665C1002 0x665D1002 0x67B01002 0x67B11002</string>

7. Delete prelinked-kernel and kernelcache. Update caches.

sudo rm /System/Library/PrelinkedKernels/prelinkedkernel
sudo rm /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

8. Reboot

 

 

Little advice:

 

Make sure to connect both the iGPU port and the R9 390 to the display and change input as necessary in the OSD of the display.

 

If you boot via timeout to macOS you can just boot blind and wait for the R9 to be initiated for login. Otherwise you have to first use the iGPU connection with your display and change to R9 390 later.

Link to comment
Share on other sites

Hello, i have a question and hope you can help me! 

i have dual monitor setup. for now i have 1 in my motherboard and 1 in my gpu. 
i boot with the IGPU. everything boots fine. but how do i get my gpu to work now? 

 

And another question, I'm dual booting so... does this solution mean that i have to change my bios settings every time i want to use windows with my gpu?

Thanks mates  :D

  • Like 1
Link to comment
Share on other sites

Hello, i have a question and hope you can help me!

 

i have dual monitor setup. for now i have 1 in my motherboard and 1 in my gpu.

i boot with the IGPU. everything boots fine. but how do i get my gpu to work now?

 

And another question, I'm dual booting so... does this solution mean that i have to change my bios settings every time i want to use windows with my gpu?

Thanks mates :D

Yes, you have to. Your card should be read by one of your two monitors. Like one reads IGPU and the other reads the other card

Link to comment
Share on other sites

  • 1 month later...

Just follow VLADAs guide:

 

Click me

 

You really need to understand the steps to be able to reproduce them if something changes.

 

Good luck!

Hi, again

 

I made r9 390 work in Sierra now :))

 

But the LuxMark test showed me this card's clock is only 105mhz.

 

And the result point is only 9xxx. Usually 16xxx in El Capitan.

 

Can you check yours?

 

Thank you!!

Link to comment
Share on other sites

  • 1 month later...

What are my options if I don't have an iGPU (because x79 platform) but I have two R9 290 (non-x) running on Clover and Sierra 10.12.3 ?

I can't get it to show any more than 7MB of VRAM and I've tried many different Clover combos. 

 

Thanks! 

 

You need to patch the framebuffer and inject the deviceIDs into the proper kexts info.plist.

Link to comment
Share on other sites

  • 4 months later...
 Share

×
×
  • Create New...