As per WhateverGreen states, the kext can apply various patches for different GPUs.
In my case I had to patch the iGPU (Intel UHD Graphics 620) to correctly recognize the HDMI connector my laptop comes with.
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>AADAhw==</data>
<key>backlight-smoother-interval</key>
<data>BwAAAA==</data>
<key>backlight-smoother-steps</key>
<data>IwAAAA==</data>
<key>backlight-smoother-threshold</key>
<data>LAEAAA==</data>
<key>device-id</key>
<data>FlkAAA==</data>
<key>enable-backlight-smoother</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-alldata</key>
<data>AAAIAAIAAACYAAAA</data>
<key>framebuffer-con0-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-alldata</key>
<data>AQUJAAAIAACHAQAA</data>
<key>framebuffer-con1-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-alldata</key>
<data>AgQKAAAEAACHAQAA</data>
<key>framebuffer-con2-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>model</key>
<string>Intel UHD Graphics 620</string>
</dict>
Below a simple (I hope) explanation of the graphics patch. For more infos check out the documentation from WhateverGreen and Dortania's OpenCore Post Install guide for BusID patching
Key | Type | Value (BASE-64) | Value (plain) | Description |
---|---|---|---|---|
AAPL,ig-platform-id |
Data | AADAhw== |
0000C087 |
Sets correct framebuffer for Kaby Lake-R's UHD 620 |
backlight-smoother-interval |
Data | BwAAAA== |
07000000 |
Backlight smoother interval for LVDS display |
backlight-smoother-steps |
Data | IwAAAA== |
23000000 |
Backlight smoother steps for LVDS display |
backlight-smoother-threshold |
Data | LAEAAA== |
2C010000 |
Backlight smoother tresholds for LVDS display |
device-id |
Data | FlkAAA== |
16590000 |
Custom device id for Kaby Lake-R's UHD 620 as Dortania's OpenCore Install Guide for Kaby Lake laptop states |
enable-backlight-smoother |
Data | AQAAAA== |
01000000 |
Enable the backlight smoother for LVDS display |
framebuffer-con0-alldata |
Data | AAAIAAIAAACYAAAA |
00000800 02000000 98000000 |
Default connector patch for LVDS display: Bus ID 00 , Pipe number 08 , Connector type 02000000 for LVDS display, default flags (idk wtf they actually mean tbf) |
framebuffer-con0-enable |
Data | AQAAAA== |
01000000 |
Enables WhateverGreen patching for connector #0 (LVDS display) |
framebuffer-con1-alldata |
Data | AQUJAAAIAACHAQAA |
01050900 00080000 87010000 |
Default connector patch for HDMI connector: Bus ID 05 , Pipe number 09 , Connector type 0008000 for HDMI connector, default flags (idk wtf they actually mean tbf) |
framebuffer-con1-enable |
Data | AQAAAA== |
01000000 |
Enables WhateverGreen patching for connector #1 (HDMI connector) |
framebuffer-con2-alldata |
Data | AgQKAAAEAACHAQAA |
02040A00 00040000 87010000 |
Default connector patch for USB-C DP connector: Bus ID 04 , Pipe number 0A (10 in dec) , Connector type 0004000 for DP connector, default flags (idk wtf they actually mean tbf) |
framebuffer-con2-enable |
Data | AQAAAA== |
01000000 |
Enables WhateverGreen patching for connector #2 (theoretically USB-C DisplayPort but never tested to be fair) |
framebuffer-patch-enable |
Data | AQAAAA== |
01000000 |
Enables WhateverGreen patching |
model |
String | Intel UHD Graphics 620 |
Custom name for the iGPU device. Can be anything to be fair |
According to Intel Quick Sync Video Wikipedia article, my CPU supports both encoding and decoding in AVC (L5.1)
(aka H.264
) as well as both encoding and decoding in HEVC
up to HEVC (10-bit)
.
For better readability I created a markdown table of the Wikipedia article table:
[Cantiga](https://en.wikipedia.org/wiki/Centrino#Montevina_platform_(2008) | Clarkdale/Arrandale | Sandy Bridge | Ivy Bridge/Haswell | Broadwell | Braswell/Cherry Trail | Skylake | Apollo Lake | Kaby Lake/Coffee Lake/Comet Lake/Whiskey Lake | Gemini Lake | Ice Lake/Jasper Lake | Tiger Lake | Rocket Lake/Alder Lake/Raptor Lake | Arc Alchemist/Meteor Lake/Arrow Lake | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MPEG-2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
AVC | ❌ | ✅ | ✅ | ✅ | ✅ (L5.2/L5.1) | ✅ (L5.1) | ✅ (L5.2) | ✅ (L5.1) | ✅ (L5.2) | ✅ (L5.2/L5.1) | ✅ | ✅ | ✅ | |
VC-1 | ❌ | ❌ | ||||||||||||
JPEG | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
VP8 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ||
HEVC | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ (L5.1) | ✅ (L5.1/L5) | ✅ (L5.1) | ✅ (L5.1/L5) | ✅ (L5.1) | ✅ | ✅ | ✅ | |
HEVC 10-bit | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
HEVC 12-bit | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |||
VP9 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
VP9 10-bit | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ||
VP9 12-bit | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |||
AV1 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ||
AV1 10-bit | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ||
AV1 12-bit | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
EVC | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
VVC | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
After correctly configuring my graphics patch VideoProc correctly recognizes both H.264
and HEVC
decoding/encoding: