Slow draw on some apps and dynamic clocks not working properly with ATI/AMD proprietary drivers
- by Rakeka
I've recently purchased a new computer (around July 2010) and I've been having some problems with proprietary video drivers on Linux.
The hardware is:
Video: ATI/AMD Radeon HD 5870 (XFX HD-587X-ZNFC);
Motherboard: Asus P7P55D-E Deluxe;
Processor: Intel i5 750;
Memory: Kingston Hyperx KHX1600C8D3K2/4GX (2x - 8GB Total);
Power Supply: XFX P1-750B-CAG9;
There are no overclocks, not even the memories (they are at 1333mhz due processor memory controller limitation).
The operational system is a homebrew Linux distribution with the following software:
Architecture: x86_64 (multilib)
Kernel: 2.6.35.10
Xorg: 7.5
Window Manager: wmii-3.9.2
Video Driver: ATI/AMD Catalyst 10.12
There are no desktop effects programs like compiz fusion or beryl.
The problems:
With ATI/AMD proprietary driver, some applications are with slow draw/redraw, and, the same applications make the driver to increase the card clocks to maximum (0% gpu activity, only the clocks are increased). I dunno exactly how to describe the slow draw but I'll list some applications and symptoms.
xterm
Flickers a lot when drawing continuous output;
When I'm in a workspace with fullscreen xterm, The gpu load stays at 12% in idle, and, with smaller xterm, smaller GPU load.
"aticonfig --odgc" output:
Default Adapter - ATI Radeon HD 5800 Series
Core (MHz) Memory (MHz)
Current Clocks : 157 300
Current Peak : 850 1200
Configurable Peak Range : [600-900] [900-1300]
GPU load : 12%
"aticonfig --pplib-cmd 'get activity'" output:
Current Activity is Core Clock: 157MHZ
Memory Clock: 300MHZ
VDDC: 950
Activity: 12 percent
Performance Level: 0
Bus Speed: 5000
Bus Lanes: 16
Maximum Bus Lanes: 16
More examples:
mplayer time info flickers on terminal;
"find /" flickers a lot (It takes some time to stop with control-c. But, If I change the workspace or put some window upon it, just after the control-c, it stops instantly);
"cat somefile" if the file is big (Xorg.0.log for example) it takes some time to display;
vim and less (ex: find / | less) don't have much problems, just a little flicker when scrolling;
mplayer (no gui)
Slow reproduction and seek with -vo x11;
Tearing with -vo xv;
Time info flickers on terminal (xterm consequence);
gvim
A little slow draw when scrolling with page up/page down;
Firefox
Slow draw/redraw on some pages like www.boadica.com.br and sometimes on www.youtube.com with flash enable (never noticed on many pages);
Corruptions when informative yellow boxes are showing and scroll the page (an gray box appears at the same place of the informative box);
"Wallpaper"
After minimizing a fullscreen window or changing to an empty workspace it takes some time to redraw wallpaper.
"Video Card"
The core and memory clocks are increased with the events described above and on other situations like change workspace (even without wallpaper), minimize, maximize or move a window;
Idle clocks: Core: 157mhz, Memory: 300mhz
Full clocks: Core: 850mhz, Memory: 1200mhz
xpdf
Painful slow scrolling;
display (from ImageMagick)
Slow menus and sometimes slow image redraw;
Programs that I use and are apparently without problems:
gimp;
pidgin;
mplayer (-vo gl, gl2);
blender;
unigine heaven (better fps than on Windows);
doom3;
tibia;
penumbra overture;
amnesia the dark descent (wine);
diablo 2 (wine);
No problems on Windows (Windows 7 Ultimate 64bit).
And special note to this:
Full desktop effects from Debian and Ubuntu gnome appearance cpanel don't cause ANY problems, even the core and memory clocks don't increase when change workspace, minimize, maximize or move a window.
What I've tested:
Unsuccessful tests:
Tested all drivers versions since 10.6 (released approximately when I've installed the first slackware in this PC);
Tested other video card - ATI/AMD Radeon HD 5570 (XFX HD-557X-ZHF2);
Tested some options on xorg.conf and that I've found googling (some of these options are commented on my xorg.conf. I'll send the links at the end of post);
Tested some patches like 107_fedora_dont_fill_bg_none.patch and xserver-xorg-backclear.patch from Arch Linux Catalyst page (https://wiki.archlinux.org/index.php/ATI_Catalyst);
Tested other distros and software versions:
Tested XORG-7.6 on my own distribution;
Tested Debian Squeeze (testing - from 2010-12-20);
Tested Ubuntu Marverick (10.10);
Tested Slackware 13.1;
Distros info:
Architecture: i386
Debian and Ubuntu with all default software (kernel, gnome, xorg, drivers);
Slackware with Catalyst from AMD page and default window managers like: fvwm, xfce, and my own build of wmii;
Successful tests:
Tested other video card (only on my homebrew distro) - NVIDIA Geforce 7300GS with driver 260.19.29;
That didn't shown the slow draw problems, but that card is a bit obsolete, so, dunno if that lacks features like the dynamic clocks. I don't dispose of other video cards like nvidia g/gt/gts/gtx 200~400~500 or Radeon HD 3000/4000/6000 to make more tests.
Tested other hardware:
Video: ATI/AMD Radeon HD 5570 (XFX HD-557X-ZHF2);
Motherboard: Intel DG31PR;
Processor: Core 2 Duo E6750;
Software for that hardware:
Fresh install of same distros (except for the mine) with same program versions;
That video card (HD 5570) were full time at the maximum clocks (something like 500/750, don't remember) in all the operational systems (Windows XP and Windows 7 too), but it didn't shown the same problems that I have here.
I've googled a lot about common problems with ATI/AMD proprietary drivers for Linux and didn't find similar problems, except by the Firefox corruptions, that the solutions were to disable ATI Direct2DAccel and use XAA. With XAA the problems persists and the other applications like pidgin and rest of Firefox showed the same problems of slow draw/redraw.
Open source Drivers:
With open source drivers (xf86-video-ati-6.13.2) I hadn't the same slow draw problems, but, had other problems, that, for now, make it no viable solution. I'll not discuss it here because this is another line of problems and will confuse everything. If it happens to be the only solution, I'll make another thread to discuss it.
Logs and Configs:
kernel .config
dmesg
xorg package list
xorg.conf
Xorg.0.log