Wednesday 24 April 2019

crostini: '--enable-gpu' not the panacea

Steam on crostini was not a proposition until recently as hardware acceleration was not available. That has changed with the latest development release of ChromeOS (75.0.3761.0) as it is now possible to manually start the termina container with the '--enable-gpu' flag to solve this situation. However whilst improvements are noted the performance is a long way off native Linux and Windows as will be demonstrated below.

Using two hardware devices, an HP Chromebox G2 and a Vorke V5 Plus configured similarly with identical CPU and RAM and similarly sized SSD, I've run the free games Counter-Strike: Global Offensive and Dota 2 under Steam running on crostini, Windows and Ubuntu.

First the basics: in-game settings. On each platform I changed some key advanced video settings for CS:GO to low:


I've then installed Windows on the Vorke V5 Plus followed by Steam and CS:GO and Dota 2. The FPS for CS:GO were mid 20's when idle:


and for Dota 2 were high 50's:



I then dual-boot installed Ubuntu 18.04 on the Vorke V5 Plus followed by Steam and CS:GO and Dota 2. The FPS for CS:GO were again mid 20's when idle:


and for Dota 2 were in the 60's:


Then on the HP Chromebox G2 I installed Ubuntu 18.04 as a crostini container. Running 'glxinfo -B' shows that GPU acceleration is not enabled:



I then installed Steam, CS:GO and Dota 2. The FPS for CS:GO was only 1 when idle (arguably as expected):


and for Dota 2 were in the 2 to 4 range:


So I restarted my container with the GPU flag:


This time for CS:GO the FPS only increased to 5-6:


and interestingly the mouse's directional movements failed resulting in constantly looking at the floor once the mouse was initially moved.

For Dota 2 the FPS improved similarly also only to 5-6:



I then installed the same Ubuntu container on Ubuntu on the Vorke V5 Plus and ran Steam's CS:GO and got a similar FPS in the 20's range thus showing that running in a container is not a bottleneck. I'll post the full details on this in a companion post later.

Therefore the conclusion is that while the 'enable-gpu' has improved the FPS performance it is still significantly lower than the FPS from natively installed OSes. This must be due to the 'virgl' drivers and hopefully a 'next' release will address this issue.

Latest Update: 

Compatible drivers are now available through installing the package 'cros-gpu-alpha':

sudo apt install cros-gpu-alpha

and then update and upgrade with

sudo apt update
sudo apt upgrade

According to https://bugs.chromium.org/p/chromium/issues/detail?id=892279 starting in release 76 a flag will be introduced to allow Crostini GPU to be enabled / disabled and the 'cros-gpu-alpha' package will be automatically installed.

Now for CS:GO the FPS has increased to around 15:


And for Dota 2 the FPS improved to around 40:


Please donate if you find this information useful using the following link http://goo.gl/nXWSGf.