Contribute
Register

4k performance on Intel UHD 620 (Big Sur)

Status
Not open for further replies.
Joined
Oct 2, 2020
Messages
7
Motherboard
Lenovo Yoga 730 15IKB
CPU
Intel i7 8550U 1.8GHz
Graphics
Intel UHD 620
Mac
  1. Mac mini
Mobile Phone
  1. Android
I've been tweaking and making progress towards improving 4k performance on my Intel UHD 620 IGPU. I was able to get DisplayPort over Thunderbolt working with my 32" 4k monitor @ 60.00Hz. At first performance was sluggish until I found out about framebuffer-unifiedmem and noticed a significant improvement once I set it to 2048 MB. But still I feel some sluggishness especially in motion/animations, eg: moving to different spaces in mission control, etc. I tried turning on "reduce transparency" in System Preferences -> Accessibility -> Display, it kind of helped but not significantly.

I have verified that in my BIOS settings the DVMT Pre-Allocated is set to max (64MB) as well as DVMT Total Gfx Mem (256M), so I guess I don't need to use framebuffer-stolenmem and framebuffer-fbmem? Anyway I tried to use them but macOS freezes during post-BOOT initialization when I enable them via framebuffer-patch-enable, so I had to remove framebuffer-patch-enable in order to disable those two.

My config.plist file is attached.

My system:
  • Lenovo Yoga 730 15IKB
  • Intel i7 8550U
  • 8 GB 2400 MHz DDR4 (soon-to-be 16GB RAM as soon as my extra RAM arrives)
  • Intel HD Graphics 620 1536 MB
  • 256 GB Solid State PCI-Express Drive
  • External monitor: 3840 x 2160 (2160p/4K UHD 1 - Ultra High Definition) @ 60.00Hz
Is it possible to make any further performance improvements here? By the way I'm not running any 3D apps or games, it's just basic internet browsing, email, calendar, Zoom, plus some coding apps like VSCode.

Any advice is appreciated, thanks.

P.S.: All I've accomplished so far was done by following WhateverGreen's Intel HD guide and also this other guide over here.
 

Attachments

  • config.plist
    20.4 KB · Views: 171
I've been tweaking and making progress towards improving 4k performance on my Intel UHD 620 IGPU. I was able to get DisplayPort over Thunderbolt working with my 32" 4k monitor @ 60.00Hz. At first performance was sluggish until I found out about framebuffer-unifiedmem and noticed a significant improvement once I set it to 2048 MB. But still I feel some sluggishness especially in motion/animations, eg: moving to different spaces in mission control, etc. I tried turning on "reduce transparency" in System Preferences -> Accessibility -> Display, it kind of helped but not significantly.

I have verified that in my BIOS settings the DVMT Pre-Allocated is set to max (64MB) as well as DVMT Total Gfx Mem (256M), so I guess I don't need to use framebuffer-stolenmem and framebuffer-fbmem? Anyway I tried to use them but macOS freezes during post-BOOT initialization when I enable them via framebuffer-patch-enable, so I had to remove framebuffer-patch-enable in order to disable those two.

My config.plist file is attached.

My system:
  • Lenovo Yoga 730 15IKB
  • Intel i7 8550U
  • 8 GB 2400 MHz DDR4 (soon-to-be 16GB RAM as soon as my extra RAM arrives)
  • Intel HD Graphics 620 1536 MB
  • 256 GB Solid State PCI-Express Drive
  • External monitor: 3840 x 2160 (2160p/4K UHD 1 - Ultra High Definition) @ 60.00Hz
Is it possible to make any further performance improvements here? By the way I'm not running any 3D apps or games, it's just basic internet browsing, email, calendar, Zoom, plus some coding apps like VSCode.

Any advice is appreciated, thanks.

P.S.: All I've accomplished so far was done by following WhateverGreen's Intel HD guide and also this other guide over here.
your renames should look like this for example:
Code:
<dict>
                <key>Comment</key>
                <string>_Q12 to XQ12</string>
                <key>Count</key>
                <integer>1</integer>
                <key>Enabled</key>
                <false/>
                <key>Find</key>
                <data>
                X1ExMg==
                </data>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>OemTableId</key>
                <data>
                </data>
                <key>Replace</key>
                <data>
                WFExMg==
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
                <key>TableLength</key>
                <integer>0</integer>
                <key>TableSignature</key>
                <data>
                </data>
            </dict>

although, these shouldn't be needed:
Code:
        <dict>
                <key>Comment</key>
                <string>change HDAS to HDEF</string>
                <key>Enabled</key>
                <false/>
                <key>Find</key>
                <data>SERBUw==</data>
                <key>Replace</key>
                <data>SERFRg==</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>change GFX0 to IGPU</string>
                <key>Enabled</key>
                <false/>
                <key>Find</key>
                <data>R0ZYMA==</data>
                <key>Replace</key>
                <data>SUdQVQ==</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>change EC0 to EC</string>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>RUMwXw==</data>
                <key>Replace</key>
                <data>RUNfXw==</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>change HECI to IMEI</string>
                <key>Enabled</key>
                <false/>
                <key>Find</key>
                <data>SEVDSQ==</data>
                <key>Replace</key>
                <data>SU1FSQ==</data>
            </dict>

setting DVMT to 128MB would be better for 4k

please read the faq for proper hardware profile setup:
 
Oh wow that was fast, thanks for the quick reply.

setting DVMT to 128MB would be better for 4k

You mean setting it in the config.plist? In my BIOS the maximum DVMT Pre-Allocated is 64MB.
 
Oh wow that was fast, thanks for the quick reply.



You mean setting it in the config.plist? In my BIOS the maximum DVMT Pre-Allocated is 64MB.
in your bios would be best

you may need to mod it or use a special efi shell to set it to 128MB
 
in your bios would be best

you may need to mod it or use a special efi shell to set it to 128MB
Got it, unfortunately in my BIOS the max value for DVMT Pre-Allocated is 64MB, which is already set. In this case I guess there isn't much I can do, is this true?
 
Got it, unfortunately in my BIOS the max value for DVMT Pre-Allocated is 64MB, which is already set. In this case I guess there isn't much I can do, is this true?
not sure, did you check with the guide above to see if 128mb is a possibility?
 
not sure, did you check with the guide above to see if 128mb is a possibility?
Yes, and I also tried a few combinations including 128mb for framebuffer-stolenmem but depending on the combo I either get a blank screen or a reboot during OS startup.
 
Yes, and I also tried a few combinations including 128mb for framebuffer-stolenmem but depending on the combo I either get a blank screen or a reboot during OS startup.
boot argument:
igfxonln=1

can sometimes help in forcing the displays on
 
boot argument:
igfxonln=1

can sometimes help in forcing the displays on

Good news, I was able to set framebuffer-stolenmem to AAAwAQ== (40MB) and framebuffer-fbmem = AACQAA==(24MB) which gives me a total of 64MB. This matches my DVMT Pre-Allocated that is set in BIOS.

Now, that said, here's another question: can I use a combination of framebuffer-stolenmem + framebuffer-fbmem that exceeds the maximum DVMT Pre-Allocated that is allowed in the BIOS? In my case the maximum allowed is 64MB, in other words, there's no greater option in BIOS. Is it possible to set framebuffer-stolenmem + framebuffer-fbmem to, say, 128MB? I tried that but the OS freezes during startup, so my assumption is that it's not possible, unless I'm missing something.
 
Good news, I was able to set framebuffer-stolenmem to AAAwAQ== (40MB) and framebuffer-fbmem = AACQAA==(24MB) which gives me a total of 64MB. This matches my DVMT Pre-Allocated that is set in BIOS.

Now, that said, here's another question: can I use a combination of framebuffer-stolenmem + framebuffer-fbmem that exceeds the maximum DVMT Pre-Allocated that is allowed in the BIOS? In my case the maximum allowed is 64MB, in other words, there's no greater option in BIOS. Is it possible to set framebuffer-stolenmem + framebuffer-fbmem to, say, 128MB? I tried that but the OS freezes during startup, so my assumption is that it's not possible, unless I'm missing something.
From the guide I mentioned above, at this image:
103379-db912128d31ebb70716b56a17dfc0afd.png


yours only goes to 64MB?
 
Status
Not open for further replies.
Back
Top