Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il meccanismo di sincronizzazione per DirectX VA 2.0 è stato migliorato rispetto alla versione 1.0 ed è più simile ai meccanismi di sincronizzazione usati dalle operazioni Di Microsoft Direct3D.
In DirectX VA 1.0 la sincronizzazione viene eseguita principalmente dal decodificatore. Prima che il decodificatore possa usare un buffer compresso, chiama la funzioneDdMoCompQueryStatus per determinare se il buffer è disponibile per l'uso, ovvero l'hardware non accede al buffer. Se il buffer non è disponibile, il decodificatore deve dormire, eseguire il polling o eseguire un'altra operazione.
DirectX VA 2.0 usa il modello di sincronizzazione già usato da Direct3D nei vertex buffer e nei buffer di indice. In DirectX VA 2.0 la sincronizzazione viene eseguita dal decodificatore che blocca il buffer compresso. Se il driver di visualizzazione in modalità utente tenta di bloccare il buffer compresso e il buffer è in uso, il driver può non riuscire il blocco o rinominare il buffer. Il driver di visualizzazione in modalità utente richiede che il gestore della memoria video rinomini il buffer quando il driver imposta il membro della struttura D3DDDICB_LOCKFLAGS in una chiamata alla funzione pfnLockCb. Se il driver di visualizzazione in modalità utente rinomina il buffer, il driver restituisce un puntatore a un buffer alternativo in modo che il decodificatore possa continuare senza essere bloccato.
In genere, per DirectX VA 2.0, la sincronizzazione è solo un problema se l'hardware può utilizzare direttamente i buffer compressi senza copie del buffer aggiuntive.