Contribute
Register

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

I implemented all of the above and yes it still boots, yes I still have hdmi out, yes I still have to hotplug
I did not see the green screen n the work monitor today though, have yet to test on my home monitor.
 
Not all of the features that are required for the new OS are included in the current Beta release. One being CPU power management, another is something that causes graphics issues. The Intel and AMD drivers probably need to be updated for Ventura. I am fairly sure the two manufacturers will have better/updated drivers in the GM release 13.0.1. So you need to wait for the last beta or GM release to know if the issues you are facing are going to be fixed in Ventura.

I use a dual display setup (2 x Dell U2515H (2560x1440 @60Hz), running Monterey and Ventura from two separate NVMe drives, on the same system. I have an RX580 dGPU using twin DP connections on Ventura and a DP & HDMI connector on Ventura. Neither OS show any graphical issues on my Coffee Lake desktop system.
 
If I get a chance I’ll reinstall Monterey and see what happens. Ventura is so stable I forget that it’s still in beta.
 
So I have an issue. My original motherboard and intel chip had to be replaced. I went with the i9-10850K and the Z490 Aorus Elite motherboard with my RX 580 dGPU card. I am redoing OpenCore and I am completely lost as to what to but into the framebuffer-patch-enable and the data into the framebuffer-stolenmem sections of my config plist. Any help would be fantastic.
 
Assuming you are using the RX580 for graphics processing. You should have the Comet Lake IGPU set with a headless/empty framebuffer.

The device ID for the i9-10850’s IGPU is 0x9BC5, so 0x9BC50003 or 0x9BC80003 would be the first options you should use as an empty framebuffer.

You shouldn’t need any secondary framebuffer entries, just AAPL,ig-platform-id = 0300C59B or 0300C89B
 
@Coder2j

The IGPU patching in your config.plist matches with the Connector Types shown in Hackintool. So if you only have 3 connectors available it is because you have only set three of the four connectors.

Con-0 has been set as a DisplayPort <00040000>
Con-1 has been set as a HDMI <00080000>
Con-2 has been set as HDMI <00080000>
Con-3 has been set as dummy/empty <01000000>

As shown in the screenshot from the DeviceProperties section of your config.plist.

Screenshot 2022-10-26 at 20.18.46.png

This is a screenshot showing the different Display Connector Types and their corresponding values.

Screenshot 2022-10-26 at 20.25.04.png
So based on the above at least two of the Con-x entries in your config are wrong. Could be more. As you have full acceleration using the HDMI connector it is likely that one of the two HDMI entries is correct.

As the DisplayPort connector doesn't work correctly I can only assume that is is incorrectly configured.

Your config lacks any mention of the DVI and VGA connectors.

When testing the 4 x display connectors did you use IORegistryExplorer to confirm which connector was active when each port was used. Even when full acceleration wasn't provided, your IOReg should have told you which port on the motherboard was activated by each connector as it was tested.

I am sure you are aware that VGA connectors are not natively supported in macOS. So the chances are your VGA connector won't work, but setting it correctly, even if using a process of elimination as you identify the other three connectors, would be advisable. VGA connectors are often found to work when set as DisplayPort. Not sure why but that is common enough to be viable.

Don't set any of the connectors with the Dummy connector type, unless you want to explicitly disable that connector.

As you have messed up the connector types so splendidly I am wondering what your system sets each connector as natively, i.e. when there are no DeviceProperty over-rides, all the 'con-x' entries are removed from your config.plist.

DO NOT post a copy of your config.plist with your Serial Number visible. It will just result in the post being moved to a non-public forum before being deleted. As has happened here!
 
Last edited:
@Coder2j

The IGPU patching in your config.plist matches with the Connector Types shown in Hackintool. So if you only have 3 connectors available it is because you have only set three of the four connectors.

Con-0 has been set as a DisplayPort <00040000>
Con-1 has been set as a HDMI <00080000>
Con-2 has been set as HDMI <00080000>
Con-3 has been set as dummy/empty <01000000>

As shown in the screenshot from the DeviceProperties section of your config.plist.

View attachment 556999

This is a screenshot showing the different Display Connector Types and their corresponding values.

View attachment 557000
So based on the above at least two of the Con-x entries in your config are wrong. Could be more. As you have full acceleration using the HDMI connector it is likely that one of the two HDMI entries is correct.

As the DisplayPort connector doesn't work correctly I can only assume that is is incorrectly configured.

Your config lacks any mention of the DVI and VGA connectors.

When testing the 4 x display connectors did you use IORegistryExplorer to confirm which connector was active when each port was used. Even when full acceleration wasn't provided, your IOReg should have told you which port on the motherboard was activated by each connector as it was tested.

I am sure you are aware that VGA connectors are not natively supported in macOS. So the chances are your VGA connector won't work, but setting it correctly, even if using a process of elimination as you identify the other three connectors, would be advisable. VGA connectors are often found to work when set as DisplayPort. Not sure why but that is common enough to be viable.

Don't set any of the connectors with the Dummy connector type, unless you want to explicitly disable that connector.

As you have messed up the connector types so splendidly I am wondering what your system sets each connector as natively, i.e. when there are no DeviceProperty over-rides, all the 'con-x' entries are removed from your config.plist.

DO NOT post a copy of your config.plist with your Serial Number visible. It will just result in the post being moved to a non-public forum before being deleted. As has happened here!
Thanks for your quick reply.

When all the con-x are removed, I got no display signal after the verbose. Although current patch setting is messed, it is the only setting to get at least my HDMI work.


As shown in the Hackintool, the third row is red when I connected with HDMI. So it means that my Framebuffer setting for the con2 is correct right?

hackintool Connectors Info.png


I connect both HDMI and Displayport, but only HDMI port was recognised as shown below screenshot.

ioregistry.png


I tried connection type DP for row 1 and 2 with different possible busid, but none of them work. Does it mean that my DP port should be the con3? So I think I can try to enable the con3 with different index (what possible value is it? 4 or can be 1 or 2?) and BusID and connection type to DP 00040000? Can you guide me how can I test further to make my DP port working? Thanks!
 
Last edited:
Post two copies of your IOReg so we can see what is being presented in your system.

The first should be a copy while you are using the con-0, con-1, con-2 and con-3 device properties.

The second should be a copy while all these con-x entries have been removed/deleted, so we can see what you system uses natively, with just the AAPL,ig-platform-id entry present, no need for the device-id entry, plus the frame buffer-patch-enable, stolenmem, fbmem and unifiedmem entries.

Screenshot 2022-10-26 at 21.47.07.png
Screenshot 2022-10-26 at 21.46.45.png

Showing isolated screenshots like the one you posted above is pointless, as it only shows one section of the IOReg. Not one that we need to see either.

We need to see at least 3 different locations, AppleIntelFramebuffer@0, @1 and @2 to see what your system is using. Possibly AppleIntelFramebuffer@3 will show up in the second IOReg, if it is not explicitly disabled.
 
Post two copies of your IOReg so we can see what is being presented in your system.

The first should be a copy while you are using the con-0, con-1, con-2 and con-3 device properties.

The second should be a copy while all these con-x entries have been removed/deleted, so we can see what you system uses natively, with just the AAPL,ig-platform-id entry present, no need for the device-id entry, plus the frame buffer-patch-enable, stolenmem, fbmem and unifiedmem entries.

View attachment 557010
View attachment 557009

Showing isolated screenshots like the one you posted above is pointless, as it only shows one section of the IOReg. Not one that we need to see either.

We need to see at least 3 different locations, AppleIntelFramebuffer@0, @1 and @2 to see what your system is using. Possibly AppleIntelFramebuffer@3 will show up in the second IOReg, if it is not explicitly disabled.
Case 1:
config.plist setting:
config1.png

Hackintool:
hackintool1.png

IOReg:
iore-1-0.png
iore-1-1.png
iore-1-2.png
iore-1-3.png

Results: Only HDMI working with acceleration

Case 2:
config2.png


Result: display black screen, then no signal after verbose can not enter into macOS.
 
Hi @Edhawk,

I have read the guide in the first page a couple of times more, I think I misunderstood previously. Now I use two monitors and cables (HDMI and DP) to test my connector using the Hackintool and generate the Framebuffer patch as suggested by the guide. Here is the result, I can see two rows are red in Hackintool, the first row index 1, port 5 and type is DP, the third row index 3, port 7 and type is HDMI. I can even see the two monitors were correctly recognised in the display section, e.g. monitor names. The monitor connected with the HDMI cable is working normally, however, the monitor connected with the dp cable is not showing any graphics with no signal and soon goes to power save mode.

I also noticed one thing that in the Hackintool info section, my current Framebuffer model is iMac19,1, the selected Framebuffer model is macmini8,1. Do I need to change my SMBIOS to macmini8,1? My CPU is i7-8086k. The real Apple iMac19,1 only shipped natively intel 8th gen i5 and i9, no i7. The real Apple Macmini8,1 shipped with intel 8th get i3, i5 and i7, although their cpu is mobile one with u as the suffix.

The following screenshoots are my config.plist, Hackintool info and as you asked the 3 different IOReg screenshoots. I have tried to google it for the whole day and read the whole thread in this guide. Don't know what else I can try to fix it. Can you help me what might be the issue or what I can try to fix it? Thanks very much!

config3.png
hackintool2-1.png
hackintool2-2.png
hackintool2-3.png
hackintool2-3.png
iore-2-1.png
iore-2-2.png
iore-2-3.png

hackintool2-4.png
 
Back
Top