this post was submitted on 04 Jan 2025
21 points (100.0% liked)

Gaming

30644 readers
178 users here now

From video gaming to card games and stuff in between, if it's gaming you can probably discuss it here!

Please Note: Gaming memes are permitted to be posted on Meme Mondays, but will otherwise be removed in an effort to allow other discussions to take place.

See also Gaming's sister community Tabletop Gaming.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

Probably a dumb question but:

With the upcoming GTA 6 where people speculate it might only run at 30FPS, I was wondering why there isn't some setting on current gen consoles to turn on motion smoothing.

For example my 10 year old TV has a setting for motion smoothing that works perfectly fine even though it probably has less performance than someone's toaster.

It seems like this is being integrated in some instances for NVIDIA and AMD cards such as DLSS and Fluid Motion Frames which is compatible with some limited games.

But I wonder why can't this be a thing that is globally integrated in modern tech so that we don't have to play something under 60FPS anymore in 2025? I honestly couldn't play something in 30FPS since it's so straining and hard to see things properly.

you are viewing a single comment's thread
view the rest of the comments
[–] jarfil@beehaw.org 1 points 3 days ago* (last edited 3 days ago)

Hm... good point... but... let's see, assuming full parallel processing:

  • [...]
  • Frame -2 ready
  • Frame -1 ready
    • Show frame -2
    • Start interpolating -2|-1 (should take less than 16ms)
    • Start rendering Frame 0 (will take 33ms)
    • User input 0 (will be received in 20ms if wired)
  • Wait 16ms
    • Frame -2|-1 ready
  • Show Frame -2|-1
  • Wait 4ms
    • Process User input 0 (max 12ms to get into next frame)
    • User input 1 (will be received in 20ms if wired)
  • Wait 12ms
  • Frame 0 ready
    • Show Frame -1
    • Start interpolating -1|0 (should take less than 16ms)
    • Start rendering Frame 1 {includes User input 0} (will take 33ms)
  • Wait 8ms
    • Process User input 1 (...won't make it into a frame before User input 2 is received)
    • User input 2 (will be received in 20ms if wired)
  • Wait 8ms
    • Frame -1|0 ready
  • Show Frame -1|0
  • Wait 12ms
    • Process User Input 1+2 (...will it take less than 4ms?)
  • Wait 4ms
  • Frame 1 ready {includes user input 0}
    • Show Frame 0
    • Start interpolating 0|1 (should take less than 16ms)
    • Start rendering Frame 2 {includes user input 1+2... maybe} (will take 33ms)
  • Wait 16ms
    • Frame 0|1 ready {includes partial user input 0}
  • Show Frame 0|1 {includes partial user input 0}
  • Wait 16ms
  • Frame 2 ready {...hopefully includes user input 1+2}
    • Show Frame 1 {includes user input 0}
  • [...]

So...

  • From user input to partial display: 66ms
  • From user input to full display: 83ms
  • Some user inputs will be bundled up
  • Some user inputs will take some extra 33ms to get displayed

Effectively, an input-to-render equivalent of between a blurry 15fps, and an abysmal 8.6fps.

Could be interesting to run a simulation and see how many user inputs get bundled or "lost", and what the maximum latency would be.

Still, at a fixed 30fps, the latency would be:

  • 20ms best case
  • 53ms worst case (missed frame)