Attempting to specify options for modesetting causes it to try to claim NVidia device
On a laptop with NVidia Optimus powered via the proprietary driver, I would like to supply the new AsyncFlipSecondaries option so that vsync is primarily concerned with my TV connected via HDMI to the NVidia card, so that there are no longer any micro-stutters and the other displays are allowed to tear.
I know that AsyncFlipSecondaries is in the newest stable release, but I'm currently using Arch Linux, and 21.1.0 is not packaged because of #1240 (closed) rendering it unbuildable with meson. But there may be a situation where it also can't meaningfully be set at the moment, and it may be better to just get ahead of it if 21.1.1 isn't due out for a few weeks yet.
I have xorg-server-git (and co) installed. The system works fine with just that. Arch Linux supplies a file, /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
that uses an OutputClass section to enable AllowEmptyInitialConfiguration and adds the extra module paths so the driver can be loaded. The other two files in that directory are for input device quirks.
Aside from that, I currently have no other configuration in /etc/X11
.
Now, I want to enable the AsyncFlipSecondaries option. In the past I have been able to supply options to the NVidia driver with a file that has an OutputClass section. So I should be able to do that here, I imagine. So I create /etc/X11/xorg.conf.d/05-modesetting-options.conf
:
Section "OutputClass"
Identifier "modesetting"
MatchDriver "i915"
Driver "modesetting"
Option "AsyncFlipSecondaries" "on"
EndSection
That causes the server to start up with a black screen, and this output in Xorg.0.log. The log seems to indicate that the modesetting driver is trying to do stuff with the G0 provider, even though that's supposed to be the nvidia driver's job. It does not seem to make a difference if I change the 05 to 99.
Am I doing the wrong thing to supply the AsyncFlipSecondaries option, or is something in the modesetting driver, or configuration for the modesetting driver, causing it to misbehave and be greedy?