Dual Nvidia G86 Workstation - No rendering on displays attached to second graphics card
Possibly related to #182 (closed), I have a three monitor setup between two Nvidia Quadro NVS 290 (G86) graphics cards that are well supported by the Nouveau driver. I've tried recent builds of Fedora 28 and Rawhide Live ISOs which default to wayland sessions now (in the presence of a multi-gpu setup). The display on the primary card shows the desktop background and windows that I open, but the two displays attached to the secondary card do not render the background or windows, only the mouse (which does move between all three displays).
I've opened a bug on the my distro's bug tracker (https://bugzilla.redhat.com/show_bug.cgi?id=1588814), but I was given separate advice to open an issue here. When running wayland sessions via F28/Rawhide (ie Gnome) on this setup, dmesg output is constantly streaming messages like the following:
[ 88.285338] nouveau 0000:03:00.0: gr: DATA_ERROR 00000012 [RT_LINEAR_WITH_ZETA] [ 88.285347] nouveau 0000:03:00.0: gr: 00100000 [] ch 2 [000fa3f000 systemd-logind[1268]] subc 3 class 8297 mthd 15f0 data 011d011c [ 88.285367] nouveau 0000:03:00.0: gr: DATA_ERROR 00000012 [RT_LINEAR_WITH_ZETA] [ 88.285376] nouveau 0000:03:00.0: gr: 00100000 [] ch 2 [000fa3f000 systemd-logind[1268]] subc 3 class 8297 mthd 15f0 data 011f011e [ 88.285396] nouveau 0000:03:00.0: gr: DATA_ERROR 00000012 [RT_LINEAR_WITH_ZETA] [ 88.285405] nouveau 0000:03:00.0: gr: 00100000 [] ch 2 [000fa3f000 systemd-logind[1268]] subc 3 class 8297 mthd 15f0 data 01210120 [ 88.285425] nouveau 0000:03:00.0: gr: DATA_ERROR 00000012 [RT_LINEAR_WITH_ZETA] [ 88.285434] nouveau 0000:03:00.0: gr: 00100000 [] ch 2 [000fa3f000 systemd-logind[1268]] subc 3 class 8297 mthd 15f0 data 01200122 [ 88.285454] nouveau 0000:03:00.0: gr: DATA_ERROR 00000012 [RT_LINEAR_WITH_ZETA] [ 88.285463] nouveau 0000:03:00.0: gr: 00100000 [] ch 2 [000fa3f000 systemd-logind[1268]] subc 5 class 5039 mthd 15f0 data 01230122
I reached out the Nouveau developers first over IRC, one of which seemed to have a plausible explanation for the issue:
[14:29]
<imirkin_>
so what's going on is that someone is trying to draw to a linear rendertarget (as one would be when it's being shared between GPUs), with a depth buffer attached
[14:30]
<imirkin_>
while that's not technically illegal in the GL sense, in the practical sense nouveau doesn't handle this scenario
[14:31]
<imirkin_>
maybe reach out to the wayland compositor authors and see if they can avoid doing that
[14:32]
<imirkin_>
note that i'm not 100% sure how all the EGL integration stuff is meant to work
[14:32]
<imirkin_>
but to save you some anticipation, they'll just tell you "go fix your driver"
[14:33]
<imirkin_>
so might as well just use X and move on with life.
[14:50]
<me>
imirkin_: do you think nouveau will ever support that scenario (linear rendertarget with depth buffer)? Is it a limitation of the understanding of the closed drivers?
[14:50]
<imirkin_>
well, the hardware just can't do it. however the driver could be made to work around it.
I'm wondering if this explanation sounds reasonable, and if there are any plans on the mutter side of things to fix the issue (sounds like a workaround of sorts may be needed to work with Nouveau drivers).