published 12 Nov 2015

Went a few days without blogs. Sorry about that!

Performance Issues

I’ve been working long and hard with anyone still experiencing performance issues in the new osu! releases, and don’t plan on stopping until every last person is happy. Finally we’re making some good forwards progress with this, too!

  • Fixed a number of thread scheduling issues.
  • Moved all threads created in osu! to pools to avoid thread creation overhead.
  • Reduced overall GL call count per frame.
  • Removed all redundant GL calls (state changes where not needed etc.).
  • Removed all deprecated GL calls.
  • Improved texture colour conversion performance (should help with videos).
  • Made changes to net code to (hopefully) fix all remaining cross-thread contention issues.
  • Improved messaging in options when compatibility mode is being used.
  • Added a multitude of debug toggles to cutting edge so users can help us test various scenarios.

Plenty of breaking fun along the way!


We also released osu! World Cup profile banners over the weekend, which have been met with astounding enthusiasm! Thanks to everyone who is supporting this effort; it helps us make sure we can provide the best tournament experience and also give back to the best players out there. I’ll be releasing stats on the banner sales, including a ranking of which countries got the most financial support a bit later on!

We did have some issues with streaming matches due to a weird bug which surfaced causing osu! and OBS to crash in one huge mess. We’re working on a fix for this, and also ensuring we have dedicated streaming hardware from this weekend onwards. Make sure to tune in again this weekend :).

Made it to the 10th year anniversary live of Chatmonchy yesterday. Was an amazing concert! Ended with heart-shaped paper planes raining from the skies!



published 06 Nov 2015

  • Pushed a few further fixes to cutting-edge for stuttering. Still tracking down some of the more common causes (a bit hard to pinpoint them!).
  • Adjusted the new combined Unlimited FPS setting to be more friendly to users who want to stay in unlimited fps throughout gameplay. Now maintains unlimited throughout breaks and intro time (and also for replays).
  • Busy with OWC preparations. Hopefully we’ll have something to surprise you guys with tomorrow! Hope you guys are hyped for the tournament; it’s gonna be the biggest ever!

Replaced my key caps recently, so enjoy some photos of my custom layout as a consolation for the short update post!



published 05 Nov 2015

Dedicated a good portion of today continuing performance debugging with testers. Made some forward progress and fixed stuttering caused by texture creation that was previously happening far too often when sliders are being displayed (and created some weird ghost sliders in the process – will be fixed tomorrow!).

Also continued improving performance.log output, which now contains relatively accurate call stacks when a spike is detected! This is basically the gold-mine for debugging performance issues, so I was thrilled to get it working. Also added many new stats and switches which may help us help you fix your performance issues.

I’ve already asked many times, but make sure to share your performance.log whenever reporting stuttering issues. It is of incredible value. Note that it’s still only available on cutting-edge (and even going forward, will not be available on stable releases due to the slight overhead incurred).

Yes, today continue in a chain of boring blog updates. I’m making a lot of important forward progress, though! Don’t forget OWC is starting this weekend, too!



published 04 Nov 2015

Another day dedicated to fixing performance regressions on stable40. Spent quite a few hours debugging with users, but after making little progress began to work on more visibility of diagnostic information when a stutter frame is encountered.

Since quite a few builds ago, the Cutting-Edge stream has had a performance.log file (along with many other varieties of logs found in the new “Logs” folder – how appropriate!). As of the latest release, each time a dropped frame is detected (indicated by a little square next to the FPS counter), a decent amount of statistics will be dumped to this file.

The FPS meter is quite liberal with what it considers dropped frames, so this file may get a bit busy over time. Fortunately, the format is quite easy to process and is fully timestamped.

If you are one of those people still encountering stuttering frame-rates on the new releases, now more than ever before can you give us what we need to help solve your problems. Note that this implementation isn’t complete yet; more statistics will be added over the coming days.

We are also building up a fairly comprehensive knowledge base of what hardware, software and drivers can possibly cause issues with osu!. Going forward, I hope to have osu! detect apps running which can negatively impact performance and alert the user.

While we have some very helpful people on public slack helping with testing (special thanks to DPL for his time), we could always do with more! Get on over and watch or participate!



published 03 Nov 2015

First blog for November.. oh how time flies. Spent yesterday completely inundated with mail and accounting. Apologies for lack of updates here.

Currently working hard to get things ready for OWC while also fix performance issues with Stable40, Beta and Cutting-Edge. Made some good progress today testing with some users on public slack. Targeting the issue of single-frame stutters (lag spikes) categorised into “SwapBuffer” on the frame graph currently.

I’m basically 100% devoting myself to fix performance issues until we are 100% (and I mean 100% for all users), since it is the main thing holding stable40 back from the remaining users which have not been able to make the leap yet.

As you can see by the stats, we still have over 40% of users on the fallback stream. This is far better than a few weeks ago (before I began promoting the new release), but we do have a way to go still.

Until this migration is finalised, don’t expect to see too much forward progress. Yes, this means “osu!next” may not actually happen in 2015, but hey, what can you do? I promise I’m doing everything I can to make osu! the best it can be.

On the topic of osu!keyboards: after the initial rush, things have quietened down, so I am leaving them in stock for the foreseeable future. Thanks to everyone who has purchased them so far; make sure to give us your feedback on the build quality and usability!

I have a few blog posts in the works which should be a tad more interesting than my daily updates (talking about the new forum design, my experience converting from sublime text to atom etc.), but I’m still prioritising actually getting-things-done over blogging, so you’ll have to wait a bit longer!