linuxmint / linuxmint/cinnamon
No way out when the GL context cannot be created, now that the 2D sessions are gone
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 5.6k
- Forks
- 915
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 3
Description
Cinnamon copes well with software rendering as long as it starts: js/ui/main.js checks
backend.is_rendering_hardware_accelerated() — FALSE for LLVMPIPE, SOFTPIPE and SWRAST —
sets software_rendering, disables animations and notifies the user.
That check runs after clutter_init() though. If the GL context cannot be created at all
(meta-backend.c, "Unable to initialize Clutter"), there is nothing left to degrade to.
Until 3ba28f610 a user in that state could still pick "Cinnamon (Software Rendering)" in
the display manager; now only /usr/bin/cinnamon2d is left, which a display manager
cannot offer.
This came up as Debian bug #1115901: a GPU too new for the nouveau in the distro kernel,
so no KMS and no /dev/dri/card0 at all. X still comes up on fbdev and GLX falls back to
indirect swrast, and the user gets no session — while LIBGL_ALWAYS_SOFTWARE=1, which is
what /usr/bin/cinnamon2d sets, works with no DRM device at all.
Since 3ba28f610 asks which environment variables people still need cinnamon2d for: this is
the one that matters, LIBGL_ALWAYS_SOFTWARE. Retrying with it when Clutter fails to
initialise would cover the case without bringing any session file back, but the gsettings
approach mentioned in that commit would work too. How would you prefer to handle it?
(Related: the unused cinnamon-session-check-accelerated helpers,
linuxmint/cinnamon-session#218.)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with js/ui/main.js and the Clutter initialization path described in meta-backend.c; review commit 3ba28f610 and the remaining /usr/bin/cinnamon2d behavior. Compare the proposed LIBGL_ALWAYS_SOFTWARE retry with the gsettings approach, using Debian bug #1115901 as the failure case. Done means a display-manager-launched Cinnamon session can start when Clutter cannot create a GL context and no DRM device exists, without restoring a session file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, linux
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100