
Red Dead Redemption 2 Stuttering, Hyperthreading, & Async Compute on PC
video description
Date: 2020-05-06
Related videos
Comments and reviews: 10
profounddevices
engines like unity (just for example) have code that is updated each frame. if it is not able to complete all code in a frame session some of the code is not updated. this possibly could include changes to the mechanics especially with optimizations in which specific motions or blend transforms can not complete. if some of the motions mechanics are not completed in a frame it can appear as if some of the objects or actors on screen are stuttering when in fact this could be just one of many mechanics that dont get updated because of the frame rate being high enough that per frame calculation time does not allow for it to complete. my guess is that the internal cpu cache would play a bigger part than the core count as when a cache miss happens code takes a lot longer to execute as it needs to be fetched from main memory. this would delay a motion change of a object or actor and cause it to keep same transforms for an additional frame or more. transforms such as blending vertices, or shaping that allows for character motion is done entirely by cpu, except for scaling and rotation
reply
engines like unity (just for example) have code that is updated each frame. if it is not able to complete all code in a frame session some of the code is not updated. this possibly could include changes to the mechanics especially with optimizations in which specific motions or blend transforms can not complete. if some of the motions mechanics are not completed in a frame it can appear as if some of the objects or actors on screen are stuttering when in fact this could be just one of many mechanics that dont get updated because of the frame rate being high enough that per frame calculation time does not allow for it to complete. my guess is that the internal cpu cache would play a bigger part than the core count as when a cache miss happens code takes a lot longer to execute as it needs to be fetched from main memory. this would delay a motion change of a object or actor and cause it to keep same transforms for an additional frame or more. transforms such as blending vertices, or shaping that allows for character motion is done entirely by cpu, except for scaling and rotation
reply
Samuel
For a lot of these explanations I believe a histogram instead of just either a frametime evolution or bar-charts with different percentiles would be benefitial. Yeah some people will probably not get what a histogram is at first, even if given an explanation, but ultimately a histogram is the right tool here, and I think after a time of getting used to it I think it would benefit pretty much everyone that's watching your vids. If you have trouble making out what's happening at the border areas, you could try a logarithmic frametime (y-axis) scale. Also while I'm at it, when you show the frametime evolution, you COULD show the fitting FPS on the other end of the scale. Although I get if you deem that not worth the confusion it might cause. Also when you're showing that stuff, a Histogramm of not the entire dataset but a rolling window (shortly before the frame shown up to the frame shown) could be helpful.
reply
For a lot of these explanations I believe a histogram instead of just either a frametime evolution or bar-charts with different percentiles would be benefitial. Yeah some people will probably not get what a histogram is at first, even if given an explanation, but ultimately a histogram is the right tool here, and I think after a time of getting used to it I think it would benefit pretty much everyone that's watching your vids. If you have trouble making out what's happening at the border areas, you could try a logarithmic frametime (y-axis) scale. Also while I'm at it, when you show the frametime evolution, you COULD show the fitting FPS on the other end of the scale. Although I get if you deem that not worth the confusion it might cause. Also when you're showing that stuff, a Histogramm of not the entire dataset but a rolling window (shortly before the frame shown up to the frame shown) could be helpful.
reply
Jayman
It's fine for people to say 'un-optimized' even though they don't know what the problem is or how to fix it. There is a clear problem, most people can point at an abstract level like 'hey this is the only game in my library that runs like a bag of shit' which is the root of the complaints in the first place. What if my car breaks down and I don't know what's wrong with it? By this logic I'm not allowed to say my car is broken because I don't specifically know what's wrong with it and therefore the endless skeptic will say 'well you don't KNOW your car is broke down! ' like ya it doesn't run, of course it's broken, I don't need to know what's wrong to know it stopped working. Or maybe it's a short, or an overheat, or a wheel fell off, whatever it is I can still say broken, you can still say unoptimized. What's the layman to call a game that doesn't run well due to software defects? Unoptimized sounds fine.
reply
It's fine for people to say 'un-optimized' even though they don't know what the problem is or how to fix it. There is a clear problem, most people can point at an abstract level like 'hey this is the only game in my library that runs like a bag of shit' which is the root of the complaints in the first place. What if my car breaks down and I don't know what's wrong with it? By this logic I'm not allowed to say my car is broken because I don't specifically know what's wrong with it and therefore the endless skeptic will say 'well you don't KNOW your car is broke down! ' like ya it doesn't run, of course it's broken, I don't need to know what's wrong to know it stopped working. Or maybe it's a short, or an overheat, or a wheel fell off, whatever it is I can still say broken, you can still say unoptimized. What's the layman to call a game that doesn't run well due to software defects? Unoptimized sounds fine.
reply
Žan
I get what youre saying. But by that logic my i5 2500k shouldn't have that problem. Im running on low to mid settings and im usually getting 40fps but it still stutters every 10 minutes or depending on the situation. There's no way im reaching over 140FPS lol, im just constantly having between 90% and 100% usage on my CPU whitch is why its freezing up. while my GPU is around 50% usage. (I have a gtx 1060) i get that im probs just bottlenecking my CPU with that GPU. but still, even if im on ALL low settings, its still the same CPU usage and i feel like that wouldn't change if i upgraded my CPU. Its just a game problem the fact that its using up so much of the CPU. i get what youre saying and your testing goes way deeper then what ive just explained. But the point is, the game is just porly optimised no matter what CPU you have.
reply
I get what youre saying. But by that logic my i5 2500k shouldn't have that problem. Im running on low to mid settings and im usually getting 40fps but it still stutters every 10 minutes or depending on the situation. There's no way im reaching over 140FPS lol, im just constantly having between 90% and 100% usage on my CPU whitch is why its freezing up. while my GPU is around 50% usage. (I have a gtx 1060) i get that im probs just bottlenecking my CPU with that GPU. but still, even if im on ALL low settings, its still the same CPU usage and i feel like that wouldn't change if i upgraded my CPU. Its just a game problem the fact that its using up so much of the CPU. i get what youre saying and your testing goes way deeper then what ive just explained. But the point is, the game is just porly optimised no matter what CPU you have.
reply
JT
I get 40-48 fps at 1440p on rd2 ultra setting I just refuse to play the game at medium setting I don't mind having the settings in high but it's about the same performance I get in ultra because of resolution I play in In medium setting it's about 52 fps in 1440p most of the time 61 fps being the peak depending on what I'm doing or where I am I have both FXAA and TAA on with msaa off (the Biggest performance hitter) for me Msaa reflection X2 and everything else on ultra or max setting I run the game in vulkan because for some odd reason the game can't and won't launch when it's in dx12 I have an ryzen 3900x 10% overclocked with an RX 5700xt My Mother board is the Asus X570-P The game constantly crashes Making me not want to play the game rockstar needs to fix it Outside of this no problems
reply
I get 40-48 fps at 1440p on rd2 ultra setting I just refuse to play the game at medium setting I don't mind having the settings in high but it's about the same performance I get in ultra because of resolution I play in In medium setting it's about 52 fps in 1440p most of the time 61 fps being the peak depending on what I'm doing or where I am I have both FXAA and TAA on with msaa off (the Biggest performance hitter) for me Msaa reflection X2 and everything else on ultra or max setting I run the game in vulkan because for some odd reason the game can't and won't launch when it's in dx12 I have an ryzen 3900x 10% overclocked with an RX 5700xt My Mother board is the Asus X570-P The game constantly crashes Making me not want to play the game rockstar needs to fix it Outside of this no problems
reply
Milo
11: 30 in, gosh do AMD CPUs just not clock well? you mentioned that you had a hard time getting it to 4. 8 GHz, i just finished my i9-9900KS build and without ANY setting changes CPU-Z validates it as running 5. 0 GHz on all threads, and i have seen it in Task Manager constantly running around or over 5. 0 GHz, thus i believe you are right, its an issue with Rockstar games and their poor coding. I had a nightmare of a time dealing with Turn 10 Studios with the Forza Motorsport 7 launch on the Xbox One X, it took 7 months for me to help their engineers to fix the issues so yeah its an optimization issue, they felt so bad they gave me a 150 credit, which really wasn't worth all the time i invested in helping them, but its better than nothing.
reply
11: 30 in, gosh do AMD CPUs just not clock well? you mentioned that you had a hard time getting it to 4. 8 GHz, i just finished my i9-9900KS build and without ANY setting changes CPU-Z validates it as running 5. 0 GHz on all threads, and i have seen it in Task Manager constantly running around or over 5. 0 GHz, thus i believe you are right, its an issue with Rockstar games and their poor coding. I had a nightmare of a time dealing with Turn 10 Studios with the Forza Motorsport 7 launch on the Xbox One X, it took 7 months for me to help their engineers to fix the issues so yeah its an optimization issue, they felt so bad they gave me a 150 credit, which really wasn't worth all the time i invested in helping them, but its better than nothing.
reply
Dark
So you guys put out a 30 min video to highlight an issue with Rockstar's engine while playing Red Dead 2 that will virtually effect no one? No one is hitting 140 fps in this game with the best hardware on the market, let alone the hardware needed to recreate this issue. Then you throw in a comment about how gamers saying that this game is unoptimized due to the many, many, MANY gamers who are experiencing performance issues with this game doesn't know what they're talking about? Forget the graphical settings let's talk about the countless gamers who are experiencing frequent crashes. Are numerous crashes to desktop per gaming session a feature that is usually present within well optimized games?
reply
So you guys put out a 30 min video to highlight an issue with Rockstar's engine while playing Red Dead 2 that will virtually effect no one? No one is hitting 140 fps in this game with the best hardware on the market, let alone the hardware needed to recreate this issue. Then you throw in a comment about how gamers saying that this game is unoptimized due to the many, many, MANY gamers who are experiencing performance issues with this game doesn't know what they're talking about? Forget the graphical settings let's talk about the countless gamers who are experiencing frequent crashes. Are numerous crashes to desktop per gaming session a feature that is usually present within well optimized games?
reply
Gregory
I'm still a little confused, I appreciate the points made in the first half of the video, but In my experience you don't need a sufficiently high frame rate in order for the stuttering to occur? Maybe i've missed something? The specs i'm running RDR2 on: 1440p 95hz monitor, i5 6600k (4. 5ghz overclock, gtx 1080 (stock) Having played with the settings i'm managing 45 - 50 fps and I still experience this issue. The only fix I have found to work more consisently is disabling two of the cores (so i'm left with 2 cores/2 threads) and lasso-ing the capacity of the CPU to 98%. If anyone would be kind enough to explain to me why this fixes the issue i'm having i'd be forever grateful!
reply
I'm still a little confused, I appreciate the points made in the first half of the video, but In my experience you don't need a sufficiently high frame rate in order for the stuttering to occur? Maybe i've missed something? The specs i'm running RDR2 on: 1440p 95hz monitor, i5 6600k (4. 5ghz overclock, gtx 1080 (stock) Having played with the settings i'm managing 45 - 50 fps and I still experience this issue. The only fix I have found to work more consisently is disabling two of the cores (so i'm left with 2 cores/2 threads) and lasso-ing the capacity of the CPU to 98%. If anyone would be kind enough to explain to me why this fixes the issue i'm having i'd be forever grateful!
reply
MrGencyExit64
What input device are you using? I am the developer of a set of reverse engineering / performance profiling tools for games. This engine Sleeps for fixed-duration periods in the Win32 message pump, which is wrong. You can queue up a buttload of messages that need to be processed when the thread wakes if you're playing with keyboard / mouse. If the message pump thread gets rescheduled, this kind of thing happens. Unity engine is notorious for this kind of problem, but it's present in RAGE too. I've gone as far as to replace the errant Sleep call in the message pump and replace it with MsgWaitFor(. This helps quite a bit.
reply
What input device are you using? I am the developer of a set of reverse engineering / performance profiling tools for games. This engine Sleeps for fixed-duration periods in the Win32 message pump, which is wrong. You can queue up a buttload of messages that need to be processed when the thread wakes if you're playing with keyboard / mouse. If the message pump thread gets rescheduled, this kind of thing happens. Unity engine is notorious for this kind of problem, but it's present in RAGE too. I've gone as far as to replace the errant Sleep call in the message pump and replace it with MsgWaitFor(. This helps quite a bit.
reply
Pekka
Maybe the issue is about threading. Software versus hardware fencing. You need Xeon for full hardware support. If using Windows emulation, then you have a bottle neck (your game crash by reading before getting right data from storage or memory (timing issue. If the game get crash on the same point everytime, then pause & escape before that point and inserting direct overdrive command for framerate setting (look settings XML file for right syntax and default or current value to poke at your heart. Sometimes it work or not. It depends on your game engine.
reply
Maybe the issue is about threading. Software versus hardware fencing. You need Xeon for full hardware support. If using Windows emulation, then you have a bottle neck (your game crash by reading before getting right data from storage or memory (timing issue. If the game get crash on the same point everytime, then pause & escape before that point and inserting direct overdrive command for framerate setting (look settings XML file for right syntax and default or current value to poke at your heart. Sometimes it work or not. It depends on your game engine.
reply
Add a review, comment
Other channel videos















