Jump to content

R9 290X Help for mavericks


TechGuru
 Share

473 posts in this topic

Recommended Posts

I've got two machines both with Asrock Fatali1ty z78 Killer MB.

 

One of my computers has two liquid cooled MSI r9 290x Gamers. This computer has 3 1080p monitors and one 720p (on an active DP converter). That machine is a i5 4670K.

 

The other computer has a MSI Lightning and gigabyte Windforce 3 and xeon 1230v3 CPU. That computer has a 1440p monitor (x-star) and a 1080p HDTV.

 

Anyway, following this thread and trying various things. I've noticed various things.

 

First off, changes to CSM (compatibility support module) in BIOS effect which ports work and which cause a black-screen.

 

Without any patches, whatsoever,  I can get 1 monitor in the primary card and it can be dual-link abet if its dual-link I get the flicker fixed by the sleep/wake. 

 

I can get up two 3 monitors working on the secondary card. 

 

I can also get the 1440p monitor working on the secondary card WITHOUT flicker and needing sleep/wake.

 

using the codes from #397:

 

I can get two monitors on the primary card. One can be DP - only if CSM is disabled. If CSM is enabled the DP does not work but one of the DVI ports does. 

 

I can also put 2 cards on the secondary card but no DP regardless of the CSM setting. 

 

And with those codes dual-link does not seem to work at all regardless of the CSM setting. 

 

Hope these observations help! Thanks!

Link to comment
Share on other sites

I've got two machines both with Asrock Fatali1ty z78 Killer MB.

 

One of my computers has two liquid cooled MSI r9 290x Gamers. This computer has 3 1080p monitors and one 720p (on an active DP converter). That machine is a i5 4670K.

 

The other computer has a MSI Lightning and gigabyte Windforce 3 and xeon 1230v3 CPU. That computer has a 1440p monitor (x-star) and a 1080p HDTV.

 

Anyway, following this thread and trying various things. I've noticed various things.

 

First off, changes to CSM (compatibility support module) in BIOS effect which ports work and which cause a black-screen.

 

Without any patches, whatsoever,  I can get 1 monitor in the primary card and it can be dual-link abet if its dual-link I get the flicker fixed by the sleep/wake. 

 

I can get up two 3 monitors working on the secondary card. 

 

I can also get the 1440p monitor working on the secondary card WITHOUT flicker and needing sleep/wake.

 

using the codes from #397:

 

I can get two monitors on the primary card. One can be DP - only if CSM is disabled. If CSM is enabled the DP does not work but one of the DVI ports does. 

 

I can also put 2 cards on the secondary card but no DP regardless of the CSM setting. 

 

And with those codes dual-link does not seem to work at all regardless of the CSM setting. 

 

Hope these observations help! Thanks!

You do realize the reason why the DP doesn't work with CSM enabled right? its because CSM is used for legacy support which is reading the DVis or your cards

Link to comment
Share on other sites

You do realize the reason why the DP doesn't work with CSM enabled right? its because CSM is used for legacy support which is reading the DVis or your cards

Actually, DP works on primary card if I have CSM enabled, otherwise I think one of the other DVI ports works.

 

However it works, I'm glad it does so that I can have all monitors enabled. I would probably be better off with an active HDMI/VGA converter for my small 19" accessory monitor. That needs 15pin analog. 

 

I do loose CrossFire under windows but it really never works right anyway. In time hopefully all ports can be made to work some day. 

 

Thanks for the info!

Link to comment
Share on other sites

Okay, the verdict is in...

 

The active DVI-DL to DisplayPort adapter works! I don't have to do the unplug/replug or sleep/wake cycle anymore to fix the flashing upon boot. Works out-of-the-box with no issues whatsoever AND there's no need to patch the framebuffer either (full acceleration). This is the adapter I'm using but it costs $60 on Amazon - I got mine for $34~ on eBay (factory refurbished).

 

One tip though if anyone else goes this route, make sure you purchase a wall USB adapter to power the adapter as there's reviews claiming that a computer's USB ports may not be sufficient enough to supply enough power for 100% stability. I personally bought the 12w Apple USB adapter for this, works perfectly.

  • Like 1
Link to comment
Share on other sites

Okay, the verdict is in...

 

The active DVI-DL to DisplayPort adapter works! I don't have to do the unplug/replug or sleep/wake cycle anymore to fix the flashing upon boot. Works out-of-the-box with no issues whatsoever AND there's no need to patch the framebuffer either (full acceleration). This is the adapter I'm using but it costs $60 on Amazon - I got mine for $34~ on eBay (factory refurbished).

 

One tip though if anyone else goes this route, make sure you purchase a wall USB adapter to power the adapter as there's reviews claiming that a computer's USB ports may not be sufficient enough to supply enough power for 100% stability. I personally bought the 12w Apple USB adapter for this, works perfectly.

if you don't patch the framebuffer you are using generic framebuffer and not the actual one you need, don't get me wrong the generic framebuffer isn't that bad

Link to comment
Share on other sites

Geez, great work Pavo! What kext needs to be patched for this? The 8000Controller? Does this go in the regular clover kextstopatch section?

Well since 290x's device id is in the AMD8000Controller.kext thats the one you have to patch, I haven't been able to get Clover to patch this on the fly yet, still working on that

Link to comment
Share on other sites

If you get Clover patching on-the-fly working, I'll give the framebuffer a try. :)

 

I now have 290X and ATY, Baladi and Ddual-link DVI with no flicker (needing wake/sleep) on my primary card (290x Lightning). Not using any sort of adapters or binary modified kext. I have FakeSMC and AttherosE2000Eternet.kext.

 

 

Its very nice, but I don't know what I did different this time to make it work :/ 

 

here is my relevant config....

<key>Graphics</key>
	<dict>
		<key>DualLink</key>
		<integer>1</integer>
		<key>FBName</key>
		<string>Baladi</string>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<true/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>VRAM</key>
		<integer>4096</integer>
		<key>VideoPorts</key>
		<integer>5</integer>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>ATIConnectorsController</key>
		<string>8000</string>
		<key>ATIConnectorsData</key>
		<string>000400000403000000010300120403030004000004030000000101001102010100040000040300000001020021030202000400000403000000010400220504040004000004030000000105001000050500040000040300000001060020010606</string>
		<key>ATIConnectorsPatch</key>
		<string>000800000400000000010300220503030004000004000000000101002103010200040000040000000001020012040201040000000400000000010400010204040400000004000000000105000000050600040000040000000001060020010605</string>
		<key>AppleRTC</key>
Link to comment
Share on other sites

That patch works for me when using DVI-DL. The only issue is the second stage load bar is on the bottom l

 

That patch works for me when using DVI-DL. The only issue is the second stage load bar is on the bottom left.

 

and I can run a HDMI 1080p on the HDMI port :)

 

 

Link to comment
Share on other sites

 

I now have 290X and ATY, Baladi and Ddual-link DVI with no flicker (needing wake/sleep) on my primary card (290x Lightning). Not using any sort of adapters or binary modified kext. I have FakeSMC and AttherosE2000Eternet.kext.

 

 

Its very nice, but I don't know what I did different this time to make it work :/ 

 

here is my relevant config....

<key>Graphics</key>
	<dict>
		<key>DualLink</key>
		<integer>1</integer>
		<key>FBName</key>
		<string>Baladi</string>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<true/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>VRAM</key>
		<integer>4096</integer>
		<key>VideoPorts</key>
		<integer>5</integer>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>ATIConnectorsController</key>
		<string>8000</string>
		<key>ATIConnectorsData</key>
		<string>000400000403000000010300120403030004000004030000000101001102010100040000040300000001020021030202000400000403000000010400220504040004000004030000000105001000050500040000040300000001060020010606</string>
		<key>ATIConnectorsPatch</key>
		<string>000800000400000000010300220503030004000004000000000101002103010200040000040000000001020012040201040000000400000000010400010204040400000004000000000105000000050600040000040000000001060020010605</string>
		<key>AppleRTC</key>

I just get a black screen after first stage boot with this and my dl-dvi monitor

Link to comment
Share on other sites

maybe try the other port. Lightning != standard PCB

I tried both dvi ports.

Both your method and pavo's patches just result in a black screen (basically any time I try to use baladi instead of futomaki or whatever that default framebuffer is).

I can use vnc and log in but the screen stays black no matter what.

It'll be interesting to see if this develops further

Link to comment
Share on other sites

I've got Clover patching-on-the-fly working. I am using rev. 3128 currently. I will post my config snippets later today with Pavo's patch.

 

edit:

Below are the relevant snippets. These snippets work on a Z77X-UD5H v1.0 board with a Sapphire Tri-X O/C R9 290X w/ 4GB VRAM (Hawaii XT Prototype). The switch on the card must be switched to UEFI mode to work properly (even then I recommend to run as much as possible in UEFI). I tested only HDMI at the moment, but will test DP soon as I have a converter for this. Tested on 10.10.2. This gives me no flickering or the need to replug my monitor. Only glitch is in second stage boot with the loading bar on bottom left, but that is a common issue and fine with me.

 

edit 2: I updated the second code block, because AppleRTC patch has nothing to do with video patch (forgot to delete that thingy).

 

Graphics section:

<key>Graphics</key>
<dict>
	<key>DualLink</key>
	<integer>1</integer>
	<key>FBName</key>
	<string>Baladi</string>
	<key>Inject</key>
	<dict>
		<key>ATI</key>
		<true/>
		<key>Intel</key>
		<false/>
		<key>NVidia</key>
		<false/>
	</dict>
	<key>VRAM</key>
	<integer>4096</integer>
	<key>VideoPorts</key>
	<integer>4</integer>
</dict>

Kernel and Kext patches section:

<key>KernelAndKextPatches</key>
<dict>
	<key>ATIConnectorsController</key>
	<string>8000</string>
	<key>ATIConnectorsData</key>
	<string>000400000403000000010300120403030004000004030000000101001102010100040000040300000001020021030202000400000403000000010400220504040004000004030000000105001000050500040000040300000001060020010606</string>
	<key>ATIConnectorsPatch</key>
	<string>000800000402000000010200220502030004000004030000000101011204010100040000040300000001020021030202040000001402000000010300110203040004000004030000000105001000050500020000040200000001040110000406</string>
        ... Any other 'regular' patches...
</dict>
Edited by MacFaulty
Link to comment
Share on other sites

Just wanted to report I finally got Clover to inject the FB, everything is working perfectly now, the binary patch I posted is still working with all ports and with HDMI audio for the R9 290x 8Gb which is in my Sig, now it might behave differently on a different card dunno. Now just gotta figure out how to patch the info.plist for AppleGraphicsPowerManagement.kext to replace GFX0 to PEGP and then patch AppleLPC.kext to replace 8c44 to 8cc4 anyone have any ideas to do this with Clover? I know I can do it with DSDT but I don't like patching DSDT

  • Like 1
Link to comment
Share on other sites

Just wanted to report I finally got Clover to inject the FB, everything is working perfectly now, the binary patch I posted is still working with all ports and with HDMI audio for the R9 290x 8Gb which is in my Sig, now it might behave differently on a different card dunno. Now just gotta figure out how to patch the info.plist for AppleGraphicsPowerManagement.kext to replace GFX0 to PEGP and then patch AppleLPC.kext to replace 8c44 to 8cc4 anyone have any ideas to do this with Clover? I know I can do it with DSDT but I don't like patching DSDT

ACPI->DSDT->Fixes->FakeLPC_0020=true

No other ways exists.

Link to comment
Share on other sites

 Share

×
×
  • Create New...