As this covers a lot of information, I have split it into 3 posts, so please make sure to read all 3 posts before responding.
In this article, we would like to address questions and concerns raised by customers regarding compatibility of Creative audio products with Windows Vista.
In general, issues relating to Creative audio products may be divided into one of four categories:
1. The Windows Vista audio engine runs faster than the Windows XP audio engine did, and Vista has tighter requirements on audio buffer position accuracy than XP did. This exposed low level driver bugs that we had not been seen before. Issues that may be encountered:Audio dropouts, distortions that only happen once in a while, constant distortions, or audio/video synchronization drift that only happens after several hours of watching movies.
We are working daily to address issues in this category, and we have recently published beta drivers for Vista for some of our products that address these. Please don?t hesitate to contact us if you find our latest beta drivers continue to exhibit symptoms such as those described
2. The Vista audio architecture changes the way per-stream audio processing works, which required us to write new software to support this Issues that may be encountered:CMSS no longer works on audio streams from the OS.
Status:Features based on Windows XP architecture must be rewritten to conform to the new Vista architecture, and we have a team of software engineers, project managers and testers dedicated to this task in order to provide our customers the same seamless audio experience under Windows Vista that they enjoyed under Windows XP.
3. The Vista audio architecture disables DirectSound 3D hardware acceleration; resulting in legacy DirectSound based EAX game titles not working as they did in XP. Issues that may be encountered:Could range from loss of EAX functionality in EAX enabled games to a complete game incompatibility, depending on how the game title was authored. This would only happen with games that render 3D audio using DirectSound, it should not affect games that render 3D audio using OpenAL.
(Note: There is a known bug due to a change to Vista which confuses an OpenAL component. A proper fix in progress, but a workaround is to copy c:\windows\system32\ct_oal.dll into the doom3 folder and rename it to OpenAL32.dll)
Status:These issues cannot be addressed by the Creative audio driver, because the functionality was purposely removed by the operating system. We look forward to game titles moving away from DirectSound and toward OpenAL for fully optimized Creative 3D audio hardware and technology support.
4. Bugs in Vista.Issues that may be encountered:Vista itself is still in the final stages of testing, and is not yet at code-freeze. Also, the user mode audio stack is nearly 00% brand new software. As a result, there are indeed issues whose root cause is in the operating system.
Status:We are working closely with Microsoft to alert them of any and all issues like this, and we have found them to be cooperative with us in bringing them to resolution.
The purpose of this article is to explain the changes to how audio is handled under Windows Vista, and how we are planning to address this
What level of compatibility exists between XP and Vista drivers?
Default Driver Model: WDM
As with Windows NT, Windows 2000 and Windows XP, the foundation of Windows Vista is the Windows NT kernel, and as with Windows 2000 and Windows XP, the default driver model is the Windows Driver Model (WDM). This portion of Vista has remained remarkably unchanged with Windows XP.
WDM Port Class Models
Also, as with Windows 2000 and Windows XP, the foundation of any WDM audio device driver has remained unchanged. All PCI WDM audio drivers are based upon the WDM audio Port Class and Windows Vista supports all Windows XP Mini Port models, including Wave Cyclic and Wave PCI. Also, all USB / 394 WDM audio drivers are based upon Stream Class or A/V Stream.
WDM Kernel Streaming
As a result of this, any WDM driver that was built under Windows XP should generally work as is under Windows Vista without a recompile. Also, any user mode programs that use WDM Kernel Streaming (such as Cakewalk SONAR) in Windows XP would work exactly the same under Windows Vista, when run on top of the driver that was built for Windows XP.
So what has changed? New Mi***ort Type: Wave RT
Microsoft has added a third Mi***ort type for PCI products that is unique to Vista, which is called Wave RT (www.microsoft.com/whdc/device/audio/wavertport.mspx). The promise of Wave RT is that user mode applications could completely govern streams of audio without any code execution in the kernel during runtime.
1:Wave RT allows the user mode application direct access to the data in the memory that is mapped to the audio hardware DMA engine
2:Wave RT allows the application to poll the current position in the DMA memory window that the hardware is accessing.
3: Wave RT also supports the notion of a hardware generated clock notification event, similar to the ASIO API, so that applications need not poll for current position if they don't want to.
Wave RT is the new standard, but WavePCI and WaveCyclic are still supported
Microsoft did realize that it would be difficult to get other vendor's legacy audio drivers moved over to the WaveRT model, because a lot of legacy hardware cannot support this model. So, Microsoft still continues to support the two Mi***ort driver models that were used in Windows XP (WavePCI and WaveCyclic), which means WaveRT drivers are not strictly required under Vista.