I made an attempt at a workaround for nouveau crashes today (and discovered more nouveau bugs).
I can confirm with mir-demos that forcing the compositor into single-threaded mode makes it stable. The only problem is the unity-system-compositor option for doing this gets ignored (Unity8 overrides the display config to suit itself when it sees a second display). So you can't apply the workaround yourself.
So yes, medium term we could work around some of the nouveau stability issues by hacking Mir/USC/Unity8 to only use single threaded rendering. But that requires code changes in multiple places.
I suggest a short-term workaround that should do the trick is:
1. Unplug all but one monitor; and
2. Add to /etc/environment: QSG_RENDER_LOOP=basic
Sadly I can't even test that much myself, because of bug 1677125.
I made an attempt at a workaround for nouveau crashes today (and discovered more nouveau bugs).
I can confirm with mir-demos that forcing the compositor into single-threaded mode makes it stable. The only problem is the unity-system- compositor option for doing this gets ignored (Unity8 overrides the display config to suit itself when it sees a second display). So you can't apply the workaround yourself.
So yes, medium term we could work around some of the nouveau stability issues by hacking Mir/USC/Unity8 to only use single threaded rendering. But that requires code changes in multiple places.
I suggest a short-term workaround that should do the trick is: LOOP=basic
1. Unplug all but one monitor; and
2. Add to /etc/environment: QSG_RENDER_
Sadly I can't even test that much myself, because of bug 1677125.