Drop or Fix Fallback Mode
Status: in progress
With the release of GNOME 3.0, GNOME required some very basic hardware rendering support. Still in practice there were various issues. Some hardware vendors did not provide good drivers. Another issue was with running GNOME in a virtual machine, as most virtual machines software did not provide or emulate hardware acceleration.
To allow GNOME 3 to be used in such cases, a fallback mode was implemented. Some distributions labeled this mode as something other than fallback mode. This caused some grievance as it gave an impression that it was intended to provide a GNOME 2 experience. The fallback mode was always meant to be a temporary stopgap. It has become less and less useful as a pure fallback mode with recent releases: it's working (mostly), but it doesn't offer the high quality people are expecting from us.
Those are some of the issues we now have with the fallback mode:
- nearly nobody actively tests it
- it's in maintenance mode (no new features for the core, but bug fixes go in), with no active development since nobody is stepping up (and some required parts, like polkit-gnome, are even not maintained at all), and the quality of the fallback mode has decreased since it was introduced (example: new bugs in the display of notifications, that haven't been fixed)
- several apps now require clutter and can't work without GL. Thus they won't work in fallback mode if it was forced by lack of GL (totem, audio/video UI in empathy, cheese, etc.)
some changes in our architecture require additional work to keep things somewhat working in fallback, even though they won't offer the full experience (keyboard config in 3.6 is an example)
In addition to these issues, some people would like to improve components of the fallback mode to work differently -- but in a way that would make the fallback mode work more like GNOME 2, and diverge from the GNOME 3 vision. Those contributions are usually blocked because the goal of the fallback mode is to work the GNOME 3 way.
Since the release of 3.0, a technology called llvmpipe has allowed for fast software rendering, lowering the need for the fallback mode. However llvmpipe doesn't currently work on some architectures (ppc, s390, arm?--ARM (hf) works-shawnl) and might not work in some non-Linux-based OS (OpenBSD support is not there, for instance).
What is clear is that the current status of fallback mode does not provide an acceptable experience, neither for people expecting a 'GNOME 2' experience, nor for people who cannot make use of 'GNOME 3'.
If we are serious about offering the fallback mode, we should invest more efforts into it. If we can't invest more effort, it might be better to simply say we don't support the fallback mode anymore and keep focusing on making our core UX rock.
Modules that can be dropped altogether when fallback mode goes away:
Modules that can be simplified:
- gnome-session (fallback session support and the check-accelerated helper)
- gnome-control-center (option to force fallback mode, the sound applet, fallback ibus code)
- gnome-settings-daemon (remove fallback automount code, call out to gnome-shell directly for screenshots, remove status icon in power/a11y-keyboard plugins)
- gdm (for the fallback mode greeter and gdmflexiserver)
- gnome-bluetooth (applet)
- nautilus (desktop rendering)
Improvements that are held back by fallback mode:
- Move background rendering to gnome-shell. Background handling is highly inefficient and fading is broken in GNOME 3 due to the contraptions that we are using to keep it working in fallback mode
- Make key bindings work in the overview/screensaver
- Make screenshots work without gnome-screenshot
Modules where functionality is broken/missing in fallback mode:
- totem: screenshot functionality uses gnome-shell
- gnome-settings-daemon/gnome-control-center: fallback ibus code (no pre-edit window in fallback)
- gnome-control-center: Universal Access' zoom functionality not implemented in fallback
Relevant information that is needed for this discussion:
Unity, LXDE, XFCE reuse of some fallback components, including tray icons and gnome-settings-daemon (notify about changes)
- On what hardware / distribution combinations do we have acceptable software rendering ? (Need data about what hardware we do support/want to support)
On which ones do we lack that ? See ajax' post
- Are we happy recommending another desktop (XFCE, for instance - or MATE ?!) for cases where fallback would be needed?
- LLVM testing/buggy
Fallback mode was discussed in June. It was discussed again at the Boston Summit in October. It was discussed again on the list in October. And then the release team discussed it in its November meeting.
The outcome of the release team discussion was that we don't think we have the resources to provide fallback mode in adequate quality. Therefore, we should drop it from 3.8.
Side effects/things to address
- Increased CPU/Power use on e.g. nouveau or old machines.
- Improve mesa/llvmpipe
Talk to Unity about gnome-settings-daemon changes that might affect them distributor-list post - Ubuntu have decided to stay with GNOME 3.6 for 13.04, so not particularly concerned
Compile a list of gnome-shell extensions that can help people who prefer the GNOME 2 UX #685744
Integrate 'can't run' dialog and failwhale: #687586
Investigate forcing software rendering in some cases: #672943
Move background rendering into gnome-shell: #682427
Remove 'forced fallback' UI from gnome-control-center: #682863
Remove meta-gnome-core-shell-fallback module and move fallback-only modules to gnome-world #687837
How to Help
- Step up to maintain modules that form the fallback mode.
- Try the fallback mode and report problems.
- Pick up one of the action items above and tackle it.