SwiftShader 2.0: A DX9 Software Rasterizer that runs Crysis

Friday 04th April 2008, 12:00:00 AM, written by Arun

TransGaming has just released SwiftShader 2.0, an highly optimized software rasterizer that supports DX9 and Shader Model 2.0 and scales with multi-core processors. It can run (albeit slowly) many modern games and it makes a dual-core Penryn perform similarly to the GeForce FX5600/5700 in 3DMark05.

Nicolas Capens (aka Nick on our forums) is the creator and lead programmer behind SwiftShader - he started by writing the DX7/DX8 swShader many years ago, and eventually turned it into a commercial product in 2005 with the help of TransGaming and Gavriel State in particular.

A demo is now available on TransGaming's website, with which we ran 3DMark05 and obtained a score of ~400 on a stock Core 2 Duo E8400. That's still not mind-blowingly fast, but keep in mind Direct3D's reference rasterizer would likely score in the single digits and the SGX-based IGP in Intel's upcoming Silverthorne-based Menlow platform for UMPCs/MIDs is claimed to only score ~150. It would also be much more than enough to run Vista's Aero interface smoothly.

Finally, we were told SwiftShader would run Crysis in the mid-single digits at the lowest settings on Intel quad-core systems. Definitely not very playable yet, but that should make it clear SwiftShader is perfectly usable for casual games. We look forward to seeing how SwiftShader evolves in the future and how it will perform on future high-end CPUs such as Intel's Nehalem and AMD's Shanghai - certainly it might be a fun way to benchmark CPUs once in a while.


Discuss on the forums

Tagging

graphics ± swiftshader, software, rasterizer, 3dmark05, crysis


Latest Thread Comments (159 total)
Posted by Nick on Thursday, 08-May-08 14:01:57 UTC
Quoting Albuquerque
Is there any thought to optimizing further for SSE4.x? There's supposedly a lot of extra floating point calculation power hiding in these Penryn cores if you go that direction...
Certainly. SSE4 has a number of interesting instructions that could make a difference. Just like x86-64, support for it will be added in due time.
Quote
I'll try a few other games just to see, such as GTA3:SA here shortly...
I installed and tested it and unfortunately it was very slow. I quickly located the issue though, and it now runs at 10-20 FPS on my Q6600. That's playable but still a bit dissapointing given the relative graphical simplicity of the game. Maybe the engine doesn't do much to prevent overdraw, or it doesn't render things in large batches. It was first released on PlayStation 2 so it's probably an unoptimized port...

Posted by Scali on Thursday, 08-May-08 14:29:59 UTC
Quoting Nick
Certainly. SSE4 has a number of interesting instructions that could make a difference. Just like x86-64, support for it will be added in due time.
Would it be possible to use an x86-64 dll in 32-bit applications? Since the draw-calls generally take a lot of time, it might be interesting to 'thunk' the call to a 64-bit DLL, which should have some performance advantages given the larger number of registers and other small optimizations in 64-bit mode.
I know that some Windows APIs are implemented this way, but I'm not sure exactly how this is done, and if this is possible for 'regular' DLLs aswell, or if it can only be done for certain system libraries.

Posted by Albuquerque on Thursday, 08-May-08 14:32:56 UTC
Nick, was the setting in GTA3 something that I'm able to change as a demo user? If so, do you mind sharing what it was?

Posted by ChronoReverse on Thursday, 08-May-08 17:08:05 UTC
Quoting Albuquerque
Just curious Chrono, are you using Swiftshader 2.01 that has the AMD perf fixes?

I'll give this a whack later tonight on my Q9450 rig and play some TrackMania with it.
Yes, that's what surprised me when I had even poorer results than when I tried 2.0

I'll probably give it another shot when I have some time just in case I messed something up royally.

Posted by Albuquerque on Thursday, 08-May-08 18:13:10 UTC
Quoting ChronoReverse
Yes, that's what surprised me when I had even poorer results than when I tried 2.0

I'll probably give it another shot when I have some time just in case I messed something up royally.
:D Sorry if it sounded like I was insinuating you were dumb or likewise; I too am surprised at your results.

Posted by Nick on Thursday, 08-May-08 19:20:54 UTC
Quoting Albuquerque
Nick, was the setting in GTA3 something that I'm able to change as a demo user? If so, do you mind sharing what it was?
It's not something that can be fixed with the 2.01 release by changing a setting, unfortunately. The game frequently calls the IDirect3DDevice9::StretchRect function and it was (unnecessarily) taking a very slow generic fallback path. It was a one-line fix to make it much faster but it requires a new build. I don't think there will be another update for some while now though.

Posted by Albuquerque on Thursday, 08-May-08 19:49:17 UTC
Ah, well no worries. Not like I don't have other rendering options ;) But yes, it was ungodly slow when I tried -- and I made the mistake of not changing the video settings first, so by the time I made it into the game, it was faster to CTRL-ALT-DEL and kill the task than to wait for the GUI.

Posted by Barbarian on Saturday, 10-May-08 09:01:29 UTC
Nick & Co, very nice work!
I completely agree with you that there is definitely a market for a product like this. It's really incredible how many crappy embedded graphics chips are out there, especially in laptops ... it's really depressing.
Plus, if the business doesn't take off maybe you can check with Intel and see if they need any help with their Larrabee driver :-)

@ Scali: Cut Nick some slack will you! I don't understand why you need to be so critical. It's not like you have to do the work!

Posted by Squilliam on Sunday, 11-May-08 01:13:53 UTC
Quoting Barbarian
Nick & Co, very nice work!
I completely agree with you that there is definitely a market for a product like this. It's really incredible how many crappy embedded graphics chips are out there, especially in laptops ... it's really depressing.
Plus, if the business doesn't take off maybe you can check with Intel and see if they need any help with their Larrabee driver :-)

@ Scali: Cut Nick some slack will you! I don't understand why you need to be so critical. It's not like you have to do the work!
So when do you start work for Intel Nick? :cool:

Posted by Pressure on Sunday, 11-May-08 21:01:01 UTC
Perhaps I should take this for a spin on my 8-core Mac Pro :)


Add your comment in the forums

Related graphics News

[Analysis] TSMC 40G to deliver up to 3.76x the perf/mm^2 of 65G & Power Implications
Old News: AMD CTO resigns, NVIDIA CFO retires, DDR3 for MCP7A, S3, etc.
S3 launches DirectX 10.1 Chrome 400 GPUs
GPGPU and 3D luminaries join 3D graphics heavyweights
The Technology of a 3D Engine - Part One
Samsung joins Qimonda and Hynix in the GDDR5 race
Stanford previews new F@H GUI and GPU client at SuperComputing 2007
Crytek postpone Crysis beta until October 26th
New Ageia PhysX processor on PCIe pictured
Free in-game ad supported PC games from Ubisoft available in the US