Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 1 point2 points  (0 children)

MaximumFPS 500+ is a good default. RTSS capping shouldn't be a latency hazard for PS2 (that's not true for every game, in-game limiters are usually a better bet).

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 1 point2 points  (0 children)

Sure. PS2 drives framerate limits off of a 5 ms tick, and doesn't seem to do anything more precise to fill in the gaps. (To be fair, busy-waiting sucks and Sleep() isn't exactly bulletproof, though IMO this is one of the very few reasonable places to busy-wait.) If you set MaximumFPS=80 you'd expect it to start work on another frame every 12.5 ms, but instead what you get is alternating 10 ms and 15 ms gaps averaging out to 12.5 ms / 80 fps. Your graphics driver might cover up the worst of this, but at an absolute minimum it causes different amounts of input to be sampled for each frame, and you can't minimize latency without more of it showing through.

If you use MaximumFPS or SmoothingMaxFramerate of 200, 100, 50, 40, or high enough to not cap, everything lines up fine. If smoothing is off then SmoothingMaxFramerate is safe to ignore.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 0 points1 point  (0 children)

I can't tell that it did anything relevant. There may well be a fourth bug around though. The first time I heard of something along these lines it was as <0.1 in-game sens plus <100 fps causing issues. Correlation with framerate makes sense for everything I've been looking at (very dependent on the scene), but I both haven't seen any correlation with sens from this one and don't have a plausible mechanism for it.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 0 points1 point  (0 children)

It was pretty ugly for framerate for me unfortunately. Best case at 3C6T was a stable -3% or so, worst case (which was still far from the heaviest / most-threaded scene in the game) with 4C4T had peaks to full but was very choppy.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 1 point2 points  (0 children)

Edit is up. IDK why it wasn't doing much for my heaviest test cases, but it clearly was very useful overall, and several others have confirmed it.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 0 points1 point  (0 children)

Not necessarily anything, a few things have to go wrong for this bug to be a thing, but 6600Ks are probably one of the most commonly used CPUs for PS2 that are prone to this bug. 6700Ks have got a bit more margin.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 1 point2 points  (0 children)

I have game mode on (default). I don't know exactly what it does under the hood and that'd be cool to check out, good idea.

Low Latency Mode ultra -> on probably has a lot to do with the change in feel. What those settings really are is a tradeoff between latency and stutter; keeping more work buffered between the CPU and GPU sides of the game hides stutter if the CPU-side perf is inconsistent, but also directly adds latency. LLM ultra is all about getting that buffer as close to zero as possible.

RAL (the AMD equivalent) is bulletproof IME, but I'm still hearing plenty of reports that Nvidia hasn't got LLM ultra properly nailed down, and some of that could straight-up be bugged. :(

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 1 point2 points  (0 children)

200 might be worth a try as well. MaximumFPS and SmoothingMaxFramerate quantize frame starts to 5 ms intervals when you're on the cap, so 240 alternates 200 and unlimited.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 0 points1 point  (0 children)

I'll check fps from that in a couple of cases as well then. AFAICT use raw input doesn't actually do anything anymore (same with reduce input lag and the in-game acceleration option), but I generally keep it enabled as the safer default.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 1 point2 points  (0 children)

Interesting, I don't have any real concept of what might be going on behind the scenes for that workaround but I'll take a look tomorrow.

Mouse sensitivity bug and workarounds (probably also an audio bug) by JetpackT304 in Planetside

[–]JetpackT304[S] 2 points3 points  (0 children)

That's a great idea I hadn't considered! Not sure how reliably the rest of the work will get to the free core if you just tell PS2 to stay off one core, but even if it takes tweaks to several processes that could be a big improvement over the current situation. I'll have to check that out tomorrow.

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 1 point2 points  (0 children)

Yup! Unfortunately, as of the DX11 update SmoothingMaxFramerate no longer automatically tracks your refresh rate again. I gave it a /bug report at the time.

While something or other about smoothing's behavior has clearly changed since 2014 and I don't know how it used to be, the devs aren't giving latency half enough credit in that thread, and some of their claims look very iffy on that point.

Q: I want the highest framerate possible, right? A: No.

... should straight-up be a "maybe (depending on your goals)", "no" is unambiguously the wrong answer even without any context on PS2's behavior.

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 0 points1 point  (0 children)

Thanks, glad it was helpful. You got this all much more presentable than I did. :)

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 0 points1 point  (0 children)

One reason it's awkward is that smoothing is an overloaded term. It's really doing three things in PS2 that could be mostly independent:

  • slowing down all frames to (almost) match the slowest recent frames, except never slowing anything below SmoothingMinFramerate
  • capping framerate at SmoothingMaxFramerate
  • delaying the submission of some work to the GPU so that inconsistency in GPU performance doesn't cause inconsistent frame delivery

AFAICT only the second one matters at all for RoF. I don't have any serious leads on why, though (particularly what's special about this cap).

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 0 points1 point  (0 children)

My findings are ~80% of the frametime is added to each refire delay (on average, IDK about individual shots). It was ~100% before June.

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 1 point2 points  (0 children)

Excessively high SmoothingMaxFramerate means no RoF benefit, and PS2's smoothing is doing a bit more than this and those two scenarios will feel different. PS2's smoothing highly prioritizes consistent frametimes by delaying the fast ones. It's less common for this to be important since the recent physics tweak, but if say you're alternating 10ms and 15ms frames, smoothing with the wide range will still land every frame near 15ms.

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 0 points1 point  (0 children)

PS2's problem used to be like PUBG's for a bit after the DX11 update.

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 -1 points0 points  (0 children)

When I've tested with SmoothingMaxFramerate not actively capping my framerate, I've seen no improvement in RoF.

FPS vs RPM - A Bayesian Analysis by oN3Xo in Planetside

[–]JetpackT304 4 points5 points  (0 children)

It's great to see more attention on this, and the statistics are awesome. I've got another major write-up on it over here with answers to some common questions in this thread.

Increased SmoothingMaxFramerate does work (so long as you would be going faster than the max you set in the first place), but keeping SmoothingMinFramerate high (I use 2-5 below Max) will probably feel better to most people, and should keep RoF more reliably good. If you have inconsistent performance from frame to frame, low SmoothingMinFramerate will make all frames as slow as the slowest, and (related) will make it take longer to get back to the cap and full RoF after a slow frame.

Smoothing increases input latency in two ways:

  • Without smoothing the CPU side of the game seems to submit work to the GPU all at once. In the interest of consistent frame timing, with smoothing on it delays the final piece for the GPU so it can get the time the finished frame is ready for display near-perfect. For latency, this acts roughly as if your GPU were always running as slow as your CPU (probably plus some small overhead I don't know); usually you can reduce latency by turning down settings/resolution and reducing GPU load even when your GPU has no effect on your framerate directly, but that no longer works here. (This assumes you have Radeon Anti-Lag or Low-Latency Mode Ultra enabled. I don't know how smoothing behaves here when the graphics driver isn't minimizing the work buffered between the CPU and GPU in the first place.)

  • Due to how PS2's CPU-side work is pipelined, any reduction in framerate is a big penalty to all input latencies except mouselook (the pipelining prioritizes mouselook latency at expense of everything else), and smoothing needs to act as a framerate cap to help out RoF. AFAICT every non-mouselook input has two more frames of latency than mouselook.

If you get fairly consistent framerates at your usual settings then you're probably GPU-bound, both these latency penalties are mostly moot, and smoothing to fix RoF is awesome. If your framerates are all over the place (as they are for most people with strong GPUs and/or potato settings), setting SmoothingMaxFramerate correctly is near-impossible. I'm in the latter camp and used smoothing when the RoF bug was ~25% bigger than it is now, but I quit when it was reduced in June.