libretro / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
46 stars 55 forks source link

Random hitching #277

Open BParks21 opened 2 years ago

BParks21 commented 2 years ago

This core and snes9x standalone are randomly hitching for no apparent reason whatsoever. I've tested Opengl, Vulkan and D3D11. Default settings present the same issue. RA and the core as well as the standalone version are up to date. I've been testing all the emulators I use and they exhibit no such hitching. When it occurs audio crackles a bit and the game stutters. Sometimes it lasts or extends longer than other times. It usually only last for a second. Sometimes I can play for hours without it happening, but most times it will happen at some point within 5-10 minutes. Sometimes it happens a few minutes in, sometimes a minute. It's completely unpredictable. I tried setting my windows power plan to max performance as well as the gpu to max performance with no change at all. It's really irritating. bsnes runs without hitching, but I prefer snes9x current for it's performance and ability to use runahead x2. Yes I've tested with runahead off. Can someone test this thoroughly? Would appreciate it if someone is able to confirm this. I don't think it's specific to my setup because I use a lot of different emulators and they are all performing as expected. I have a 8700K and a GTX 1080ti. Latest Windows 10 build with all updates. I have basically nothing running in the background and CPU idles around 0-1% so this really shouldn't happen. I'm very confused.

hizzlekizzle commented 2 years ago

Can you try running a single-threaded benchmark, such as super-pi, in the background? This should ensure that your CPU doesn't clock down unexpectedly. Setting the power consumption profile should do the same, but just to be sure.

BParks21 commented 2 years ago

Can you try running a single-threaded benchmark, such as super-pi, in the background? This should ensure that your CPU doesn't clock down unexpectedly. Setting the power consumption profile should do the same, but just to be sure.

I'll try it. Also wanna say that it's very similar to how RA will generate a small hitch when playing a game and a controller suddenly dies and disconnects, except my controller does not disconnect or cease to function. It's just a similar generated hitch.

BParks21 commented 2 years ago

@hizzlekizzle Ok I ran the super-pi benchmark. What am I looking for? Super Mario World hitched twice while I was playing. Took about 20 minutes to get 2 hitches.

hizzlekizzle commented 2 years ago

Ok, if you still got hitches with the benchmark running, it means it's probably not caused by your CPU clocking down. Again, using the 'max performance' power consumption profile should do that, too, but the purpose of the benchmark was to double-check that by forcing one of your CPU cores to 100% utilization.

So, no other SNES cores have this behavior? Does it persist if you use a completely fresh config (you can move your retroarch.cfg and 'config' directory somewhere else temporarily to ensure default settings)?

BParks21 commented 2 years ago

Yes I deleted the core re downloaded it as well as deleted the config. Wait super-pi is supposed to max out my CPU utilization? I ran two different versions with the 32m test and I only saw about 12-13% utilization. According to HW monitor while running the super-pi benchmark my cpu only dropped to 4.3GHz but I mean the benchmark doesn't even push my cpu past 12% utilization. I'd probably be better off running a cpuz stress test.

hizzlekizzle commented 2 years ago

It's a single-threaded task, which is what we want. We don't want to stress the whole CPU, just one core, which will read in your HW monitor as 1/[number of cores] utilization.

BParks21 commented 2 years ago

@hizzlekizzle Well this is what I see when running the 32m test. None of the cores/core get stressed to 100% Screenshot (4)

BParks21 commented 2 years ago

I'm going to test this core on a completely different system. It has a 8600k, different ram, different board and different gpu. If i still experience this hitching it's definitely not my configuration.

BParks21 commented 2 years ago

@hizzlekizzle Finally got around to testing on a different system. Same very brief inconsistent hitching eventually occurs at some point. Always random and unpredictable. The core never used to do this and since it also happens with standalone idk what to think. Can someone else spend the time to also test if they are able to produce these hitches? It can take hours to occur. Totally random. It's the only emulator I use that this is happening with.

ichee commented 2 years ago

Try running with vsync disabled. Issue could be resampling related.

Also, though maybe unrelated, commit bbeb13c2f067dab5066947ccba82e6c0544d7c4a changed sample rate to avoid resampling.

BParks21 commented 2 years ago

Try running with vsync disabled. Issue could be resampling related.

Also, though maybe unrelated, commit bbeb13c changed sample rate to avoid resampling.

I will try it.

ichee commented 2 years ago

Hi @BParks21

Could you please test again with latest core build?

Commit 6628042fe386197648334063f70e6a94350b9bf7 addressed an issue that may affect this.

BParks21 commented 2 years ago

Hi @BParks21

Could you please test again with latest core build?

Commit 6628042 addressed an issue that may affect this.

I'll test it as soon as I can and I'll report back. Never got around to testing long sessions with vsync disabled.

BParks21 commented 2 years ago

Just tested latest version of the core 1.61 bc65c09. Still getting random little hitches out of nowhere :( Took about 40 minutes to get one.

BParks21 commented 2 years ago

Tested on another system using Windows 11, 3080ti, 5900x 64gb ram, and pcie gen 4 m.2 ssd. Still getting the random ass hitches. Something is weird with this core/emulator.

BParks21 commented 1 year ago

I did a fresh install of Windows by wiping windows 10 and upgrading to 11. I haven't seen a hitch. Maybe one but idk it might have fixed itself.

BParks21 commented 1 year ago

I'm going to close for now if the hitches start again I'll reopen.

BParks21 commented 1 year ago

Still getting random hitches with this core after a fresh install of Windows 11. It's just so infrequent I thought it was gone. Again doesn't seem to happen with any other core so Idk.

BParks21 commented 1 year ago

I'm still testing but I believe I have found the culprit. I think this is caused by a Windows setting introduced not too long ago in 2020 called Hardware accelerated GPU scheduling in the Windows advanced graphics options. I've had it disabled for a few days now and have not had a single hitch. I also discovered that with this setting on, a game that I play a lot called Rainbow Six Siege will exhibit all kinds of graphical flickering. As soon as it is turned off and the PC is rebooted the issue is gone. The setting requires a restart for the changes to take effect. This Windows setting is clearly problematic. I will report back, but I don't want to jump to conclusions and say for sure that this is the cause of the hitching. I think It very well good be though.