Update nvnflinger.cpp
This commit is contained in:
parent
5ac1297fa5
commit
9f0ff3e5da
1 changed files with 11 additions and 3 deletions
|
@ -329,9 +329,17 @@ s64 Nvnflinger::GetNextTicks() const {
|
||||||
speed_scale = 1.f;
|
speed_scale = 1.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// As an extension, treat nonpositive swap interval as framerate multiplier.
|
f32 effective_fps;
|
||||||
const f32 effective_fps = swap_interval <= 0 ? 120.f * static_cast<f32>(1 - swap_interval)
|
if (swap_interval >= 5) {
|
||||||
: 60.f / static_cast<f32>(swap_interval);
|
// As an extension, treat high swap intervals as speed limit override
|
||||||
|
speed_scale = 100.f / swap_interval;
|
||||||
|
effective_fps = 60.f;
|
||||||
|
} else if (swap_interval <= 0) {
|
||||||
|
// As an extension, treat nonpositive swap interval as framerate multiplier.
|
||||||
|
effective_fps = 120.f * static_cast<f32>(1 - swap_interval);
|
||||||
|
} else {
|
||||||
|
effective_fps = 60.f / static_cast<f32>(swap_interval);
|
||||||
|
}
|
||||||
|
|
||||||
return static_cast<s64>(speed_scale * (1000000000.f / effective_fps));
|
return static_cast<s64>(speed_scale * (1000000000.f / effective_fps));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue