Benchmarking some of the new performance changes coming up in compiz

In December I blogged about some changes I was working on for compiz which should help with performance across the board , and I later talked in depth about one of those changes, being support for GLX_EXT_buffer_age. Now that we’re finally on the road to getting these changes back into mainline, I took some time to get some benchmarks of what the performance impact was as part of the review procedure.

Huge thanks goes out to Esokrates who volunteered some of their time to provide the standard phoronix-test-suite benchmarks to guide where to look for where these changes made the most difference. I will publish those as soon as I have permission, because they are quite interesting.

For now, I’ll report on some of the benchmarks I’ve been doing. My main interest is in redirect non-fullscreen windows, because this is where GLX_EXT_buffer_age would have the most impact. For fullscreen windows, we already unredirect those and they are hardly affected by the compositor. As a reminder, GLX_EXT_buffer_age effectively allows us to have asynchronous vsync support (no blocking rendering on a timer) without filling up every frame and wasting fill-rate because new frames are “undefined”.

Phoronix Test Suite (PTS) does not support running any of the game benchmarks as windowed by default, which is why I’ve only run a select few, because I had to modify PTS to get them to run.

Image

For some reason, supertuxkart struggled to get above 20FPS no matter what I did, and no matter which compositor was run (although their results are not shown here). I will note that the buffer-age-support configurations had a nice 4FPS boost in both the vsync-on and vsync-off cases

Image

My hardware had no problems with tremulous, and again, there was a 7FPS difference between buffer-age-support and no buffer-age support

Image

The big difference really came with the unigine sanctuary demo, which my hardware could barely handle. It is very heavy on postprocessing, HDR lighting and real time particle effects. This requires a lot of fragment bandwidth. With buffer-age-support, we got a 13FPS or 5x boost on performance in windowed mode. I am sure that the curve for the % improvement is probably logarithmic if it were to be tested on other hardware, but it is still quite promising.

Image

This graph shows the performance of compiz (measured by the bench plugin with output on the stdout captured by a python script) while the three tests were running. The orange and red lines represent runs with buffer-age-support on. As you can see, they reach the tremulous tests much earlier, and the blue line (which is the non-buffer-age support codepath) flatlines when the unigine test is reached, whereas the others stay at a steady 20FPS.

Hopefully that should show what is in store.

Edit: Now that I have permission, here are some more benchmarks of fullscreen games both with and without unredirection, compared to some of the other compositors. Thanks Esokrates.

4

 

5.svg

7

 

Generally speaking I take full-screen benchmarks with a grain of salt, because there are so many factors that could affect their performance. But I think these three show that we’ve consistently improved across the board.

About these ads

6 thoughts on “Benchmarking some of the new performance changes coming up in compiz

  1. Sam: You didn’t specify what hardware you conducted the tests with. Could you add that info either here in the comment section or add it in by editing your blog post?

    1. Hey Drone4four.

      I’m using an NVIDIA 8600GT card. I’m not sure what Esokrates was using, you’ll need to ask him directly.

      The important part with benchmarks is to look at how the benchmark changes over time when changing the dependent variable, which is in this case, whether or not we had buffer_age on.

    2. I am using an NVIDIA Quadro 1000M card.
      At the following page all this information was given:

      https://code.launchpad.net/~compiz-team/compiz/compiz.fix_1024304/+merge/147832

      see “Description of the Change” at the part where it says “Update: test results here: http://www.ucc.asn.au/~smspillaz/phoronix-test-suite/composite.xml
      and my comment where I say “Part of my benchmark results can be downloaded here:
      http://ubuntuone.com/2JNLvWQiYiQmOCAca0bIEn
      This gives you directly the output of phoronix test suite, where the hardware is mentioned.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s