(01-12-2012, 05:32 AM)NaturalViolence Wrote: [ -> ]Quote:It happened when something was being loaded, like right before opening a door or playing a sound for the first time.
HDD access.
I thought that too for some time but then why does so many people don't have it? I doubt 80% of the PC gamer community have SSDs, cause in my case that's the only way it'd get any faster. Still you could be right, like I said it's one thing I haven't been able to test and as I said before a lot of people have it and don't even notice... Dawn, sometimes I curse my self for being so sensitive to framerate and stuttering, I always can see slowdowns in games where some of my friends cannot.
Quote:PC exclusives don't have to rely as much on mesh/texture streaming since they take advantage of the massive amount of ram that we have. Console game engines have to rely heavily on streaming to keep the memory utilization low which causes stuttering. This is completely normal.
This also explain why dolphin have it more than PC games I guess.
My God, I spent a long time trying to figure that out. Entire baths thinking you know

Sheesh you creep me out man.
Quote:I thought that too for some time but then why does so many people don't have it?
http://www.youtube.com/watch?v=t348e24vDyA
Quote:My God, I spent a long time trying to figure that out. Entire baths thinking you know
Sheesh you creep me out man.
??????
PC games: load lots of stuff into memory, forget about it
Console games: load less stuff into memory, stream additional content in from the disc as necessary
How is that difficult to understand and/or "creepy"?
It isn't difficult to understand, but I didn't know it, and I'd never figure out that alone, tough it makes total sense.
Also, searching for stutter problems on the internet wouldn't lead me to that information. And what creeps me out is that you have a ready answer to everything

Like I said, I spent time thinking about that one


*NaturalViolence is suddenly reminded of an article he saw a few months ago that explains the situation pretty well*
http://www.geforce.com/Optimize/Guides/how-to-get-rid-of-lag-guide
Look at the page on stutter lag (page navigation is done through a drop down menu at the top of the article).
Anyways I had a lot of free time today so I did some investigation into this stuttering problem using mario kart wii. So far I've identified at least 2 sources of stuttering:
1. The shader cache. For those of you who don't know shaders are normally compiled at runtime (while the application is running) with openGL or d3d. And shaders have to be compiled before they can be run. Dolphin stores these compiled shaders in shader cache files in the /User/ShaderCache directory (each game has a vertex shader and pixel shader file for each backend). The way the next time you run the game it doesn't have to compile the shaders all over again, it can just read them in from the cache files. Mario kart wii stutters like crazy if you delete the shader cache files until you run the game multiple times. It still stutters after running a few times but it's not nearly as bad once it has had time to generate the files. This means that either compiling the shaders or read/write to the shader cache files is causing this stuttering. If it's the file read/write (causing dolphin to wait for the HDD to finish accessing the file) that is causing it then a ramdisk will fix this, I'll test that when I get a chance. If a ramdisk doesn't fix it than the issue is caused by dolphin waiting for the shaders to compile. Keep in mind that I would consider this macrostuttering as it causes very long stutters of anywhere between 0.1-3 seconds.
2. Uneven frame time distribution, or another way of saying that is certain frames being on the screen longer than other frames. This is perfectly normal when your framerate is not an interval of your refresh rate and can be fixed by turning on vsync. Turning on vsync and running the game at fullspeed does indeed fix this in dolphin. I would consider this microstuttering as the stutters caused by this are very short (<.04 seconds in most cases).
3. There are at least 3 sources of stuttering. Even with vsync on and the shader cache already generated the game still stutters even at fullspeed. This third source is microstuttering. I think that this third source of stuttering may be caused by the drivers so I am going to play around with my nvidia inspector settings a bit, particularly the max prerendered frames setting and see (that setting has been known to cause microstuttering in PC games).
That clears things out a lot. vSync also seemed to affect it somehow, I remember my friend and I never understood that.
Now I have a question, why can't we always tell the monitor to use the refresh rate accordingly to your current fps. I me an, I always see some preset standarts as the available refresh rates such as 60, 75, 120, etc, can't the monitor use any refresh rate below its maximum? It would solve a lot of problems to have dynamic refresh rate, without affecting the screen smoothness.
(01-14-2012, 12:15 PM)Runo Wrote: [ -> ]That clears things out a lot. Sync also seemed to affect it somehow, I remember my friend and I never understood that.
Now I have a question, why can't we always tell the monitor to use the refresh rate accordingly to your current fps. I me an, I always see some preset standarts as the available refresh rates such as 60, 75, 120, etc, can't the monitor use any refresh rate below its maximum? It would solve a lot of problems to have dynamic refresh rate, without affecting the screen smoothness.
I never heard of such a feature, since most APIs/Games/everything I ever used seems to change the display mode even if it's just different refresh rate. In theory, wouldn't you need to recreate the display(and reload textures) every time you changed the refresh rate?
Also, I wonder if anybody here has tried dropping a Wii iso + emulator into an SSD instead just to see how it performs. I dream to see the day (big and moderately priced) hard drives will no longer be the bottleneck in everything.
yeah, still we should be able to choose our refresh rates more freely.
Quote:That clears things out a lot. vSync also seemed to affect it somehow, I remember my friend and I never understood that.
It evens out the frame time distribution (meaning all of the frames spend the same amount of time on the screen).
Quote:Now I have a question, why can't we always tell the monitor to use the refresh rate accordingly to your current fps. I me an, I always see some preset standarts as the available refresh rates such as 60, 75, 120, etc, can't the monitor use any refresh rate below its maximum?
You want a dynamic refresh rate? Um.....how to you plan on doing that exactly? That just makes no sense. It's like having a video with a dynamic framerate.
Read up on what a monitors refresh rate is, and what a video signal refresh rate is.
Read up on how analog video signals work.
Read up on how digital video signals works.
Read up on how CRT/LCD monitors work.
Then think to yourself "how would I make the refresh rate dynamic and still make this system work?". If you can answer that question write it up in the form of a thesis paper and save it for grad school to submit as your master's thesis paper. I guarantee you no school will turn you down for their computer science program if you can do this.
Particularly read up on LCD monitors, I think that will answer a lot of your questions.
Quote:It would solve a lot of problems to have dynamic refresh rate, without affecting the screen smoothness.
No it wouldn't, it would make them worse. That would make the microstuttering a lot worse since the frame time distribution would be even more uneven (frame time would change every time the refresh rate changed). And what does "screen smoothness" mean?
Quote: In theory, wouldn't you need to recreate the display(and reload textures) every time you changed the refresh rate?
Why would you need to reload the games textures? I'm assuming you meant to say the monitors framebuffer?
Quote:Also, I wonder if anybody here has tried dropping a Wii iso + emulator into an SSD instead just to see how it performs.
With a game iso it won't make any difference in performance/stuttering. It might affect level load times in some games but only if "Speed up Disc Transfer Rate" is turned on. I've created a 2GB ramdisk before and loaded GC games + emulator from it, I didn't notice any difference at all.
Quote:And what does "screen smoothness" mean?
I meant just smoothness

I meant that it wouldn't affect the framerate distribution, since if a game is running at 30 fps the monitor would be refreshing accordingly to that interval. I didn't mean real time, now I see it's a bit nonsense but I was looking for a solution :p. Btw, is there any real fix for microstuttering? I understand that if we are running constantly at 60, 30 or 15, etc with a 60 Hz refresh rate there should be no stuttering? Because there is no use enabling vsync if your HW cant keep up with it at a stable framerate. So, "buy better hardware" or what?
And I know how CTR and LCD monitors work and what vsync is. Gonna read up about video signals

LCD wouldn't need a refresh rate, they could just change it's image accordingly (which is in fact what it does, but it siulates a refresh rate because video signal is made that way, which pretty much sucks.)
Also, my friend once noticed that running games in windowed mode fixed some of the stutterings (now I realize it was the microstuttering that was fixed). My best guess to him at the time was that, to keep content being updated while windows is being moved around and make it move with the window, it creates sort of a framebuffer for the application on the window, and refreshes it to the windows space wherever it is. As the refreshing is made by entire frames not pixels, it creates a V-sync effect. Am I right or just crazyness?
Quote:Btw, is there any real fix for microstuttering?
.....microstuttering can be caused by many different things. Pretty much all of them have a fix.
Quote:I understand that if we are running constantly at 60, 30 or 15, etc with a 60 Hz refresh rate there should be no stuttering?
No. Microstuttering is usually caused by either uneven frame distribution (framerate issue) or some kind of delay in rendering a frame (like HDD access for example).
Quote:Because there is no use enabling vsync if your HW cant keep up with it at a stable framerate. So, "buy better hardware" or what?
Hmmm? Ever heard of triple buffering?
Quote:LCD wouldn't need a refresh rate, they could just change it's image accordingly (which is in fact what it does, but it siulates a refresh rate because video signal is made that way, which pretty much sucks.)
Um....no. If that were true we would be able to run our monitors at 120hz just by changing the signal. LCD monitors take awhile to draw the image onto the screen (I don't know if that is the correct way to say that). If you try to run it at a refresh rate that is too high it either won't work or it will break the display.
There is a reason that there are no IPS panels exist (to my knowledge) that support 120Hz or higher refresh rates while plenty of TN panels exist that go all the way up to 240Hz. IPS panels don't have low enough pixel response times to handle such a high refresh rate.
Quote:Also, my friend once noticed that running games in windowed mode fixed some of the stutterings (now I realize it was the microstuttering that was fixed). My best guess to him at the time was that, to keep content being updated while windows is being moved around and make it move with the window, it creates sort of a framebuffer for the application on the window, and refreshes it to the windows space wherever it is. As the refreshing is made by entire frames not pixels, it creates a V-sync effect. Am I right or just crazyness?
I have no idea what you are trying to say here and don't really feel like figuring it out right now. Why would that create a vsync effect?