Audio Issue with HDMI

I’m having an issue with RetroArch and HDMI audio to my TV. Audio is through Intel Graphics Audio.

First of all, when audio sync is enabled, FPS seems capped to 30 in all emulators. But this is only true when using audio over HDMI. If i disable HDMI audio and use my laptop’s regular audio, everything runs smooth. If I disable audio sync of course everything also runs smooth.

Next, I have no actual sound being generated either when using HDMI. Are there settings specific to Intel Graphics Audio for intel 4600 card that I should be setting?

Have you installed Intel’s drivers? I.e., rather than using the ones that come with Windows?

Yep, I’m using the Intel ones, and also tried updating to the latest drivers

Have you tried using any different audio drivers? That is, settings > driver, change it from xaudio2 to … whatever’s available. Be sure to exit retroarch and re-launch after each change

Hmm, i did try but didn’t realize I had to exit retroarch, I’ll give it a shot

Ok, i just tried and it didn’t work. I did notice another thing that might be useful. After running retroarch, it’s not just retroarch with no sound, it breaks sound for the entire computer over HDMI. I can recover the sound by rebooting the computer and it works fine everywhere else, but once I run retroarch it seems to break the Interl Graphics sound over HDMI (regular sound driver still works fine).

I found the solution in this thread: No sound on any core

The summary is to install DirectX9.0c from here: https://www.microsoft.com/en-us/download/details.aspx?id=35 and then restart the PC. (I tried without restarting and it did not work, despite the fact that the installer did not ask me to restart).

Not sure why this is required but apparently using graphics card onboard sound on Windows 10 doesn’t work without it.

Hmm, turns out this is only a partial fix. If I run a game, then select close content, then exit retroarch, the sound breaks again computer-wide. Works again when restarting the computer.

I guess there’s some sort of incompatibility with Intel Graphics Audio.

Interestingly, when the audio is broken (either ifI don’t install directx 9.0c, or after the procedure just described above that breaks audio) FPS seems to be locked to 30.2 and that lock is caused by the Audio Sync, suggesting there’s just something wonky going on with the Intel Driver and Retroarch.

Out of ideas at this point.

Yeah, weird. I haven’t heard anyone else mention this issue, but I’ll keep an eye out and let you know if we have any diagnostic/troubleshooting questions.

Thanks for the info.

It’s probably related (or even the same issue) to that other post I linked, so that’s probably two reports :slight_smile: Happy to try any troubleshooting steps - but I’ll try to find on my end what exactly it’s doing to the audio driver to make it stop working, and why restarting the PC fixes it, but disabling and re-enabling the driver does not. If I can pin that down maybe it will shed more light on the issue

Did more troubleshooting and determined that the issue is not related directly to Retroarch, but posting my findings here in case others are running into the issue.

The issue seems to be caused when sound is active in some way, and then is switched over to Intel Display Audio while it’s active. In that case, somehow Intel Display Audio stops working. It seems to reproduce reliably when I do this, e.g.if I turn off the TV and back on while sound is playing, or if I pull out the HDMI cable and plug it back in while sound is playing. If sound is not playing it is fine, but if it is, it seems to mess things up.

This seems consistent with the behavior in retroarch only causing an issue when a game has been started, but not otherwise. Presumably exiting retroarch may temporarily trigger sound to go back to the main sound driver, and then back to the intel audio driver - perhaps due to the resolution change of the full screen or some other such reason.

Anyway, since I can reliably reproduce it outside of retroarch, I’m convinced that while retroarch may be triggering the issue, it is not the cause of the issue, and so it’s not an issue for the retroarch team to solve.

1 Like

Ok, just to close this out in case someone else runs into this. As I thought, it’s some weird driver issue. Although I still don’t know what causes the bug, I found a configuration that doesn’t seem to triger it.

I downgraded the Intel Graphics Driver to 20.19.15.4300, as that was the latest version posted by my laptop manufacturer. This in and of itself did not fix the problem. However, it enabled more sampling rate and bit depth settings in the HDMI to TV sound channel. I then changed that setting to 24 bit 96000 Hz (prior to this I only had 24 bit 48000 Hz and 16 bit 37000 Hz available, both of which suffered from the bug).

Once I did that, the issues with sound breaking when turning the tv off and on went away, and as suspected, so did the issues with RetroArch.

1 Like

Thanks for your investigation.

I have a similar issue; sometimes when turning on my PC, sound does not come from the TV (HDMI), regular jack from PC worked fine. I ended up placing a bat script in the startup that basically restarts the audio controller and that seemed to patch the issue.

Even though all works “fine” now, I will try to test increasing the sample like you did and if not, downgrading the drivers.

Cheers.

I’m exactly with the same issue. Intel gemini lake audio driver (most recent one) and sound over HDMI… And I experience more or less the same as you.

I’ve no sound via xaudio. Wasabi works though but I experience some stuttering in games. Direct 9 was installed during retroarch installation process

After retroarch ran, I’ve no sound at all on all my other apps.

@Kondorito : I’m very interested in your bat file. Can you tell me more about it ?

Sure, the bat content is:

@echo off

"C:\Tools\Scripts\devmanview.exe" /disable_enable "HDAUDIO\FUNC_01&VEN_8086&DEV_2806&SUBSYS_80860101&REV_1000\4&33fa930d&0&0301"

It simply points to the devmanview.exe file, which is a Device Manager that has more stuff than the regular WIndows’ one. And then devmanview.exe disables and enables my audio (the one that is used by the HDMI cable). Note: you might need to check which ID is the one for your audio device in devmanview, as the above is the one for my board.

There are other stuff you can try, for example, a bat with:

net stop audiosrv
net start audiosrv

I placed the bat file in WIndows startup, so everytime I turn on the PC, the audio is restarted and I am sure that will work.

1 Like