Hi all,
I'm currently facing a weird problem with my Dell Latitude 5411.
The UHD 630 works fine, two external displays too.
The Notebook has Thunderbolt 3 and a HDMI 2.0 port via LSPCON.
The block diagram says 4 display outputs:
1x eDP (Internal Display)
2x DP to the Thunderbolt Controller
1x DP to HDMI 2.0 Converter
Until a few weeks ago, I was using an Asus monitor with 2560x1440@165Hz via an USB-C to DP adapter.
Now I bought a LG Ultra Wide 38GN350 which has 3840x1600@160Hz. The new monitor does only work with 1080p as a maximum resolution.
I already tried a workaround with SwitchResX. The maximum custom resolution that works is 3000x1600@100Hz.
Any higher resolution is flagged as invalid after reboot.
Device Properties
Code:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>
CQClPg==
</data>
<key>AAPL,slot-name</key>
<string>Internal@0,2,0</string>
<key>device_type</key>
<string>VGA compatible controller</string>
<key>enable-lspcon-support</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con1-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con1-busid</key>
<data>
BQAAAA==
</data>
<key>framebuffer-con1-index</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con1-pipe</key>
<data>
EgAAAA==
</data>
<key>framebuffer-con1-type</key>
<data>
AAQAAA==
</data>
<key>framebuffer-con2-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con2-busid</key>
<data>
BAAAAA==
</data>
<key>framebuffer-con2-index</key>
<data>
AwAAAA==
</data>
<key>framebuffer-con2-pipe</key>
<data>
EgAAAA==
</data>
<key>framebuffer-con2-type</key>
<data>
AAQAAA==
</data>
<key>framebuffer-fbmem</key>
<data>
AACQAA==
</data>
<key>framebuffer-patch-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-stolenmem</key>
<data>
AAAwAQ==
</data>
<key>framebuffer-unifiedmem</key>
<data>
AAAAgA==
</data>
<key>hda-gfx</key>
<string>onboard-1</string>
<key>model</key>
<string>Intel UHD Graphics 630</string>
<key>enable-max-pixel-clock-override</key>
<data>
AQAAAA==
</data>
<key>disable-agdc</key>
<data>
AQAAAA==
</data>
<key>force-online</key>
<data>
AQAAAA==
</data>
</dict>
In addition, I tried different framebuffer settings, enable-hdmi20 and/or pixel-clock-override
Approach via UEFI variable:
I also checked the UEFI variables. There is no option for values higher than 64MB.
Content of Section_PE32_image_Setup IFR.txt
Code:
One Of: DVMT Pre-Allocated, VarStoreInfo (VarOffset/VarName): 0xF5, VarStore: 0x16, QuestionId: 0x274E, Size: 1, Min: 0x0, Max 0xFE, Step: 0x0 {05 91 92 06 A5 06 4E 27 16 00 F5 00 10 10 00 FE 00}
0x4BEC8 Default: DefaultId: 0x0, Value (8 bit): 0x1 {5B 06 00 00 00 01}
0x4BECE One Of Option: 0M, Value (8 bit): 0x0 {09 07 93 06 00 00 00}
0x4BED5 One Of Option: 32M, Value (8 bit): 0x1 {09 07 94 06 00 00 01}
0x4BEDC One Of Option: 64M, Value (8 bit): 0x2 {09 07 95 06 00 00 02}
0x4BEE3 One Of Option: 4M, Value (8 bit): 0xF0 {09 07 96 06 00 00 F0}
0x4BEEA One Of Option: 8M, Value (8 bit): 0xF1 {09 07 97 06 00 00 F1}
0x4BEF1 One Of Option: 12M, Value (8 bit): 0xF2 {09 07 98 06 00 00 F2}
0x4BEF8 One Of Option: 16M, Value (8 bit): 0xF3 {09 07 99 06 00 00 F3}
0x4BEFF One Of Option: 20M, Value (8 bit): 0xF4 {09 07 9A 06 00 00 F4}
0x4BF06 One Of Option: 24M, Value (8 bit): 0xF5 {09 07 9B 06 00 00 F5}
0x4BF0D One Of Option: 28M, Value (8 bit): 0xF6 {09 07 9C 06 00 00 F6}
0x4BF14 One Of Option: 32M/F7, Value (8 bit): 0xF7 {09 07 9D 06 00 00 F7}
0x4BF1B One Of Option: 36M, Value (8 bit): 0xF8 {09 07 9E 06 00 00 F8}
0x4BF22 One Of Option: 40M, Value (8 bit): 0xF9 {09 07 9F 06 00 00 F9}
0x4BF29 One Of Option: 44M, Value (8 bit): 0xFA {09 07 A0 06 00 00 FA}
0x4BF30 One Of Option: 48M, Value (8 bit): 0xFB {09 07 A1 06 00 00 FB}
0x4BF37 One Of Option: 52M, Value (8 bit): 0xFC {09 07 A2 06 00 00 FC}
0x4BF3E One Of Option: 56M, Value (8 bit): 0xFD {09 07 A3 06 00 00 FD}
0x4BF45 One Of Option: 60M, Value (8 bit): 0xFE {09 07 A4 06 00 00 FE}
0x4BF4C End One Of {29 02}
The Dell BIOS says 64MB which might be wrong.
If I boot without the WEG 32MB patch, I am stuck at Graphics Init and getting a Kernel Panic.
Unfortunately, I cannot set the DVMT size via setup_var or ru.efi because the Setup variable does not contain valid data.
For instance: If I change the SATA settings to AHCI or Disabled in the Dell BIOS, the assigned value will stay 0x2 for RAID:
Code:
One Of: SATA Operation, VarStoreInfo (VarOffset/VarName): 0x44, VarStore: 0x17, QuestionId: 0x1C4, Size: 1, Min: 0x1, Max 0xFF, Step: 0x0 {05 91 6C 1F 6E 1F C4 01 17 00 44 00 10 10 01 FF 00}
0x3C99F One Of Option: Disabled, Value (8 bit): 0xFF {09 07 71 1F 00 00 FF}
0x3C9A6 One Of Option: AHCI, Value (8 bit): 0x1 {09 07 6F 1F 00 00 01}
0x3C9AD One Of Option: RAID On, Value (8 bit): 0x2 (default) {09 07 70 1F 10 00 02}
0x3C9B4 End One Of {29 02}
So changing the UEFI setup variable has absolutely no effect.
Therefore, I might use the wrong variable. Are there any other places than "Setup" to store data?
Additional info: My UEFI is password protected because it is my office computer.
I also tried the monitor with a Dell XPS 9500 and it works fine at 3840x1600@75Hz also with HiDPI settings in control panel.
So I think, this is a DVMT related issue, because the XPS does not need the stolenmem patch for 32MB. The other configuration is identical to my 5411.
Any ideas on how to get 4K@60Hz working?