Contribute
Register

AMD Radeon HD 7xxx < does it matter?

Status
Not open for further replies.
Joined
Aug 16, 2015
Messages
59
CPU
Intel Core i7-7500U / i7-3770
Graphics
Intel HD620 / AMD Radeon HD7770
Mobile Phone
  1. Android
Hey, first post in here after hacking for nearly 2 years. I've read these forums from afar and used the advice to get my hack up and running to an awesome standard. Installed the 10.10.5 update on Friday and everything is working great! I figured now it's time to properly get involved with this community, especially as there's still a few questions I've got that I haven't found answered definitively in the existing threads.

So here's my first one: My main hack has a Radeon HD 7770 graphics card. It's always worked without issue (apart from having to install the Verde.kext from 10.10.3 onwards) but it's always appeared in the system report as Radeon HD 7xxx. I've read a couple of conflicting things regarding this... some have said that it means the graphics aren't truly accelerated, whereas some people have said it's nothing to worry about at all...

Would anyone be able to shed some light on this for me please? And even if it's nothing to worry about, is there anything I can do to have the actual model number show up instead of the x's?

Cheers in advance and thanks for all the invaluable advice so far! :headbang:
 
This means that you don't inject anything but just rely on the drivers auto-init feature, which will then use the generic RadeonFramebuffer instead of a specific one. In most cases this is just a cosmetic issue as the RadeonFramebuffer does its job really good. If you have problems with multi-display setups it would be wise to find a matching framebuffer ("Dashimaki" is a perfect fit for reference 7770s [2xmDP, 1xDVI, 1xHDMI]) or modify one of the framebuffers in case of a non-reference card.
Acceleration should usually be as good as with Dashimaki (or any other matching FB).

Your correct device name will appear when using the injection feature of your bootloader, but you'll have to use a matching framebuffer or some (or all) ports will stay black. As I've said before, if you don't experience any issues this will be a cosmetic mod, so I'd only do this in case of a reference card.
 
Thanks for the reply Fl0r!an, very informative and definitely clears things up. I've been pretty fortunate with the machine I chose, as even though it wasn't a custom build, all the components seem to be compatible and the things that didn't work out of the box were solved with a few patched kexts. Because of this, I've barely touched upon DSDT and injections yet, but this seems like a pretty good time to start trying some stuff out!
 
I spent yesterday playing around with this and have managed to fix one problem and discover another!

I extracted my DSDT and injected it with the Radeon 7770 code. The file loaded properly with Chimera but the GPU still showed as 7xxx in System Report. I decided to experiment with the Framebuffers anyway. I changed PCIRootUID=1 to 0, added AtiConfig=Dashimaki as the first bootflag and was then able to boot successfully with GraphicsEnabler=Yes (it had always crashed due to a memory allocation error before, so had been booting with GE=No this whole time). Low and behold, my device's model number now shows up in full and everything feels a little smoother (possibly a placebo effect, but I'm not complaining!) :D

However, for the first time I decided to test out multi-display with my TV as the second monitor. Whilst both screens work fine when hooked up and configured post-boot, the second monitor stays blank when it's connected during boot and restart. In Yosemite this seems to be solved by sleeping then waking the machine, but in Mountain Lion it just doesn't work period.

It's also interesting to note that despite most 7770's having 4 ports, mine only has 3 (DVI, HDMI and one regular DP instead of two mini ones).

This isn't a huge issue for me to be honest as I've never had the need for dual display, but I'd still be interested if anyone knows of a fix for the above issues, and if there's a more appropriate Framebuffer that I could be using in light of only having 3 ports. Any comments much appreciated. Cheers!
 
I don't use Chimera anymore, but I'm quite sure that using GraphicsEnabler=Yes will overwrite your chosen Framebuffer; instead the bootloader will choose what it thinks fits best.

Few things to try:
  • Boot with GE=No and FB=Dashimaki, try 2nd screen again
  • Boot with GE=No and no framebuffer, try 2nd screen again
  • Dump the ROM from your graphics card, I'll have a look at the port mapping
 
Hmm, weird, that doesn't seem to be the case for me. Chimera wouldn't even start booting with GE=Yes before. It only worked when I started using AtiConfig and trying out the different framebuffers. Dashimaki is shown as the FB in IORegistryExplorer too, so it's definitely taking effect.

Already tried your second suggestion, but will try the first one when I'm back near my hack. If that fails, I'll dump the ROM in the next day or two. Cheers for your help :)
 
Here's my ROM dump... tried the other suggestions but no joy. Also some of the simple OS X animations (particularly window expansion) seem to have got fairly laggy since I started using Dashimaki and GE=Yes.

View attachment AMD HD 7770 rom.zip
 
Hi, just had a short look: Hotplug ID is mismatched for all 3 ports when using Dashimaki. This usually results in the behavior you described (black screen which comes to live after sleep). Hotplug ID doesn't matter very much for DVI and passive DP adapters.
I think using GE=No should be the easiest way to fix this, or didn't it work for you?

If you want to patch Dashimaki, this is what your port mapping looks like:
Code:
enc  / tx  / HP  / SenseID
0x12 / 0x4 / 0x4 / 0x2   (DP)
0x22 / 0x5 / 0x1 / 0x5   (HDMI)
0x10 / 0x0 / 0x2 / 0x4   (DVI)

I'd change Dashimaki as follows:
Code:
00040000040300000001010112040402
00080000040200000001020022050105
04000000140200000001030100000204
00040000040300000001040011020101
(Fixed hotplug IDs and changed port type for mismatched HDMI).
 
Thanks for taking a look at it! Unfortunately when patched it's even more problematic than the default Dashimaki... won't boot with the second monitor plugged in and when it's connected post-boot it causes the machine to either crash or :beachball: until it's unplugged.

One thing I did notice when having a look myself is that the 4th non-accessible port is DVI, not DP. Also looks like it has a different Sense ID.

GPU BIOS decoded results.png

When I get home later I'm going to try patching with the following:
Code:
00040000040300000001000012040102
00080000040200000001000022050205
04000000140200000001000010000304
00020000040200000001000000100404

On first look, do you think that could potentially work, or have I written something wrong in there?
 
The 4th port radeon_bios_decode shows is the analogue part of the DVI-I signal. This doesn't need to be included in the framebuffer as OS X treats combined digital and analogue DVI ports (DVI-I) as one single port.

I'll have a look later if I've mixed something up. Which ports did you use, which is making problems?
 
Status
Not open for further replies.
Back
Top