[Openal-devel] OpenALsoft CPU usage?

Christian Ohm chr.ohm at gmx.net
Tue May 26 07:57:14 PDT 2009


In-Reply-To=34c20c270905251027k1986d4a1r38552d72f7e0ecdf%40mail.gmail.com

> Interesting. I wouldn't have expected OpenAL Soft to create such a large
> difference between versions. Were these tests done on the same system with
> the same configuration? What is the system's and OpenAL Soft's configuration?
> The more info you can provide, the better. :)

Hello,

I did the tests mentioned before. I repeated them after updating to ALSA
1.0.20, the results are below (just copied the test notes, I hope it is clear
enough). I'll also attach my OpenAL config, though I think it's just the
defaults.

I also bisected to find what caused the difference between 1.5 and 1.6. The
smaller differences are not that easy to find, since the results vary some
percentage points depending on the in-game action. I can try to isolate those
as well, but that needs some more time (need to do several test runs per
version to get a good average, and a good cut-off point).

If you need some more info, or want me to do other tests (of a more predictable
nature perhaps), feel free to ask.

Best regards,
Christian Ohm


System:
Athlon X2 5000+ (2x2.6GHz)
8GB Ram, Radeon X800GTO
M-Audio Audiophile 24/96

Debian unstable 64bit

Kernel: homemade 2.6.29.4

gcc (Debian 4.3.3-10) 4.3.3

libasound2: 1.0.20-1, added dmix to the default config for the Audiophile

Recompiled for the debug symbols with "./configure && make" from "apt-get source libasound2"
build-deps of libasound2 but NOT installed:
gcc-4.3-multilib gcc-multilib libcxxtools-dev libcxxtools6 python2.4 python2.4-dev python2.4-minimal

Warzone 2100: branches/2.2, r7548, built with --disable-debug
640x480 windowed, music disabled
http://www.filefactory.com/file/ag148d4/n/autogame2_7z
sleep 300 && killall warzone2100 & LD_PRELOAD="/tmp/openal-soft-1.7.411/libopenal.so" src/warzone2100 --savegame=autogame2.gam
Sticky the window (fvwm), press space

OpenAL Soft archives from the website, compiled with "cmake . && make"

Results from oprofile with per-thread profiles via "opreport -l -g -m all
.../warzone2100" (only one run per version).

1.7:
samples  %        linenr info                 app name                 symbol name
59265    64.0232  ALu.c:895                   libopenal.so.1.7.411     aluMixData
1978      2.1368  astar.c:203                 warzone2100              fpathCompare
1315      1.4206  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1157      1.2499  visibility.c:134            warzone2100              rayTerrainCallback
805       0.8696  mapgrid.c:264               warzone2100              gridIterate

1.6:
samples  %        linenr info                 app name                 symbol name
44039    42.5263  ALu.c:619                   libopenal.so.1.6.372     aluMixData
4106      3.9650  astar.c:203                 warzone2100              fpathCompare
2040      1.9699  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1971      1.9033  visibility.c:134            warzone2100              rayTerrainCallback
1631      1.5750  r300_emit.c:345             r300_dri.so              r300EmitArrays

1.5:
samples  %        linenr info                 app name                 symbol name
15733    20.5776  ALu.c:628                   libopenal.so.1.5.304     aluMixData
3698      4.8367  astar.c:203                 warzone2100              fpathCompare
2244      2.9350  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1840      2.4066  visibility.c:134            warzone2100              rayTerrainCallback
1819      2.3791  piedraw.c:131               warzone2100              pie_Draw3DShape2

1.4:
samples  %        linenr info                 app name                 symbol name
6567     10.0185  ALu.c:585                   libopenal.so.1.4.272     aluMixData
4189      6.3906  astar.c:203                 warzone2100              fpathCompare
2078      3.1701  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1801      2.7476  visibility.c:134            warzone2100              rayTerrainCallback
1648      2.5141  piedraw.c:131               warzone2100              pie_Draw3DShape2

1.3:
samples  %        linenr info                 app name                 symbol name
5533      8.9315  ALu.c:581                   libopenal.so.1.3.253     aluMixData
4551      7.3464  astar.c:203                 warzone2100              fpathCompare
1888      3.0477  visibility.c:134            warzone2100              rayTerrainCallback
1584      2.5569  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1578      2.5473  mapgrid.c:264               warzone2100              gridIterate

1.2:
samples  %        linenr info                 app name                 symbol name
12945    23.5999  ALu.c:591                   libopenal.so.1.2.218     aluMixData
2521      4.5960  astar.c:203                 warzone2100              fpathCompare
1434      2.6143  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1315      2.3974  visibility.c:134            warzone2100              rayTerrainCallback
1018      1.8559  piedraw.c:131               warzone2100              pie_Draw3DShape2

1.1:
samples  %        linenr info                 app name                 symbol name
16683    23.8057  ALu.c:484                   libopenal.so.1.1.93      aluMixData
3954      5.6421  astar.c:203                 warzone2100              fpathCompare
2150      3.0679  (no location information)   libpthread-2.9.so        pthread_mutex_lock
1714      2.4458  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1465      2.0905  visibility.c:134            warzone2100              rayTerrainCallback

1.0:
samples  %        linenr info                 app name                 symbol name
13184    21.9653  ALu.c:384                   libopenal.so.1.0.38      aluMixData
3681      6.1328  astar.c:203                 warzone2100              fpathCompare
1770      2.9489  (no location information)   libpthread-2.9.so        pthread_mutex_lock
1734      2.8889  pcm_dmix_x86_64.h:132       libasound.so.2.0.0       mix_areas_32_smp
1388      2.3125  visibility.c:134            warzone2100              rayTerrainCallback


Result of git bisect to find the jump between 1.5 and 1.6:

commit 22557070ec4852d64ad153f5cac907f84119702c
Author: Chris Robinson <chris.kcat at gmail.com>
Date:   Thu Aug 14 05:43:52 2008 -0700

    Ramp channel gains to remove pops and clicks from abrupt changes
    Thanks to Christopher Fitzgerald for helping me work on it



More information about the Openal-devel mailing list