- Joined
- Dec 10, 2010
- Messages
- 1,367
- Motherboard
- Gigabyte Z390 Aorus Elite
- CPU
- i9-9900K
- Graphics
- RX 6600 XT
- Mobile Phone
How to set the integrated graphics card Intel UHD Graphics 630 Coffee Lake Refresh (9 generation) in headless mode (without cable) to be used in video encoding tasks, bringing the image to the monitor with Radeon RX 580, adding hardware video encoding and decoding to the system, or as main card.
Note: based on the excellent article "[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)" by @CaseySJ, on the "Framebuffer patch" functionality of @headkaze Hackintool app and on the Desktop Coffee Lake Dortania's guide. Instructions for OpenCore.
Macs with an integrated graphics card (iGPU) and a dedicated one (dGPU) use the integrated one for video encoding and decoding. When building a Hackintosh with both types of GPU we can find that, although the dGPU is much more powerful than the iGPU, if it is not properly installed and recognized by the system, the video encoding will fail. When this happens but we do not want to have the iGPU as the primary card, we must configure the iGPU as headless mode (it is called like that when it is active but without cable to the display) so that the dGPU shows the image but the integrated one is available for encoding / decoding video.
The iGPU installation depends on 2 factors:
Headless mode
This code shows data values in Base64, they can also be seen as hexadecimal values although with the inverted bytes (reverse byte order), you can check it with a converter: AwCRPg== in Base64 (device-id) equals 0300913e in hexadecimal (3E910000).
With these changes I can boot from the dGPU with the iGPU well recognized by macOS. To check if the VDA Decoder function is activated you can see it in Hackintool (Fully Supported or Failed in the first System tab) or in the VideoProc app (Hardware acceleration preferences> Option> Enabled or Not available). In my case, with the proposed configuration, both applications detect hardware video encoding.
Notes:
This card can also be configured to be the primary or main, so that it outputs a signal to the monitor and also encodes video. Here's what to do to make it work like this.
Notes:
If you have KP or black screen when you leave sleep, you have to replace hda-gfx property with No-hda-gfx, this usually fixes those failures when leaving sleep but audio through HDMI is lost. Replace these 2 lines:
for these other 2:
Note: based on the excellent article "[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)" by @CaseySJ, on the "Framebuffer patch" functionality of @headkaze Hackintool app and on the Desktop Coffee Lake Dortania's guide. Instructions for OpenCore.
Macs with an integrated graphics card (iGPU) and a dedicated one (dGPU) use the integrated one for video encoding and decoding. When building a Hackintosh with both types of GPU we can find that, although the dGPU is much more powerful than the iGPU, if it is not properly installed and recognized by the system, the video encoding will fail. When this happens but we do not want to have the iGPU as the primary card, we must configure the iGPU as headless mode (it is called like that when it is active but without cable to the display) so that the dGPU shows the image but the integrated one is available for encoding / decoding video.
The iGPU installation depends on 2 factors:
- motherboard because each manufacturer places 1-2-3 output ports on the iGPU
- Intel processor generation, different Intel processor generations carry different iGPU models.
- Index 1, BusID 0x00, Type HDMI (type does not matter on this port)
- Index 2, BusID 0x00, Type HDMI (type does not matter on this port)
- Index 3, BusID 0x04, Type HDMI (this is the active port, the only one existing).
Headless mode
- iGPU and dGPU must be enabled in BIOS with dGPU as primary.
- There should be no cable between iGPU port and any type of display.
- Lilu and WhatEverGreen properly installed.
- SMBIOS iMac19.1
- You have to add in DeviceProperties section of OC:
XML:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>AwCRPg==</data>
<key>device-id</key>
<data>mz4AAA==</data>
<key>enable-metal</key>
<data>AQAAAA==</data>
<key>rps-control</key>
<data>AQAAAA==</data>
</dict>
With these changes I can boot from the dGPU with the iGPU well recognized by macOS. To check if the VDA Decoder function is activated you can see it in Hackintool (Fully Supported or Failed in the first System tab) or in the VideoProc app (Hardware acceleration preferences> Option> Enabled or Not available). In my case, with the proposed configuration, both applications detect hardware video encoding.
Notes:
- device-id=9B3E000 to be displayed as Intel UHD Graphics 630 instead of Kabylake Unknown
- enable-metal=01 to enable Metal 3 in Ventura
- force-online=01 to force online status on all displays (mandatory)
- rps-control=01 to enable RPS control patch (improves IGPU performance).
This card can also be configured to be the primary or main, so that it outputs a signal to the monitor and also encodes video. Here's what to do to make it work like this.
- Enable it on the mother board as main: Initial Display Output IGFX instead of PCIe 1 Slot (this would be the final step)
- Lilu and WhatEverGreen properly installed
- SMBIOS iMac19.1
- Add in config.plist: in DeviceProperties section of config.plist the code below:
XML:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>BwCbPg==</data>
<key>device-id</key>
<data>mz4AAA==</data>
<key>device_type</key>
<string>VGA compatible controller</string>
<key>enable-hdmi20</key>
<data>AQAAAA==</data>
<key>enable-metal</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-busid</key>
<data>AAAAAA==</data>
<key>framebuffer-con0-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-pipe</key>
<data>EgAAAA==</data>
<key>framebuffer-con1-busid</key>
<data>AAAAAA==</data>
<key>framebuffer-con1-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-pipe</key>
<data>EgAAAA==</data>
<key>framebuffer-con2-busid</key>
<data>BAAAAA==</data>
<key>framebuffer-con2-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-pipe</key>
<data>EgAAAA==</data>
<key>framebuffer-con2-type</key>
<data>AAgAAA==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-stolenmem</key>
<data>AAAwAQ==</data>
<key>hda-gfx</key>
<string>onboard-1</string>
<key>igfxfw</key>
<data>AgAAAA==</data>
<key>force-online</key>
<data>AQAAAA==</data>
<key>rps-control</key>
<data>AQAAAA==</data>
</dict>
Notes:
- force-online=01 to force online status on all displays (mandatory).
If you have KP or black screen when you leave sleep, you have to replace hda-gfx property with No-hda-gfx, this usually fixes those failures when leaving sleep but audio through HDMI is lost. Replace these 2 lines:
XML:
<key>hda-gfx</key>
<string>onboard-1</string>
XML:
<key>No-hda-gfx</key>
<data>AAAAAAAAAAA=</data>
Last edited: