Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Point is, good luck getting this fixed but I hope that it finally does because it's just lazy and sloppy to have ignored it for this long.
This is literally the code we use to play the Friends UI sounds:
PlaySound( wavFileName, 0, SND_FILENAME | SND_ASYNC | SND_NODEFAULT | SND_NOSTOP );
We've been playing WAV files that way since Windows 95. If a Microsoft engineer thinks that this memory leak is our fault, I would looooove to have a discussion about it ;)
https://answers.microsoft.com/en-us/windows/forum/windows8_1-performance/audio-device-graph-isolation-eats-up-memory/3366347f-f9ed-43de-9254-ee21937d2531
I don't think we can fix it from our side, there really is no simpler way to play sounds.
You close with:
But there are applications that don't do this. So is it a case of you don't think it can be fixed from your side or you won't fix it from your side? Even if you've been playing sounds this way since Windows 95 (the year 2003 to be more specific) things change over time and you evolve to support newer standards. So if your old way of playing sounds is causing an issue on modern systems isn't it maybe time to look at updating the way Steam plays sounds?
It would be a lot easier to promise a fix if the problem actually occurred on any computer that we had access to. It doesn't happen on our workstations, it doesn't happen on my home computers, it doesn't happen on anything we have access to at the office, and many of the reporting users eventually find a workaround (without telling us what it is) and then stop replying to their support tickets.
Sure, we can change the API and use a (far more complicated) DirectSound or Windows Core Audio device API instead, but if shipping the Steam client has taught me anything personally, it is that changing to a new audio API will *assuredly* start crashing on tens of thousands of other computers that are currently working just fine.
Steam is, for better or worse, one of those apps that is so popular that video drivers and audio drivers scan for us specifically, and change their behavior based on whether or not a process is named "Steam.exe". Making any kind of major API change in an environment like that is super risky. I would much rather that Microsoft (or whichever driver author is ultimately responsible) fix this from their end.
So the next time I notice this happening on one of my PCs is there something I can do or provide for you that would help you diagnose this?
Reports have been done through the Feedback Hub feature in Windows 10, so they're in the internal Bug Tracker. I'm reporting the issue here, Microsoft will already report the issue anyways to Valve, I'm just giving you a starting advantage.
We use the Play Sound function[msdn.microsoft.com] as well in our game to play 2D sounds (ie. hud sounds and menu sounds) and we're not experiencing any memory leaks, also please note that:
Now that I woke up, I just tried playing the same sound several times in our game and there's no memory leak.
Some audio card drivers automatically call a "Garbage Collector", as far as I'm concerned, so the memory leak doesn't happen. Instead, some people don't even notice it because they don't run Steam for many hours or they don't receive messages all the time: The "disabling Steam Sounds" workaround works perfectly fine and the Memory Leak doesn't occur at all, though Steam doesn't play any sound.
The system is ON for 15 hours now and I just woke up, audiodg.exe is using 5.2 MB with a music video open (but not playing). During these 15 hours I browsed the web with Microsoft Edge, played a lot of system sounds, compiled with VS2017, used the Serious Editor (Editor for Serious Sam) and played some Serious Sam.
Last time I woke up and friends sent me messages while I was sleeping, I found audiodg.exe using 1800 MB+ of RAM and, once I closed Steam, memory usage went down to 3.2 MB. Clearly a Steam issue, since I don't have it on any other software, and even on our game.
Also, while playing games of any sort, even for hours and hours, I don't experience memory leaks. Same thing applies when using other programs for hours, such as CyberLink PowerDirector or Sony Vegas 13.0.
The only software having issues is Steam. It happens on both integrated Realtek HD Audio and my Sound Blaster Z. I tried 2 different drivers for the integrated Realtek device:
• Realtek High Definition Audio (Realtek's one)
• High Definition Audio Device (Microsoft's one)
And I experience the same issue.
I tried to deploy a clean Microsoft WIM image of the Fall Creators Windows 10 (16299.15) onto an external USB SSD and booting it to see if the error still happens, and yes, it still happens with both HDAD and RHDA drivers, and both integrated card and Sound Blaster card.
I'm definitely weirded out that you're not experiencing the issue on all your test machines. As I said, some audio drivers probably call an automatic Garbage Collector. Low latency audio cards, such as the ones with ASIO drivers (like mines), shouldn't call GC every time because it would increase latency a lot. This is just a theory of mine, but I think it's the most logical answer I can give you about the problem. The issue happens only on some hardware configurations and only on advanced audio cards. The integrated card I'm using has some advanced technologies:
• MSI SoundBoost
• Nahimic
• ASIO Drivers
So it is clearly not a "standard" integrated audio device, it has some advanced features, such as native ASIO support (the Sound Blaster Z has too, of course).
Well, no. If you're running an audio application that is constantly emitting a single sound (or more sounds), the process needs AT LEAST 4.2 MB in the best case. Most of the times, depending on buffer size, sound quality and bit-depth, the process needs something like 6.87 MB of RAM in order to emit a single sound.
Unfortunately, the problem is with Steam and devs have to deal with it and fix it, I hope that my explanation was clear enough.
Microsoft will report the problem directly to Valve soon by the way.
Here is an easy way to get Steam to play a bunch of sounds, repeatedly:
- Open the Settings dialog, go to Account, and under Beta Participation, click Change. This brings up a modal dialog box.
- Now without dismissing the dialog box, try to click on the main Steam window - this will play a warning bell sound.
Does memory usage of audiodg.exe go up as you click repeatedly? I have tried clicking for a minute straight and I can't get audiodg.exe to go above 5.6 MB. The expected behavior is that the memory usage goes up by ~300 KB while the bell sound is playing, and drops immediately back down after the bell sound is complete.
https://i.imgur.com/gsi8NkL.png (it's the third program in the list).
The only ways to "reset" it are:
• Disabling and re-enabling the audio device.
• Changing frequency and/or enhancements in audio properties and clicking on Apply.
• Rebooting Steam of course.
If that works, I'm thinking that the safest fix is probably to play all our sounds as if they are music tracks instead, and never ever call PlaySound because it clearly interacts badly with something on your systems.
No, there's no memory leak in that case.
Also, have you tried my above suggestion?