TransGaming Releases Fast Software 3D Rendering 256
gavriels writes "TransGaming has just released SwiftShader, an ultra-fast software-only 3D renderer that supports Vertex and Pixel Shaders. SwiftShader dynamically compiles the geometry and rasterization pipelines to produce code that exactly matches the graphics features a game or application is using. Demo download and tech details can be found on their website."
The Meat... (Score:5, Informative)
Here's the meat of the article for those who can't be bothered.
TransGaming's SwiftShader technology provides the world's fastest pure software 3D renderer with DirectX 9.0 class features, according to the company, including support for Pixel and Vertex Shaders. SwiftShader is built to provide the same APIs that developers are already using for their games and applications. This makes it possible to directly integrate SwiftShader into applications without any changes to source code. Direct3D 8 and Direct3D 9 compatible APIs are available immediately, and OpenGL-compatible APIs are also under development. Vertex Shader 1.1 and Pixel Shader 1.4 features are currently supported, along with the majority of features used by most developers when producing 3D games and applications.
SwiftShader can perform over 50 times faster than Microsoft's Direct3D Reference Rasterizer in tests with sample applications, and can rival the performance of low end hardware 3D graphics solutions in some cases. SwiftShader achieves this unprecedented level of performance by dynamically compiling highly optimized code specific to an applications 3D rendering needs.
SwiftShader is currently available for x86 CPUs with Intel's SSE multimedia instruction set extensions. SwiftShader runs on Microsoft Windows 98 and higher, and on Linux through TransGaming's Cedega portability technology.
In short, No. (Score:5, Informative)
SwiftShader is a renderer, which draws things.
You would, in fact, program your code in Direct3D or OpenGL, and then use SwiftShader as the renderer, the same way today you would program in Direct3D or OpenGL, and then use your ATI X800 as the renderer. They even mention, in the article, that "OpenGL-compatible APIs are also under development".
The only difference is that, compared to an ATI X800, SwiftShader will be very slow, and compared to the SuperImageCrazyMagic 9000 VGA+++ graphics card in my crappy laptop, SwiftShader will be quite fast.
LOL, GamaSutra doesn't seem to realize that... (Score:5, Informative)
Re:Ads (Score:2, Informative)
Re:The Meat... (Score:2, Informative)
I honestly don't see the use for a pure software renderer. We have DirectX and OpenGL, which make compatibility with different video cards pretty easy. I don't think there are a lot of video cards out there at this point that don't support VS 1.1 and PS 1.4, and that will be especially true once Vista becomes commonplace and suddenly you need modern graphics hardware just to run your operating system. The intiative over the past several years has been to get graphics off the CPU, so this seems a little backwards to me.
Great, I suppose (Score:3, Informative)
Swiftshader is based on the sw-shader project, which produced very good quality output very quickly using SoftWire to compile the rasterizers. A lot of other software 3D implementations only optimize the most common cases and fall back on very slow, general purpose rasterizers to do the rest, often using giant switch statements or function pointers in their innermost loops to handle the countless combinations of blending, lighting, and raster options available. Even precompiling them all with a generator script or clever use of macros is infeasable due to the number of combinations, and just one of those will slow any 3D rendering to a crawl, which is the problem that sw-shader solved, by optimizing all cases.
What's good is that the project is once again under active development, and it's no longer windows-only. The downside is that it's gone commercial. With so few contributors other than the original author, that sort of thing can happen to an OSS project. He put a lot of hard work into it though, writing a substantially complete DirectX 9 replacement based on his library. Transgaming actually had to purchase two projects for this, because sw-shader depends on SoftWire.
SwiftShader code originates from... (Score:5, Informative)
Re:The Meat... (Score:3, Informative)
The graphics card-memory bandwidth would be constantly in use, which may be a bottleneck (especially on older systems, since you'd be limited to 2-8MB of textures to maintain 30FPS). In addition, the graphics card wouldn't have the texture to work with while it's offloaded, so it would need to either do something else (if anything is available) or idle. You also wouldn't be able to render your scene unless all the textures were back on card, so that's another potential bottleneck (though that may be possible with changes to the hardware drivers).
Re:The Meat... (Score:5, Informative)
Re:Ads (Score:2, Informative)
http://www.transgaming.com/gavstates.php [transgaming.com]
Transgaming surely lost my respect w/ this stunt.
Re:Load balancing? (Score:3, Informative)
Re:SwiftShader code originates from... (Score:1, Informative)
http://prdownloads.sourceforge.net/sw-shader/ [sourceforge.net]
http://prdownloads.sourceforge.net/softwire/ [sourceforge.net]
Re:LOL, GamaSutra doesn't seem to realize that... (Score:2, Informative)
The comparison with REF in the press release is just to indicate that SwiftShader is way faster than the only other alternative for Direct3D 8/9 emulation.
Re:LOL, GamaSutra doesn't seem to realize that... (Score:3, Informative)
http://www.radgametools.com/#Pixomatic [radgametools.com]