Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 298576 - World of Goo 1.41 runs extremely slowly if user is not in "video" group
Summary: World of Goo 1.41 runs extremely slowly if user is not in "video" group
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-12-27 21:18 UTC by Casey Carter
Modified: 2009-12-28 18:29 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Casey Carter 2009-12-27 21:18:31 UTC
I'm getting about 1 FPS performance when trying to play the full version of World of Goo as a regular user. (This happens with both the full version and the demo version, so you don't have to spend $20 on the game to test this.)


Reproducible: Always

Steps to Reproduce:
1. Install either the paid or the demo version of World of Goo through the ebuild.
2. Start WorldOfGoo or WorldOfGooDemo.
3. Observe that the framerate is extremely slow.

Actual Results:  
The framerate is about 1 frame per second on my system.

Expected Results:  
It should have had smooth animation.

WORKAROUND: Eventually I discovered that running the game as root resulted in the expected (playable) speed. Setting the program setuid root (u+s) solves the problem:

sudo chmod u+s /opt/WorldOfGoo/WorldOfGoo.bin32

Obviously this is a gigantic security hole, but I couldn't figure out any other way to get a playable speed out of the game and remain as a privilege-limited user.

System details:
Lenovo Thinkpad T60p
graphics chip Radeon Mobility FireGL V5200
No KDE or Gnome desktop at all, I use wmii.
The user is a member of group games.

xorg-server-1.7.3.901-r1

xf86-video-ati-6.12.4. 2D and 3D acceleration are working correctly with other programs.

mesa-7.7 with gallium enabled (but the problem remains with gallium disabled, and all versions of mesa down to 7.5.1 -- i.e, all versions available in portage).

World of Goo supplies its own libraries for libSDL-1.2, libSDL_mixer-1.2, libogg, libvorbis, and libvorbisfile. The problem persists if these supplied libraries are removed and World of Goo is forced to use the system versions.

pulseaudio-0.9.21-r50, NOT in daemon mode. The user is a member of group pulse-access. The problem persists when pulseaudio is removed and World of Goo is forced to use alsa for audio output.

emerge --info:

Portage 2.1.7.16 (default/linux/x86/10.0/desktop, gcc-4.4.2, glibc-2.11-r1, 2.6.32-tuxonice i686)
=================================================================
System uname: Linux-2.6.32-tuxonice-i686-Genuine_Intel-R-_CPU_T2500_@_2.00GHz-with-gentoo-2.0.1
Timestamp of tree: Sat, 26 Dec 2009 20:00:23 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p35
dev-java/java-config: 2.1.10
dev-lang/python:     2.6.4, 3.1.1-r1
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.8.0
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.0
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.13, 2.65
sys-devel/automake:  1.9.6-r2, 1.10.3, 1.11.1
sys-devel/binutils:  2.20
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA PUEL"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=prescott -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=prescott -pipe"
DISTDIR="/home/tmp/portage/distfiles"
FEATURES="assume-digests ccache distlocks fixpackages news nostrip parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/home/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acct acl acpi alsa autoipd avahi bash-completion berkdb bluetooth bonjour branding bzip2 cairo caps cdda cdparanoia cdr cjk cleartype cli consolekit corefonts cracklib crypt cscope css cups cupsddk curl curlwrappers cxx dbus dri dts dvd dvdr emboss encode esd exif expat extras ffmpeg firefox firefox3 flac foomaticdb fortran fuse gd gdbm geoip gif glitz glut gnutls gphoto2 gpm gstreamer gtk hal hdaps howl-compat hpijs iconv id3tag idn imagemagick inotify ipod java jpeg ladspa lame laptop lastfm lcms ldap libnotify libsamplerate mad matroska mdnsresponder-compat midi mikmod mmap mmx mmxext mng modules mp3 mp4 mpeg mplayer mudflap musicbrainz nat ncurses network-cron new-hpcups nls nptl nptlonly nsplugin ntp ogg ogg123 opengl openmp pam pango pch pcre pdf perl pg-intdatetime pm-utils pmu png pppd pulseaudio python qt3support qt4 quicktime rar readline recode reflection rtc sdl session sha512 smp sox spell spl sql sqlite sse sse2 sse3 ssl startup-notification subversion svg sysfs tcpd theora threads tiff timidity trayicon truetype udev udev-acl unicode upnp usb uuid vim-syntax vorbis wav wavpack wicd wifi win32codecs wma x264 x86 xattr xcomposite xinerama xml xorg xrandr xulrunner xv xvid zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Casey Carter 2009-12-27 23:05:44 UTC
Further developments: I discovered that my /etc/X11/xorg.conf was missing the following section, as suggested by the Gentoo Hardware 3D Acceleration Guide:

Section "dri"
    Mode 0666
EndSection

Restarting the X server with this new section in effect, and /opt/WorldOfGoo/WorldOfGoo.bin32 NOT setuid root, does NOT solve the problem. It is still getting ~1 FPS under these circumstances.
Comment 2 Tristan Heaven (RETIRED) gentoo-dev 2009-12-28 01:00:33 UTC
Is the user in the video group?
Comment 3 Casey Carter 2009-12-28 07:35:48 UTC
(In reply to comment #2)
> Is the user in the video group?

The user was not. I added the user to group video and removed setuid from the program, and this solved the problem. Thank you.

I would never have guessed to try this, though. I did not know that group video existed, or that it would have this effect on video acceleration when other programs work fine without it. Perhaps the ebuild should remind people to add themselves to group video?
Comment 4 SpanKY gentoo-dev 2009-12-28 18:28:36 UTC
the issue isnt specific to world-of-goo
Comment 5 SpanKY gentoo-dev 2009-12-28 18:29:01 UTC
fix resolution ...