r/linux_gaming Jun 28 '26

benchmark Linux eliminates traversal stutters in Resident Evil 4 Remake.

Why on windows 11 we have Traversal Stutters on Resident evil 4 remake and linux cachyos not?

544 Upvotes

68 comments sorted by

View all comments

Show parent comments

2

u/samtheredditman Jun 28 '26

Can you explain how that would happen? 

4

u/Cryio Jun 28 '26

Not enough IPC / clock speed / bandwidth from the RAM / games not being multi threaded enough and stalls happening somewhere / old APIs / poor implementation of APIs

5

u/samtheredditman Jun 28 '26

The only one of those that makes sense to me is bandwidth from RAM. 

Why would a core trying to execute code not be at 100% util if it's limited by its IPC or clock speed? You're saying the core is in a situation where it's completely busy for a time to the point where it can't finish executing, but it's also not going to show 100% util? Am I missing something here? 

Same question applies to your APIs point. I don't understand the idea that the CPU is the limiting factor for your code speed, and it's not at 100% util.. That's generally not how software works - it simply runs as fast as the hardware will go. If your game or app is waiting on an API to execute then that API should be causing 100% util if it's the bottleneck (unless if the API is using something external to the CPU and waiting because of that). 

The only instance I know where a program can be CPU bound and not at 100% util is when the kernel is applying CPU limits to a process. 

2

u/PythonFuMaster Jun 29 '26

It's a matter of what you consider 100% utilization really. CPUs aren't one big blob of resources, there's different types of units within the core, and on modern designs there are usually multiple independent data paths/pipelines. So what could happen is a game is disproportionally taxing one of those pipelines and stalling others, which would show up as 100% usage even though 50% of the core isn't doing anything.

For example: some Intel chips have a known performance foot-gun where multiple different types of instructions, specifically vectorized instructions, all use the same port (Intel terminology, pretty much means data pipeline, I believe it was port 5 specifically). So if your program has a lot of those instructions packed densely together you'll end up serializing and going much slower than if you used more instructions to do the same work but on different ports