Windows vs. Linux On 3D Performance
Linux Games have posted this article about Windows VS Linux on 3D performace. They tested Quake III with Matrox G400, NVidia GeForce 256 DDR, and 3DFX Voodoo 3 3000 -- all with their latest drivers (both Linux drivers and Windows drivers). There are some interesting results, and even a few surprises. What do you think about the results?
into the ground, before this'll make a splash.
.sig. It isn't very big.
As someone else stated, this proves why he stays with Windows. Even though it is very close, it's not there yet.
Now, this isn't a flame of the driver writers, because (as was also previously stated), the windows people have had years to fine-tune their drivers for games under Windows. But with Linux being such a superior OS (we all know it), it should CRUSH Windows. IMHO, only then will it make a difference, not even being equal will match, because then people will still stick with Windows, because that's what they know.
There has to be a reason for the switch, to the hard-core gaming crowd, that slightly higher FPS could be the reason. The next question is, what about for the rest of the world? Do we want everyone and their grandmother to use Linux?
This is my
This is my
--An Oldie, but a Goodie!
This makes the assumption that the X bashers know what they're talking about.
With DRI the 3d pipeline bypasses X. There is some resource usage by X for font/pixmap caches but it is negligible and wouldn't have caused the slowdowns seen here.
People just want a scapegoat and X happens to be the handiest thing to point a finger at. The real problem is that very few people understand X and even fewer people contribute to the XFree86 team.
There are people in XFree86 who are concerned with speed, and experiments done in the past have proven that XFree86 drives the cards as fast as they can possibly go. Performance problems are in most cases caused by lack of documentation about the cards acceleration features, not because X is getting in the way.
Remember, at it's heart XFree86 is an async-io synchronisation mechanism. Any windowing system needs a similar mechanism, be it locks or mutexes or message passing. Changing from one mechanism to another will not change performance, it simply moves the "bottleneck" somewhere else.
Someone go out, profile, find the critical path in x86 Mesa code and optimize it by handwritten assembly (using MMX, 3DNow! and SSE). See if you can decrease branching factor, make better use of modern L1 and L2 caches or reduce memory loads altogether and preload data from memory before actually using it.
Granted, portability is gone after that, but it's performance that matters, eh?
Hey, don't look at me! :)
---
This sig has been temporarily disconnected or is no longer in service
Not really - all the tested X drivers use direct-to-hardware rendering, same as Windows. If the apps were run through the X socket, you'd see linux at more like 5% of windows performance instead of 90% =).
That said, X is really showing its age. IMHO network transparency is neat but not necessary at all for 99.9% of users. I'm sick and tired of crappy, jittery 2D on linux - perhaps the solution is pure client-only rendering. Those that need apps over the net can use VNC.
The differences between XF3.3x+Mesa+Glide and XF4.0+DRI are:
www.eFax.com are spammers
This I entirely agree with. The font handling in X11 is an absolute joke; a relic of ideas and limitations of the 80s which certainly shouldn't be holding us back these days.
It's a great thing Keith is working on making fonts better for XFree86. He is a very smart guy and if there's anyone that can fix the font mess in X, he's the one to do it.
But keep in mind that limitations in X are in almost all cases fixed through extensions. Good examples are XInput, or DGA, or GLX, or DPS. Not a single one of these features was planned for when X was written, but now you can seamlessly support all these features in your programs.
I'm particularly impressed with DPS which now gives XFree86 users the equivalent of Macintosh's QuickDraw. Print quality rendering on the desktop and at amazingly high speed too.
Or GLX which gives us an OpenGL implementation that is simultaneously a direct renderer (when it is possible), an indirect renderer (if you don't have permissions to directly access the hardware) and a network renderer (providing X's extremely useful network transparency), all automatically sorted out at runtime.
Or DGA which gives you direct access straight to the framebuffer, but with the benefit of still being able to use XAA for hardware accelerated blits and fills and the like. This makes DGA much better than SVGALIB for 2D graphics.
Keith may eventually produce something like an XFree86-Font extension, or XFree86-AntiAlias. It is an exciting time to be using XFree86. It's all getting better, and faster, and wonderful things are being done. It's always sad to see people who harp on the few bad things in X rather than look at all the great improvements that are being made and developed.
XFree86 problems can be solved, but not if you sit on your laurels and complain.
However, people are becoming frustrated with NT, and longing for the stability/flexibility they had with their IRIX based systems. Major animation houses are now moving to Linux, at least for rendering. Maya has its renderer ported to Linux already, and houses that write their own software are porting to Linux also. (I've spoken to people from two major houses who said, "we're giving up on NT.") But, on the actual interactive end, where 3D performance counts, the major packages have not yet been ported, (though the houses may be porting their in-house packages.) So... much of the discussion of Linux for 3D animation users is, "Will, or when will, enough packages port to Linux so that we can use it instead of NT?" Also, "Will we have the level of OpenGL performance we need for these applications?" It's good to see the gaming article, because, attention to 3D that helps the gamers winds up helping the animators too, but I would like to see more articles addressing these aspects of 3D Linux performance.
People have been saying that since Windows 95. Why should we start believing you now? o_O
Here's the deal...
XFree 4.0 which _has_ been released, supports DRI (Direct Rendering Infrastructure) which lets you have direct access to the graphics hardware giving a _big_ improvement over XFree 3.X's older archecture.
Now, it is still a bit of a pain to set up, and you can't run Quake or Quake II (only Quake III) under it, but it gives _awesome_ performance. Have they bothered to try this, they would have found Linux KICKS WINDOWS ASS.
Check 3dfx's linux website, source forge, and XFree for more info...
I am surprised that this became a Linux vs Windows kind of thing. Windows is not even involved in this story. When a game developer writes on Windows, he would be stupid to use any more of Win32 than needed to create the window and delete the window. Most Windows games today are programmed in DirectX, which offers almost all the services needed by a game. Once one learns how to set up a windows and do some threads, almost everything else a game needs is done through calls to DirectX instead of OS calls. In addition to that, most games spend most of their time inside their own code anyway, so the OS has a negligible effect on performance, (assuming of course that the app has direct or near direct access to hardware). Som in reality the competition is Linux vs. DirectX. Quite an impressive showing on Linux's part, at least for now. DirectX (true to its name) has much less overhead that any OS ever could. I wonder, however, if this success is short-lived. Quake isn't exactly a service intensive game. Sound is pretty basic, as is input. They only thing that really matters in this case is the speed of 3D subsystem. Game, however, will eventually evolve, in particular using more sound. Some games (thief in particular) already do this. I really wonder if Linux can handle yet another subsystem that needs direct access to hardware. As 3D sound controllers become more complex (like Aureal's controllers) the OS will need a good way to get huge amounts of data and commands to the sound cards. In these types of games, Windows will keep trumping Linux. The main problem is that Linux doesn't have DirectX. In absense of that, it has no consistant API that pushes the OS out of the way and allows the game to take over the system. Take a look at the rest of the APIs. DirectSound, DirectInput, DirectDraw, and to some extent DirectPlay (for its flexibility) whoops anything availible on Linux. (Any Linux driver-hardware combo that allows 32 HW accelerated 3D sound streams in addition to 96 normal streams? Windows had that in the A3D 2.0 days.) What Linux really needs at this point is a DRI for the rest of the sub systems. Only then, will Linux become better than Windows for games. Some will say the current situation is enough. Linux is almost as good as windows, it performs almost as well. Almost will not cause anybody to switch, however. If Linux really is a technically superior system, it should be able to trounce windows, not merely equal it.
A deep unwavering belief is a sure sign you're missing something...
It's all X's fault. That said, having a networked client/server GUI beats the shit out of a single-user, single desktop GUI anytime.
It's a shame you can't mod and post in the same story; I'd like to be able to both negate the "insightful" rating and explain why it's BS.
Take a look at the drivers they used. Not a one of them sends data over the X pipe. The X server basically is there to say, "yeah, you can bang directly on the hardware" and then get out of the way.
If they were sending data over the X pipe, you'd definitely know it. 3D hardware acceleration is often bandwidth limited; you could get up to a 50% drop in framerate without direct rendering. Smart design would reduce this problem, but I still suspect you'd see 70% optimal framerate, max... and in the LinuxGames tests, 70% was the worst case, not the best.
What was the best case? 99% framerate. This suggests to me that it's not idle processes or the kernel hogging CPU, it's not any weirdness from X or kswapd... it's just that some drivers are better than others. And right now, it looks like Windows drivers are 5% to 40% better than Linux drivers. Frankly, since Windows sales are 500% to 40000% better than Linux sales, I'm not complaining about driver quality.
I am surprised to see the 3Dfx drivers do so poorly, though. Isn't anyone helping out Daryll Strauss now that we've got source code available?
But of course, just how much can you trust the benchmarks? They ran it on one game, using a particular configuration, for a specific kernel.
Well, aside from the usual difficulties, there was one special case; the Matrox testing was done using full OpenGL drivers under Linux and a specific Quake 3 "TurboGL" driver under Windows; TurboGL drivers are Matrox's OpenGL subsets designed to run one game per DLL. In fact, the TurboGL driver postdates the Linux Mesa drivers; at one time (and probably still) the Linux implementation was significantly faster than the full Matrox OpenGL.
"As Linux grows because of its capabilities in other areas and its openness, it will gain market share, and the disparity between the two will decrease."
- 6.html
So if things were different they wouldn't be the same. Go figure. & Linux will improve over time. Oh my gosh, what a revelation.
You're saying that this isn't a comparison of the OS. I think the article was pretty straight forward in saying that it was just comparing Windows vs. Linux 3D Performance in Q3A. Do we really need to give Linux a hug and say "Don't worry that doesn't really matter because it will get better in the future." and make excuses every time someone points out a short coming?
Linux comes up short when comparing Windows vs. Linux 3D Performance in Q3A. Accept it and help provide suggestions in improving things or move on. Excuses doesn't make Linux any better.
I don't mean to be hyper critical here. I hear allot of "Well windows has lots of developers." or "Well windows has X or Y." and such statements when Linux comes up short in certain areas. In the end that doesn't help anything, in fact Linux does do poorly in these tests. I refer to the last line in the Linux Advocacy how to.
http://howto.tucows.com/LDP/HOWTO/mini/Advocacy
The Xfree-v4 DRI driver from 3dfx still goes through Glide. Check out this page at 3dfx. You need the new Glide installed before you can install the DRI X-server.
The IIRC the 3.3.6 X-driver used DGA (and so was full screen only). As a result it is entirely possible that it should be as fast as the DRI solution, or faster if the DRI implementation is not yet as well optimised.
So I am quite prepared to believe that the DRI implementation could be *slower* than the older version at the moment.
I would like to point out to the vindictive moderators and flamers that the article specifically talks about how it uses WINDOWS 98. Not NT. Not Win2k.
Many thanks to those who noticed this, and pointed out the details of the way windows works with DOS.
Thanks also to those who actually READ THE ARTICLE.
WARNING: there is a trojan on your
I use Windows when I want to play games or do any real work (despite StarOffice's attempts, it's nowhere near Word). When I need to program in C++ or just browse the internet, I use Linux.
In addition, I'd love to know what version of Windows you guys are running. I've been running Windows 98 SE solidly for over 4 weeks, with no need to reboot. I like the concept of having a crashless operating system, but is it really required for the average user? I don't mind a crash here and there, if it affords me extra affordiability and solid support (MS's Technet section of their website is the most comprehensive I've seen by any software developer).
And to those who say "Well, Windows 98 SE rarely crashes because it's Windows 98 Second Edition, the latest in a long string of upgrades", all I have to say is: "What about Linux?" Doesn't anyone remember the almost hourly crashes of the first few point releases (it took 2 years to get anything close to stable).
- I don't care if they globalize against free speech. All my best free thoughts are done in my head.
If you have a dual NT workstation, I'll bet it beats the pants off Win98. 95/98 is usually faster than NT on equivalent hardware (though I can't vouch for Win2K speed), but it takes NT to take advantage of a second CPU. Running Win98 on a dual workstation will leave half your clocks playing pinochle.
--The basis of all love is respect
I was impressed with win2k on my pal's Dell lappy. Litestep made it fun to use even. :) It runs debian booted off a CD fine though...
Until the suspend mode started to give BSODs...
Here's a quick test, drop your monitor's refresh rate from whatever it is down to 60Hz then switch it back up. Big difference huh? Games running at a full 60fps have a huge visual distance. You see alot less blurring which I particularly don't enjoy (the blurring of low framerates). The problem I have with the 33fps is that the same exact hardware with a different OS has such a drastic difference in hardware performance. Linux ought to be doing better than Windows, not worse.
I'm a loner Dottie, a Rebel.
Play Q3 in Win98, pull up a console and type /r_smp 1 and see what happens. Ohhhh yeah, Win98 can't use multiple processors. Sheesh silly me. Tomshardware was restricted in its test because they needed to stick to a single processor. Linux, Be and MacOS all support SMP also and benefit from it.
I'm a loner Dottie, a Rebel.
He. I like (and share) that attitude, but you do realize that RMS (who developed the license) does not agree, right? In fact, the official GNU party line is that the Lesser GPL should only be used for non-exclusive functionality, since it doesn't coerce other developers to use free licenses. It's interesting to note that people seem to use the license for quite different kinds of libraries -- SDL, for example, provides a rather "unique capability", but is still LGPL... Well, just food for thought, or something.
main(O){10<putchar(4^--O?77-(15&5128 >>4*O):10)&&main(2+O);}
If DirectX were made open source it would be an enormous boon to just about everyone. The folks over at XFree could incorporate it into XFree, PC game folks could much more easily port their games to multiple OSes and in doing so gain market share. Sigh, I can wish.
I'm a loner Dottie, a Rebel.
I'm amazed at how quickly people jump to the defense of Linux by saying it has more overhead, and doesn't let the game have total system control. I thought Windows was huge and bloated! I thought it could never be as efficient as Linux, in terms of CPU time given to an application -vs- OS overhead. I read that distributed.net clients ran faster in Linux than Windows! This reminds me of the Mindcraft scenario, where noone could live up to Linux having a flaw. (In that case, the IP stack)
That having been said, the lesson we need to fess up to is that if Linux is to compete on the desktop, development in these areas needs to progress. Microsoft is behind in servers, and reliability. Linux is behind on the desktop. Both are working toward improving in the strengths of the other.
Business can prioritize, attack, and resolve. Open source must do the same. If we continue to cop-out the problem will not be solved, and open source will get a scar for being unwilling(not unable) to see the big picture.
Under Windows you're drivers can talk near directly to the hardware, and their are less layers of protection slowing things down. Under Linux, their are more layers of protection between the hardware and the drivers, not to mention things have to talk more directly to a windowing system like X.
This means that in general linux games, etc.. will be more stable than their Windows equivalents, and if they crash, again in general, your system should be able to survive. (Even if you have to telnet in and reboot.)
Here's where DRI and XFree 4.0 come in. With DRI a driver can talk much more directly to the hardware, and generally speed things up, and provide more features.
So in Windows you get a slight speed increase in drivers at the sacrifice of stability. Of course, anything dealing with hardware/drivers can cause complete system lockups, its just less likely in Windows than in Linux.
A better comparison would be either Linux to NT 4.0, or Linux with XFree 4.0 to Windows 2000.
As it stands, you can get a nice idea of the slowdown by the GeForce drivers, which are ownly slightly faster in Windows than in linux. Of other note, is that the drivers in Linux are not optimized for games, as the article brought out several times. It would be VERY interesting to see some Linux vs. NT/2000 benchmarks in workstation operations(cad/design/etc...)
------ 24.5% slashdot pure
Windows is still somewhat based on DOS, which never was too big on multitasking. Games completely take over your system,
This is so completely wrong, how the hell did it get modded up? Windows isn't based on dos any more then Linux is because of Dosemu and lodlin.com. The only reason the system boots in dos mode (in win9x) is for compatibility sake. In fact, this no longer happens in WinME.
And as far as taking over your system, it simply doesn't happen. The game can take over your screen with directX, and use a Realtime priority thread if it wants to hog the CPU, but it probably doesn't. This is no different then what happens in Linux. Win32 programs don't use DOS at all, that's why they run on NT and 2000, witch don't use DOS code at all.
Is it so hard for people to know what they're talking about before doing so?
ReadThe ReflectionEngine, a cyberpunk style n
Unfortunately this study didn't really reflect the real and significant performance differences between OS 3D support.
An ostensibly fill limited benchmark will not reveal any disparity beyond state issues in the hardware. The geometry performance is not going to be significantly different in a software implementation of T&L provided there is at least a moderate effort by the vendor to support instruction sets like SSE or 3DNow on Linux.
What will be really telling in future is the difference between dispatch mechanisms & kernel level support for graphics when we get some heavy duty T&L support and a benchmark which exercises it. This will become significant for many games and is already significant for 'serious' 3D applications.
You are simply not going to get anything near parity unless we can persuade Cox & Torvalds that 3D is important enough to distribute the kinds of kernel hacks needed for efficient 3D support. Right now they are intransigent and have even lambasted 3D experts like Jon Leech in public over kernel support issues. In addition we'll need to remain flexible about driver implementation frameworks we want to support. Something like the DRI is OK now but when you need to send 15 million triangles a second to the graphics card it's not going to cut it.
Unfortunately Linux currently does not give anything near parity with hardware T&L. Even with an excellent driver implementation and the best will in the world it cannot and it may not for some time to come.
5-10% speed improvement? Wha? I have talked to at least twenty people who have done this and have not seen that result. All had a drop in performance. I'd like to know where you got your numbers. Gamecenter shows 98 beating 2000 by 13fps and 10fps on identical machines. That roughly matches my own tests. The only game I've heard of even posting an increase was UT, and it was by 3fps - negligable.
--
I think there is a world market for maybe five personal web logs.
This shouldn't be surprising. Windows 98 simply does not have the amount of overhead that Linux or any multiuser OS with a good security model has. Things like that just take more CPU cycles, period. Windows will always have a bit of a performance edge for anything, but at the same time it will be a lot easier to crash it, write to memory that you're not supposed to, etc. Hardcore gamers will almost always stick with Win 98/ME. For the rest of us, it seems like Linux really is coming along. Again, it's just a measure of driver support, this test. Obviously Nvidia has more of it right now. Given two mature drivers for Linux and Windows, though, and Windows ought to win.
--
I think there is a world market for maybe five personal web logs.
--
Let's not all suck at the same time please
Let's not all suck at the same time please
There is Win95/98 and there is NT/2000. They differ a lot.
As for Linux being such a superior OS -- that must be compared on an issue-to-issue basis. It's true for some, not true for others (usability).
A little bit less generalization, please.
If all's good, there won't be any Windows twenty years from now and nothing left to argue. And yes, I want everyone to use Linux because then my family will use it and I will be able keep everyone from deleting important system files.
Somebody really didn't do their homework on 3Dfx drivers here.. The author seems to shrug off the XFree86 4.0 drivers for 3Dfx as being unstable or otherwise unready for public consumption, and instead chose to use the older, indirect XFree86 3.3.6 driver. If this person had built up enough courage to play with CVS, he/she might have discovered that the DRI are in fact closer to release quality than the NVidia drivers, and were even back when NVidia did their release a month ago. The bottom line is, both the NVidia and 3Dfx drivers for XFree86 4.0 are screaming fast and not yet release quality. Why this reviewer chose to use the beta driver put out by NVidia, but not the 3Dfx driver remains a mystery. It really paints an incorrect picture of the state of things. IMHO it's too bad.
Are there reasons why one would expect slightly better 3D performance under Windows than Linux, given drivers that are about equally optimized on each system? I'm interested to know if we should expect to match or even beat Windows 3D performance, or if 95% is about the best that can be done. If 95% is the best we can do, that's quite alright so long as we have good reasons (e.g. solid design, stability). I've always believed it's good to sacrifice a bit of performance to keep things manageable for software people, and stable for end-users.
Why does linux have to 'decide'? Linux just does it's own thing. The fact that one camp wants it on the desktop, and another on the server doesn't mean it can't do both. Sheesh.
linux wasn't invented to take on windows. Linux was invented Just Because.
There is a type of FUD called "exaggerating differences", where a small % advantage for one platform or another is turned into a big deal. Let's not engage in FUD here.
-E
Send mail here if you want to reach me.
The conclusion of this article was that performance under Linux is "comparable" - not good enough. When people are prepared to overclock systems or spend hundreds on a video card alone to get the most out of their gaming, 88-99% as fast as windows just isn't an option. Linux has to get BETTER than windows or forget it - the gamer market needs a compelling reason to switch, and for those guys the only compelling reason is MORE FPS. In fact Linux has a disadvantage to overcome - most games are not even available. Can't wait for Terminus!
"Does Windows performance really blow away Linux performance?" So far.
For all those win2k bigots out there who claims 'win2k is so much faster then win98' please go do some research at http://www.tomshardware.com. You will find that Win2k lags behind win98 by about 10%. Thank you, drive through.
-- You can be a geeklord too
obviously you've never had the displeasure of using the Active Desktop. the bastards at Microsoft who forced that on us should be shot in their fucking heads.
-- You see, there would be these conclusions that you could jump to
In the article, they complained about the nVidia drivers being unstable, and they suggested that this bug would be fixed if the drivers were open. But then they said that they were not using the latest drivers due to "issues" with Q3A.
I am using the latest drivers. There are no "issues". They work perfectly. What's more, the instability they mentioned WAS FIXED (mostly) in the newer drivers. Supposedly, there is still an occasional crash, but I have tried to make it happen with no success.
------
As Linux grows because of its capabilities in other areas and its openness, it will gain market share, and the disparity between the two will decrease. Just give it time
---
This sig has been temporarily disconnected or is no longer in service
"almost makes me want to boot back into NT to play quake. Unlike some of the differences in those tests, the difference from 50-70 fps is a pretty big one"
It's not just a 40% boost in the framerate that makes Q3 under NT better. When the action gets really heavy, the framerate does not drop anywhere near as drastically as it does in uni-processor mode. So here's a request for more SMP support in games that can benefit, and more stable drivers from nVidia (original drivers for my GeForce caused NT to lock up a lot, newer drivers - 3.72 - just cause Q3 to crash a lot).
The more interesting question, IMHO, is the reason behind the good performace of the Matrox G400 and Nvidia, compared to 3dfx. The Nvidia card's performance is due to vendor tweaking, hence the close performance measurements. The Matrox G400, I think, is due to the wide popularity of the card, detailed vendor specs, and - dar I say - the wide use by the XFree86 team. 3dfx had a greater discrepancy becuase it is an older card and developers have lost interest, perhaps?
But of course, just how much can you trust the benchmarks? They ran it on one game, using a particular configuration, for a specific kernel. How can one generalize the results? I just have to wonder ...