Asus FX505DT AMD + Nvidia issue on Ubuntu 20.04

Hello,

First of all i apologize for my incompetence in this matter, i have no real experience with double GPU and i had joy-ride for a long time with Ubuntu too, so as simple user im a bit rusty when it comes to troubleshooting.

I have following setup:

sudo lspci | grep -i --color 'vga\|3d\|2d'
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso (rev c2)

Secure boot is also disabled:

zeke@ZekeTheSinner:~$ mokutil --sb-state
SecureBoot disabled
Platform is in Setup Mode

Simply put, trying to run nvidia-settings ended with blank widow and following communicat in terminal:

zeke@ZekeTheSinner:~$ nvidia-settings

ERROR: Unable to load info from any available system


(nvidia-settings:4027): GLib-GObject-CRITICAL **: 06:58:25.914: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 06:58:25.918: PRIME: No offloading required. Abort
** Message: 06:58:25.918: PRIME: is it supported? no

Firstly i ignored it, but then when i tried to connect secondary monitor, it was not detected at all (no results in xrandr, nor in the “Displays” section in settings).

xrandr:

zeke@ZekeTheSinner:~$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1920x1080     59.93*+  39.99  
   1680x1050     59.93  
   1280x1024     59.93  
   1440x900      59.93  
   1280x800      59.93  
   1280x720      59.93  
   1024x768      59.93  
   800x600       59.93  
   640x480       59.93  

Im using current nvidia 440 driver:

zeke@ZekeTheSinner:~$ sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.7/0000:04:00.0 ==
modalias : pci:v000010ECd0000C821sv00001A3Bsd00003041bc02sc80i00
vendor   : Realtek Semiconductor Co., Ltd.
model    : RTL8821CE 802.11ac PCIe Wireless Network Adapter
driver   : rtl8821ce-dkms - distro free

== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd00001F91sv00001043sd0000109Fbc03sc00i00
vendor   : NVIDIA Corporation
model    : TU117M [GeForce GTX 1650 Mobile / Max-Q]
driver   : nvidia-driver-440 - distro non-free recommended
driver   : nvidia-driver-435 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

prime seemed to be working too:

zeke@ZekeTheSinner:~$ sudo prime-select query
nvidia

but:

zeke@ZekeTheSinner:~$ glxinfo | egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: X.Org
OpenGL renderer string: AMD RAVEN (DRM 3.35.0, 5.4.0-40-generic, LLVM 10.0.0)

nvidia-smi results:

zeke@ZekeTheSinner:~$ nvidia-smi
Wed Jul  8 07:02:11 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1650    Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   44C    P0     4W /  N/A |      0MiB /  3911MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

So, after a bit of research, i have found that option:

Add Option “PrimaryGPU” “true” inside the outputclass of
/usr/share/X11/xorg.conf.d/10-nvidia.conf

Out of desperation is decided to test it… and it worked (should it even work? is it not for intel + nvidia?)

so, after changes my /usr/share/X11/xorg.conf.d/10-nvidia.conf looked like this:

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "true"
    ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg" EndSection

And rebooted the laptop. Worked like a charm, both xrandr and “Displays” detected second monitor. Everything was configurable.

zeke@ZekeTheSinner:~$ xrandr
Screen 0: minimum 8 x 8, current 2560 x 2160, maximum 32767 x 32767
HDMI-0 connected 2560x1080+0+0 (normal left inverted right x axis y axis) 673mm x 284mm
   2560x1080     60.00*+
   1920x1080     60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
eDP-1-0 connected primary 1920x1080+255+1080 (normal left inverted right x axis y axis) 344mm x 194mm
   1920x1080     59.93*+  39.99  
   1680x1050     59.93  
   1280x1024     59.93  
   1440x900      59.93  
   1280x800      59.93  
   1280x720      59.93  
   1024x768      59.93  
   800x600       59.93  
   640x480       59.93  

glxinfo | egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1650/PCIe/SSE2

nvidia-smi:

zeke@ZekeTheSinner:~$ nvidia-smi
Wed Jul  8 06:48:55 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1650    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   40C    P8     2W /  N/A |    431MiB /  3911MiB |     20%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0       969      G   /usr/lib/xorg/Xorg                           187MiB |
|    0      1301      G   /usr/bin/gnome-shell                         136MiB |
|    0      3420      G   ...AAAAAAAAAAAACAAAAAAAAAA= --shared-files   102MiB |
|    0      5976      G   gnome-control-center                           1MiB |
+-----------------------------------------------------------------------------+

nvidia-settings also is working, tho is still get the same message:

zeke@ZekeTheSinner:~$ nvidia-settings

(nvidia-settings:7427): GLib-GObject-CRITICAL **: 06:52:09.339: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 06:52:09.530: PRIME: No offloading required. Abort
** Message: 06:52:09.530: PRIME: is it supported? no

But new problem occured.

It only works IF second monitor is detected. If its not connected, during system booting display for short period of time (up to 20sec) looks like it has taken phisical damage, then goes black and freezes.

Connecting back second monitor fixes it. Removing the line from 10.nvidia and rebooting also fixes it.

What i take from this is that, Nvidia is not working at all while driver is installed and says its running (i assume HDMI is connected directly to nvidia GPU, so thats why its not working without this setting)? And that setting simply brute-forces nvidia to work?

Please advise.

Following bug report file was generated wouthout setting added.
nvidia-bug-report.log (1.8 MB)

Hey did you ever get this to work??
Did you try steps I used for 18.04 detailed here:

?

Hello, i actually found Your post today’s morning and proceeded only with changes from step 7 and 8. I can confirm everything works flawlessly so far, both HDMI and nvidia-setting (work on 440 too). Thank You.