Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

Attachments

  • IMG_9641.JPG
    IMG_9641.JPG
    117.4 KB · Views: 127
  • Like
Reactions: Ausdauersportler
Hi,

After a High Sierra fresh install, I'm having issues with Sleep Wake Failure.

Didn't install AppleGraphicsControl (AGC), since it boot without problem. Do I need to install it to fix this?

Goes to sleep and suddenly reboot.

Hope someone can help me, Thanks in advance.

AGC is needed only to avoid the black screen problem - if you do not have it yet you are a lucky guy. It does no help with sleep issues.

There are no known sleep issues with NVIDIA cards used I any iMac supported here on High Sierra. The only explanation of your problems is a hardware defect either with the GPU or the system board after your upgrade. Check all cables, again.

Please attach long, long panic logs in zipped text files in future.

EDIT:
There is a single exception. Using OCLP on iMac12,x disables the iGPU and so you will face sleep problems even on High Sierra. One can manually enabled the iGPU to avoid this editing the config.plist.
You have an iMac11,1, so this exception does not apply.
 
Last edited:
That’s an eye for detail! :) I missed it, of course…;)

True, those cards came with different kinds of RAM chips, and the one showing artifacts has SKhynix RAM ICs. (Fortunately or not I used images of that card to document the mod post.) I used @internetzel ’s VBIOS for the WX4150 linked in the first post for all. Sadly, VBIOS modding is way beyond my capabilities (consider me the guy who can use a soldering iron), but I would be more than willing to test further. Unfortunately, the timing (pun intended) is not perfect - I’ll be away from my office (and iMacs) for at least 3 weeks, but I can (probably) start further tests in the second week of August.

I do have images of those RAM chips to provide some further info:
  • working modded WX4170 card: Samsung K4G80325FB-HC25
  • modded WX4170 card showing artifacts: SKhynix H5GQ8H24MJR
  • WX4170 (originally) with EEPROM: Samsung K4G80325FB-HC28
Unfortunately, I do not have (good enough) images of the ‘consecutive chimes’ WX4170 card, but I believe it also has Samsung K4G80325FB-HC25 chips.

Coincidentally, the card with K4G80325FB-HC28 RAM ICs performs worse in benchmarks compared to the one with K4G80325FB-HC25 (a MetalBench score of 52 vs. 40). The performance is even worse after a sleep cycle and it seems that the card is severely throttled every few seconds while running the benchmark (fps drops drastically every few seconds). Of course, it could be a different problem, not related to RAM ICs.
@dfranetic hc25 and 28 are fully same
 

Attachments

  • B676E53B-84C5-4F6A-8383-F49A1B3B12E0.png
    B676E53B-84C5-4F6A-8383-F49A1B3B12E0.png
    143.3 KB · Views: 106
  • Like
Reactions: iPlasm
@dfranetic hc25 and 28 are fully same
The only difference I notice between -HC28 and -HC25 is speed spec.: 7.0 Gbps vs. 8.0 Gbps. I'm not sure if that is relevant.
Anyway, with your VBIOS, the card with -HC28 RAM ICs performs great on a fresh boot, but is almost always throttled after waking from sleep.
 
@internetzel , @Ausdauersportler

Thats why I always saying: begin from supported stuff to make working unsupported!

Here Is Apple GOP for native GPU. As newer iMacs are not MXM, the same code is located at bios!
Solution: Create GOP with knowledge of HD6XXX GOP and based on new official release or from any laptop that support your GPU ;-)

Updates here: https://www.techpowerup.com/forums/...custom-vbios-for-hp-zbook.279373/post-4584946


I think I know how to add support for BootScreen at least for RX series GPUs


Upd. I think that have successfully patch Apple gop driver and compiled it.

Need someone who so is ready to test and recover bricked WX4150 with clip!? The chance of success is 1/1000. Anyone?
 

Attachments

  • Apple HD6000X MOBILE GOP DRIVER.efi.zip
    43.3 KB · Views: 92
Last edited:
The only difference I notice between -HC28 and -HC25 is speed spec.: 7.0 Gbps vs. 8.0 Gbps. I'm not sure if that is relevant.
Anyway, with your VBIOS, the card with -HC28 RAM ICs performs great on a fresh boot, but is almost always throttled after waking from sleep.
Which vbios is working better?
 
Which vbios is working better?
  • This one (the current recommendation from post 1) gives lower performance on WX4170 card with -HC28 RAM ICs compared to the WX4170 card with -HC25 RAM ICs (40 vs 52 MetalBench score). Performance after sleep-wake cycle is 'weird' for the -HC28 RAM ICs card: It drops every few seconds while the benchmark is running. There are no performance dips with this VBIOS and the -HC25 RAM ICs card.
  • This one (the one I'm testing) gives full performance on a fresh boot with both cards (73 MetalBench score). After a sleep-wake cycle the card with -HC28 RAM ICs is almost always throttled, while the card with -HC25 RAM ICs almost always wakes to full performance. (I wish I could be more specific - I haven't found 'a rule' which would make the card wake to throttled / full performance state, yet.)
So, neither appears to be working properly with the card with -HC28 RAM ICs. (I'm also pretty sure there are no issues or mounting problems with that card. I ran MetalBench for 2 hours, the temperature stabilized at 56C, it always reliably boots and wakes from sleep. No weird reboots either.)
 
@internetzel , @Ausdauersportler

Thats why I always saying: begin from supported stuff to make working unsupported!

Here Is Apple GOP for native GPU. As newer iMacs are not MXM, the same code is located at bios!
Solution: Create GOP with knowledge of HD6XXX GOP and based on new official release or from any laptop that support your GPU ;-)


Updates here: https://www.techpowerup.com/forums/...custom-vbios-for-hp-zbook.279373/post-4584946


I think I know how to add support for BootScreen at least for RX series GPUs


Upd. I think that have successfully patch Apple gop driver and compiled it.

Need someone who so is ready to test and recover bricked WX4150 with clip!? The chance of success is 1/1000. Anyone?
I usually recover it using something similar to a paper clip.
But let's discuss your changes in detail first before trying them out.

I see you can decompile the EFI driver to C code - is there some free tool available for that? I've only got a free disassembler.
... now I see that the free IDA version is supposed to be able to that as well! That will help modifying the hard coded connector configuration!
The hard coded connector configuration in the Apple EFI graphics driver is the last thing missing for me to achieve boot screens using that driver on the Polaris cards.
 
Last edited:
@edwardgeo
HD6000 is an Intel based driver for GOP.
As @internetzel mentioned previously, there is more than GOP to get bootscreen we believe. For example, EdidDiscovered & EdidActive protocols. These are protocols that are installed for each video output device child handle that is physically connected to a GPU controller (including eDP LCD port). Edidactive works when the screen is turned off (sleep mode), we want the EDID information to still be active in memory in the pre OS environment and post OS environment. Are these protocols in the C code for a HD6000 driver? Maybe? Decompiling to C code is sometimes inaccurate and some programs do a "best guess". But maybe we could find the location in the HD6000 drivers, look for "GOPDriverBinding -> Start ()"
 
Last edited:
The Apple GOP injects framebuffer, driver, outputs, And even more that usual driver doesn't​


ISSUES DETECTED!!!!!!!

@Ausdauersportler: just revived the bricked WX4150 - it was a Dell one, btw.

HERE IS NEW WX4150 BUILD WHICH POSSIBLY WILL WORK WITH BOOT SCREEN.​

This time that is fully based on hacked Apple GOP​





WARNING: It can brick your GPU, be ready to recover ROM with CLIP!!!!!!

REPORT OF ANY SUCCESSFUL BOOT OR FAIL

Ps. Recommend to test on 2011 iMac


@Ausdauersportler can you test?​
 

Attachments

  • WX4150_NEBULA_+Apple+iMac V2+.zip
    144.9 KB · Views: 108
Last edited:
  • Like
Reactions: iPlasm and wa9im
@edwardgeo
HD6000 is an Intel based driver for GOP.
As @internetzel mentioned previously, there is more than GOP to get bootscreen we believe. For example, EdidDiscovered & EdidActive protocols. These are protocols that are installed for each video output device child handle that is physically connected to a GPU controller (including eDP LCD port). Edidactive works when the screen is turned off (sleep mode), we want the EDID information to still be active in memory in the pre OS environment and post OS environment. Are these protocols in the C code for a HD6000 driver? Maybe? Decompiling to C code is sometimes inaccurate and some programs do a "best guess". But maybe we could find the location in the HD6000 drivers, look for "GOPDriverBinding -> Start ()"
Almost all Apple drivers are written on windows!!!

C:\EFI\EFI_Sample\EDK\Drivers\ati\radeon\evergreen\evergreenapple.c

Have similar parts of code as linux opensource driver.


The windows driver is much accurate
 
The Apple GOP injects framebuffer, driver, outputs, And even more that usual driver​


HERE IS NEW WX4150 BUILD WHICH POSSIBLY WILL WORK WITH BOOT SCREEN.​

This time that is fully based on hacked Apple GOP​



WARNING: It can brick your GPU, be ready to recover ROM with CLIP!!!!!!

@Ausdauersportler can you test?​
I can start testing later this week. (It seems I should prepare myself first - I'll add two 'recovery' wires hanging from behind the GPU heatsink to recover a possibly bricked GPU. ;))
 
The Apple GOP injects framebuffer, driver, outputs, And even more that usual driver​


HERE IS NEW WX4150 BUILD WHICH POSSIBLY WILL WORK WITH BOOT SCREEN.​

This time that is fully based on hacked Apple GOP​



WARNING: It can brick your GPU, be ready to recover ROM with CLIP!!!!!!

REPORT OF ANY SUCCESSFUL BOOT OR FAIL

@Ausdauersportler can you test?​
In my experience you have to pass the "-p" flag to Efirom so it generates a PCI 2.3 data structure; PCI 3.0 data structure like in this VBIOS never worked for me (I can't remember whether it caused a brick or only made the EFI driver not load).
 
  • Like
Reactions: iPlasm
This project is driving me nuts!

After installing windows on the 12,2 and successfully prohibiting the installation of the poisoned "i will bsd your mac" -intel network driver i installed the NVidia video card drivers for the 880M.

Now everytime i start windows and it switches to the native resolution it will take almost a minute until the display shows up. Did anyone experience that too?

Also I'm still having no clue as to why it does not sleep in macOS Big Sur. It will hibernate but not wake correctly from sleep.
 
  • Like
Reactions: iPlasm
would i have to change the heatsink for the new video card or would it work with my current one?
No, the 4850 had a bigger MXM-B type heat sink the the new replacement smaller MXM-A type card will fit. Just to avoid a short place a copper shim between GPU and sink (15mm x 15mm x 0.5 mm).
 
In Macs, there are personalities. Each of these personalities defines a set of hard-coded information about the video card hardware. There is one Connector Info structure for every potential connector that may be plugged into a video card.

Have a look at this C- code:

Code:
typedef struct {
           int ConnectorType;    /* known values below */
       #define CONNECTORTYPE_LVDS 0x00000002    /* Ie internal Low Voltage display,
                                 such as laptop */
       #define CONNECTORTYPE_DVI  0x00000004
       #define CONNECTORTYPE_DP   0x00000400    /* Displayport */
       #define CONNECTORTYPE_HDMI 0x00000800
           int flags;
           int features;
           byte link_i2cid;    /* Bits 0-3: i2cid
                      Bits 4-7: link transmitter link */
           byte dac_digidx;    /* Bits 0-3: link encoder number
                      Bits 4-7: link dac number */
           byte hotplugid;
           byte senseid;    /* Sense line is bits 0-3
                     Use hw i2c flag is bit 4 */
           /* i2cid = (senseid & 0xf-1)+0x90 */
           /* senseid = (i2cid & 0xf) +1*/
 } ConnectorInfo;
byte senseid;    /* Sense line is bits 0-3
Use hw i2c flag is bit 4 */
/* i2cid = (senseid & 0xf-1)+0x90 */
/* senseid = (i2cid & 0xf) +1*/
} ConnectorInfo;

So the way I do it, is I brute force every possible pathway to get to the LCD screen, until one is available that lights up the screen! We only have a few to choose from so its not that hard: 90, 91, 92, 93, 94 for i2cid and 1E, 20, 21, 05 for Encoders. Works everytime.
 
Now everytime i start windows and it switches to the native resolution it will take almost a minute until the display shows up. Did anyone experience that too?
Yes, that is known behavior, my 780M takes around 30s black screen until it shows the login screen after native windows driver is loaded. I suspect windows Nvidia driver scans all card outputs till it finds the internal display. Maybe a registry entry could force it and avoid this delay (this is pure speculation, but I have it as a pending item to investigate...)
 
  • Like
Reactions: JohnPascololo
In Macs, there are personalities. Each of these personalities defines a set of hard-coded information about the video card hardware. There is one Connector Info structure for every potential connector that may be plugged into a video card.

Have a look at this C- code:

Code:
typedef struct {
           int ConnectorType;    /* known values below */
       #define CONNECTORTYPE_LVDS 0x00000002    /* Ie internal Low Voltage display,
                                 such as laptop */
       #define CONNECTORTYPE_DVI  0x00000004
       #define CONNECTORTYPE_DP   0x00000400    /* Displayport */
       #define CONNECTORTYPE_HDMI 0x00000800
           int flags;
           int features;
           byte link_i2cid;    /* Bits 0-3: i2cid
                      Bits 4-7: link transmitter link */
           byte dac_digidx;    /* Bits 0-3: link encoder number
                      Bits 4-7: link dac number */
           byte hotplugid;
           byte senseid;    /* Sense line is bits 0-3
                     Use hw i2c flag is bit 4 */
           /* i2cid = (senseid & 0xf-1)+0x90 */
           /* senseid = (i2cid & 0xf) +1*/
} ConnectorInfo;
byte senseid;    /* Sense line is bits 0-3
Use hw i2c flag is bit 4 */
/* i2cid = (senseid & 0xf-1)+0x90 */
/* senseid = (i2cid & 0xf) +1*/
} ConnectorInfo;

So the way I do it, is I brute force every possible pathway to get to the LCD screen, until one is available that lights up the screen! We only have a few to choose from so its not that hard: 90, 91, 92, 93, 94 for i2cid and 1E, 20, 21, 05 for Encoders. Works everytime.
That's really great!
Looking forward to use your technique in the Polaris (Baffin and Ellesmere) VBIOSes.
 
  • Like
Reactions: KennyW
Yes, that is known behavior, my 780M takes around 30s black screen until it shows the login screen after native windows driver is loaded. I suspect windows Nvidia driver scans all card outputs till it finds the internal display. Maybe a registry entry could force it and avoid this delay (this is pure speculation, but I have it as a pending item to investigate...)
Sounds plausible to me…

i just figured out that the wake issue is also occuring under windows. Does the deactivated igpu from the OC partition also affect windows?

can anyone give a quick explanation what the steps are to enable igpu with oclp?
 
Sounds plausible to me…

i just figured out that the wake issue is also occuring under windows. Does the deactivated igpu from the OC partition also affect windows?

can anyone give a quick explanation what the steps are to enable igpu with oclp?
Does not affect Windows.

You face a hardware problem. Some cards cause this problems. You are not the first posting this. Get another card or use it in an iMac11,x.
 
AGC is needed only to avoid the black screen problem - if you do not have it yet you are a lucky guy. It does no help with sleep issues.

There are no known sleep issues with NVIDIA cards used I any iMac supported here on High Sierra. The only explanation of your problems is a hardware defect either with the GPU or the system board after your upgrade. Check all cables, again.

Please attach long, long panic logs in zipped text files in future.

EDIT:
There is a single exception. Using OCLP on iMac12,x disables the iGPU and so you will face sleep problems even on High Sierra. One can manually enabled the iGPU to avoid this editing the config.plist.
You have a iMac11,1, so this exception does not apply.

I suppose I wasn't that lucky...

I had to PRAM the iMac, my result... Black Screen. Connected to an external monitor and got image so I decided to install the AGC (after disable SIP) and problem solved.

I've been testing the card, when goes to sleep by it self I got the Black Screen issue.
When I put it to sleep I have no problems at all.

All the hardware is good.

Could it be an issue between the ROM (BFR) and GPU (K3100M) with this iMac model (11,1 - 27" Late 2009 - Mac-F2268DAE)? I might have to ask @nikey22 and thank you for your ROM.

Haven't seen (I might be wrong) in this thread another user 2009 model with K3100M flashed and a few reports of this card in 2009 models in the GPU performance in the first page.

Screen Shot 2021-08-17 at 5.15.09 PM.png


If I can help the developers you can count with me.
 
stupid question time!
would it be possible for me to remove the old bios chip on the old video card and put it on a new card?
 
Last edited:
stupid question time!
would it be possible for me to remove the old bios chip on the old video card and put it on a new card?
Ha ha, my question to "stupid" you then would be - why do you want to do so ? :p😜🤪
firstly, a BIOS chip is not expensive. if you want to change the physical chip, why recycle an old one?
Secondly, if you are aiming for its vBIOS content, it is specific to the GPU. You cannot graft one to another of different type.
Thirdly, if it is meant for two same type GPUs, why not just flash the BIOS chip in the old one instead of pursuing the difficult task of chip desoldering and soldering?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.