[wdmaudiodev] Re: WaveCyclic vs WavePCI for HD Audio

  • From: "Cheng-mean Liu (SOCCER)" <soccerl@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 30 Mar 2009 10:49:45 -0700

For HD Audio solution, you want to use WaveRT port, which has the benefits of 
both WavePCI and WavePCI - without redundant data copy and mapping and 
unmapping hassels.



Thanks



 Cheng-mean Liu

 Microsoft



 This posting is provided "AS IS" with no warranties, and confers no

 rights.


From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Preston
Sent: Saturday, March 28, 2009 11:59 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] WaveCyclic vs WavePCI for HD Audio

I've seen lots of discussions on WavePCI vs WaveCyclic but nothing specifically 
references HD Audio since both seem to have been available long before HD Audio 
existed .

I know that the HD Audio DDI 
document<http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/HDAudioDdi11.doc>
 from Microsoft stated that the HD Audio sample driver was written using 
WaveCyclic. However based on reading the documentation WavePCI seems to be seen 
as the more effecient choice, but a bit trickier to implement. I did see 
another 
post<//www.freelists.org/post/wdmaudiodev/Problem-about-GetMapping-ReleaseMapping-in-WavePCI,12>
 on here that if states if implemented correctly, WavePCI doesn't yield much 
better results than WaveCyclic:

"There should be no difference in audio quality between WaveCyclic and WavePci. 
... The IRP handling between the two models is essentially the same, with the 
main difference that in the case of WavePci we hand you the page mappings from 
the mapped IRP buffer and in WaveCyclic we copy the data from the IRP buffer 
into your cyclic buffer based on your indication of DMA position with a DPC 
that is scheduled whenever you notify us."

it seems like WaveCyclic would the reasonable choice for development, does 
anyone have reccomendations on this?

Other related posts: