[Note: I'm resending this message because it seems the server filtered it. My apologies if you have already seen it.] On 9/27/07, Andrew Gaylard <[hidden email]> wrote:
OK, I've done some more digging into this problem, and have implemented the SIGPOLL-based scheme. This works as well as the select()-based scheme of Wolfgang Helbig; i.e . there's no discernible difference in the sound quality. The problem with the VM playing silence at full speed once the first sound has played, remains. I'm not sure what to do about this, as I am fairly sure it is not a driver issue. Here are some figures showing the performance: (a) Newly-started VM, idle for 60s 1-minute load-average: 0.22 '23633677 bytecodes/sec; 990806 sends/sec' (b) select driver, 60s after playing a 1-second-long sound 1-minute load-average: 1.14 '21932830 bytecodes/sec; 899000 sends/sec' (c) sigpoll driver, 60s after playing a 1-second-long sound 1-minute load-average: 0.62 '21592442 bytecodes/sec; 911752 sends/sec' Clearly, the writes to /dev/audio keep the squeak process busy in both cases (b) and (c). Case (b) has the added disadvantage of spending a great deal of time in select calls. For reference, my system details are: - Sun SPARC Ultra-60, 2x400MHz CPUs - Squeak SVN tree r1749 - unchanged etoys image, files dated September 7, 2005 - gcc-3.4.3 The new driver files are not attached. Since the changes are widespread, I have not made patches (but will on request). The file can be found in the mailing list archives from the first time I tried to send this message, at http://lists.squeakfoundation.org/pipermail/vm-dev/2007-October/001577.html Can someone please check the sqUnixSoundSun.c file into SVN (assuming it's OK)? I have included the other file, sqUnixSoundSun-select.c, for comparison only. Thanks, Andrew |
Free forum by Nabble | Edit this page |