Fedora 34 - X11, NVIDIA 470.57.02 - GNOME 40 - External Monitor Issue

Hi all, I am experiencing a weird bug with my laptop and multi-monitors:

- Switch over from WAYLAND to X11 for application support

I have 4 monitors total, 3 external and 1 builtin (my laptop):

- Built in laptop (which I believe is linked to my Intel GPU, important to note later in the post)
- External MON 1 = HDMI, directly connected to my laptops HDMI port (which I believe is linked to my Nvidia GPU, important to note later in the post) 
- External MON 2 = mDP, directly connected to my laptops mDP port (which I believe is linked to my Nvidia GPU, important to note later in the post) 
- External MON 3 = USB-C dock connected via a D6000 dock (which I believe is linked to my Intel GPU, important to note later in the post)

So, I have a gpu that is considered “Optimus” which I’ve found references to this link:

- https://docs.fedoraproject.org/en-US/quick-docs/how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops/

From the link above, I made it to the section:

- ## Step #8: Edit the X11 configuration and added the following lines:
  + Option "PrimaryGPU" "yes"
  + sudo reboot

After rebooting:

- Intel GPU monitors are now disabled, (black screen)
- Nvidia GPU now displays

Verifying the renderer:

[gns3@gns3:~]$ glxinfo | egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 12.0.1, 256 bits)

When I edit this configuration and comment out the option gpu:

- sudo nano /etc/X11/xorg.conf.d/nvidia.conf
- and comment out: Option "PrimaryGPU" "yes"
- reboot

After rebooting:

- Intel GPU monitors now works
- Nvidia GPU nare now disabled, (black screen)

Verifying the renderer after commenting out the command:

[gns3@gns3:~]$ glxinfo | egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)


My hardware:

[gns3@gns3:~]$ screenfetch
           /:-------------:\          gns3@gns3
        :-------------------::        OS: Fedora 34 ThirtyFour
      :-----------/shhOHbmp---:\      Kernel: x86_64 Linux 5.13.9-200.fc34.x86_64
    /-----------omMMMNNNMMD  ---:     Uptime: 20m
   :-----------sMMMMNMNMP.    ---:    Packages: 2328
  :-----------:MMMdP-------    ---\   Shell: bash 5.1.0
 ,------------:MMMd--------    ---:   Resolution: 8320x1440
 :------------:MMMd-------    .---:   DE: GNOME 40.0
 :----    oNMMMMMMMMMNho     .----:   WM: Mutter
 :--     .+shhhMMMmhhy++   .------/   WM Theme: 
 :-    -------:MMMd--------------:    GTK Theme: Adwaita-dark [GTK2/3]
 :-   --------/MMMd-------------;     Icon Theme: Adwaita
 :-    ------/hMMMy------------:      Font: Cantarell 11
 :-- :dMNdhhdNMMNo------------;       Disk: 2.5T / 8.2T (30%)
 :---:sdNMMMMNds:------------:        CPU: Intel Core i7-8750H @ 12x 4.1GHz [58.0°C]
 :------:://:-------------::          GPU: NVIDIA GeForce GTX 1070 with Max-Q Design
 :---------------------://            RAM: 2791MiB / 31773MiB

My GPU:

[gns3@gns3:~]$ nvidia-smi
Mon Aug 16 04:18:31 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   48C    P8     5W /  N/A |      7MiB /  8119MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Seems the option: Option “PrimaryGPU” “yes” disables my Intel GPU? Is there a way to have both working?

1 Like

@t0xic0der : if anyone will know, it’s probably you :slight_smile:

Hey folks,

@ankursinha Thanks for the tag.

@whatstheip I would suggest not enabling the PRIME offloading if you wish to use multiple displays along with your laptop screen.

2 Likes

Hi Askashdeep,

So in my case, ignore this portion?

Any suggestions why external MON 1 and MON 2 screen would be blank when I ignore it?

Any commands I can run to output and paste to provide information?

Yep, simply remove them as leaving them be would make the PRIME offloading config persist.

Done, screen is blank now, (my built-in monitor and other monitor connected to USB-C are the only 1s that work now)

The 2 monitors connected to mDP and HDMI do not work when I disable prime, but when I enable prime my build-in monitor and usb-c monitors become blank

Unless there’s a limit on how many monitors can be displayed (On Ubuntu all 4 monitors worked)