Comment 31 for bug 1251281

On Sat, Sep 27, 2014 at 6:54 PM, Chris Good <email address hidden> wrote:
> Would someone please explain what the problem is in simple terms?
> I thought it was that Unity in Ubuntu 14.04 requires 3D acceleration but if so, why does Unity work when run in VirtualBox without 3D acceleration, and also when run in a VMware VM in a vSphere console?

On Fri, Oct 3, 2014 at 1:33 AM, Eugene San <email address hidden> wrote:
> chris-good:
> I might be wrong but by 3D acceleration, VM hypervizors usually mean H/W 3D offloading to host GPU.
> Also usually VM para-virtualized drivers support direct rendering and all most X11 extensions which can be used by Mesa (pure software or LLVM-pipe) to simulate 3D.
> Regarding Unity, it uses Compiz which also supports Mesa simulated 3D (at least in recent versions).
> Environments like NX/VNC/RDP and etc, usually lack direct rendering and most X11 extensions therefor 3D simulation is broken.
> It's sad that this fact is ignored by distributions and desktop environments developers and we are enforced to deal with it here :-(

Greetings from an X2Go developer,

This isn't a simple explanation, but it is as simple as I could make
it without losing important details.

On recent Linux distros, llvmpipe can provide software 3D rendering.
However, in order for 3D rendering to work with GNOME3 (and with many
other 3d programs), you *also* need an X server with good enough
support for the GLX extension. The X server needs to support the GLX
extension in the 1st place, and it needs to support a new enough
version of the GLX extension.

The current version of GLX is 1.4. I just checked: Both Ubuntu 12.04
and 14.04 have GLX 1.4 support in their server.

X2Go (whose X server is nxagent 3.5.0.x) only supports GLX 1.2, You
can verify this by running the "glxinfo" command under X2Go. GLX 1.2
is not new enough for GNOME3, and thus X2Go is affected by this bug.

TightVNC 1.3.9-6.4ubuntu1 (in Ubuntu 14.04) is also affected because
it does not support GLX at all. You can verify this by running the
"glxinfo" command under a TightVNC server.

TigerVNC 1.3.0 (in Fedora 20) does support GLX 1.4. Therefore, it is
not affected; you can run GNOME3 under TigerVNC 1.3.0 (and possibly
prior versions.) I just tested this on both a physical Fedora 20
machine with 3D graphics hardware, and on a Fedora 20 VM whose
hypervisor does not provide 3D support.

When you running Ubuntu 12.04 or 14.4 under the VMware vSphere
console, the regular X server is running, and that X server
supports GLX 1.4. VMware vSphere (ESXi) can provide 3D hardware
acceleration under certain setups, but in the absence of 3D, the guest
OS simply uses llvmpipe. In either case, the guest OS thinks the
vSphere console is its "local display".

The composite extension is also a limitation of many X servers. I am
not sure if the version needs to be new enough, or if the extension
simply needs to be present.