Deferred Settings

Every change to 3-D sound buffer and listener settings causes DirectSound to remix, at the expense of CPU cycles. To minimize the performance impact of changing 3-D settings, use the DS3D_DEFERRED flag in the dwApply parameter of any of the IDirectSound3DListener or IDirectSound3DBuffer methods that change 3-D settings. Then call the IDirectSound3DListener::CommitDeferredSettings method to execute all of the deferred commands at once.

Note Any deferred settings are overwritten if your application calls the same setting method with the DS3D_IMMEDIATE flag before it calls CommitDeferredSettings. 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 will be (2.0, 0.0, 0.0). Then, if your application calls the CommitDeferredSettings method, the velocity will not change.