Contribute
Register

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

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
12,298
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
@LiveviL

Apologies for the late reply. Some questions and comments:
  • I’m sure you know that the RTX 2070 is not supported under Mojave. It may work with Apple’s default VESA (non-accelerated) driver. But it may also cause unforeseen conflicts. If you’re using it primarily for Windows and want to enable the iGPU for Mojave, it’s best to use a custom SSDT to render the RTX invisible to macOS. If you can provide your IOReg dump (simply run IORegistryExplorer and click File —> Save As...) I can adapt one for your system.
  • If you disconnect the RTX, does Mojave boot up with accelerated iGPU (i.e. system does not freeze during Boot when you apply the correct platform ID and device-ID)?
 
Joined
Feb 28, 2019
Messages
12
Motherboard
ASRock Z390 Phantom Gaming 4
CPU
i5-9600K
Graphics
RTX 2070
Mobile Phone
  1. Android
Hello @CaseySJ,

Thanks! No apologies needed! You're helping me here, I appreciate that.

I attached the IOReg here. I'll try to disconnect the card and let you know.

Thanks again!
 

Attachments

  • gdh’s iMac.ioreg
    10.8 MB · Views: 50
Joined
Feb 28, 2019
Messages
12
Motherboard
ASRock Z390 Phantom Gaming 4
CPU
i5-9600K
Graphics
RTX 2070
Mobile Phone
  1. Android
I tried removing the graphics card but no dice. Although now the monitors turnoff, but the PC is still on, and the drive light active.

Edit: Setting mac to iMac18,3 detects the igpu, boots but there is some weird flickering.

System overview shows only 7mb.
I don't understand why Hackintool shows intel uhd with 2GB.

I'm still using the discrete card for monitor ouput.
 

Attachments

  • IMG_20190330_142651.jpg
    IMG_20190330_142651.jpg
    5.2 MB · Views: 51
  • IMG_20190330_150451.jpg
    IMG_20190330_150451.jpg
    8.4 MB · Views: 56
Last edited:

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
12,298
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
I tried removing the graphics card but no dice. Although now the monitors turnoff, but the PC is still on, and the drive light active.

Edit: Setting mac to iMac18,3 detects the igpu, boots but there is some weird flickering.

System overview shows only 7mb.
I don't understand why Hackintool shows intel uhd with 2GB.

I'm still using the discrete card for monitor ouput.
Your IORegistry shows that the IONDRVFramebuffer is attached to your iGPU, which means there is no accelerated graphics. However, there are at least 2 reasons for this:
  • You have not spoofed the device-id. It is still 0x3E98. This ID is not recognized by 10.14.3, but it is natively supported in 10.14.4. However, you don't have to update the OS to fix the problem. You can simply set "device-id" to 0x3E92 in Clover Configurator --> Devices --> Properties.
  • Second problem: The Platform ID is currently 0x3E910003, which is headless. This means all motherboard video ports are disabled. Platform ID should be changed to 0x3E9B0007.
  • SMBIOS iMac 18,3 is okay, but you can also try Macmini8,1.
  • Your ASRock board will need Framebuffer connector patches to enable HDMI and DVI.
If you need help with this, simply upload your config.plist.

Lastly, attached are two SSDTs to render the RTX 2070 invisible to macOS. Please try the A version first, connect video cable to the RTX card and see if there's signal displayed on the monitor. If the RTX is still enabled, remove the A version and try the B version. These files need to be copied to CLOVER/ACPI/patched folder in the EFI partition of the Mojave SSD and will take effect on reboot. (They just need to be copied to this folder, nothing more.) Please let me know which of the two files is successful.
 

Attachments

  • SSDT-Disable-Slot-1-GPU-A.aml
    171 bytes · Views: 49
  • SSDT-Disable-Slot-1-GPU-B.aml
    171 bytes · Views: 49
Joined
Feb 28, 2019
Messages
12
Motherboard
ASRock Z390 Phantom Gaming 4
CPU
i5-9600K
Graphics
RTX 2070
Mobile Phone
  1. Android
Your IORegistry shows that the IONDRVFramebuffer is attached to your iGPU, which means there is no accelerated graphics. However, there are at least 2 reasons for this:
  • You have not spoofed the device-id. It is still 0x3E98. This ID is not recognized by 10.14.3, but it is natively supported in 10.14.4. However, you don't have to update the OS to fix the problem. You can simply set "device-id" to 0x3E92 in Clover Configurator --> Devices --> Properties.
  • Second problem: The Platform ID is currently 0x3E910003, which is headless. This means all motherboard video ports are disabled. Platform ID should be changed to 0x3E9B0007.
  • SMBIOS iMac 18,3 is okay, but you can also try Macmini8,1.
  • Your ASRock board will need Framebuffer connector patches to enable HDMI and DVI.
If you need help with this, simply upload your config.plist.

Lastly, attached are two SSDTs to render the RTX 2070 invisible to macOS. Please try the A version first, connect video cable to the RTX card and see if there's signal displayed on the monitor. If the RTX is still enabled, remove the A version and try the B version. These files need to be copied to CLOVER/ACPI/patched folder in the EFI partition of the Mojave SSD and will take effect on reboot. (They just need to be copied to this folder, nothing more.) Please let me know which of the two files is successful.

Thank you very much for the help and detailed info!

I tried both patches, none had any effect.

As for the platform id and device id, I have them set, yet no result. When I set the SMBIOS to Macmini it doesn't boot, the iGPU is detected, however.

396379

396380


I noticed Clover boot does pick up the platform ID, but doesn't seem to do the same for the device ID, am I doing something wrong? Should something be reversed?

Thanks.
 

Attachments

  • IMG_20190331_144259.jpg
    IMG_20190331_144259.jpg
    7.2 MB · Views: 53
  • IMG_20190331_144018.jpg
    IMG_20190331_144018.jpg
    3.7 MB · Views: 58

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
12,298
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
Thank you very much for the help and detailed info!

I tried both patches, none had any effect.

As for the platform id and device id, I have them set, yet no result. When I set the SMBIOS to Macmini it doesn't boot, the iGPU is detected, however.

View attachment 396379
View attachment 396380

I noticed Clover boot does pick up the platform ID, but doesn't seem to do the same for the device ID, am I doing something wrong? Should something be reversed?

Thanks.
If you can provide the following, I can more fully audit the setup:
  • Compressed CLOVER folder from the EFI partition of the Mojave SSD.
  • Screenshot of /Library/Extensions folder.
 
Joined
Oct 3, 2018
Messages
30
Motherboard
Gigabyte H370M D3H GSM-F2-Clover
CPU
i5-8600K
Graphics
UHD630, 1280 × 1024
Classic Mac
  1. iMac
  2. Power Mac
Mobile Phone
  1. iOS
It took me months getting graphics acceleration to work for the UHD 630. I succeeded by following the spoiler with the “old instructions” of ben9923’s guide. For me that resulted in High Sierra 10.13.6 (17G5019). But after connecting my second screen via DVI, I figured that only the VGA port is working so far (I’ve also tested HDMI by connecting the TV, but it doesn’t work either).

I understand that this thread is about Mojave. But as my symptoms are the same (only VGA functioning once acceleration works), I’d like to try fixing it with the method here and your help, if you don’t mind? (I’d like to use High Sierra for compatibility reasons.)

My Hackintosh is based on a Gigabyte H370M D3H GSM. Initially I’ve tried making things work following your guide (which pulled me out of my frustration after spending so much time searching for a fix – I think I haven’t seen anything else that clear and well written on Hackintosh sites around – thank you!) but without success. I’ve then tried manually inserting the framebuffer patch for both, Gigabyte H370M D3H and Gigabyte H370M DS3H. That didn’t result in gaining any additional functioning ports though. The DS3H patch (which I also tried from the Patch -> System Configs menu in Hackintool) even gave me a black screen on the VGA port as the device ID 0x3E92 doesn’t seem to be compatible with my setup. Setting it to 0x3E9B made me regain the VGA port, but nothing more.

However, I’ve played with the bus ID, mainly on index 2. While leaving the type for index 1 through 3 on DP, HDMI, HDMI (in that order), I’ve tried the following settings of bus ID’s:

Approach 1:
Bus ID
5
6
4


Approach 2:
Bus ID
5
2
4


Approach 3:
Bus ID
5
1
4


Approach 4:
Bus ID
5
4
6


The first, third and fourth approach didn’t change anything. At the second approach however, none of the three ports worked. That in itself isn’t any progress of course. But I was hoping it might give you a clue of what else I could try.

Do you have any suggestions for me?

(I will attach the output of the OSX-Debug tool if you think that could be of any help.)
 
Last edited:

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
12,298
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
It took me months getting graphics acceleration to work for the UHD 630. I succeeded by following the spoiler with the “old instructions” of ben9923’s guide. For me that resulted in High Sierra 10.13.6 (17G5019). But after connecting my second screen via DVI, I figured that only the VGA port is working so far (I’ve also tested HDMI by connecting the TV, but it doesn’t work either).

I understand that this thread is about Mojave. But as my symptoms are the same (only VGA functioning once acceleration works), I’d like to try fixing it with the method here and your help, if you don’t mind? (I’d like to use High Sierra for compatibility reasons.)

My Hackintosh is based on a Gigabyte H370M D3H GSM. Initially I’ve tried making things work following your guide (which pulled me out of my frustration after spending so much time searching for a fix – I think I haven’t seen anything else that clear and well written on Hackintosh sites around – thank you!) but without success. I’ve then tried manually inserting the framebuffer patch for both, Gigabyte H370M D3H and Gigabyte H370M DS3H. That didn’t result in gaining any additional functioning ports though. The DS3H patch (which I also tried from the Patch -> System Configs menu in Hackintool) even gave me a black screen on the VGA port as the device ID 0x3E92 doesn’t seem to be compatible with my setup. Setting it to 0x3E9B made me regain the VGA port, but nothing more.

However, I’ve played with the bus ID, mainly on index 2. While leaving the type for index 1 through 3 on DP, HDMI, HDMI (in that order), I’ve tried the following settings of bus ID’s:

Approach 1:
Bus ID
5
6
4


Approach 2:
Bus ID
5
2
4


Approach 3:
Bus ID
5
1
4


Approach 4:
Bus ID
5
4
6


The first, third and fourth approach didn’t change anything. At the second approach however, none of the three ports worked. That in itself isn’t any progress of course. But I was hoping it might give you a clue of what else I could try.

Do you have any suggestions for me?

(I will attach the output of the OSX-Debug tool if you think that could be of any help.)
The entire IO panel of your motherboard is identical to the H370M D3H. The only fundamental difference appears to be High Sierra versus Mojave.

So I think you should focus on these settings based on the H370M D3H:

Device ID = 0x3E9B
Index 1 - Bus ID 5 - Type DP (physically a VGA Port)
Index 2 - Bus ID 2 - Type HDMI (physically a DVI Port)
Index 3 - Bus ID 4 - Type HDMI (physically HDMI as well)

What platform ID are you using?

Back in Post 424, Peter provided this working set for the Gigabyte H370M D3H:

Index 1 - Bus ID 5 - Port 5 - VGA Port
Index 2 - Bus ID 2 - Port 6 - DVI Port
Index 3 - Bus ID 4 - Port 7 - HDMI Port

I've asked him to confirm whether he used Type DP, HDMI, HDMI for Indexes 1, 2, 3. He has not yet replied. So another possibility would be this:

Device ID = 0x3E9B
Index 1 - Bus ID 5 - Type VGA
Index 2 - Bus ID 2 - Type DVI
Index 3 - Bus ID 4 - Type HDMI

Edit: Output of the debug tool would be very helpful!
 
Last edited:
Joined
Jul 18, 2016
Messages
83
Motherboard
Asus Z-170 Deluxe
CPU
i7-6700K
Graphics
RX 580
Mobile Phone
  1. iOS
Yes, the purpose of this guide is to help you enable HDMI on your internal GPU (without disabling any other video ports). So you should then be able to use DP and HDMI to drive 2 monitors.
Is it possible to use DP on EGPU to drive a monitor and HDMI on IGPU to drive a TV?
 
Joined
Oct 3, 2018
Messages
30
Motherboard
Gigabyte H370M D3H GSM-F2-Clover
CPU
i5-8600K
Graphics
UHD630, 1280 × 1024
Classic Mac
  1. iMac
  2. Power Mac
Mobile Phone
  1. iOS
Thank you for your quick response! For me it was already in the middle of the night here in Europe, so I now follow up on this after getting some sleep.

The entire IO panel of your motherboard is identical to the H370M D3H. The only fundamental difference appears to be High Sierra versus Mojave.

So I think you should focus on these settings based on the H370M D3H:

Device ID = 0x3E9B
Index 1 - Bus ID 5 - Type DP (physically a VGA Port)
Index 2 - Bus ID 2 - Type HDMI (physically a DVI Port)
Index 3 - Bus ID 4 - Type HDMI (physically HDMI as well)

What platform ID are you using?
I use Platform ID 0x3E9B0007 which, according to https://www.tonymacx86.com/threads/guide-intel-framebuffer-patching-using-whatevergreen.256490/, is the only ID applicable for Coffee Lake desktops under High Sierra (but also for Mojave it’s the only desktop one with three ports, the other ID’s in that list applicable for desktops have 0 ports).

Back in Post 424, Peter provided this working set for the Gigabyte H370M D3H:

Index 1 - Bus ID 5 - Port 5 - VGA Port
Index 2 - Bus ID 2 - Port 6 - DVI Port
Index 3 - Bus ID 4 - Port 7 - HDMI Port

I've asked him to confirm whether he used Type DP, HDMI, HDMI for Indexes 1, 2, 3. He has not yet replied. So another possibility would be this:

Device ID = 0x3E9B
Index 1 - Bus ID 5 - Type VGA
Index 2 - Bus ID 2 - Type DVI
Index 3 - Bus ID 4 - Type HDMI
I’ve just tried with VGA, DVI, HDMI. Same problem as with DP, HDMI, HDMI: none of the ports work. And with both settings, Screen Sharing is not able to connect (I can enter my password on my Mountain Lion machine, but it doesn’t finish trying to connect). With settings allowing the VGA port to work, also Screen Sharing works (but then I don’t need it …).

Edit: Output of the debug tool would be very helpful!
Before running the debug tool, I have reverted to the config.plist without any framebuffer patching. ZIP file attached.
 

Attachments

  • debug_22645.zip
    2.5 MB · Views: 67
Top