Gala high cpu usage with nvidia drivers

Bug #1448763 reported by Martin Hansen
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Gala
New
Undecided
Unassigned

Bug Description

I have a Dell M3800 pc with Intel 4600 graphics card as well as a Nvidia Quadro K1100M graphics card.

I have installed on the same pc 2 versions of elementary OS (freya) for testing reasons. In one of the installations I am using the nouveau driver. Here I am able to do things like expose windows (Super+W) several times and all I get is 5% CPU usage from gala.

In the other setup I have NVIDIA driver installed (have tried several versions, same problem) and when I do Super+W there I get huge spikes in gala cpu usage, 80-100%.

When I try to run games in the two setups, like half life deathmatch, it runs very good with the nvidia driver (4k resolution, 60fps-ish, all on max) and good performance with the nouveau driver (4k, 40fps ish, all max ).

So it seems the nvidia driver is installed correctly since I get so good performance in games with it.

But in gala not so much. Well The animation of super+w is good, but chewing a lot of cpu.

The nvidia card is not attached to the screen directly but requires the intel card to display the output:

lspci | egrep "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
02:00.0 3D controller: NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1)

This means I have this xorg.conf file:

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "intel"
    Driver "intel"
    BusID "PCI:0@0:2:0"
    Option "AccelMethod" "SNA"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:2@0:0:0"
    Option "ConstrainCursor" "off"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
    Option "IgnoreDisplayDevices" "CRT"
EndSection

I have noticed something weird (i think)
When running glxgears with vblank_mode=0 I get around 450 with the nvidia setup but around 5000 using nouveau.
However when I move another window in front of the window with the gears (so that I cannot see the animation) I get a huge spike with the nvidia setup. Almost 30 times more, over 11200 vs 400 earlier.

When doing the same with the nouveau setup, I get no noticeable difference (which is expected right?)

Since I get so good performance in games, this leads me to think there is a problem in gala or a related program.

Any help is appreciated.

Martin Hansen (martin-h)
description: updated
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.