Contribute
Register

[solved] AMD R9 M375X; low color depth on laptop display

Status
Not open for further replies.
Joined
May 9, 2012
Messages
151
Motherboard
Acer Predator PH517-51
CPU
i7 8750H
Graphics
GTX 1070 G-Sync Panel
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. Android
Hey so I need help working out the color depth issues I am having on my laptop using the amd gpu in my system. I have a dell precision 7510 that has "switchable graphics" but I have the iGPU turned off in the bios. So I am only using the AMD card right now in Mac. I have never been able to get the color banding to go away unless I spoof a 8000 or 6000 card and it fails to load the framebuffer, then the color banding is gone; but no acceleration. It's a cape verde card so it requires either the AMDx4000 kext modification or whatevergreen.kext with boot argument "radpg=15" or it will black screen. I also modified the Buri framebuffer to use eDP so it displays correctly on my laptop display. But I have color depth issues, gradients look horrible.. The system report shows 30-bit color depth but it's defiantly not 30bit (10bit per color). It's more like 6bit color haha..

There is like 0% community work on the R9 M375X so it's been difficult to find help for this issue.. I don't have to spoof id; because my cards id: 68201002 is in the AMD7000Controller natively.

I attached my system error reporting files below; as well as my framebuffer modification work (amd bios and AMD7000Controller modifications).
 

Attachments

  • Error Reporting.zip
    2.5 MB · Views: 75
  • AMD Work.zip
    56.6 KB · Views: 162
Hey so I need help working out the color depth issues I am having on my laptop using the amd gpu in my system. I have a dell precision 7510 that has "switchable graphics" but I have the iGPU turned off in the bios. So I am only using the AMD card right now in Mac. I have never been able to get the color banding to go away unless I spoof a 8000 or 6000 card and it fails to load the framebuffer, then the color banding is gone; but no acceleration. It's a cape verde card so it requires either the AMDx4000 kext modification or whatevergreen.kext with boot argument "radpg=15" or it will black screen. I also modified the Buri framebuffer to use eDP so it displays correctly on my laptop display. But I have color depth issues, gradients look horrible.. The system report shows 30-bit color depth but it's defiantly not 30bit (10bit per color). It's more like 6bit color haha..

There is like 0% community work on the R9 M375X so it's been difficult to find help for this issue.. I don't have to spoof id; because my cards id: 68201002 is in the AMD7000Controller natively.

I attached my system error reporting files below; as well as my framebuffer modification work (amd bios and AMD7000Controller modifications).

Look into EDID patching...
 
Look into EDID patching...
Thanks for the reply, do you have any good guides for EDID patching? Or something to point me in the right direction?
 
Thanks for the reply, do you have any good guides for EDID patching? Or something to point me in the right direction?

No experience with AMD Radeon.
Note your profile does not mention AMD graphics, yet you seem to be asking about it...
Please fix your profile to accurately reflect your hardware configuration.
 
No experience with AMD Radeon.
Note your profile does not mention AMD graphics, yet you seem to be asking about it...
Please fix your profile to accurately reflect your hardware configuration.
Oops sorry about that; updated it now.

I have tried many different things to get this working... and nothing has worked.
If i just use the iGPU and bios disable the AMD GPU then the color depth is fine in mac, but if I disable the iGPU and use just the AMD gpu I have color depth issues.. I tested in windows and Ubuntu and with just the AMD gpu and everything is fine.

If I use Lilu + whatevergreen + radpg=15 + inject ati=no ; the system boot and system report shows AMD R9 M375 but still color issues... (this loads the default AMDFramebuffer)
If I boot with just a modified amdx4000.kext (for power gating issues) + inject ati = yes + buri framebuffer + port modifications to my system, the system reports AMD 7700 and still color issues...

Both ways I have full graphic acceleration.. but color depth issues on the AMD gpu. The only time I didn't have color depth issues is if I spoofed a 6000 or 8000 AMD gpu and the 7000 doesn't load then the color depth issues are gone but no acceleration obviously because my card belongs in the AMD7000Controller. In ioregistryexplorer no amd controller is loaded but the laptop monitor still works if the framebuffers ports config is correct for my laptop screen.

It makes me think that the power gating issues with cape verde gpus are causing the color depth issues. And this issue is tied to the AMD7000Controller.

I also extracted my EDID from my display and tried injecting it but this did nothing.

I have two questions:
I know this probably isn't recommend but could I add my device id: 68201002 to the 8000Controller to try and load from that kext?

And also, a in-general framebuffer question; do the different amd framebuffers only handle port configuration? Or more? My point behind this, there are about 15 different AMD7000Controller framebuffers, would trying all the different framebuffers (some needing port configurations changes for my laptop) yield maybe a different color depth result? But if the framebuffers only handle port configuration it would be a waste of time to configure them all and try them..

Sorry that was long.. thanks for any help or advice
 
Oops sorry about that; updated it now.

I have tried many different things to get this working... and nothing has worked.
If i just use the iGPU and bios disable the AMD GPU then the color depth is fine in mac, but if I disable the iGPU and use just the AMD gpu I have color depth issues.. I tested in windows and Ubuntu and with just the AMD gpu and everything is fine.

If I use Lilu + whatevergreen + radpg=15 + inject ati=no ; the system boot and system report shows AMD R9 M375 but still color issues... (this loads the default AMDFramebuffer)
If I boot with just a modified amdx4000.kext (for power gating issues) + inject ati = yes + buri framebuffer + port modifications to my system, the system reports AMD 7700 and still color issues...

Both ways I have full graphic acceleration.. but color depth issues on the AMD gpu. The only time I didn't have color depth issues is if I spoofed a 6000 or 8000 AMD gpu and the 7000 doesn't load then the color depth issues are gone but no acceleration obviously because my card belongs in the AMD7000Controller. In ioregistryexplorer no amd controller is loaded but the laptop monitor still works if the framebuffers ports config is correct for my laptop screen.

It makes me think that the power gating issues with cape verde gpus are causing the color depth issues. And this issue is tied to the AMD7000Controller.

I also extracted my EDID from my display and tried injecting it but this did nothing.

I have two questions:
I know this probably isn't recommend but could I add my device id: 68201002 to the 8000Controller to try and load from that kext?

And also, a in-general framebuffer question; do the different amd framebuffers only handle port configuration? Or more? My point behind this, there are about 15 different AMD7000Controller framebuffers, would trying all the different framebuffers (some needing port configurations changes for my laptop) yield maybe a different color depth result? But if the framebuffers only handle port configuration it would be a waste of time to configure them all and try them..

Sorry that was long.. thanks for any help or advice

Mine is AMD FirePro M5100 (recognized as R9 M370X in Mac OS) device-id 68211002, AMD7000Controller. I think it's similar to yours, it took me a while to make it works (I had no issue to color banding).
- Using EDID injection:
I used Chutoro (or OPM) as it almost matches my ports. It works without Lilu + Whatevergreen, built-in screen recognized as external. Brightness control doesn't work.
- Using Lilu + Whatevergreen + radpg=15:
I didn't work at first (black screen as I remember), I did something that I can't remember and it worked since then. I attach my config.plist. Hope it helps.
 

Attachments

  • config.plist
    21.7 KB · Views: 219
Mine is AMD FirePro M5100 (recognized as R9 M370X in Mac OS) device-id 68211002, AMD7000Controller. I think it's similar to yours, it took me a while to make it works (I had no issue to color banding).
- Using EDID injection:
I used Chutoro (or OPM) as it almost matches my ports. It works without Lilu + Whatevergreen, built-in screen recognized as external. Brightness control doesn't work.
- Using Lilu + Whatevergreen + radpg=15:
I didn't work at first (black screen as I remember), I did something that I can't remember and it worked since then. I attach my config.plist. Hope it helps.
Thank you so much sir! I will give it a try!
 
Hmm.. I tried some of the stuff you had in your config.plist and still same issue.. color banding... :/ I just think my card wont work correctly.. It's sooo weird.. I tried spoofing your card id: 68211002 but still had the color issue :/

I am at a lose.. I have been looking on ebay for MXM 3.0 Type A cards to replace the one in my laptop. The amd wx 4150 cards go for like $250... may be worth it.
 
Last edited:
Look into EDID patching...
This can be marked as solved; so FINALLY! I got it working haha thanks for the help. So whatevergreen.kext wont let you use inject EDID through clover, it requires EDID patching through an .aml, but my system doesn't need whatevergreen. So I removed whatevergreen and reenabled my Buri framebuffer patches and used the whatevergreen EDID-gen.sh patch (grab the master file from gitbub). This loaded the correct EDID for my laptop display to put into clober; then using the sample.dsl I patched the model name to AMD FirePro W5170M, and it's working great! :D after weeks and weeks haha.

**If you want to use whatevergreen.kext (I am like 99% sure on boot it loads your gpus vbios and will auto configure your display ports) you can use the sample.dsl to inject your EDID as well.

**Side note; something I learned through trying to get this to work, if I spoofed a AMD6000 or AMD8000 device id, it wouldn't load the amd controllers (because my device id isn't in those controllers) , but I could still get display on my laptop using a supported framebuffer. The low color depth issue wasn't present when the amd controller wasn't being loaded. And when I check ioreg I noticed the display0 wasn't loading an EDID. When I had the color issue and loading AMD7000Controller an EDID would load, but cause issues. So that makes sense why when the amd controller wasn't being loaded that the color issues went away... was because no EDID was being injected.. but obviously no acceleration without the controller. So edid injection was the answer here, and then a removal of whatevergreen.kext if your using clover to inject EDID. Or you can keep whatevergreen and patch your ssdt. Just an interesting side note :D

So EDID fix my color depth issues, and I posted my cosmetic change in about this Mac and system report. I know it's cosmetic, but looks cool :)
 

Attachments

  • IMG_20180831_212101.png
    IMG_20180831_212101.png
    23.7 MB · Views: 270
Last edited:
Status
Not open for further replies.
Back
Top