Help me, GAF. I'm pulling my hair out trying to get rid of motion judder at 30fps.
I recently built an inexpensive SFF PC to play through my last gen backlog. I've stayed away from PC gaming for the last few years because I absolutely loathe tinkering, so I'm a bit out of practice here.
At first I started with Windows 8.1. After many hours of fucking with it I was finally set up... then I discovered that D3DOverrider didn't work. There are some workarounds, but they're not 100% and they happened to not work in both of the games I tested (The Witcher 2 and Saints Row: The Third). So I decided to suck it up and reformat to Windows 7.
Things were looking up at first, TW2 played like a dream at 30fps with D3DO forcing VSync + triple buffering. In Win8 I had to use some random .dll hack to get rid of the judder. Then I get to SR3... and now it's triple buffering that is giving me obscene motion judder. When forcing standard double buffered VSync through Inspector the judder is gone, but then i have horrible input lag.
The only judder-free solution without input lag has been nVidia's "adaptive" VSync, but unfortunately it also has shitloads of tearing. That defeats the purpose.
What can I do here? I'm legitimately upset about this and feel like I just wasted my money. Why the fuck is it so hard to have decent motion on PC? Most console games run at 30fps and don't suffer from any of these issues. Is there any way I can accomplish the same thing in Windows?
I'll try anything at this point. I've literally wasted over two dozen hours messing with this shit. I'm losing my mind.
You've not wasted your money. It can be a bugger to get rid of judder, tearing and input lag in all games. Some titles will require more attention than others, but I found it helps when you understand why phenomena like input lag and tearing occur. Essentially, there is no magic bullet right now (G-Sync is the closest thing to that) and you'll need to experiment. Apologies if you know all this already.
First off, adaptive v-sync will disable v-sync when you cannot maintain the requisite frame-rate. If that happens you'll get tearing until the frame-rate returns to the required rate. It was designed to address judder and make a changeable frame-rate less jarring. It will not help input lag if you are at the requisite frame-rate or higher, as it uses standard double-buffered v-sync.
Standard adaptive v-sync requires 60+fps, if you choose adaptive half, you'll need to maintain 30+fps to keep v-sync enabled. So if you are seeing tearing using adaptive v-sync, then you're not maintaining the requisite frame-rate, or you've capped it too low. Input lag will not be present when v-sync is disabled, as you've observed.
Input lag is caused when you enable v-sync and the system is generating more frames-per-second than the v-sync rate is allowing to be displayed. I believe this is because the extra frames are held until the display is ready to show them. In this scenario you're essentially viewing the past as far as the game engine is concerned.
As you can't correct your inputs until you see the result of them on screen, this leads to very sluggish, high-latency input response. This is awful when using a mouse, but not so noticeable with a game-pad, I find.
Triple buffering can reduce input lag, but if it's not available, you should cap the game's frame-rate. If the game has a frame-rate limiter, try using it before Afterburner or Inspector. Capping at a few frames-per-second less than the v-sync limit might give better results for some games. i.e. 58fps or 28fps cap.
I find that D3DO does not work well for all games. For some titles, using the in-game v-sync feature (perhaps with a frame-cap to battle input lag) works best. For others, the in-game v-sync is garbage and you're better off disabling it in-game and forcing though Inspector.
To be fair, console games have not solved this problem at all. Mostly they employ double-buffered v-sync and put up with input-lag by hiding behind high-latency controls. Sorry for the wall of text.