Tue, 27 Jun 2017

Benchmarking

pre-alpha 1726 devlog


This release adds two important components:

Quick Feedback

During a game a feedback form is displayed at the bottom of the screen at all times. It allows to send short error reports, suggestions &c. right from the game. Sending feedback automatically includes a savegame of the current game and screenshots of the current frame with and without UI.

So there is no need to figure out which channel to use for feedback (comments, forum, ..) or having to go through the hassle of uploading screenshots/savegames. Instead it should make it convenient enough to even report the tiniest error when encountering it.

Benchmark

With the basics of the rendering-backends being implemented it is important for me to know how it performs on different hardware. Therefore I have included a benchmark function, which runs a scripted set of animations, taking ~15 seconds, and sends the frame-timing information to me. This function has its own entry in the main menu so it is hard to miss.

After applying some gnuplot-magic I can look at graphs like this:

Late 2008 vs 2012

Those are the CPU-timings of the benchmark on two different CPUs. And there are two things to learn:

  1. The 3.5 years older i7-920 gets crushed by the newer CPU (-33%). Since it has a lower clock-rate and is a mobile CPU, I did not expect the difference to be so profound. I am looking forward to the results from i7-77xx and Ryzen CPUs.
  2. The big yellow blob, thats where optimisation needs to happen.

Same thing goes for GPU timings as well:

Early 2015 vs Early 2012 (+mobile)

This time the differences are more in-line with what I expected to see: The GTX 960 outperforming the older GT 650M easily.. Well, were it not for the purple blob, which is the time one of the compute shaders takes to execute on the GPU. Clearly a problem I need to investigate.

Anyway. As it says in the game before starting the benchmark: running the benchmark is really important for me, since it uncovers strange behaviour and helps me a lot to determine where I need to spend my time to optimise the engine. The very same goes for the Quick Feedback in turn, which helps me make the game better. So please run the benchmark and keep the feedback coming. Thank you!

Notable additions/changes/fixes:

  • Add benchmark-mode
  • Put textbox to send feedback right at the bottom of the screen
  • macOS: support V-Sync
  • Saving of screenshots (also used for feedback) is much faster (6x)
  • Suspend rendering (and do not crash) when window is minimized
  • Do not move camera (through hotkeys) while any textbox is active
  • Do not continue scrolling the view when mouse leaves the window
  • Fixed scrolling in layouts not always working
  • Make content+render-pipeline=sRGB correct
  • Windows: Fixed crash with maps bigger than 64x64
  • Windows: Fixed window not having the correct/expected size
  • Windows: Fixed alpha-blending of UI components

Enable Javascript to see comments