Deferred Settings
[The feature associated with this page, DirectSound, is a legacy feature. It has been superseded by WASAPI and Audio Graphs. Media Casting have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use Media Casting instead of DirectSound, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
Every change to 3D sound buffer and listener settings causes remixing, at the expense of CPU cycles. To minimize the performance impact of changing 3D settings, set the DS3D_DEFERRED flag in the dwApply parameter of any of the IDirectSound3DListener8 or IDirectSound3DBuffer8 methods that change 3D settings. Then call the IDirectSound3DListener8::CommitDeferredSettings method to execute all of the deferred commands at once.
Deferred settings are overwritten by immediate settings. For example, if you set the listener velocity to (1.0, 0.0, 0.0) with the DS3D_DEFERRED flag and then set it to (2.0, 0.0, 0.0) with the DS3D_IMMEDIATE flag, the velocity becomes (2.0, 0.0, 0.0) and does not change when CommitDeferredSettings is called.