locked
Sound playback differences between WES7 and Windows 7 Enterprise RRS feed

  • Question

  • We have a platform with 8GB of RAM. We then run 5 processes that all consume under 1GB of RAM. Each of these processes creates a large number of IDirectSoundBuffer secondary sound buffers of varying lengths. On Windows 7 Enterprise, the large number of sounds spread across multiple processes play fine. However, in WES7, when the fifth process is spawned, IDirectSoundBuffer::Play return DSERR_OUTOFMEMORY despite the system having free RAM available and no process exceeding its memory limits. This happens when attempting to play single IDirectSoundBuffer instances and not in situations where several instances are played and sound playback is CPU bound.

    This seems to indicate that there is a setting that determines a maximum amount of system memory that can be allocated to secondary sound buffers, and that this value is being set to a lower value in WES7.

    Is anyone familiar with anything like this? Or does anyone have any ideas on how to proceed investigating? There doesn't seem to be much information available for large numbers of sounds being resident in memory concurrently across multiple processes.

    Wednesday, March 23, 2016 10:34 PM

All replies

  • This is a new one. Let me ask the basics:

    32-bit or 64-bit OS?

    Is the WES7 image a full image, or is it a cut down version with only the needed components?

    What is the power plan set too? High performance?

    Do you have Performance settings set for "Adjust for best performance"?

    Is page file enabled in WES7?


    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Thursday, March 24, 2016 12:38 AM
  • It's definitely a not common use-case.


    32-bit or 64-bit OS?

    64-bit.

    Is the WES7 image a full image, or is it a cut down version with only the needed components?

    Cut down. We are in the process of trying to add back "DirectX and Windows Device experience" to see if that alters either the audio playback settings or lower level code paths. The other packages removed mostly relate to networking features.

    What is the power plan set too? High performance?

    High performance.

    Do you have Performance settings set for "Adjust for best performance"?

    I will try to confirm, but I believe not as we leverage DWM.

    Is page file enabled in WES7?

    Yes.


    The error seems agnostic of the number of secondary sound buffers created. There seems to be an exact amount of sound memory allocated in which DSERR_OUTOFMEMORY fails on play. I will try to determine approximately what that threshold level is. Secondary sound buffers created before this limit is reached continue to correctly play. And if previous secondary sound buffers are disposed, then new secondary sound buffers can be created and successfully play. IDirectSoundBuffer::Play will fail on Windows Enterprise 7 with the DSERR_OUTOFMEMORY return code - it just happens at a higher memory consumption level.

    Thursday, March 24, 2016 1:10 AM
  • In regards to the performance settings, it is a custom setting, with MinAnimate disabled and DragFullWindows disabled:

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]

    "VisualFXSetting"=dword:00000003

     [HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]

    ;Animate windows when minimizing and maximizing (0=off 1=on)

    "MinAnimate"="0"

     [HKEY_CURRENT_USER\Control Panel\Desktop]

    ;Show window contents while dragging (0=off 1=on)

    "DragFullWindows"="0"

    Thursday, March 24, 2016 4:48 PM
  • Other than re-adding DirectX and Windows Device experience, I cannot think of anything else.

    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Thursday, March 24, 2016 5:14 PM