Nikolay Stefanov wrote:
I've fixed the problem - turns out that ALSA driver doesn't like it when the buffer and period sizes are set directly. I modified the setup code to use buffer and period times instead, with some values that I copied from the OGLE alsa driver. Also it seems that the driver crashes if these are set before the sample rate, if you are wondering about the change of order. Everything seems to work normally now, I tested it with WinAmp and some games.
What do you think, is this is a driver issue or a wine issue? None of the other projects that I checked (ogle, mplayer) set the sizes directly, they use time values instead.
If all other ALSA users do it this way, then Wine is certainly incorrect.
Lastly, is there any special reason why the dsound implementation is not using mmap_write, like the wave one does?
at the time this has been written, it has been tried to do so, but differencies in mapping between ALSA and way dsound does the mapping made it quite difficult (search in wine-devel archives for the detail)
Nikolay
PS: Thanks to Michal Miroslaw for the patch, it's a lot simpler than what I did initially.
looks way better than previous ok you can safely submit to wine-patches for inclusion A+