Contribute
Register

[Guide] Intel Framebuffer patching using WhateverGreen

@headkaze

Do I need to apply your patch if my UHD 630 is enabled in the BIOS but is running in headless mode to get HEVC/H.264 hardware acceleration?
 
Another problem with an Intel i3-8100 UHD 630. Latest Whatevergreen and Lilu installed. Mainboard has 2 x HDMI, 1 x DP. Screen turns black when going to Lockscreen.

Booting with -igfxvesa flag works without acceleration.

Intelframebuffer patcher actually shows connected dispay (external) on the first port. When Display is switched to another HDMI port, no signal. When rebooting still in second HDMI port, it shows the display on connector 1 too.

Checking for Intelframebuffer in IORegistryExplorer without success... there is no Intelframebuffer in IORegistryExplorer.

What could it be?
 

Attachments

  • config.plist
    5.3 KB · Views: 163
Yes and you would have to increase the port-count. Not sure about the pipe-count value though. Does that need to be changed also?

About a half year ago I did some test with 2 displays, I had multidisplay working, only if I connected the second monitor after booting. What I learned from that test was, you just need a pipe for every connected display, if you never use two connectors simultaneously they can share the same pipe.
In my sky-lake setup I use pipe 8,9 and A, I don't think they have any priority over one another and can be used in any order.

The port numbers and addresses for SkyLake are also:
0000 = portNumber 0x0
0105 = portNumber 0x5
0204 = portNumber 0x6
0306 = portNumber 0x7

for Asus Z170 ProGaming the port mapping is:
portNumber 0x0 = VGA
portNumber 0x5 = DVI-D
portNumber 0x6 = HDMI
portNumber 0x7 = DP

I did not test VGA, but portNumber 5, 6 ad 7 can have any framebuffer index and any pipe-number (8, 9 or A).

just my 2 cents.
I don't need a second display so I stopped experimenting with this.
I have not tested with 10.14 yet.
 
Last edited:
Hi,

I was able to activate the framebuffer for the Intel HD4600 card as indicated in the first post.

I get hardware decoding with the Intel HD 4600 + AMD RX 570 OC card. HVEC + H264

Mobo: Z97X-UDH5 Rev 1.0 F10; I7 4790K @4,7GHZ; 32GB DDR3; NVM2 960 Evo (SO in APFS); Strix AMD RX 570 OC 4GB; Mojave 10.14

My question is, as I get everything working, after a boot fails to give. After another 2 or 3 boots returns to give and then leaves again. Any method to fix?

Regards
 

Attachments

  • Acpi.png
    Acpi.png
    296.1 KB · Views: 304
  • Boot.png
    Boot.png
    251.4 KB · Views: 337
  • Decoder.png
    Decoder.png
    153.8 KB · Views: 308
  • Devices.png
    Devices.png
    216.8 KB · Views: 316
  • Encoder.png
    Encoder.png
    161.9 KB · Views: 305
  • Graphics.png
    Graphics.png
    234.6 KB · Views: 309
  • Intel FB1.png
    Intel FB1.png
    123.4 KB · Views: 297
  • Intel FB2.png
    Intel FB2.png
    126.9 KB · Views: 320
  • Kernel Patches.png
    Kernel Patches.png
    244.9 KB · Views: 284
  • Rt Variables.png
    Rt Variables.png
    187 KB · Views: 296
  • SMBIOS.png
    SMBIOS.png
    241.9 KB · Views: 322
  • System Preferences.png
    System Preferences.png
    208.3 KB · Views: 255
  • Clover.png
    Clover.png
    227.2 KB · Views: 232
Last edited:
Hi,

I was able to activate the framebuffer for the Intel HD4600 card as indicated in the first post.

I get hardware decoding with the Intel HD 4600 + AMD RX 570 OC card. HVEC + H264

Mobo: Z97X-UDH5 Rev 1.0 F10; I7 4790K @4,7GHZ; 32GB DDR3; NVM2 960 Evo (SO in APFS); Strix AMD RX 570 OC 4GB; Mojave 10.14

My question is, as I get everything working, after a boot fails to give. After another 2 or 3 boots returns to give and then leaves again. Any method to fix?

Regards
try:
ig-platform-id:0x0412000B
SMBIOS:iMac15,1
 
try:
ig-platform-id:0x0412000B
SMBIOS:iMac15,1

He stopped appearing on about this mac, lost the PM, and got HVEC Software Decoder.
 
I use lilu + whatevergreen to patch framebuffer, I did most steps except add framebuffer-* to config.plist, I add AAPL,ig-platform-id only.
Now it will be KP when I boot my laptop(Mojave). I can only injects an illegal ID 0x12345678 to boot the system.
 
He stopped appearing on about this mac, lost the PM, and got HVEC Software Decoder.
you can find IGPU by IORegistryExplorer.
0x0412000B is an id with no connectors

Code:
ID: 0412000B, STOLEN: 32 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00000000
TOTAL STOLEN: 1 MB, TOTAL CURSOR: 0 bytes, MAX STOLEN: 1 MB, MAX OVERALL: 1 MB
GPU Name: Intel HD Graphics 4600
Model Name(s): iMac15,1
Camelia: Disabled, Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 0, PipeCount: 0, PortCount: 0, FBMemoryCount: 0
 
I use lilu + whatevergreen to patch framebuffer, I did most steps except add framebuffer-* to config.plist, I add AAPL,ig-platform-id only.
Now it will be KP when I boot my laptop(Mojave). I can only injects an illegal ID 0x12345678 to boot the system.
I think you need DVMT pre-alloc 32MB patch.
I use FB-Patcher v1.4.1 to generate some patch for your HD520.
Code:
<key>Devices</key>
    <dict>
        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                AAAWGQ==
                </data>
                <key>device-id</key>
                <data>
                FhkAAA==
                </data>
                <key>disable-external-gpu</key>
                <data>
                AQAAAA==
                </data>
                <key>enable-hdmi20</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con2-busid</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con2-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con2-flags</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con2-index</key>
                <data>
                /////w==
                </data>
                <key>framebuffer-con2-pipe</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con2-type</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con3-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con3-flags</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-fbmem</key>
                <data>
                AACQAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-pipecount</key>
                <data>
                AgAAAA==
                </data>
                <key>framebuffer-portcount</key>
                <data>
                AgAAAA==
                </data>
                <key>framebuffer-stolenmem</key>
                <data>
                AAAwAQ==
                </data>
                <key>framebuffer-unifiedmem</key>
                <data>
                AAAAgA==
                </data>
            </dict>
        </dict>
    </dict>
 
In order to do that, you will absolutely need to take into account patches applied.

The latest version adds a Patch->Apply Current Patches menu so you can see your current patches

I also added a Patch->Import KextsToPatch so you can import a Clover Find/Replace patch
 
Back
Top