In the latest Bloodborne performance analysis by Digital Foundry, we find this interesting quote about its framerate:
So Bloodborne achieves its constant 30 fps by using a technique called Frame Pacing, which, by my understanding, hides lower framerates behind doubled frames.
The result are pretty bad. Microstutter and changing input-lag throughout, not something you would actually want in an action game.
I'm wondering why it's even used? Just to get the constant 30 in benchmarks like DF does? That seems like a bad idea. As the article mentions, Destiny and Need for Speed: Rivals had the same problem and it got patched and AMD is apparently the one that came up with it in the first place.
edit:
edit2:
And yet something is awry when playing Bloodborne. Its sub-30fps frame-rate drops may be infrequent, but on close analysis the bigger issue here is in its frame-pacing. As it turns out, From Software's implementation of a 30fps cap means that, as promised, we do get an average refresh at that number near-constantly throughout Yarnham city. The problem? As we've seen with the launch builds of Need for Speed: Rivals and Destiny, an incorrect ordering of frames can cause a nasty stuttering to motion.
So Bloodborne achieves its constant 30 fps by using a technique called Frame Pacing, which, by my understanding, hides lower framerates behind doubled frames.
Though its 30fps average is technically correct, Bloodborne often produces two unique frames followed by two duplicates - rather than one after another - creating a perception of frame-rate drops throughout. It's not smooth in motion at all as a result, and frame-time updates swing erratically between 16ms and 66ms
The result are pretty bad. Microstutter and changing input-lag throughout, not something you would actually want in an action game.
I'm wondering why it's even used? Just to get the constant 30 in benchmarks like DF does? That seems like a bad idea. As the article mentions, Destiny and Need for Speed: Rivals had the same problem and it got patched and AMD is apparently the one that came up with it in the first place.
edit:
Something to read about frame pacing in general. http://www.anandtech.com/show/7195/amd-frame-pacing-explorer-cat138/2
edit2:
Not quite. There are still the right number of unique frames in a given span of time that the average framerate is 30, so the game is keeping up just fine. The problem is that some frames stay onscreen the wrong amount of time.
Proper 30 FPS:
Code:1 1 2 2 3 3 4 4 5 5
30 FPS with frame pacing issues:
Code:1 1 1 2 3 3 4 5 5 5
Both of these have 5 unique frames in 10/60ths of a second.
Some games do intentionally tear when they start to drop frames. It's actually not a bad strategy if it's implemented well.
Improper frame pacing, on the other hand, is an actual bug.