Jump to content

Latitude 7480: Unable to obtain 4K resolution on external monitor through TB->DP port


satt294
Go to solution Solved by Hervé,

Recommended Posts

I am trying to connect from the thunderbolt port to DisplayPort on my HP Envy 27s 4K monitor. On windows and Linux, I am able to get 4K resolution when extending the display. However on the Monterey 12.5 hack, I am able to get only 2560x1600 resolution. I am not able to use HDMI to connect to the monitor as the laptop monitor keeps blinking and does not seem to detect HDMI connected, whereas it works fine on Linux and Windows 10. Does anyone manage to resolve this issue?

Screenshot 2022-07-29 at 8.21.39 PM.png

Link to comment
Share on other sites

  • Administrators
  • Solution

Did you check the default DVMT settings of your 7480? Under macOS, DVMT must usually be set to 64MB or 96MB to obtain 4K output; afaik, you won't get it if DVMT is set to 32MB even if you patch the DVMT settings (fbmem + stolenmem) through properties injection.

 

With DVMT set to 64MB or 96MB (BIOS mod through Grubshell, see our FAQ topic on the matter or my E7270 guide), I can get 4K @24-30Hz out of HDMI and 4K@60Hz out of mDP on my Skylake/HD520 E7270 laptop. Can't see why it'd be different on your 7480, unless it's the TB port that's causing the issue under macOS of course.

 

Don't hesitate to post a zipped copy of your bootloader's EFI folder so that we can check your settings.

 

Do post your system's specs in signature since they're are 6th gen and 7th gen 7480...

Link to comment
Share on other sites

Thanks for your reply @Hervé. I followed your guide to set the DVMT through grub shell to 96Mb. But I am still not able to get 4K output via HDMI. Attached is the setup IFR text file extracted from setup.bin. I used 0x795 as the variable when running the setup_var command in grub shell.  setup IFR.txt.zip

Success!! Using my thunderbolt to DisplayPort cable. Now I have 4K@60Hz on my secondary monitor. In addition to setting the DVMT using the mod grub shell, I have to remove two patches: `framebuffer-fbmem` and `framebuffer-stolenmem` and add a new flag `framebuffer-flags` and set its value to 0x0b07e300. After restarting the system, I am able to see the default resolution for my monitor has changed to 3840x2160. Thanks a lot @Hervé

However, when using the HDMI cable, I seem to get 4K output, but the screen goes all `staticky` within couple of seconds. I will try again with a DVMT of 96Mb and let you know.

 

Screenshot 2022-07-29 at 11.39.07 PM.png

 

Reference (where I got to know that we have to remove the existing framebuffer-patches) : https://github.com/daliansky/XiaoMi-Pro-Hackintosh/wiki/Set-DVMT-to-64mb

Link to comment
Share on other sites

  • Administrators

Indeed, once you increase DVMT to 64MB or 96MB in BIOS, the fbmem + stolenmem patches become irrelevant and even counter productive since they usually aim to reduce the default values of the selected framebuffer so that the sum of them remains below 32MB.

 

In your case, it looks like 64MB is the max value you can set for DVMT pre-allocated memory. May be you can experiment with DVMT total values (256/128/Max).

Link to comment
Share on other sites

Yes, that makes sense. Thanks for your explanation. I tried with 96MB DVMT, but I continue to have issues with HDMI. The TB3 -> DP works fine at 4K@60 and I couldn't ask for more.

When I connect the HDMI cable, the display still shows the default resolution as 2560x1440, though I can see the 4K resolution in the scaled resolution list. Once I select 4K from there, the external monitor goes black and does not come back, unless I reboot.

Link to comment
Share on other sites

CPU: Intel(R) Core(TM) i7-7600U

iGPU: Intel UHD 620

RAM: 16GB

SMBIOS: MacbookPro 15,2  (Suggested on some portal for my Kabylake processor)

iGPU patches: please see the attached image. 

 

PS: I am trying to update my signature with my system specs, but I do not know how :P

 

Screenshot 2022-07-30 at 12.20.42 AM.png

Link to comment
Share on other sites

  • Administrators

For your signature: click on your account name at top of forum Window, then go to Account Settings->Signature.

 

About your graphics setup:

  • Strange that you opted for MBP15,2 (a Coffee Lake model) on your Kaby Lake/HD620 laptop when you'd be expected to use MBP14,1 (a Kaby Lake model)l. I invite you to try it out.
  • KBL framebuffer 0x59160000 certainly is correct for KBL HD620 and your connector patches are all good though con0's is not required since you inject the exact same thing as what's natively defined in the framebuffer. You correctly swap connector's type for HDMI and DP given that, in the vanilla FB, con1 is DP and con2 is DP:
  • 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
    02040A00 00080000 87010000
  • You could also experiment with KBL FB 0x591B0000 (it's the recommended one for KBL HD620). It requires patching con1 alldata to same as FB 0x59160000 or you won't get HDMI output of course:
  • 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     -> Needs to be patched to 01050900 ...
    03060A00 00040000 87010000     -> can stay as is afaik, no need to patch to 0204...

     

  • I've never seen anyone injection a pci-asm-default value for an iGPU. Did you try HDMI output without injecting this parameter?
  • Where did you get the idea to inject a different framebuffer-flags value from? How did you choose the value?
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...