Contribute
Register

[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)

Well done CaseySJ for the good write up.

I have some issue pertaining to getting my laptop graphics to work. I have been trying to fix it many times to no avail.
Background:
Thinkpad Yoga S1 laptop
with Haswell intel i7 4510U 8GB RAM with HD4400 Gfx

here is the problem I encountered using Hackintool 2.5.9
Following strictly the instructions here and from headkaza of [Guide] Intel Framebuffer patching using whatevergreen


I encountered the following problem.
The HD4400 can never be loaded successfully at all.
Here is the screen shot of the VRAM that is at 7MB since day one of my High Sierra 10.13.4,

When I used the Hackintool to find the matching Platform ID with the GPU Dev ID, there is never a match between this two parameters. and I can't find HD4400 Device ID in Hackintool, if I use close to HD4400 eg. HD4600 (I get restart without booting to login screen) HD5000 (screen distorted and tearing) so I am unable to use any of the options. which lead me to revert back to the original HD4400 7MB option which is what I got from the installation.

Here is the dump of my info from hackintool
System Info
-----------------------------------------------------------------------
Host Jays-iMac.local
OS macOS High Sierra Version 10.13.4 (Build 17E199)
Kernel Darwin 17.5.0 x86_64
RAM 8.00 GB
Model Identifier iMac14,2
CPU Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz
Intel Generation ???
Platform ID 0x0D220003
Board ID Mac-27ADBB7B4CEE8E61
Serial Number D25LHACKF8JC
Hardware UUID 34A0C5D3-0C58-5960-8D4F-EDED8357BCE5
System ID 01F4D11F-E652-CB11-81A7-C846D8C794DB
ROM C846D8C794DB
Board Serial Number C02140302D5DMT31M
Gq3489ugfi 9B01A5D00A0D610AC6D000EF772FB606A4
Fyp98tpgj 2F6004FB074C7BD0448518D33DE4CDF572
kbjfrfpoJU 127519BBDA0AD88FC6E0FFE350FFB7885E
oycqAZloTNDm 091D24C88990EB9894F8C4C6B6C26C3F9E
abKPld1EcMni 5ADB8F2E07E614F1F270749D444DB84545
-----------------------------------------------------------------------
GPU Info
-----------------------------------------------------------------------
GPU Name Intel HD Graphics 4400
GPU Device ID 0x0A168086
VRAM 0 MB
Quartz Extreme (QE/CI) No
Metal No
VDA Decoder Decoder Failed
-----------------------------------------------------------------------

and Also screenshot of my Hackintool 2.5.9. what should I do now, any kind advise would be very much appreciated.
I have chosen the option of 10.13.6, 10.14 and current version in Framebuffer of Hackintool and "apply current patches" under Patch in Hackintool. Problem persists.

Attached is also my config.plist that is currently giving me HD4400 7MB headache.

Thanks guys and looking forward to any help. Cheers.
Can you please confirm that the config.plist you posted is the right one. Is it from the EFI partition of the High Sierra disk? If so, the SMBIOS section is empty except for "iMac14,2". And both the Graphics and Devices sections are empty as well -- no sign of Platform ID or device-id.
 
Last edited:
I found the ports and applied the patch, but the monitors are still black. They shows up in system report, Display Arrangement and Hackintool.
Have you tried hot-plugging the video connectors? For example:
  • If HDMI is black, remove cable and re-plug HDMI cable.
  • If DP is black, remove cable and re-plug DP cable.
Also, what monitor are you using?
 
I just successfully applied the settings for the ASUS MAXIMUS VIII HERO and the Intel® Core™ i7-6700K

Here they are:

View attachment 409890

Port 0x05 (Index 1) is DisplayPort
Port 0x06 (Index 2) is HDMI

Actually the third connector doesn't exist, I tried to disable it with setting the Index to -1, the bus to 0x00, the pipe to 0, the type to dummy and the flags to 0x00000020, but it won't accept the settings. After reboot they're gone. But it works, so I don't care.

EDIT: I take it back. Doesn't work anymore, lmao..... One moment.

EDIT 2: It does work, kinda... The monitor on the motherboard does only work if I connect it after boot. Any ideas?

EDIT 3: Just set the primary display to the PEG in BIOS. Now it looks like it's working..

With primary display set to PEG the monitor connected to the motherboard does work, but I have graphical glitches on every animation.
With primary display set to IGPU the monitor doesn't get any signal :( (but it is detected in system information)
It may be better to specify the working connectors first, and all disabled and non-existent connectors last. So:

Row 1: Index 1, Port 0x05 (Index 1) is DisplayPort
Row 2: Index 2, Port 0x06 (Index 2) is HDMI
Row 3: Index -1, BusID 0x00, Type DUMMY (you can also try using Index 3)
Row 4: Index -1, BusID 0x00, Type DUMMY

When Primary Display is set to IGPU, you should see BIOS splash screen through IGPU. But when it's set to PEG, you'll see BIOS splash screen through the Discrete GPU. But after Mojave boots up, both monitors should have signal.
 
Have you tried hot-plugging the video connectors? For example:
  • If HDMI is black, remove cable and re-plug HDMI cable.
  • If DP is black, remove cable and re-plug DP cable.
Also, what monitor are you using?

i change my smbios to iMac 19,1. Once i boot into macOS, the screen is fine and display normally. then it turn garble with twitching effect. Hot plugging fix it temporally, but it happens again in a bit. Monitors are Dell and an older westinghouse, none are 4k.

Is hot-plugging required to get it to work? i thought UHD630 is native with Mojave? Frankly this UHD630 issue i'm having is bizarre. I'm surprise i'm not seeing this from many others. I played around with the Framebuffer, i'll post my most successful attempt later.

thanks for looking in to this.
 
Can you please confirm that the config.plist you posted is the right one. Is it from the EFI partition of the High Sierra disk? If so, the SMBIOS section is empty except for "iMac14,2". And both the Graphics and Devices sections are empty as well -- no signed on Platform ID or device-id.
Hi CaseySJ, you are right, both Graphics and Devices sections are intentionally emptied as per instruction of the headkaza of [Guide] Intel Framebuffer patching using whatevergreen in this same forum.
link as follow:

or could I misread the intructions by headkaza which it isn't suppose to be emptied? kindly enlighten me. thanks again. Cheers
 
i change my smbios to iMac 19,1. Once i boot into macOS, the screen is fine and display normally. then it turn garble with twitching effect. Hot plugging fix it temporally, but it happens again in a bit. Monitors are Dell and an older westinghouse, none are 4k.

Is hot-plugging required to get it to work? i thought UHD630 is native with Mojave? Frankly this UHD630 issue i'm having is bizarre. I'm surprise i'm not seeing this from many others. I played around with the Framebuffer, i'll post my most successful attempt later.

thanks for looking in to this.
I have also seen the twitching and garbling effect when UHD 630 is driving my older LG 1080p monitor. Garbling happens mostly on non-Apple apps particularly FireFox and Chrome. When I resize the window, it becomes normal.

I was able to minimize the garbling by:
  • Connecting only 1 monitor at a time. If you need multi-monitor support, I strongly encourage using a Discrete GPU.
  • Using a monitor that supports DisplayPort 1.2+ and HDMI 1.4+.
 
Hi CaseySJ, you are right, both Graphics and Devices sections are intentionally emptied as per instruction of the headkaza of [Guide] Intel Framebuffer patching using whatevergreen in this same forum.
link as follow:

or could I misread the intructions by headkaza which it isn't suppose to be emptied? kindly enlighten me. thanks again. Cheers
Please try the attached file (rename it to config.plist). Some versions of WhateverGreen might exhibit problems with the iGPU in your Haswell processor. So in this file I'm using Clover to inject the following:
  • Devices --> IntelGFX --> 0x04128086
  • Graphics --> Inject Intel --> Enabled
  • Graphics --> ig-platform-id --> 0x0D220003 (non-headless)
Please try this and see if your iGPU gets initialized properly (you can check this in Hackintool as before).
 

Attachments

  • config-xerxesrex.plist
    5.8 KB · Views: 124
Hello @CaseySJ
A very good guide with good explanation on display framebuffer.
However, I tried to follow the guide but cannot pass the pre flight check, i.e. the iGPU is not properly recognized and showed as ??? as follow. I also attach error reporting files in this thread.
411315

411318

I am using Asus Prime Z390-A, i5-8400 with Radeon RX560 now connected as primary display.

I have put the Graphics Device ID and Platform ID as instructed in the guide, but result still the same.
I tried to connect my display through DP port of iGPU, booting stuck on Apple logo and cannot display login page, while if I change the port to the DP port on the dGPU, the login page is displayed and I can login as usual.

Any possibility for you to check and point the problem I have? I would like to make it as a headless system, but will not be able to do so without having the iGPU properly accelerated.

Thank you in advance for your help.
 

Attachments

  • debug_20280.zip
    2 MB · Views: 67
Hello @soeryobadja,

First of all, thank you for providing the complete debug log! That saves a lot of time.

Everything looks good, but your IOReg has no sign of the iGPU. This most likely indicates that IGPU or IGFX has not been enabled in BIOS. Please have a look there and let me know.
 
Hello @soeryobadja,

First of all, thank you for providing the complete debug log! That saves a lot of time.

Everything looks good, but your IOReg has no sign of the iGPU. This most likely indicates that IGPU or IGFX has not been enabled in BIOS. Please have a look there and let me know.

@CaseySJ
First of all, thank you for providing the complete debug log! That saves a lot of time.
==> As instructed and repeatedly reminded in various threads in the forum.
Thanks a lot for having your time to look at my case. And thanks a lot for your advise, it works now. As you pointed, problem is on the BIOS setting. I run with dGPU but disabled the iGPU in the setting.
411539


Thanks again.
 
Back
Top