This is the Unity variant of bug 3836. Unity 2D was removed from Ubuntu 12.10: "Unity 2D is being discontinued for the release of Ubuntu 12.10 in October 2012, as the 3D version becomes more capable of running on lower-powered hardware.[29]" See also: http://askubuntu.com/questions/176634/unity-2d-support-dropped-in-12-10-what-now https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1035261 However, as many has reported, it is very slow: Unity through llvmpipe is slow: https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1046497 Also note the NoMachine TR: http://www.nomachine.com/tr/view.php?id=TR10J02752
Tested with our upgrade Mesa and Xorg and it still doesn't work. Tested on Ubuntu 13.04.
It's actually possible to get a working Unity 3D desktop on 13.04 by specifying "cmdline=unity" for the profile. If you do this, things actually work surprisingly well, with performance roughly equivalent to that of Gnome Shell. There are a few problems, however; for example, the "user" menu in the upper right-hand corner is completely empty. We should investigate what the difference is between running "gnome-session" and "unity", and why it works for the latter but not the former.
DRC about using VirtualGL for 3D desktops: http://comments.gmane.org/gmane.comp.video.opengl.virtualgl.user/1308
First off, a unity session is started using 'gnome-session --session=ubuntu' There are currently two problems identified: - If a user has been logged on to the console unity fails to start. A desktop is shown and context menu on desktop and icons are accessible, however no side panel nor a top bar is visible. - When a successful session is started the unity-panel-services fails to start and no menu will be presented to top right in topbar nor will applications with unity support not show their application menus in the topbar.
(In reply to comment #4) > There are currently two problems identified: > - If a user has been logged on to the console unity fails to start. > A desktop is shown and context menu on desktop and icons are accessible, > however no side panel nor a top bar is visible. > I have pinpointed this problem down to a configuration section in dconf. There is 2 config profiles defined in dconf, one default and one unity. And the ~/.config/compiz-1/compizconfig/config is empty. Addding following section solves the above problem. [gnome_session] profile=unity
(In reply to comment #4) > - When a successful session is started the unity-panel-services fails to start > and no menu will be presented to top right in topbar nor will applications > with unity support not show their application menus in the topbar. After a lot of digging of how a session should be started we have found that a user session is started using upstart (init --user) which starts unity-panel-services among others for the session. There are a few required environment variables to get 'init --user' to do its job. The following environment variables are identified and needed to get things to work. DESKTOP_SESSION=ubuntu SESSIONTYPE=gnome-session Upstart configuration files for a session is available in path /usr/share/upstart/sessions. There are scripts for dbus, ssh-agent, unicast-local-avahi and many more that does not play well with a general terminal session. Logfiles for session upstart is available in ~/.cache/upstart
(In reply to comment #5) > (In reply to comment #4) > > There are currently two problems identified: > > - If a user has been logged on to the console unity fails to start. > > A desktop is shown and context menu on desktop and icons are accessible, > > however no side panel nor a top bar is visible. > > > I have pinpointed this problem down to a configuration section in dconf. > > There is 2 config profiles defined in dconf, one default and one unity. And the > ~/.config/compiz-1/compizconfig/config is empty. Addding following section > solves the above problem. > > [gnome_session] > profile=unity To clarify this problem: If I create a new user with an empty home directory and logs on, on local console with a unity session compiz will be configured for the user with specific ubuntu settings. Theses settings are stored in user specific dconf database. There are two compiz profiles configured under /org/compiz, one unity and one Default. The key /org/compiz/current-profile is set to 'unity'. If i then log on into a ThinLinc session with a user with empty home directory, the compiz configuration is only initialized with one profile, 'unity' which also is set to current-profile. A Default profile does not exists. So the problem seems to be that if there is a 'Default' and a 'unity' profile initialized for a user, and connecting to a ThinLinc session, Default profile is set to current-profile which breaks unity.
> If i then log on into a ThinLinc session with a user with empty home directory, > the compiz configuration is only initialized with one profile, 'unity' which > also is set to current-profile. A Default profile does not exists. > After this, if i log on into local console, Default profile is still missing, so intialization of compiz profile 'Default', happens only when users has no profiles initialized and logs on onto the local console.
(In reply to comment #8) > > If i then log on into a ThinLinc session with a user with empty home directory, > > the compiz configuration is only initialized with one profile, 'unity' which > > also is set to current-profile. A Default profile does not exists. > > > > After this, if i log on into local console, Default profile is still missing, > so intialization of compiz profile 'Default', happens only when users has no > profiles initialized and logs on onto the local console. I found that /etc/X11/Xsession.d/65compiz_profile-on-session explicitly sets compiz profile to be used within a session for xubuntu, tested this in my test wrapper script for bootstrapping a unity session and it solves the issue. This sets the /org/compiz/current-profile to value 'unity' which solves the issue with having a 'Default' profile which was default set to current profile. # This file is sourced by Xsession(5), not executed. # Select unity profile if we are in the default session. # The default profile is used otherwise. if [ "x$DESKTOP_SESSION" = "xubuntu" ]; then COMPIZ_CONFIG_PROFILE="ubuntu" export COMPIZ_CONFIG_PROFILE fi Which seems to be a workaround for xubuntu, we should definitely do this in our tl-unity-3d wrapper script.
Created attachment 503 [details] Process tree of a unity thinlinc session In this attachment you see the process tree of a thinlinc session, it shows the how upstart is used for the user (init --user) and all the subprocesses it launches for the unity session itself.
> # This file is sourced by Xsession(5), not executed. > # Select unity profile if we are in the default session. > # The default profile is used otherwise. > > if [ "x$DESKTOP_SESSION" = "xubuntu" ]; then > COMPIZ_CONFIG_PROFILE="ubuntu" > export COMPIZ_CONFIG_PROFILE > fi > > Which seems to be a workaround for xubuntu, we should definitely do this in our > tl-unity-3d wrapper script. I got confused, the check is against "x$DEKTOP_SESSION" and is not a workaround for xubuntu.
Wrapper script added in commits, 28295, 28297. Profile added in commit 28296
(In reply to comment #12) > Wrapper script added in commits, 28295, 28297. > Profile added in commit 28296 Verify this changed on Ubuntu 12.04 before close.
(In reply to comment #12) > Wrapper script added in commits, 28295, 28297. > Profile added in commit 28296 Commit 28301 adds tl-unity-3d to tlmisc spec file.
These changes should also be tested on 12.04 LTS
(In reply to comment #15) > These changes should also be tested on 12.04 LTS The unity 3d profile is shown on 12.04 which is not supported. Need to find a way to identify this.
(In reply to comment #16) > (In reply to comment #15) > > These changes should also be tested on 12.04 LTS > > The unity 3d profile is shown on 12.04 which is not supported. > Need to find a way to identify this. Not supported = 13.10 uses upstart to start a session 12.04 supports starting a unity session: gnome-session --session=ubuntu which will use /usr/lib/nux/unity_is_supported to test if hw accel can be used if fail, ubuntu-2d is used as fallback. On 12.04 upstart command 'init' doesn't have the --user argument which is used for starting a session on 13.10. This means that we could replace tl-unity-2d / 3d scripts with a tl-unity that tests if upstart supports session initialization. If it doesnt just start a gnome-session --session=ubuntu
(In reply to comment #16) > (In reply to comment #15) > > These changes should also be tested on 12.04 LTS > > The unity 3d profile is shown on 12.04 which is not supported. > Need to find a way to identify this. Added additional check in commit 28353.
> Added additional check in commit 28353. Commit 28354 fixes typo in previous commit.
> This means that we could replace tl-unity-2d / 3d scripts with a tl-unity that > tests if upstart supports session initialization. If it doesnt just start a > gnome-session --session=ubuntu Decision was mad on dev meeting to merge 3d and 3d helper script into one.
> This means that we could replace tl-unity-2d / 3d scripts with a tl-unity that > tests if upstart supports session initialization. If it doesnt just start a > gnome-session --session=ubuntu Decision was made on dev meeting to merge 3d and 3d helper script into one.
(In reply to comment #21) > > This means that we could replace tl-unity-2d / 3d scripts with a tl-unity that > > tests if upstart supports session initialization. If it doesnt just start a > > gnome-session --session=ubuntu > > Decision was made on dev meeting to merge 3d and 3d helper script into one. Fixed in commit 28401, tested on both Ubuntu 12.04 and 13.10.
Does not start on 14.04 Beta 2. :/
The log is very sparse, but it does have errors: Executing command for profile unity: ${TLPREFIX}/libexec/tl-unity init: logrotate pre-start process (13042) terminated with status 127 init: Failed to obtain gnome-session instance: Unknown parameter: XDG_CURRENT_DESKTOP
(In reply to comment #24) > The log is very sparse, but it does have errors: > > Executing command for profile unity: ${TLPREFIX}/libexec/tl-unity > init: logrotate pre-start process (13042) terminated with status 127 > init: Failed to obtain gnome-session instance: Unknown parameter: > XDG_CURRENT_DESKTOP Fixed in commit 28753.
There might be some issue with terminating unity sessions. I did "End existing session" which left me with "init --user" still intact as well as a whole bunch for background services. I've been unable to reproduce it though, so for now I'll just note it here.
Portuguese translation in the profile stanza is wrong: name[pt_BR]=Unity 2D
(In reply to comment #27) > Portuguese translation in the profile stanza is wrong: > > name[pt_BR]=Unity 2D r28836.
Because of bug 5065, this bug got reimplemented in 28868. Need to retest with the new implementation.
(In reply to comment #29) > Because of bug 5065, this bug got reimplemented in 28868. > > Need to retest with the new implementation. Closing this bug due to it has been tested on bug #5065 comment #8.