Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Tightening all the screws

edited 2016 Nov 13 in Developers
<div id="bridgedd"> <div class="excerpt-title">This is a blog excerpt.  <a href="http://dengine.net/blog/2016/11/tightening-all-the-screws/"; target="_blank">Read Full Article</a> </div> <br /> <p>For the past week I have been exclusively focusing on optimizations.</p>
<p>Work in the 2.0 unstable builds has been progressing without much attention having been paid to performance profiling. However, it has become clear that even in very basic maps (like Doom E1M1) there were unacceptable FPS dips. I decided to get to the bottom of what was going on. </div>

Comments

  • good job on the improved fps
  • :)

    I find that making this kind of optimizations is actually quite addictive. Each change gives a tiny boost of 0.1-0.5%, but eventually the improvements start adding up and you see the FPS numbers slowly rise. Performance profiling is also quite interesting as it gives very detailed insights about how your code actually gets executed.

    On Windows I've been using Very Sleepy as my profiler. I like it much better than the VS profiling features.
  • I did some testing myself on my old HP laptop Vistax64/openGL 2.1 in Ultimate Doom

    1) no packages loaded
    build 2141 (x64)

    start of e1m1 43 fps
    open space e1m1 36-41 fps
    start of e4m2 22 fps

    build 2115 (x64)

    start of e1m1 32 fps
    open space e1m1 26-33 fps
    start of e4m2 14.4 fps


    so the gain is about:

    start of e1m1 34%
    open space e1m1 24-38%
    start of e4m2 52%


    2) packages loaded: jdrp 1.01, hi-res, jdui
    build 2141 (x64)

    start of e1m1 33.3 fps
    open space e1m1 28-31 fps
    start of e4m2 13-14 fps

    build 2115 (x64) (no HUD weapons from jdrp)

    start of e1m1 28 fps
    open space e1m1 19-24 fps
    start of e4m2 10 fps


    so the gain is about:

    start of e1m1 19%
    open space e1m1 29-47%
    start of e4m2 30-40%

    That is a very good improve. Can you tight some screws even more?
  • I'm sure there is still room for more optimization, however I would prefer to focus on a particular slow scene instead of going for general-purpose optimizations like I did here. Do you have any maps/coordinates where one can see a huge FPS drop?

    Much bigger performance gains could be achieved by rethinking how rendering is done on a higher level. Ultimately I prefer investing time into that direction.
  • Well, the beginning of E4M2 on the UV difficulty in ultimate doom is quite bad (10-14 fps only). That is probably due to the large number of monsters.

    I think that the treetest.pk3 wad would be a good test case. However I do not know how to make it run under doomsday.
    The file can be downloaded via this link: https://zandronum.com/tracker/file_download.php?file_id=1084&type=bug
    Some description about the performance in gzdoom can be seen here: http://forum.drdteam.org/viewtopic.php?t=7108 (points 1. and 2.)
    The behavior of treetest in zandronum is here: https://zandronum.com/tracker/print_bug_page.php?bug_id=1541

    I remember that there are some other locations in the standard doom which are quite bad. Once I have time I will try to find them and post them here.
Sign In or Register to comment.