Contribute
Register

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

Yeah, you got everything correctly.
Answering your questions:
"If you leave out pipecount, do you still get HDMI and DP output?": yes, that's what I had before trying to fix the sleep wake issue (I changed things step by step, first deactivating the DVI, then lowering the pipe- and/or portcount);
"which Row lights up in red when you plug in an HDMI cable?": the first and the last one, as one would expect (so the first one when plugging in the HDMI cable).
 
Yeah, you got everything correctly.
Answering your questions:
"If you leave out pipecount, do you still get HDMI and DP output?": yes, that's what I had before trying to fix the sleep wake issue (I changed things step by step, first deactivating the DVI, then lowering the pipe- and/or portcount);
If shutdown/restart are okay, but sleep/wake doesn't work, have you tried the usual suspects:
  • darkwake = 0 (or other values from Boot section of Clover Configurator)
  • In System Preferences --> Energy: Uncheck "Enable Power Nap" and "Wake for network access"
  • In Clover Configurator: Check-on AppleIntelCPUPM
"which Row lights up in red when you plug in an HDMI cable?": the first and the last one, as one would expect (so the first one when plugging in the HDMI cable).
Yes I was looking for this verification. The red highlights confirm Row 1=HDMI and Row 3=DP.
 
Bus ID 0x02 is VGA (D-Sub)
Native: Bus ID 0x02 is LVDS
macOS uses Bus ID 0x02 as the LVDS connector with a mobile framebuffer on Laptop products. For Desktop products, Bus ID 0x02 is not present. macOS supports VGA with an adapter to a supported digital connector (DP, HDMI, DVI), laptop and desktop.

If you are suggesting Desktop motherboards use a mobile framebuffer for VGA support, the technique is clearly non native and best considered experimental. If the headkaze, [Guide] Intel Framebuffer patching using WhateverGreen, mobile recommendations support VGA, a note is also appropriate. If not, clarification of exactly what works is required.
 
Native: Bus ID 0x02 is LVDS
macOS uses Bus ID 0x02 as the LVDS connector with a mobile framebuffer on Laptop products. For Desktop products, Bus ID 0x02 is not present. macOS supports VGA with an adapter to a supported digital connector (DP, HDMI, DVI), laptop and desktop.

If you are suggesting Desktop motherboards use a mobile framebuffer for VGA support, the technique is clearly non native and best considered experimental. If the headkaze, [Guide] Intel Framebuffer patching using WhateverGreen, mobile recommendations support VGA, a note is also appropriate. If not, clarification of exactly what works is required.
After reading your reply and re-reading the BusID tooltip from Intel FB-Patcher, I'd like to verify the following statements and subsequently update the Guide:
  • BusID 0x02 supported VGA up to Broadwell. Now this is used as the LVDS connector with a mobile framebuffer for Mobile CPUs. It should not be used with Desktop processors.
  • BusID 0x05 supports VGA with Skylake and up, effectively adapting it to a supported digital connector.
  • BusID 0x05 is the most flexible, supporting DVI, HDMI, and DP.
  • BusID 0x04, 0x05, and 0x06 can be used with either HDMI or DP on both Desktop and Mobile CPUs.
  • On certain motherboards (360/370 series ASUS, ASRock, and MSI) we are finding that BusID 0x01 drives external HDMI ports with Desktop Coffee Lake CPUs. Whether BusID 0x01 works on other products is unknown. More data is needed before drawing a conclusion.
  • On Gigabyte 370 and 390 series motherboards we are finding that BusID 0x04 drives HDMI.
 
Last edited:
If you are suggesting Desktop motherboards use a mobile framebuffer for VGA support, the technique is clearly non native and best considered experimental. If the headkaze, [Guide] Intel Framebuffer patching using WhateverGreen, mobile recommendations support VGA, a note is also appropriate. If not, clarification of exactly what works is required.

I would also like to add (resp. repeat) though (even if this is considered "experimental"), that 0x02 worked on DVI here and 0x01 on HDMI while 0x04, 0x05, 0x06 only worked on DP. As I said, I will also try 0x01 on HDMI and 0x02 on DVI later on, but it should be noted in the guide that in some rare occasions for some reason you seem to need 0x02 for an external display (e.g. if I wanted to use three displays), while I - of course - have no clue why. Hadn't I tried out that, I probably still had only one display working.
 
I would also like to add (resp. repeat) though (even if this is considered "experimental"), that 0x02 worked on DVI here and 0x01 on HDMI while 0x04, 0x05, 0x06 only worked on DP. As I said, I will also try 0x01 on HDMI and 0x02 on DVI later on, but it should be noted in the guide that in some rare occasions for some reason you seem to need 0x02 for an external display (e.g. if I wanted to use three displays), while I - of course - have no clue why. Hadn't I tried out that, I probably still had only one display working.
Were you actually able to get DVI-D port working with BusID 0x02? If so, was Index set to something other than -1? I tried unsuccessfully to help @RowenDJ with DVI-D yesterday so I would be very interested to know if this works.

Because you currently have HDMI on 0x01 and DVID on 0x02, perhaps you meant the opposite BusID! :)
 
Last edited:
Were you actually able to get DVI-D port working with BusID 0x02? If so, was Index set to something other than -1? I tried unsuccessfully to help @RowenDJ with DVI-D yesterday so I would be very interested to know if this works.

Because you currently have HDMI on 0x01 and DVID on 0x02, perhaps you meant the opposite BusID! :)

Bus-id and connector type are not important to VGA and DVI ports, problem is related to AGDP, just use old AGDP patch, then it no longer check both ports id, VGA/DVI port native work without any FB patches, no WEG.

1547383321367.png

I can upload more information about this.
 
Bus-id and connector type are not important to VGA and DVI ports, problem is related to AGDP, just use old AGDP patch, then it no longer check both ports id, VGA/DVI port native work without any FB patches, no WEG.

View attachment 378874
I can upload more information about this.
That's great information!! Is this correct?
  • Clover Configurator: ACPI page: Add: Change HECI to IMEI
  • Clover Configurator: Boot page: Check-on: -disablegfxfirmware
  • Clover Configurator: Graphics: ig-platform-id:
    • SKL (Skylake 6xxx CPU) use ig-platform-id 0x193B0005
    • KBL (Kaby Lake 7xxx CPU) use ig-platform-id 0x59120000
    • CFL (Coffee Lake 8xxx and 9xxx CPU) use ig-platform-id 0x3E9B0007
  • Clover Configurator: Kernel and Kext Patches page: Add the following by clicking "+" on the bottom left:
Code:
Name: AppleGraphicsDevicePolicy
Find* [HEX]: BA050000 00
Replace* [HEX]: BA000000 00
Comment: Disable AGDP to enable VGA and DVI
Disabled: NO
InfoPlistPatch: NO

Are there any downsides to disabling AGDP, such as issues with sleep, etc.?
 
Last edited:
That's great information!! Is this correct?
Code:
Name: AppleGraphicsDevicePolicy
Find* [HEX]: BA050000 00
Replace* [HEX]: BA000000 00
Comment: Disable AGDP to enable VGA and DVI
Disabled: NO
InfoPlistPatch: NO

You can test it, will upload ioreg and pngs later when I return home.

Edit: information update, ioreg and png files upload
 

Attachments

  • Screenshot 2019-01-13 at 21.38.54.png
    Screenshot 2019-01-13 at 21.38.54.png
    292.1 KB · Views: 582
  • Mac mini DVI HDMI.ioreg
    4.3 MB · Views: 280
  • Mac mini VGA HDMI.ioreg
    4.3 MB · Views: 246
Last edited:
Are there any downsides to disabling AGDP, such as issues with sleep, etc.?

Sleep / wake never work with my HD630, multi monitors work, others OK.
May be 5K MST monitor will have issue, disable AGDP also disable special EDID.
 
Back
Top