Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 336696 - x11-libs/cairo-1.10.0: hw gradient support is broken
Summary: x11-libs/cairo-1.10.0: hw gradient support is broken
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-10 08:30 UTC by Samuli Suominen (RETIRED)
Modified: 2010-09-10 13:37 UTC (History)
4 users (show)

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


Attachments
failed patch log (cairo-1.10.0-buggy_gradients.patch.out,3.18 KB, text/plain)
2010-09-10 11:33 UTC, Daniel Troeder
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Samuli Suominen (RETIRED) gentoo-dev 2010-09-10 08:30:42 UTC
basically the culprit of bad performance of new cairo is due to we are missing this patch:

http://repos.archlinux.org/wsvn/packages/cairo/trunk/cairo-1.10.0-buggy_gradients.patch

here's a snipped from #gentoo-desktop:

11:07 < ssuominen> http://repos.archlinux.org/wsvn/packages/cairo/trunk/cairo-1.10.0-buggy_gradients.patch
11:08 < ssuominen> in case any of you is intrested...
11:09  * ssuominen doesnt know enough of it...
11:15 < Caster> just performance, or corruption as well?
11:22 < Ford_Prefect> o/ amigadave
11:23 < amigadave> \o Ford_Prefect
11:24 < amigadave> Ford_Prefect: zeenix complained that rygel was not in Gentoo :P
11:24 < amigadave> but he was happy that gupnp-dlna was there :)
11:25 < Ford_Prefect> :) Diego had some sort of ebuild prepared
11:25 < Ford_Prefect> But yeah, it's been on my todo list forever
11:26 < remi|work> ssuominen, FUCKING NAK ON THAT PATCH
11:26 < remi|work> 1) it's got "ubuntu" in it, big red flag right there
11:26 < ssuominen> hah
11:26 < remi|work> 2) it's looking at freakin' *proto #defines
11:27 < remi|work> #2 implies the patch is inherently broken
11:27 < ssuominen> The patch actually removes the "looks"
11:27 < ssuominen> notice the - as opposed to +
11:27 < remi|work> oh... right
11:28 < remi|work> [facepalm]
11:28 < ssuominen> so by default cairo is doing exactly the bad thing you described :P
11:28 < remi|work> well it's also basically disabling all hw support for gradients...
11:28 < remi|work> not that any driver gets that right ATM so...
11:29 < remi|work> sigh... cairo was indeed doing stupid shit
11:29 < remi|work> ssuominen, care to file a bug so we keep track of it?
11:30 < plaes> oh damn.. gtk3 really makes things complicated..
11:30 < Ford_Prefect> What'd it do now?
11:32 < plaes> different deps :S
Comment 1 Rémi Cardona (RETIRED) gentoo-dev 2010-09-10 09:29:35 UTC
I discussed this with upstream cairo/pixman folks and the bottom line is that we should apply this patch if we want decent performance out of cairo. At least for now. Upstream is quite disappointed that almost no driver (except Intel, and it's not all great) properly supports hw gradients, EXA making things even harder.

Will apply the patch tonight if no-one beats me to it.

Cheers
Comment 2 Samuli Suominen (RETIRED) gentoo-dev 2010-09-10 09:47:56 UTC
+*cairo-1.10.0-r2 (10 Sep 2010)
+
+  10 Sep 2010; Samuli Suominen <ssuominen@gentoo.org>
+  +cairo-1.10.0-r2.ebuild, +files/cairo-1.10.0-buggy_gradients.patch:
+  Do not use server-side gradients. It hurts performance, and causes bad
+  rendering on at least nvidia. Bug 336696.
Comment 3 Daniel Troeder 2010-09-10 11:32:26 UTC
Patch fails for me.

---

 * Applying cairo-1.10.0-buggy_gradients.patch ...

 * Failed Patch: cairo-1.10.0-buggy_gradients.patch !
 *  ( /gentoo/portage+edb+pkg/portage/x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch )
 * 
 * Include in your bugreport the contents of:
 * 
 *   /gentoo/tmp/build/working/portage/x11-libs/cairo-1.10.0-r3/temp/cairo-1.10.0-buggy_gradients.patch.out

 * ERROR: x11-libs/cairo-1.10.0-r3 failed:
 *   Failed Patch: cairo-1.10.0-buggy_gradients.patch!
 * 
 * Call stack:
 *     ebuild.sh, line   56:  Called src_prepare
 *   environment, line 3245:  Called epatch '/gentoo/portage+edb+pkg/portage/x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch'
 *   environment, line 1872:  Called die
 * The specific snippet of code:
 *               die "Failed Patch: ${patchname}!";

---

will add attachment: cairo-1.10.0-buggy_gradients.patch.out

---

maya ~ # emerge --info =x11-libs/cairo-1.10.0-r3
Portage 2.1.9.2 (default/linux/amd64/10.0, gcc-4.4.4, glibc-2.12.1-r1, 2.6.34-zen1.maya.drm-as-module x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.34-zen1.maya.drm-as-module-x86_64-Intel-R-_Core-TM-2_Duo_CPU_P8600_@_2.40GHz-with-gentoo-2.0.1
Timestamp of tree: Fri, 10 Sep 2010 10:45:01 +0000
distcc 3.1 x86_64-pc-linux-gnu [disabled]
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p37
dev-java/java-config: 2.1.11
dev-lang/python:     2.4.6, 2.5.4-r4, 2.6.5-r3, 3.1.2-r4
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.3
sys-apps/sandbox:    2.3-r1
sys-devel/autoconf:  2.13, 2.67
sys-devel/automake:  1.5-r1, 1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.3.5, 4.4.4-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.35 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/portage /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=core2 -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1"
DISTDIR="/gentoo/distfiles"
FEATURES="assume-digests ccache distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp:///ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS=""
LINGUAS="en"
MAKEOPTS="-j3"
PKGDIR="/gentoo/pkg"
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="/gentoo/tmp/build/working"
PORTDIR="/gentoo/portage+edb+pkg/portage"
PORTDIR_OVERLAY="/var/lib/layman/sunrise /var/lib/layman/Spring /var/lib/layman/multimedia /gentoo/overlays/gentoo-main/daniels_overlay"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="X a52 aac aalib acl acpi alsa amd64 apache2 applet archive asyncns autoipd avahi bash-completion berkdb bluetooth bonjour branding brasero bzip2 cairo caps cdaudio cdda cddax cddb cdio cdr cdrkit cli clucene config-file connection-sharing consolekit cracklib crypt css cups curl custom-optimization cxx daap dbus device-mapper dga dhclient dhcp divx dns dri dts dv dvb dvd dvdr dvdread dvi eds enca encode exif expat faac faad fam fame fat ffmpeg flac fontconfig fts3 fuse galago gcj gconf gd gdbm gdu gedit gif gimp git glibc-omitfp gmedia gnome gnome-keyring gnutls gphoto2 gpm gs gtk gzip h323 hal hddtemp hpijs http-forms http-server iconv icu id3tag ieee1394 imagemagick imlib inotify ipv6 irc jabber java joystick jpeg kdrive kernel-patch kpathsea lame laptop lcms ldap libass libcaca libnotify lm_sensors lzma lzo mad maps matroska mdnsresponder-compat milter mjpeg mmap mmx mmxext mng modules mp3 mp4 mpeg mplayer mudflap multilib musicbrainz nautilus ncurses net network networkmanager nfs nfsv3 nfsv4 nls nntp nptl nptlonly nsplugin nss ntfs ntp nuv offensive ogg opengl openmp optimization pam pch pcre pda pdf perl pidgin pipechan plotutils png postproc postscript ppds pppd pth pulseaudio python qemu qemu-ifup qos qt3support qt4 quicktime quotas ramfs rar readline realmedia realtime reflection reiserfs remote rtmp rtsp ruby18 samba sasl scanner sdl secure-delete session shout sip smp spell sqlite sse sse2 sse3 sse4.1 ssl ssse3 startup-notification stream subtitles subversion svg sysfs system-sqlite taglib tagwriting tcpd theora threads thumbnail tiff truetype twolame udev unicode upnp usb uuid v4l2 vaapi vcd vcdinfo vcdx vorbis vpx wav wifi wmf wmp wps wxwidgets x264 xattr xfs xinerama xml xmlrpc xmp xorg xrandr xulrunner xv xvid zeroconf zlib" ALSA_CARDS="hda-intel" 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 auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse aiptek synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fglrx radeon vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 4 Daniel Troeder 2010-09-10 11:33:20 UTC
Created attachment 246690 [details]
failed patch log
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2010-09-10 11:39:20 UTC
Sorry about that. There was some DOS line endings in the patch. I've rerolled the patch and fixed that.
Comment 6 Daniel Troeder 2010-09-10 13:37:01 UTC
Thank you - that works :)