TL;DR:
I'm using Pop 20.10. I'm on a Dell G5 5590 w/ RTX 2070mq (working well) and an i7-9750H. I have a 144hz built-in screen. It works when using nvidia proprietary drivers, but does not work (nor even appear in xrandr) when the nvidia card is disabled (i.e., using i915/integrated intel gpu instead).
In windows, I see the screen is 144hz when using nvidia, can be manually set to 64hz if desired. If i disabled the nvidia card, I see the screen running at 64hz automatically.
In Pop, it auto-defaults to using the nvidia drivers for my machine. This works perfectly, but has poor battery life characteristics.
In this mode, xrandr shows only a 144hz setting for the built in screen, which matches what I see in windows in the nvidia control panel:
When I try to switch to 'integrated' and reboot, I can only get video through my external monitors connected via usb-c. DP-0, which xrandr shows as the internal screen when using nvidia, doesn't even show up in xrandr when the nvidia is disabled.
xrandr with nvidia disabled:
I've filed an issue with i915, but have seen no response.
I've tried a number of things, all documented, including 1915.modeset=0 and attempts at xorg.conf files, but nothing seems successful--all shots in the dark for me, though, as this isn't an area I am terribly knowledgeable in.
My guess is that the EDID (or perhaps the DisplayPort Configuration Data/DPCD?) is 'incorrect', similar to the issue referenced here. But I'm pretty over my head trying to debug this on my own, and I'm a bit at a loss of where to go next.
I would also guess, and have in the past, that the iGPU just can't handle the 144hz. But:
- if that's the case, wouldn't I still see it in xrandr?
- 144hz of 1080p should be well within the range of what the iGPU is capable of, in theory, but if it won't do that in windows, maybe this is a wrong assumption
In any case, what can I try to get my internal monitor working (perferably at 60~hz, I'd like to maximize battery life) with my intel UHD 630 iGPU?
I would guess that I could add /usr/share/X11/xorg.conf.d/20-intel.conf with a 60hz modeline, but that hasn't seemed to work for me. I've tried many variations, but I just don't see my monitor. (You can see me giving an example of what conf file I have tried here).
What logs should I look at here? Here's my boot logs for an 'integrated' boot, grepped for modeset: https://pastebin.ubuntu.com/p/zXsjcpMdMY/ . No mention of DP-0 whatsoever...
However, when I grep through a an nvidia boot, I also see that modeset doesn't ever mention a DP-0 then, either; instead, in an nvidia boot only, I see this line:
Apr 07 16:29:28 pop-os /usr/libexec/gdm-x-session[2327]: (II) NVIDIA(0): Setting mode "DP-0: nvidia-auto-select @1920x1080 +2160+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}"
Based on what I'm reading here when I look up nvidia-auto-select, it seems the nvidia driver is told to manage DP-0, and then does, successfully. However, since I don't see DP-0 mentioned at all in xrandr when not booting with nvidia, I'm unable to debug that issue further than this without figuring out where knowledge of DP-0 comes from in the system, how it gets to be told to use nvidia-auto-select, etc., so that I could instead start telling DP-0 to get utilized when the nvidia card/driver are not active.
I think the parent process running is this code, but I'm not able to get much value from that, as I'm just not a C developer and don't know much about how this kind of project is organized.
If some other logs would be helpful, let me know.

