You are not logged in.
I have an iGPU and a dGPU on my laptop, the first card that gets loaded is my nvidia dgpu and the second one is the intel igpu. I know this because:
❯ lspci
...
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics G7 (rev 07)
...
02:00.0 3D controller: NVIDIA Corporation TU116M [GeForce GTX 1660 Ti Mobile] (rev a1)
❯ ls -l /dev/dri/by-path/
total 0
lrwxrwxrwx 1 root root 8 Aug 2 01:46 pci-0000:00:02.0-card -> ../card1
lrwxrwxrwx 1 root root 13 Aug 2 01:46 pci-0000:00:02.0-render -> ../renderD128
lrwxrwxrwx 1 root root 8 Aug 2 01:46 pci-0000:02:00.0-card -> ../card0
lrwxrwxrwx 1 root root 13 Aug 2 01:46 pci-0000:02:00.0-render -> ../renderD129I tried doing the following in `/etc/mkinitcpio.conf`:
MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)thinking that if the cpu module loads first, then it'll get card0 but that did not work.
The reasoning as to why I want the igpu to be card0 is so that apps that default to card0 will select my igpu instead of me needing to fiddle with each app.
Last edited by Aspecky (2026-08-02 13:22:19)
Offline
card0 starts out as the simpledrm device, that hands over to the first actual drm device (card1), frees card0 and that slot gets taken by the second GPU.
This is usually™ not a problem and the order isn't deterministic tbw (even if the modules can be made to load in order you're just biasing the results of a race condition)
You can add "initcall_blacklist=simpledrm_platform_driver_init" XOR "initcall_blacklist=sysfb_init" to the https://wiki.archlinux.org/title/Kernel_parameters to block the simpledrm device and remove nvidia from the initramfs, but that will still not make the process fully deterministic.
=> https://en.wikipedia.org/wiki/XY_problem - what are "apps that default to card0"?
Offline
I tried `initcall_blacklist=simpledrm_platform_driver_init` and it seemed to give a chance for the igpu to become card0 before the dgpu, but that didnt solve the what I had in mind. By "apps that default to card0", I just mean generally any software that grabs the first gpu it sees, or at least that's what I theorized. I guess the only surefire way to make sure the dgpu is used when needed is to just configure it on a per application basis.
Offline
I just mean generally any software that grabs the first gpu it sees
This is not how this works (for the mopst part, there're some prominent exceptions, notably steam and anything electron from the top of my head)
=> read https://en.wikipedia.org/wiki/XY_problem and open a thread detailing the immediate problem you're trying to solve (along the environment, display server & configuration)
Offline
You are correct, it was an electron app, but I already solved that on the application level. I just wanted to know whether the card ordering was the root of the problem. Thanks for the help.
Offline