[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