Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
URxvt slow scroll
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Desktop Environments
View previous topic :: View next topic  
Author Message
bstaletic
Apprentice
Apprentice


Joined: 05 Apr 2014
Posts: 225

PostPosted: Sat Nov 29, 2014 3:26 pm    Post subject: URxvt slow scroll Reply with quote

Hello,
I've recently noticed that rxvt-unicode renders slowly, so I started experimenting. First were the USE flags. I tried to emerge urxv with a few custom setups (disabled what I though could improve the situation) and default flags, with no improvement. Then I started tinkering with my .Xresources. Again used tried to disable one thing after another, and finally removed .Xresources completely, yet again I saw no improvement (I even tried running without perl extesion support). Then I stumbled upon a thread (I think it was arch forum) where the problem was the drivers. I tried vesa (the guy said vesa fixed the problem), no improvements (surprise, surprise). Then I tried to copy over (from my Arch installation) the /etc/X11/xorg.conf.d/10-radeon.conf, still no improvements in scrolling. Set the scroll back buffer to 100 lines again nothing. Finally recompiled kernel in a more minimalistic manner, but to no avail. I also tried other emulators, some were good, and some were even slower at scrolling than urxvt is now, for example aterm was slow but xterm was fast. The reason I didn't stick to any other was because I invested some time in carefully configuring urxvt. And now I'm askig for your advice.

Aditional info:

Current .Xresources:
Code:

! Disable scrolling with output
URxvt*scrollTtyOutput: false
! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
URxvt*scrollWithBuffer: true
! scroll back to the bottom on keypress
URxvt*scrollTtyKeypress: true
! Pager scrolling
URxvt.secondaryScreen: 1
URxvt.secondaryScroll: 0
! URL
URxvt.perl-ext-common:      default,tabbed,clipboard,url-select,keyboard-select,matcher
URxvt.url-select.launcher:  /usr/bin/luakitURxvt.url-select.underline: true
URxvt.url-select.underline: true
URxvt.keysym.M-u:           perl:url-select:select_next
URxvt.keysym.C-Escape:      perl:keyboard-select:activate
URxvt.keysym.C-s:           perl:keyboard-select:search
URxvt.url-launcher: /usr/bin/luakit
URxvt.matcher.button: 1
! Colors
URxvt*background: black
URxvt*foreground: white
URxvt.colorUL: #4682B4
! Fonts
URxvt*font:  -*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*
URxvt*boltfont:  -*-terminus-bold-r-*-*-14-*-*-*-*-*-*-*
! scrollbar style - rxvt (default), plain (most compact), next, or xterm
URxvt.scrollstyle: plain
URxvt*scrollBar: true
URxvt*scrollBar_right: true
! Colors
*color12:     #94bff3
! Clipboard
URxvt.keysym.M-c:   perl:clipboard:copy
URxvt.keysym.M-v:   perl:clipboard:paste
URxvt.keysym.M-C-v: perl:clipboard:paste_escaped
! Scrollback buffer
URxvt*saveLines:  100



Current USE flags:
Code:

=x11-terms/rxvt-unicode-9.20 256-color -alt-font-width perl -vanilla startup-notification mousewheel iso14775 font-styles focused-urgency -pixbuf


emerge --info:
Code:

Portage 2.2.8-r2 (hardened/linux/amd64/no-multilib, gcc-4.8.3, glibc-2.19-r1, 3.16.5-gentoo x86_64)
=================================================================
System uname: Linux-3.16.5-gentoo-x86_64-Intel-R-_Core-TM-_i5-2500_CPU_@_3.30GHz-with-gentoo-2.2
KiB Mem:     6083036 total,   5463592 free
KiB Swap:    1048572 total,   1048572 free
Timestamp of tree: Sat, 29 Nov 2014 08:00:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p53
dev-lang/perl:            5.18.2-r2
dev-lang/python:          2.7.7, 3.3.5-r1, 3.4.1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.11.6-r1, 1.13.4
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.8.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=corei7-avx -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=corei7-avx -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri gdbm hardened iconv justify mmx modules ncurses nls nptl openmp pam pax_kernel pcre readline savedconfig session sse sse2 ssl tcpd truetype unicode urandom vdpau xattr xtpax zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="radeonsi" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON


Content of 10-radeon.conf:
Code:

Section "Device"
    Identifier "Radeon"
    Driver "radeon"
    Option "SWcursor" "off"
    Option "ColorTiling" "on"
    Option "EnablePageFlip" "on"
    Option "AccelMethod" "Glamor"
    Option "RenderAccel" "on"
    Option "EXAPixmaps" "off"
    Option "AccelDFS" "on"
EndSection


EDIT:
Here's my hardware, if it is of any use.
GPU: Radeon 7770 (Southern Islands)
Ram: 6gb ddr3 (4+2)
CPU: i5 2500
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 5592

PostPosted: Sat Nov 29, 2014 5:10 pm    Post subject: Reply with quote

A lot of those radeon driver options are meant for ancient cards or actively harmful; the only one you should be using is AccelMethod.

How slow is slow? This gets to 1 million lines on my HD6450:
Code:
perl -E 'my $start = time; my $i = 0; until ( time >= $start+5 ) { say ++$i }'
Back to top
View user's profile Send private message
bstaletic
Apprentice
Apprentice


Joined: 05 Apr 2014
Posts: 225

PostPosted: Sat Nov 29, 2014 7:01 pm    Post subject: Reply with quote

I just tried the command you provided, and it got to ~600000. Yet the problem doesn't seem to occur when there's little text to display. The problem occurs when the lines are long (like man pages or dmesg), also if I switch to floating, scroll speed scales with window size. As for the 10-radeon.conf, I deleted it as I found in gentoo wiki that it should be a last resort.


A little more about the slow scrolling. In Arch if I look at the line at the bottom of the screen, and push the arrow key it scrolls across the screen in about three seconds. But in Gentoo if I push the arrow key under the same conditions it takes about twice as much (a bit less), plus it has a delay and doesn't stop the moment I release the arrow key but about half a second after (maybe less).


EDIT:
Tried the perl command in Arch and it gets to ~1500000. A little less then 2.5 time the number in Gentoo.
Back to top
View user's profile Send private message
bstaletic
Apprentice
Apprentice


Joined: 05 Apr 2014
Posts: 225

PostPosted: Sun Nov 30, 2014 11:50 am    Post subject: Reply with quote

For the time being, I'm switching to terminator. It is missing select/copy/paste with keyboard exclusivly, but has the abillity to split it self. Either way, if someone has anidea what's going on with urxvt please tell me. I'd like to use urxvt again for its smaller memory footprint.
Back to top
View user's profile Send private message
WWWW
Tux's lil' helper
Tux's lil' helper


Joined: 30 Nov 2014
Posts: 143

PostPosted: Mon Dec 01, 2014 8:46 am    Post subject: Reply with quote

I want to say that as much as I like the idea of urxvt I've suffered from the same issue. It was so enraging that I finally had to switch to XTERM.

URXVT has several places that need to be set in combination with XORG accel to play smoothly, something I've never achieved.

Sometimes a insignificant task such a emerge --metadata or mplayer info on a file being played had close to 100% cpu spikes.

Another symptome was moving a terminal over another one or resizing, this would literally freeze the system for a few seconds.

The parts involved here from my investigation where these.

anti-aliasing, rendering type in .Xdefaults.
font hint and aliasing within .Xdefaults.
font engine
Xorg accel settings.

This list is from the top of my list. Scrolling, fast output difference was THAT much between xterm and urxvt that it made no sense using the latter as it was counter-productive.

One of my unsophisticated methods of benchmarking was cmatrix package.

Also long ago somebody from the internet gave me two perls oneliners that outputted the ENTIRE, all languages and symbols, unicode charset and the second one was the same thing but with ALL colors the terminal could support.

Those were nice, I missed them.
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 5592

PostPosted: Mon Dec 01, 2014 4:20 pm    Post subject: Reply with quote

WWWW wrote:
Sometimes a insignificant task such a emerge --metadata or mplayer info on a file being played had close to 100% cpu spikes.

Use >=mpv-0.5 instead, it doesn't update the statusline needlessly several hundred times per second unlike mplayer.

Quote:
Another symptome was moving a terminal over another one or resizing, this would literally freeze the system for a few seconds.

That's not the fault of urxvt. Your WM or your drivers' 2D acceleration is fubar.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Desktop Environments All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum