yahgoo Posted September 18, 2022 Share Posted September 18, 2022 my HP 840 G3 (i7-6600U CPU, HD 520 iGPU with id 0x1916) laptop is working fine on Monterey 12.3 as MacBookPro13,1. In preparation of the coming Ventura Public Release, I genSMBIOS it to MacBookPo14,1. Since WEG v1.6.0 and above can spoof SKL to KBL from HD520 to HD620 then I have updated all kexts to the latest. It can boot into Monterey after iGPU doing retries 50 times and the dock is not transparent. Youtube can be played. But there is some performance lag on the UI. Attached are the DeviceProperties and NVRAM from config.plist I am new to frame buffer patching. Can someone please help me figure out how to spoof HD520 to HD620? Spoiler Link to comment Share on other sites More sharing options...
Administrators Hervé Posted September 18, 2022 Administrators Share Posted September 18, 2022 Those values you inject for fbmem (5MB !), stolenmem (8MB !), portcount (4 !) or device-id look rather odd and incorrect to me. I invite you to consult the existing threads posted this Ventura beta section where you'll find copies of the Clover packs I posted for my Skylake/HD520 Dell Latitude E7270. You may want to revisit the iGPU faked id you went for, knowing that: 8086:591e -> HD 615 8086:5916 -> HD 620 8086:591b -> HD 630 On top of the correct iGPU properties injection, you also need to ensure you use: the correct SMBIOS (MBP14,1) the correct version of Lilu + Whatevergreen (WEG v1.6.0 minimum) kexts Check your system's default DVMT settings; if DVMT is set to 32MB, try and patch that at BIOS level to 64MB or 96MB. If you can't, adjust fbmem and stolenmem so that the sum of the two parameters totals a little less than 32MB. KBL framebuffer 0x59160000 defines the following graphics settings: ID: 59160000, STOLEN: 34 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00000B0B TOTAL STOLEN: 35 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 103 MB, MAX OVERALL: 104 MB (109588480 bytes) Model name: Intel HD Graphics KBL CRB Camellia: CamelliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3 [0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP [2] busId: 0x04, pipe: 10, type: 0x00000800, flags: 0x00000187 - ConnectorHDMI 00000800 02000000 98000000 01050900 00040000 87010000 -> 0105 connector good for HDMI. Type 00080000 for HDMI audio. 02040A00 00080000 87010000 -> Ok for DP, incl. audio. If patching were required due to DVMT=32MB, all you'd have to inject is this: framebuffer-stolenmem DATA 0000F001 // i.e. 31MB or a lower value like 19+MB but certainly not down to 8MB only! When default DVMT value is 32MB and cannot be increased in BIOS, the regular convention adopted for years and inherited from Haswell's original mobile framebuffers is to set: stolenmem to 19MB (i.e. 0x01300000) fbmem to 9MB (0x00900000) No need to patch fbmem or stolenmem if DVMT=64MB or higher. KBL framebuffer 0x591B0000 has closer fbmem + stolenmem settings to SKL framebuffer 0x19160000 used for HD 520 graphics but it requires con1 patching for HDMI: ID: 591B0000, STOLEN: 38 MB, FBMEM: 21 MB, VRAM: 1536 MB, Flags: 0x0000130B TOTAL STOLEN: 39 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 136 MB, MAX OVERALL: 137 MB (144191488 bytes) Model name: Intel HD Graphics KBL CRB Camellia: CamelliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3 [0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS [2] busId: 0x04, pipe: 10, type: 0x00000800, flags: 0x00000187 - ConnectorHDMI [3] busId: 0x06, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP 00000800 02000000 98000000 02040A00 00080000 87010000 -> Not good for HDMI output. Needs patching to 01050900 [00080000 87010000]. 03060A00 00040000 87010000 -> Ok for DP, incl audio. All explanations readily available in original Ventura beta 1 thread. I would suggest you modify your properties injection like this: AAPL,ig-platform-id 00001659 DATA device-id 16590000 DATA framebuffer-con1-enable 1 NUMBER framebuffer-con1-type 00080000 DATA or like this: AAPL,ig-platform-id 00001B59 DATA device-id 1B590000 DATA framebuffer-con1-enable 1 NUMBER framebuffer-con1-alldata 010509000008000087010000 DATA adding the fbmem + stolenmem patches only if required. Of course, all this applies to Ventura only; I don't know if such KBL-spoofing settings work under Monterey, I've never even considered trying but why not? You should revert to previous and normal settings for Monterey and experiment with Ventura beta booted off a USB key instead. Link to comment Share on other sites More sharing options...
yahgoo Posted September 19, 2022 Author Share Posted September 19, 2022 Thanks for your speedy reply. I tried all your above recommended settings one at a time. I did not patch fbmem or stolenmem since BIOS video size is set to 64MB. As long as I have defined AAPL,ig-platform-id and device-id, the opencore verbose boot shows [iGPU] Unsupported Auxiliary ID .... followed by Doing retries #50. If I add -disablegfxfirmware in boot args under NVRAM then YouTube cannot work. Spoiler Link to comment Share on other sites More sharing options...
Administrators Hervé Posted September 19, 2022 Administrators Share Posted September 19, 2022 Were you booting Monterey or Ventura beta (and which beta)? I've no graphics boot arg other than igfxonln=1 in my E7270 setup (to ensure that LCD screen remains activated when HDMI is plugged in but that's platform specific, not Ventura specific). I'm using Lilu v1.6.2 and Whatevergreen v1.6.1 since Ventura beta 3. I've no error message in the boot log about iGPU firmware failing: Spoiler kernel: (AppleIntelKBLGraphics) [IGPU] Ring Size: 32 KB kernel: (AppleIntelKBLGraphics) [IGPU] Ring Size: 32 KB kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Scheduler Preemption Enabled! kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Scheduler Preemption Enabled! kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionDelayIntervalUS to 400 microseconds kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionDelayIntervalUS to 400 microseconds kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionTimerIntervalUS to 2000 microseconds kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionTimerIntervalUS to 2000 microseconds kernel: (AppleIntelKBLGraphics) [IGPU] Will NOT fallback to host-side scheduling if graphics firmware fails to load kernel: (AppleIntelKBLGraphics) [IGPU] Will NOT fallback to host-side scheduling if graphics firmware fails to load kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Tail Coalescing Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Tail Coalescing Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Page Fault Handling Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Page Fault Handling Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Single Channel Index Disabled kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Single Channel Index Disabled kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Channel Wait For Complete Disabled kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Channel Wait For Complete Disabled kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: Process CSB using HWS. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: Process CSB using HWS. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: PM notify enabled kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: PM notify enabled kernel: (AppleIntelKBLGraphics) [IGPU] Forced to use Host Preemptive Scheduler kernel: (AppleIntelKBLGraphics) [IGPU] Forced to use Host Preemptive Scheduler kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space kernel: (AppleIntelKBLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver kernel: (AppleIntelKBLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression for IOSurface is Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression for IOSurface is Enabled. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Throttle Cap = 100ms. kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Throttle Cap = 100ms. kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Host Preemptive kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Host Preemptive There's probably something wrong in your config/setup so post a zipped copy of your EFI folder if you want further assistance. Ideally your boot log too. Link to comment Share on other sites More sharing options...
yahgoo Posted September 20, 2022 Author Share Posted September 20, 2022 @Hervé Good news! I added -igfxsklaskbl in the boot args in order to test with Monterey. There are no more annoying iGPU retries. YouTube works and there is transparent dock. Is my laptop spoof to HD 630? Spoiler Link to comment Share on other sites More sharing options...
Administrators Hervé Posted September 20, 2022 Administrators Share Posted September 20, 2022 You've tested things in preparation of Ventura, great even if a little odd doing this with Monterey rather than with a Ventura beta build. But, as I said, why not? The boot arg -igfxsklaskbl won't be necessary in Ventura. However, this is obviously not the proper way to run Monterey at all on a fully supported Skylake platform. Changing thread title to reflect true situation and closing this topic. Link to comment Share on other sites More sharing options...
Recommended Posts