Valve Shares Performance Numbers On Port of Left4Dead
New submitter nschubach writes in with an update on Valve's progress porting one of their games to GNU/Linux. From the article: "One factor in creating a good gaming experience is throughput. This post discusses some of what we've learned about the performance of our games running on Linux. ... After this work, Left 4 Dead 2 is running at 315 FPS on Linux. That the Linux version runs faster than the Windows version (270.6) seems a little counter-intuitive, given the greater amount of time we have spent on the Windows version. However, it does speak to the underlying efficiency of the kernel and OpenGL. Interestingly, in the process of working with hardware vendors we also sped up the OpenGL implementation on Windows. Left 4 Dead 2 is now running at 303.4 FPS with that configuration."
nschubach adds "It seems there are good things coming out of this for both Operating Systems!"
Just look at all the games available on Steam for Linux
What does it tell you when, to fully optimize something on Windows, you have to port it to Linux first?
LINUX DESKTOP
What I found interesting was how much an improvement this is from their initial port.
Their very first version ran at a full six frames per second (167ms/frame). They've now gotten it up to 315 fps (3.17ms/frame).
That's some pretty impressive work. Pity the article is so light on the details of how they did it (I'll spare you reading the article: they found places where it ran slow due to the kernel, they found places where it ran slow making OpenGL calls, and they found places in the driver itself that ran slowly - that's about as much detail as the actual article gives you).
Takeaway: the linux kernel and OpenGL are arguably more efficient than their Windows-based counterparts. I think a lot of people have thought this to be true for years, but it's always nice to see solid comparisons. It's a good time to have a linux box!
Deal with it, menial M$ users...
I'm just curious; how does the visual quality stand up I wonder? I always thought OpenGL didn't have the same amount of features that Direct3D does.. Can someone here speak to that?
Save the Earth, use Linux!
You don't care about the environment? You know, that place you live in? The only one available with no alternatives?
Okay then.
Save your wallet, use Linux!
Can we bring those improvements to Mac OS X?
Last I checked FPS over 60 generally doesn't mean much for most people. Very few gamers can even notice a difference between 60-100 let alone over 100.
So there is no real point in posting huge FPS numbers in Windows or Linux as it really doesn't matter.
Could we get back to DOS 6.22 and benchmark it?
Nice numbers, but where is Episode 3?
One of the advantages of OpenGL vs DirectX is that it doesn't force the underlying hardware to comply as strictly in areas such as memory management, command batching, shader assembly, etc. This allows implementers more freedom to optimize and usually results in much higher performance. Even if a full backwards compatible OpenGL context is huge.
This approach was proven again very succesful with mobile hardware, where vendors such as Qualcomm, PowerVR or Tegra or ARM (Mali) produce graphics chips that comply with OpenGL but at the same time use the higher level abstaction of the API to their advantage, by supplying very different backends each (Immediate Rendering, Deferred and Tile Based Deferred) as means to improve performance (per watt and silicon space) to levels much higher than the desktop counterparts.
Added to that, programming games under Linux is a joy for those used to it, as the tools are fantastic (command line scripting, gdb with hardware watchpoints, valgrind, strace, etc) and the fact the OS manages the heavy load of games much better. Many companies I worked with, and even big ones such as Naughty Dog (makers of Uncharted) develop their games primarily under Linux, even if the final versions are released for Windows, Mac and Consoles.
One key factor omitted is which version of OpenGL they are using. I certainly find the advantage highly interesting, but the comparison may unfortunately not be completely fair if they used OpenGL 4.x. Bear in mind the source engine only supports D3D9, which is 10 years old in a few months.
One of the advantages of OpenGL vs DirectX is that it doesn't force the underlying hardware to comply as strictly in areas such as memory management, command batching, shader assembly, etc. This allows implementers more freedom to optimize and usually results in much higher performance. Even if a full backwards compatible OpenGL context is huge.
This approach was proven again very succesful with mobile hardware, where vendors such as Qualcomm, PowerVR or Tegra or ARM (Mali) produce graphics chips that comply with OpenGL but at the same time use the higher level abstaction of the API to their advantage, by supplying very different backends each (Immediate Rendering, Deferred and Tile Based Deferred) as means to improve performance (per watt and silicon space) to levels much higher than the desktop counterparts.
Added to that, programming games under Linux is a joy for those used to it, as the tools are fantastic (command line scripting, gdb with hardware watchpoints, valgrind, strace, etc) and the fact the OS manages the heavy load of games much better. Many companies I worked with, and even big ones such as Naughty Dog (makers of Uncharted) develop their games primarily under Linux, even if the final versions are released for Windows, Mac and Consoles.
Rather then going for broke and getting as much FPS as possible, why don't game developers focus on optimizing the experience for a SOLID 60 FPS, that is, instead of peaking at 300 FPS in one scene, and then dropping to 45 FPS in another, strive for a constant frame rate.
If 60 fps does not tax a rendering system, then focus on MORE content in the scene, such as more particles or physics effects which enhance the gaming experience.
Maybe this is just some raw development figure, but there is absolutely no point in dumping as many frames as possible to a screen which only refreshes a given number of times per second.
I mean if someone came out with a car that outputs 300hp when driving 60 mph, I wouldn't be impressed, so why do I care how many frames are rendered between screen refreshes.
I haven't thought of anything clever to put here, but then again most of you haven't either.
The summary mentions 'Windows'. Therefore it has no place on /.
You're starting to slip!
The this means only one thing for me. Time to build out a full native Linux install again. I switched to Windows only and with Sun( yes sun not Oracle, well it Oracle now, but I miss Sun) Virtual Box Linux VM's both Servers and Desktops for my Linux needs. But, I can build out a new BOX with some new kick ass hardware and start tweaking out a desktop. Hmm, things are looking up for Linux on the desktop. Sweet!
Eric
DirectX10+11 improved performance a lot. This study don't talk about it.
I've noticed the different in speed of OpenGL versus DirectX in the past when the first versions of Google Earth came out. You could choose between OpenGL and DX to run the program. OpenGL was very smooth whereas DX's FPS could be counted on your fingers.
It'd be highly amusing to me if, in a few years time, Windows users are keeping a copy of Linux around because "I need it for the games" :)
So.. it has come to this
Very happy to see your article, I very much to like and agree with your point of view. Thank you for sharing. At the same time,i love best pram very much .Welcome to look at my website and blog articles.Hope we can become good friends, and exchange and to help each other! Thanks!!
It is a good blog,I like:
http://www.nflmlbncaacheapjerseys.com/
When you port to several systems you find, even if they have the same userland and syscalls, that your code becomes better and more robust by your efforts to get it to compile cleanly on all platforms.
Which makes more sense?
Yellow paint looks better than black on a house.
or?
Yellow paint on a house looks better than black paint on a house.
The "on a house" part is orthogonal to the comparison of yellow and black paint. No need to be redundant.
This depends on the operation before, but one of the big areas I noticed improvements seemed to be in loading times due to disk access. As it the same game on the same machine/disk (though different partitions), I'd put that down to filesystem efficiency.
Was it a laptop?
I found that often where the windows driver hadn't been updated in awhile, the Linux driver was actually more fully featured at the time.
My old HP laptop ran some games (I believe it was Battlefield 2) that wouldn't work at all in windows due to driver issues.
Silly question from someone who doesn't keep up with cutting-edge 3D stuff: is there any reason for the industry not to standardize on OpenGL ES 2.0? That already seems to be the de facto standard on portable devices. What features does it lack that make it unsuitable for desktop and console gaming?
One of those people who says... whats the point of 32 GiB of RAM.... so short sighted. because 4GB will always be enough for EVER. It wont run 300FPS on YOUR computer. The point is to improve efficiency for all computers, even the low end crud you own so that you get 60+ FPS instead of 2