2017 05 03

published 03 May 2017

Latency testing

I took a step back today after implementing frame limiter options to test the current render pipeline, ensuring we weren’t making any mistakes which could lead to unnecessary input-output latency.

The results were actually quite pleasantly surprising. With a simple tweak to vsync (forcing a gl pipeline flush after swapbuffer), we are actually in a very very good position! Not only can the framework push 5-10k frames per second, it looks like it is performing very well at lower frame limits too.

White cursor is native windows, black cursor is osu!. We are running full screen (exclusive) of course.

A few things to note and explore:

We are exactly one frame behind the windows cursor with vsync turned on. This is to be expected, as we are double-buffering at this point. It is also the absolute best result with vsync turned on. For most users this will be an excellent option which avoid visual tearing that can break mania and taiko badly.

Furthermore, in both of the non-vsync scenarios, the osu! cursor is actually updated at a higher rate than the windows cursor! You can clearly see that the osu! cursor is always in front in both of these tests. Not only that, but it looks like increasing the limiters beyond the (currently) lowest available setting has no noticeable effect. This is due to input also being threaded and polled separately to both the draw and update loops.

Comparing to the current stable osu!, this means huge improvements in every way. Needless to say, I’m very happy with these results. We will of course be supporting newer vsync technologies before release (gsync/freesync).

Other things

  • A option to show FPS is now available. This currently just reveals the framework-level fps counter (which could previously be toggled using Ctrl+F11), but will be replaced in the future with a skinned/simplified version.
  • Work has started on the osu!mania ruleset in lazer. Expect to see some progress on that very soon.
  • The spring fanart contest winners’ backgrounds are now on stable! Go check them out, they look amazing. Keep in mind that if you’re a supporter you will need to disable any custom background you have set in order to see them.
  • osu!catch world cup registrations are open! Go check out the rules and register if that’s something that interests you :).

New release available

2017.503.0 is now available from github releases (or via auto-update if you already have lazer installed)! Contains everything from the last couple of days.