Serious Sam 3 (not so) awful performance in Steam Linux (updated)

serious_same_3_GPU_settings

I am not going to say much, cause I am quite a bit disappointed about my first impressions in Steam Linux client so far. Things are in motion, hence I cannot make safe assumptions yet. Both SS3 and TF2 are currently being tested under closed-beta by 5000 testers in Linux (basically in Ubuntu 12.04). However, after 3 days of benchmarking I could say that there’s a long way to the top if Steam Linux wants rock n roll.

My PC specs

Processor Information:
Vendor:  GenuineIntel
Speed: 2400 Mhz
2 logical processors
2 physical processors
HyperThreading:  Unsupported
FCMOV:  Supported
SSE2:  Supported
SSE3:  Supported
SSSE3:  Supported
SSE4a:  Unsupported
SSE41:  Unsupported
SSE42:  Unsupported

Network Information:
Network Speed:

Operating System Version:
Ubuntu 12.04.1 LTS (32 bit)
Kernel Name:  Linux
Kernel Version:  3.2.0-33-generic-pae
X Server vendor:  The X.Org Foundation
X Server release:  11103000

Video Card:
Driver:  NVIDIA Corporation GeForce GTX 465/PCIe/SSE2

Driver Version:  4.3.0 NVIDIA 310.14
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 60 Hz
VendorID:  0x10de
DeviceID:  0x6c4
Number of Monitors:  1
Number of Logical Video Cards:  1
Primary Display Resolution:  1280 x 1024
Desktop Resolution: 1280 x 1024
Primary Display Size: 13.31″ x 10.63″  (17.01″ diag)
33.8cm x 27.0cm  (43.2cm diag)
Primary Bus: PCI Express 16x
Primary VRAM: 1023 MB
Supported MSAA Modes:  2x 4x 8x 16x

Sound card:
Audio device: Realtek ALC883

Memory:
RAM:  3278 Mb

Miscellaneous:
UI Language:  English
LANG:  en_US.UTF-8
Microphone:  Not set
Total Hard Disk Space Available:  34593 Mb
Largest Free Hard Disk Block:  6146 Mb

In both Windows and Linux Steam, the autodetect feature seems to be working properly and according to Steam my optimal settings are: CPU (Low), GPU Core (High) and GPU Mem (High). Okay, fair enough. Let’s see some results…

I’ve tested Serious Sam in the first three stages: Summer in Cairo, Into the Spider’s Nest, Broken Wings. I am using nVIDIA 310.14 experimental drivers, Ubuntu 12.04 32bit, Kernel 3.2 PAE and Undirect Fullscreen Windows option enabled.

Supposing that extra effects are not going to work in Linux, I manually disabled them. So there is no Anti-Aliasing, MSAA, AF, SSMA etc. However, Ubuntu maxes at 47 FPS while Windows go up to 122 FPS.

Hmmmm… I sense disturbance in the Open Source.

PS: in order to run the benchmark you have to run from console (`) the command bmkStartBenchmarking(start,duration) where start and duration are integer numerical values. The problem is that there is a bug with comma in console mode, thus go to ~/Steam/SteamApps/common/Serious Sam 3/Temp/RCon/History and insert the command (with comma) in the end of file Local.txt. The go back in game and press Up Arrow ;)

 

UPDATES:

It seems that nVIDIA Settings tends to overwrite Serious Sam 3 settings. So disabling VSync into SS3 doesn’t effect the game at all because nVIDIA X-Settings panel has VSync enabled by default. Simply put V-Sync keeps your framerate under your monitor’s refresh frequency (aka 60Hz, meaning under 60 FPS). So, I had to turn this globally off and then re-run the benchmarks. The performance boost was significant as expected.

Ok now let’s see some bechmarks

and

Ubuntu maxes at 67 FPS (before 47 FPS) while Windows go up to 122 FPS. Now let’s try the new version of Serious Sam 3 public beta, version 172672. More information can be found at Steam Discussions .

Public Beta 172672 Bug Fixes

Update 172672 contains a number of general fixes in the game, as well as some that are specific to the Linux version.

- IMPORTANT FOR LINUX: Most of the weird performance problems in previous builds were caused by performance throttling (aka power saving) features on various CPUs not correctly identifying that the game is running and continually jittering between low and high performance modes (several times per second sometimes!). This build adds a workaround for this which should hopefully prevent the symptoms from being so extreme. It is not perfect however, as there might still be a few percents of performance to squeeze out. The recommended solution is to turn off such features in BIOS for Linux machines. They can be found in BIOS under names such as SpeedStep, Cool’N’Quiet, C1E, PowerNow!, Power Saving, CPU Throttling, Dynamic Frequency Scaling, or something else – depending on your BIOS.

- Added a script that offers to automatically install libpci.3 on linux if it is missing.
- Fixed graphics corruption under OpenGL if game is minimized or “alt-tabbed” while it is loading content.
- Fixed screen-shot grabbing and manual save-game thumbnails not working under OpenGL.
- OpenGL library can now load even if some vendor dependent functions are missing.
- X11 libraries on Linux are now dynamically loaded, so game can properly report and error if something is missing.
- Dedicated server on Linux no longer requires X11 to be installed.
- Fixed problems with filenames of wrong case that happened only with Linux dedicated server.
- Full support for language packs in Workshop. Language mods can now work even in pure (non-moddable) version of the game, and don’t require any customization from user side. Just subscribe to them.
- Workshop packages menu is now also available in non-moddable version of application (this allows enabling/disabling of language packs).
- User is now properly notified when Steam Workshop content download fails.
- Fixed issues that might have prevented some user accounts from uploading to Workshop.
- SeriousEditor now displays Steam Workshop sync progress in status bar.
- Upload to Steam Workshop command is no longer available until Steam Workshop sync is finished. Previuously, it locked up the application.
- Fixed an issue causing clients to always see weapon change on HUD at game start.
- Fixed a lockup happening if spectator cameras are linked in a closed loop. This only happened with user-made levels.
- Weapon change attempt is now correctly being indicated on HUD if performed during sprint.
- Fixed popup menus in Serious Editor sometimes going off the bottom of the screen in multimonitor setups.
- Fixed duplicate directory entries being shown in Serious Editor in file browsing for directories inside user-made .gro files.
- Added vertex merge when importing fbx meshes.
- Added facilities in Serious Editor to automate editing on entities from console scripts.
- Added cfuncs edtGetMemberValue(strUserDataPath) and edtSetMemberValue(strUserDataPath, value) used to change entity properties.
- Added cfunc edtSelectEntityPropertyByID(iEntityID).

All in all Build 172672 for Serious Sam 3 is now available in beta “publicbeta”, which does not require a password. It contains a number of general fixes in the game, as well as some that are specific to the Linux version.

To install the beta, do this:
- locate the game (Serious Sam 3 in this case) in the Steam’s “Library” panel
- right click and invoke “Properties”
- select the “Betas” tab
- choose “publicbeta”

Now wait a little bit while Steam is downloading the new launcher and then re-run the benchmarks. Let’s see some results.

and

Ubuntu maxes at 95 FPS (before 67 FPS) while Windows go up to 122 FPS.

It is important to disable any Powersaving/Green settings in your BIOS because Serious Sam 3 has problems (only in Linux) with CPU frequency. Most of the weird performance problems in previous builds were caused by performance throttling (aka power saving) features on various CPUs not correctly identifying that the game is running and continually jittering between low and high performance modes (several times per second sometimes!). This build adds a workaround for this which should hopefully prevent the symptoms from being so extreme. It is not perfect however, as there might still be a few percents of performance to squeeze out. The recommended solution is to turn off such features in BIOS for Linux machines. They can be found in BIOS under names such as SpeedStep, Cool’N’Quiet, C1E, PowerNow!, Power Saving, CPU Throttling, Dynamic Frequency Scaling, or something else – depending on your BIOS.

In case you don’t know how to disable this feature in BIOS, use our reader’s Majilo instructions

How to setup Governor Indicator for CPU Freq

ou can change governor via GUI by installing indicator-cpufreq or via command line :

# Show available Scaling Governor Profiles
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

# Then show the current Scaling Governor Profile
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# Change to root
sudo -i

# Then change to Performance Profile if available
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# Show actual frequency
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

publicbeta build can by installed when you right click on game set Properties and go to the betas tab .Let us know results :)

More info at: http://forum.ubuntuxtreme.com/viewtopic.php?f=35&t=25

Notice:

This article is based upon to my hardware only. It’s quite possible that using different hardware combination you may get better results. Different drivers, different kernel, different compiz settings, everything matters. Things are in motion and Steam Linux is currently in beta phase. I am not “bitching” about performance, but informing everyone that if you are going to play games in Steam you may (possibly) need better hardware than Windows. However it’s too early to make such statements.

Bench, Test, Change, Bench, Test, Change :D

SHARE THIS POST

  • Facebook
  • Twitter
  • Google Buzz
  • Reddit
  • Stumnleupon
  • Delicious
  • Digg
  • Technorati
  • Majlo

    Hello,

    Make sure to change governor from ondemand to performance and use “publicbeta” build

    • http://www.ubuntuxtream.com/ Panos Georgiadis

      Hello :)

      What is the “governor” ?

      • Majlo

        Sorry i should have been more specific .You can change governor via GUI by installing indicator-cpufreq or via command line :

        # Show available Scaling Governor Profiles
        cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

        # Then show the current Scaling Governor Profile
        cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

        # Change to root
        sudo -i

        # Then change to Performance Profile if available
        echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

        # Show actual frequency
        cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

        publicbeta build can by installed when you right click on game set Properties and go to the betas tab .Let us know results :)

        • http://www.ubuntuxtream.com/ Panos Georgiadis

          Oh, so you mean the Intel SpeedStep Technology. I didn’t knew it was called “governor”. Sometimes people use different naming schemes and it’s difficult to know what anyone means. Thanks man :)

          I have SpeedStep disabled from BIOS, meaning my CPU runs always at 2.4 GHz. So my CPU Frequency is not depended upon software utilities. I use dual monitor and I can monitor my CPU freq simultaneously while gaming.

          My first problem:
          1) nVIDIA Settings seems to overwrite globally anything else. For example nVIDIA has Vertical Sync (aka VSync) enabled by default into their control panel. As such, I couldn’t get higher FPS than my monitor’s refresh rate (60Hz) even if I had VSync disabled in SS3 settings.

          35 FPS –> 44 FPS (improvement)
          47 FPS –> 67 FPS (improvement)

          Second problem was the public beta. I see now that there are three different versions of SS3 in Steam. I’ve update my SS3 into 172672 public beta version and …

          44 FPS –> 50 FPS (improvement)
          67 FPS –> 95 FPS (improvement)

          However Windows version is still 10 – 30 FPS higher

          • Luke

            I think these updated results demand an edit of the original post, do n’t you? At least a footnote!

          • http://www.ubuntuxtream.com/ Panos Georgiadis

            Refresh your browser Luke :)

          • Michael Murphy

            That’s not Intel SpeedStep. cpufreq is actually not very updated, so most people use cpupower instead. A CPU Governor is simply a daemon/program that limits the CPU frequency in order to conserve energy. It has nothing to do with what BIOS settings you use. It attains direct access to altering your CPU multiplier. By default, distros like Ubuntu like to have the governor installed and set to ondemand.

          • http://www.ubuntuxtream.com/ Panos Georgiadis

            Core2Duo has locked multiplier, you can change only FSB setting, but modern Sandy and Ivy bridge make use of multiplier rather than BCLK. Is cpupower or cpufreq that clever? BTW if I disable intel speedstep none of them works properly. Check cpuinfo and see the current speed. Hmmm I have to do a little research on that daemons….

          • jim
  • Daniel Marsh

    Remember to go in to nvidia settings and UN-mark “sync to vblank” under opengl settings… then reboot machine and try again.

    • http://www.ubuntuxtream.com/ Panos Georgiadis

      Yup, that’s was one of my fauls. nVIDIA settings tends to overwrite anything else globally. After that my scores were significantly improved:

      35 FPS –> 44 FPS
      47 FPS –> 67 FPS

  • jim

    Nice post,i presume this is unity/compiz results? Steam still say “To improve performance, use a desktop environment other than Unity” it would be nice to see results from other DE’s using that hardware.

    • http://www.ubuntuxtream.com/ Panos Georgiadis

      I will try Gnome and Cinammon then.

      • jim

        Cool sounds good thanks :) .From what i have read unity 5.12,which i believe is the current version in 12.04.1, fixes some open gl performance, but still doesn’t perform as well as unity 2d. Unity 2d performs worse than gnome classic/shell and xfce.

        • Majlo

          I tried run SS3 in fluxbox and got the exactly same results as under unity ( 12.10 ) .It was big surprise for me .Looks like “Undirect Fullscreen Windows” makes wonders and finally works as expected .

  • uh20

    serious sam 3 was a pretty ballz’y port on the list, its obvious from everyone else that its performance was worse on ubuntu

    BUT, what about tf2?, its one of valves thingies that i would expect to have equal performance (or more if they decided to up the opengl version).

    • http://www.ubuntuxtream.com/ Panos Georgiadis

      I am setting up my timedemos for Team Fortress. Soon enough I will let you know the results.

  • jim

    Just tried “ren_bMultiThreadedRendering=1″ “ren_iMaxThreads=2″ and gained an extra 10-15 fps this feature is not 100% supported yet so it may crash

    • http://www.ubuntuxtream.com/ Panos Georgiadis

      Just tried the new 173348 version and … it great!

      Lowest Settings:
      Ubuntu 117
      Windows 126

      High Settings:
      Ubuntu 51
      Windows 57

      using the ren_c commands I get freezes though.

  • Daniel Marsh

    i have used this command frm the article:
    echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    amd now my pc always starts up in performance mode how do i change it bacl to the default??

    i have tried :
    echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    but it does not work, i have also had indicator-cpufreq installed could it have canget som setting permanently???

    just want my pc to boot up in ondemand again..

    please help..

    • damien duncan

      “echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor” should of worked were you in root shell by doing “sudo -i” first??

      • Daniel Marsh

        Hey
        Yes I did remember to use sudo -i first…. And it works just fine for the cpu I specify (cpu0,1,2,3) and they clock down from 3,3GHz to 1,6GHz..

        But once I reboot the machine they are all back on performance..

        So no luck :(

        • damien duncan

          Have a look at this answer and let me know if it fixes your issues http://askubuntu.com/a/179920

          • Daniel Marsh

            I have just reinstalled ubuntu so I don’t think we will ever know, but I appreciate the help :)

            Now everything is back to normal… (ondemand)

            I’m usually pretty good with the terminal but I just could not revert this, and i have read countless forums about it now and nothing helped..

            It just didn’t make any sense

    • http://www.ubuntuxtream.com/ Panos Georgiadis

      use the indicator icon to change the settings.

      • Daniel Marsh

        Yes I can use the Indicator to switch back to “ondemand”, but it jumps back to “performance” even tough the indicator was set at ondemand when I rebooted.. and even tough the indicator is one of my startup-programs…

        I swear to god I have used nothing other then the script from the article:

        echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

        And Indicator-freq and now it is stuck on Perfomance and life sucks….

        I could have reinstalled Ubuntu four times by now, so I am considering just that.

  • digitalcrow

    When linux dont have good drivers and still using Xorg and compiz its normal that you will not have good performance, maybe its not linux fault but it surely sucks on gaming cause i tried that too and it was an awfull experience. (tried with amd radeon hd 7770).
    PS1: After seeing steam games performance i can’t anymore say that linux is the best os but at least its free and its opensource and has nothing with monopoly

  • Jebril

    TF2 runs fine under Linux, however with Serious Sam 3 I get choppy frames regardless of what settings I play even on the lowest and my recommended settings are High, High, and Ultra.