Re: [LAD] FIxed alsa-tools' envy24control missing peak level meters and "Reset Peaks"

From: Niels Mayer <nielsmayer@email-addr-hidden>
Date: Fri Jul 16 2010 - 04:14:54 EEST

On Tue, Jul 13, 2010 at 9:54 PM, Niels Mayer <nielsmayer@gmail.com> wrote:
> As a second patch (coming soon), I've rewritten  the meters in a more
> sensible fashion, drawing a single rectangle to represent the
> instantaneous level (2-3 X-primitive draws per meter total and one
> blit, versus hundreds of draws and a blit per value change per meter
> in the original code).

Patch for https://bugzilla.redhat.com/show_bug.cgi?id=602903
(see also http://old.nabble.com/FIxed-alsa-tools'-envy24control-missing-peak-level-meters-and-"Reset-Peaks"-ts29144830.html
)

(1) http://nielsmayer.com/npm/Screenshot-Efficient-Meters-Envy24Control.png
 * To see what the new meters look like.
(2) http://nielsmayer.com/npm/Efficient-Meters-Envy24Control.tgz
 * Contains levelmeters.c and x86_64 binary 'envy24control' that should at
   least work on Fedora 12 and OpenSuse and other 2.6.32-based distros.
(3) http://nielsmayer.com/npm/Efficient-Meters-Envy24Control.patch
 * To apply the patch, grab the most recent stable release (
   ftp://ftp.alsa-project.org/pub/tools/alsa-tools-1.0.23.tar.bz2 ) or
   git pull from trunk of the "alsa-tools" project.
 * After unpacking and assuming you've got the patch in
   ~/Efficient-Meters-Envy24Control.patch.patch do:
>> cd alsa-tools-1.0.23
>> cat ~/Efficient-Meters-Envy24Control.patch | patch -p1
  * It should give message "patching file envy24control/levelmeters.c"
  * Follow the directions to compile alsa-tools.

FYI here's what my "top" processes look like when running a test to
output individual streams to all 10 PCM output channels -- note X
consumes between "1.7%" to "2.0 %" and "envy24control" "0.7%" to
"1.0%":

15210 npm 20 0 643m 14m 8964 S 6.6 0.4 0:05.85 gst123
15184 npm 20 0 643m 14m 8984 S 6.3 0.4 0:13.11 gst123
15190 npm 20 0 643m 14m 8980 S 6.0 0.4 0:12.48 gst123
15172 npm 20 0 643m 14m 8968 S 5.6 0.4 0:15.42 gst123
15178 npm 20 0 643m 14m 8984 S 5.6 0.4 0:14.17 gst123
13684 root 20 0 527m 112m 31m S 2.0 2.8 3:26.11 X
13923 npm 20 0 863m 60m 37m S 1.0 1.5 2:49.08 plasma-desktop
14163 npm 20 0 597m 27m 15m S 1.0 0.7 1:08.29 chrome
14155 npm 20 0 1038m 170m 14m S 0.7 4.3 1:00.87 chrome
15226 npm 20 0 192m 9316 6908 S 0.7 0.2 0:00.51 envy24control

Here's the envy24control from my first patch, using the original
meters that cause many separate XDrawRectangles for each LED-looking
segment. The performance difference is quite noticeable as the fans
start running louder and the system load climbs upwards as soon as the
original envy24control starts running: X consumes 5.7-10% CPU, and
envy24control between 2.0% and 2.7%.

15172 npm 20 0 643m 14m 8968 S 6.1 0.4 0:53.83 gst123
15178 npm 20 0 643m 14m 8984 S 6.1 0.4 0:51.48 gst123
15190 npm 20 0 643m 14m 8980 S 6.1 0.4 0:49.60 gst123
15210 npm 20 0 643m 14m 8964 S 6.1 0.4 0:44.01 gst123
13684 root 20 0 527m 112m 31m S 5.7 2.8 3:42.78 X
15184 npm 20 0 643m 14m 8984 S 5.7 0.4 0:51.07 gst123
15398 npm 20 0 192m 9332 6908 S 2.4 0.2 0:02.32
envy24control.f
14163 npm 20 0 597m 27m 15m S 1.0 0.7 1:15.54 chrome
13923 npm 20 0 863m 60m 37m S 0.6 1.5 2:55.04
plasma-desktop

Just to show that it's the same performance as the original
envy24control from alsa-tools-1.0.22-1.1.fc12.ccrma.x86_64:

15178 npm 20 0 643m 14m 8984 S 6.3 0.4 1:28.72 gst123
15190 npm 20 0 643m 14m 8980 S 6.3 0.4 1:26.65 gst123
15210 npm 20 0 643m 14m 8964 S 6.3 0.4 1:20.59 gst123
15184 npm 20 0 643m 14m 8984 S 6.0 0.4 1:28.21 gst123
13684 root 20 0 527m 112m 31m R 5.6 2.8 4:21.30 X
15172 npm 20 0 643m 14m 8968 S 5.6 0.4 1:31.51 gst123
15455 npm 20 0 192m 8700 6316 S 2.3 0.2 0:01.74
envy24control
14163 npm 20 0 597m 27m 15m S 1.3 0.7 1:23.02 chrome
13923 npm 20 0 863m 60m 37m S 0.7 1.5 3:00.72 plasma-desktop

-- Niels
http://nielsmayer.com
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Fri Jul 16 20:15:36 2010

This archive was generated by hypermail 2.1.8 : Fri Jul 16 2010 - 20:15:36 EEST