I don't consider the removal of Pulse a sound utopia.
I consider it a state that allows programs that I include with my distribution to work. WHich otherwise would not with PulseAudio installed.
Firstly, a look at why you've been brought up between me and darkphoenix22.
When he used you as justification as to why Pulse needs to go away and we be left with just ALSA here:
I asked:
I was asking him if he felt you weren't able to. I wasn't stating that you couldn't because I dont know you and haven't looked at your code. But I suspect he hasn't either.
If he felt you weren't able to deal with any additional details brought about with the introduction of Pulse, I wanted him to say so in a straight out way, not hide behind weasel words and weak statements.
I actually didn't think your post here->
http://www.phoronix.com/forums/showt...695#post132695
was saying Pulse must go. I didn't think it meant Pulse made things impossible by any means. What stood out for me in that post was that you felt PulseAudio has too high CPU utilisation. And for me, that points at least to specific implementation problems and not necessarily architectural flaws that he obviously feels it does.
The specific reference to Doom3 is because it was used as an example of a program that doesn't run with Pulse, but at lease on my system it actually proves that you can code games to the ALSA API and have them run via a Puse enabled system. I donloading it, and it worked.
Exactly. Having been a programmer in a commercial environment previously I understand that there can be situations in which the source of a problem can be fixed, or coded around or dealt with in some way but not always be given the time to do so by management, time overruns, etc.
Again, exactly. I also don't see how wrapping a broken framework (ALSA) with some random code will be a cure all for everything. But if Pulse (the wrapper) goes away, we're still left with brokeness in ALSA (the wrapee) so one way or the other, if we fix nothing, brokeness is what we will have.
I might add, I don't think Pulse is here to necessarily fix ALSA, it's here to provide more functionality to ALSA in addition to yet another sound API.
And yet again, I agree with this, and is what I've been getting at for the last 100 posts or so. Those guys thinking that simply removing Pulse and we being left with audio utopia have got it very wrong in my view.
I don't consider the removal of Pulse a sound utopia.
I consider it a state that allows programs that I include with my distribution to work. WHich otherwise would not with PulseAudio installed.
The fundamental flaw of PulseAudio that its sound buffering scheme breaks programs. Some applications need hardware interrupts. PulseAudio does not tolerate this.
Lessing the buffer will not work, even if it can mask the problems in some cases. The PulseAudio paradigm is flawed.
Exactly. There are none.
What modern high level implementation in a game engine deals directly with the hardware at all? Even shader code is structured and the actual bulk of the GPU is abstracted away.
We do not need need interrupt control in any decent gaming sound API.
What we need is good driver support, well designed and implemented scalability and a well designed infrastructure.
Pulse supplies all of this and what's more it does so without making anyone beholden to any specific Dev Environment or Corporate shenaninigans, a la MS DirectX.
The issue isn't with pulse, but with other APIs and apps which use them not having complied in Pulse Audio support properly or directly. It's nice that Pulse offers emulation/translation layers for ALSA and OSS interoperability but these should be seen as a transitional thing for game developers and not as a destination.
The sooner APIs and apps have direct Pulse Audio support the better.
Any application which needs Hardware Interrupt support is either Hardware Specific and so has its own drivers (some very old high level audio apps come to mind which use sample accurate MIDI timing) or is an app or game whose design needs to be modernised.
In the first case, those sorts of apps have been more trouble than they're worth and are usually overcome by many cheaper, better implementations such as Pro Tools vs Reaper or Acid Pro. Pro Tools used to be the pro audio app of choice but that was back when studios solely aimed at one platform (The Macintosh) and when studio budgets were much much higher than they are today. These days you can get all the power and more of Pro Tools in apps like Reaper, Acid Pro and Fruity Loops and the music industry doesn't have the kind of cash it had back then.
These days with faster CPUs and much faster busses latency is really a non issue whereas back in the Pro Tools halcyon days hardware interrupt timing driven apps circumvented slower archs by talking directly to PCI cards which handled sample accurate SMPTE MIDI encoding for film scores and the like. These days in most modern CPUs and motherboards DMA and IRQ management is virtualised in the OS and so any software which makes direct calls to devices via hardware IRQs can actually SLOW DOWN the system as a whole and cause things to go out fo synch as the virtualised IRQs lose clock cycle focus.
That's the whole point of virtualising DMA and IRQ in modern implementations. To prevent such slowdown and to keep everything in synch.
To shit on this current ongoing discussion, OpenSolaris implemented interrupt-free audio a few builds ago. And it works just fine.