Panoramica dell'accelerazione hardware DirectSound

Una serie di adattatori audio offre l'accelerazione hardware DirectSound, che è la possibilità di eseguire la combinazione hardware per uno o più flussi DirectSound. La combinazione hardware migliora le prestazioni eseguendo l'offload delle operazioni di mix audio dalla CPU e eseguendole a velocità hardware. Oltre alla combinazione, l'hardware esegue operazioni correlate, ad esempio la conversione a frequenza di esempio , l'attenuazione e, facoltativamente, l'elaborazione 3D che altrimenti deve essere eseguita nel software.

Tutti i dispositivi di rendering WaveCyclic o WavePci presentano uno o più pin hardware per la combinazione di flussi audio. Nel caso di un dispositivo a flusso singolo, il driver di sistema KMixer viene sempre creato su un'istanza del pin di rendering hardware disponibile.

I dispositivi con accelerazione hardware DirectSound offrono più di un pin di combinazione hardware. Ogni pin aggiuntivo può essere usato per combinare un flusso DirectSound. Flussi DirectSound che alimentano i pin del mixer hardware ignorano KMixer ed evitano la latenza della combinazione di software in KMixer. DirectSound usa tutti i pin del mixer con accelerazione hardware di un dispositivo audio, purché tali pin abbiano una topologia conforme ai requisiti di ordinamento dei nodi DirectSound. DirectSound richiede inoltre che i pin supportino il formato di dati DirectSound specificato da KSDATAFORMAT_SPECIFIER_DSOUND (vedere Formato dati di flusso DirectSound).

Il driver di sistema SysAudio riserva sempre un pin hardware per KMixer in modo che dopo gli altri pin hardware (non riservati) siano stati allocati tutti, tutti i flussi aggiuntivi possono essere misti da KMixer e inseriti nel pin hardware riservato.

La figura relativa al rendering del contenuto wave usando DirectSound Software e Buffer hardware illustra questi concetti.

Se un dispositivo audio fornisce un numero sufficiente di pin di combinazione hardware, tutti i flussi di output di un'applicazione DirectSound possono essere accelerati dall'hardware. In caso contrario, l'applicazione DirectSound ha due opzioni:

  • Può allocare staticamente i pin di combinazione hardware disponibili ai flussi che richiedono le latenze più basse.

  • Può allocare dinamicamente i pin di mix hardware disponibili ai flussi in base alle esigenze trattando i pin come pool di risorse condivise.

Per altre informazioni, vedere la discussione sulla gestione vocale nella documentazione di Microsoft Windows SDK.

DirectSound può usare due tipi di pin del mixer hardware: 2D e 3D. Un pin 2D esegue SRC, attenuazione e combinazione, ma non posizione 3D. DirectSound può usare un pin 2D per eseguire la posizione 3D eseguendo i calcoli necessari di attenuazione e frequenza nel software e applicando i risultati ai nodi appropriati nel pin 2D. Al contrario, un pin 3D contiene un nodo 3D in grado di calcolare i propri effetti 3D direttamente dalle proprietà del buffer 3D e del listener 3D anziché basarsi su DirectSound per eseguire questa operazione. Per un elenco delle proprietà di un nodo 3D, vedere KSNODETYPE_3D_EFFECTS. Per altre informazioni sui pin 2D e 3D, vedere Supporto dell'accelerazione DirectSound 2D in WDM Audio e supporto dell'accelerazione DirectSound3D in WDM Audio.