Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
Graphics Software Entertainment Games

TransGaming Releases Fast Software 3D Rendering 256

Posted by ScuttleMonkey
from the extending-the-life-of-your-pc dept.
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."
This discussion has been archived. No new comments can be posted.

TransGaming Releases Fast Software 3D Rendering

Comments Filter:
  • Ads (Score:5, Insightful)

    by Lord Byron II (671689) on Wednesday October 19, 2005 @01:44PM (#13829032)
    Ad-posts such as this one, wouldn't be as offensive if they would just come out and say that they're an ad-post. I.e., instead of "on their website", say "on our website". And make some sort of comment that, yes, the poster does have a vested interest in the content of the post.
  • The Meat... (Score:5, Informative)

    by Beren (21815) on Wednesday October 19, 2005 @01:44PM (#13829036)

    Here's the meat of the article for those who can't be bothered.

    • Vertex Shader 1.1 Support
    • Pixel Shader 1.4 Support
    • DirectX 9.0 class features
    • Faster than Microsoft's reference rasterizer
    • Available for Windows
    • Available for Linux under Cedega

    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.

    • Re:The Meat... (Score:5, Interesting)

      by MindStalker (22827) <mindstalker@gmail. c o m> on Wednesday October 19, 2005 @01:55PM (#13829178) Journal
      What I really want to know is can it use the 3D capabilities of your card while software rendering the things your card doesn't support. This would be the killer app for Linux and Windows.
      • This would be the killer app for Linux and Windows.

        (empahsis mine)

        And with that comment, the product is surely destined to fail.
      • Re:The Meat... (Score:3, Informative)

        by Creepy (93888)
        I'm guessing no, because I don't think it's possible to do it with any performance. Think of it like this - you have a texture in graphics memory and you want to pixel shade it - you have to copy the texture to main memory, do the pixel shading in software, then recopy the texture back into graphics memory. If you're thinking pixel shade in software and then copy to memory, how do you know you can do that operation first? Bump mapping, for example, shifts the pixels of the texture and if you pixel shade
      • Re:The Meat... (Score:5, Informative)

        by TheRealMindChild (743925) on Wednesday October 19, 2005 @02:43PM (#13829682) Homepage Journal
        You DO know that you just described EXACTALLY what DirectX (DirectDraw/Direct3d) are, don't you? DirectX has a HAL (Hardware Abstraction Layer) and a HEL (Hardware Emulation Layer). What isn't supported by hardware is SUPPOSED to be done in software (with exceptions of things too slow in software).
        • Yes, but for example there are many mid range graphics cards that don't support pixel-shading. And I have yet to see a game the requires pixel-shading in which directx took up the job and did it for you. Other poster explained why this simply isn't feasible though.
          • You're confused. Cards that don't support pixel shading are low-end.

            You can get an ATI or NVIDIA card for around $20 that supports both vertex and pixel shading.

            It doesn't get much lower-end than that.
        • However, the parent poster said "Linux and Windows", as opposed to just Windows.
      • OpenGL already does that. Unfortunately, there doesn't seem to be a way to detect functionality that is supported in hardware apart from manually profiling the GL driver. As a result, you get software fallbacks in many cases where you just wouldn't have bothered rendering had you known it'd be in software. User configuration options can mitigate this somewhat.

        The crux of the problem is the OpenGL ideal - that a hardware accelerated OpenGL application and a software rendered one will be identical in the

      • Vertex shaders, sure. In fact, DirectX does just that. If you lack hardware vertex shaders, DirectX will happily do them in software. It's not as fast, of course, since it hits your CPU, but it works. However other things can't be done, at least not yeat. Pixel shaders would be an example. They are later in the chain, after the graphics card has done it's work, even if it's a simple one. So that either requires doing it all in software, or sending data from the graphics card back to the CPU, doing more work
    • Re:The Meat... (Score:2, Informative)

      by Max_Abernethy (750192)
      "Faster than Microsoft's reference rasterizer" isn't saying a whole lot - even if it's 50 times faster. It's called a reference rasterizer for a reason - it's not meant to actually be used in final products, it's just so you can see everything that DX supports. It's unusably slow.

      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 do
      • Re:The Meat... (Score:2, Insightful)

        by vasqzr (619165)
        The intiative over the past several years has been to get graphics off the CPU, so this seems a little backwards to me.

        They started this back in 1995, before 3D hardware became commonplace. And they've just now finished it.

        I remember the old newsgroup posts where people were using MMX and writing '5 cycle per pixel' texture mappers and such.
      • It's called a reference rasterizer for a reason - it's not meant to actually be used in final products, it's just so you can see everything that DX supports. It's unusably slow.

        Indeed - I did smile at the '50 times faster' claim.

        Devs don't call it the 'Slideshow Renderer' or 'Postcard Renderer' for nothing :-)

        It reminds me of a comment Erik made on Old Man Murray years ago:

        "The game runs in software, but if that idea appealed to me, I imagine I'd be too busy churning my own butter to play Blair

      • Also I can report that when they say it is as fast as low-end 3D cards, by low-end they mean the original Voodoo 1.

        I tried it with UT2004, one of the reccommended games according to the readme. UT2004 in DX9 mode crashed right away. DX8 mode ran, but with series issues and low performance.

        I left the INI file at the default settings, except for the two settings they reccommended for UT2004. I left UT2004 on the quality settings I have on my machine, which is "normal" and "low" for all graphical settings. I l
    • Isn't this somewhat like how directx started out? Now if this thing can automatically off-load any processing on the built-in GPU and still keep up its performance, then this could be the beginning of cross platform 3D gaming which would mean the beginning of a widespread move to Linux.

      I think we should christen this the Decade of Linux. Things have come very far from where they were in 2000 - Linux is now being shipped on OEM machines. I think its safe to say that by 2010, Linux gaming will be a reality an
    • Re:The Meat... (Score:3, Interesting)

      by JacobO (41895)
      This sounds very much like Pixomatic [radgametools.com], courtesy of Michael Abrash [wikipedia.org].

      The DX9 featureset appears to be the big win here, unless of course you consider Linux support important :-)
  • Desktop Environments (Score:5, Interesting)

    by taskforce (866056) on Wednesday October 19, 2005 @01:47PM (#13829078) Homepage
    If this can do what it's boasting it will certainly come in handy for Graphic heavy desktop environments such as the Aero Glass Theme Windows Vista is using. If a Linux GUI (ho ho ho) can provide an experience as rich as Aqua or Aero and base it on this software rendering it could make leaps and bounds on the desktop as more savvy system admins decline to purchase the latest gaming card so they can run Vista.

    Obviously I realise that a lot more is needed before desktop Linux taxes off, but if someone could capitalise on this we could have a decent GUI utilised without pissing all over Linux's reputation for not taxing hardware too heavily. (Personally I prefer an understated GUI which uses no resources, but obviously there is a market for eye candy.)

    • by earnest murderer (888716) on Wednesday October 19, 2005 @02:30PM (#13829516)
      A: Admins don't care about Aero Glass, the Windows 2000 UI will do just fine for Vista installs.

      B: This is only usefull for runing Aero Glass if the only thing you are running is Aero Glass. Real work will have to take a back seat while this is grinding through the glorious shading of your progress bar.

      C: This totally misses the point of what Aero is for. Getting the UI grunt work off of the CPU and onto the video card.

      This is a neat trick, and possibly usefull for some very specific purposes such as foolproof DX9.0 rendering in Linux reguardless of the state of device drivers. Hardware review sites could get some milage out of this. Especially when they need to know what a game/benchmark is doing in certain situations and image quality comparisons.
    • by DrCode (95839)
      Isn't this a commercial product? It's hard to see how any Linux distribution could be based on this.
      • Several Linux distributions are based partly around comercial products, for instance Xandros includes Crossover office, and Linspire also includes some paid for software if I remember correctly.

        However, a free (in any sense of the word) Linux distro is hard to see.
  • The Point (Score:5, Insightful)

    by Anonymous Coward on Wednesday October 19, 2005 @01:48PM (#13829089)
    I realize that I'm just a humble AC, but let me say this: I'm not certain I understand the point here. Casual gamers are exactly that, casual. They're more interested in online play like Java Applets or MIDP Applications for phones than they are in Gee Whiz Bang games that they must install to their computers. So from that perspective, I really don't understand what market TransGaming plans to attack with this new software.

    Even if we assume that casual gamers are looking to install games onto their computers, it's hard to say that such gamers wouldn't have at least a basic 3D card to play games on. Even the Intel Integrated Graphics (about as bad as you can get) has decent 3D support. Are the Gee Whiz features of DX9 really all that important to these players?
    • Re:The Point (Score:5, Interesting)

      by Surt (22457) on Wednesday October 19, 2005 @02:00PM (#13829221) Homepage Journal
      For developers, this can be very useful, particularly if they can get it up to date on the newer pixel and vertex shaders for the simple reason that running your application on the real hardware can nuke your system, and running in the existing microsoft renderer is painfully slow. This could provide a useful compromise.
      • Personally I saw this from a different perspective; gamers who aren't willing to shell out extra $$$ for a new graphics card get to see the pretty effects that newer graphics cards offer, for 'free' (at the cost of performance). In the end, they may decide to actually buy that new nVidia or ATI card to get the new effects at high speed.
    • Re:The Point (Score:2, Insightful)

      by Anonymous Coward
      One thing this might be able to do is to offer features like pixel and vertex shaders that might be missing from lower-end hardware. It'll probably be useless for playing Quake4, but it might be useful for some applications. Having said this, if they are trying to sell this directly to customers, they will fall flat on their face. People aren't used to paying for drivers (in this case, drivers for virtual hardware). If it's as fast as they say it is, they should try to sell this technology to Microsoft
    • The point is that Transgaming developed this, and it's a DX9 implementation. That means that Linux can now use DX9. This is unbelieveably important, because now, Windows games can be more quickly ported over-- and/or, Cedega can be more effective at just directly running Windows games.
    • I'm not quite sure what YOUR point is Mr. AC. Someone can be a casual gamer and still LIKE the new ultra-gore-supercomputer-requiring-behemoth games that come out. Plus, seems like just another step towards having more kickass games for linux which EVERYONE wants. EVERYONE.
  • by Anonymous Coward on Wednesday October 19, 2005 @01:48PM (#13829092)
    Formerly known as slow rendering.
  • by Assmasher (456699) on Wednesday October 19, 2005 @01:49PM (#13829108) Journal
    ...saying that it performs up to 50 times better than the Microsoft Reference Rasterizer you're actually calling it slooooow. The REF driver exists with absolutely ZERO optimizations explicitly for the purpose of discerning if a problem is in your code or is in the video card's device driver. Maybe they're confused about the old RAMP and RGB devices you could use to render in software. 50 times faster than REF is pathetic to be honest.
    • Please try the demos. You will see that they run at pretty impressive performance for software rendering, often many times faster than 50 times the reference rasterizer.

      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.
      • Oh, I presume that the demos are very much faster than 50x the REF, but again people should not be saying "the only other alternative for Direct3D 8/9 emulation" because first, you are not allowed to redistribute the reference rasterizer with a product because it is part of the DirectX SDK not the redistributables package for DX8 or DX9, second, there IS another DirectX 9 compatible API for software rendering and it is fantastically fast and feature rich, it's called Pixomatic:

        http://www.radgametools.com/#P [radgametools.com]
  • Next up... (Score:3, Funny)

    by Enahs (1606) on Wednesday October 19, 2005 @01:51PM (#13829126) Journal
    ...an uber ultra-fast fixed-point math library!
  • by onion2k (203094) on Wednesday October 19, 2005 @01:52PM (#13829139) Homepage
    I'm sure that creating this engine was an interesting challenge .. but .. why? 2D only graphics cards don't really exist anymore. It doesn't exist for non-PC platforms so it doesn't really aid portability (though they say in the FAQs it could if someone wrote a "SwiftASM" thing for the target CPU) either.

    Is it just a fun toy? Or have I missed something?
    • Consider that many linux users do not have full power drivers for their video card.

      Consider that creating a software rendering engine which can be put in place of DirectX means that's one less barrier to Linux gaming.

      Consider one of the goals of the company is to release linux compatable games for other developers.

      Seems like the point is "Hey! Look at us! We can make your game work in Linux with little effort! Why not contract with us to make your game Linux compatable and we'll deliver the geek market to y
    • More important than everything other repliers to you have listed,

      THE BEST reason to have a "fast" Direct3D emulator in software is because the REF driver is slow.

      The REF (or "Reference") driver for Direct3D is a purely software implementation of D3D that supports every possible feature even if your 3D card doesn't. This allows people to debug, or experience things that they just wouldn't have been able to do in hardware; and its 50 times faster than the REF driver.

      This, of course, assumes that the software
    • Many 3D cards, even ones currently being sold at the low end, do not have shader support or a programmable pipeline at all.
  • by dogmatixpsych (786818) on Wednesday October 19, 2005 @01:53PM (#13829155) Homepage Journal
    Sure, it *may* be faster than other software rendering solutions, but it still only approaches (that's such a broad term) the performance of low-end cards: "can rival the performance of low end hardware 3D graphics solutions in some cases." Sounds pretty iffy to me. It'll be good in some cases; however, as it is, I doubt it will replace dedicated hardware cards for many people (it's not like low-end cards are very expensive. You can find decent (albeit older) graphics cards for under $20.

    I'm not saying this technology isn't useful, it just has limited application in its current state.
    • A one-winged fly is a spin
    • I agree it doesn't seem all that great for games, not encompassing a market that is of any size. (Wants a game to do 3d, but doesnt have a card that supports even basic GTA3 quality graphics.)

      But, what if the target market was software rendering of 3d stuff for the OS. Like the "3d interface" for the new version of Windows for example. Imagine how valuable having a decent fallback for lower end systems without fancy video cards (i.e. like most big brands) would be to Microsoft?

      Windows installs with the 3d
  • Pixomatic (Score:5, Insightful)

    by Acy James Stapp (1005) on Wednesday October 19, 2005 @01:56PM (#13829190)
    This looks like it is meant to compete with Pixomatic from RAD Game Tools. ( http://www.radgametools.com/default.htm [radgametools.com] ) Perhaps it's cheaper or faster, but pixomatic is not overly pricy and I trust Mike Abrash *now at RAD) has a little bit of experience writing fast renderers :)
  • Load balancing? (Score:3, Interesting)

    by iammaxus (683241) on Wednesday October 19, 2005 @02:00PM (#13829220)
    Can it split the rendering load between your GPU and your CPU if your GPU is capable of some of these features? I couldn't find an answer on their website.
  • Believe it or not, but integrated graphics hold the lion's share of the PC graphics market. Nvidia and Ati are both pretty far behind Intel in terms of install base. This could be very bad for the other vendors: the main reason for the popularity of integrated graphics is cost - Intel itself only holds about a $5 premium on gfx-enabled chipsets over discrete chipsets.

    What happens when Microsoft licenses this tech and integrates it into Windows? Suddenly, all anyone needs is a RAMDAC to output framebuffer to VGA, so Intel doesn't need to develop GPUs anymore, and overnight gets a massive performance boost and full DX9 support....
  • by TMonks (866428) <TMonganIV AT gmail DOT com> on Wednesday October 19, 2005 @02:05PM (#13829271)
    Earlier this afternoon, the CEO of TransGaming was found on his office floor with two broken knees. Witnesses observed a pickup truck with the word "nVidia" printed on the side leaving the scene.
  • by Lendrick (314723) on Wednesday October 19, 2005 @02:08PM (#13829302) Homepage Journal
    Anyone have time to, say, download this driver and fire up UT2004 or somesuch and test the framerate using software rendering vs their 3d card (with all other settings being equal)? Of course, this wouldn't be particularly scientific, but it would at least give some idea about how well this thing performs and whether it's useful.
  • If this is an optimization, is there any chance of using some of the Swiftshader code to optimize hardware renderers?
    • Actually shaders as used on graphics hardware and the dynamically generated code used by SwiftShader share a lot of resemblance. The biggest difference is that the GPU is designed specifically to run shader code, while to make it run on the CPU we need to translate it to MMX and SSE instructions. The GPU also has many more pipelines and dedicated texture samplers. Other than that there's a convergence in technology as graphics hardware gets more programmable and reuses the same units for different threads (
  • ...is what demogroup they were before they went commercial, because that's the only crowd I can see with the drive and desire to create something like this. One of my group's coders still gets a stiffy for software rendering, and I know he's not the only demoscener that does.
  • Great, I suppose (Score:3, Informative)

    by dtfinch (661405) * on Wednesday October 19, 2005 @02:34PM (#13829556) Journal
    The site is /.'d, so I can't rtfa.

    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.
  • by jjl (514061) on Wednesday October 19, 2005 @02:37PM (#13829608) Homepage
    SwiftShader code seems to be directly based on SoftWire [sourceforge.net] and swShader [sourceforge.net], which used to be both SourceForge projects.
  • by Mingco (883841)
    Claiming that it's 50 times faster than some other software renderer is like claiming your racecar is 50 times faster than any other racecar that has no wheels.

    What's the point?
  • by ThePyro (645161) on Wednesday October 19, 2005 @03:59PM (#13830436)
    Can it take advantage of multiple processors?

    For years, some analysts claimed that ordinary processors would eventually obsolete 3D accelerators, because they would be fast enough to handle all of the rendering in software. Since graphics processing can usually make pretty good use of parallelism, then perhaps a package like this along with multiple CPUs is the "wave of the future"?

    Obviously not now... but in 20 years?
    • in 20 years, there may not even be a distinction in processors anymore.

      you would have generic self-configuring processors (think fpga but more advanced) with 1024+ cores per module... more modules = more speed (more heat). dynamically programmable and able to execute any task with extreme optimization without the overhead of asics.

      or maybe not.
    • Back in college...

      I remember my friend telling me about BeOS running on an 8 way Pentium Pro board doing software opengl.

      The tea pots were spinning so damned fast...

      So fast...

      Anyhow, I always wanted to try software quake on an 8 way soft processor.

  • I, for one, welcome our pixel shading overlords.

    On the other hand, in Soviet Russia, the pixel is shadowing you.

    Expect a beowolf cluster of SwiftShaders to run the matrix soon.
  • Ok, I read the page and the commentary already posted on /. and I'm still confused.

    1. Who is the target market for this product? It is a software renderer. Might be faster than Mesa but is still going to run like a dog for any real world use. After all, just how many people have flaming P4s or A64s and a 2D only framebuffer? I suspect a Radeon 9200 with the 3d support in x.org would outperform this product.

    2. Since the answer to the first question is almost certainly going to describe a fairly small g
  • I used to be a Cedega subscriber. I was creating my own builds from CVS for a while using a poached Gentoo ebuild, and eventually signed up so that I could vote and try to swing things away from that "must port Counter-Strike and EverQuest and nothing else" mindset that the Cedega community have.

    Graphically, the thing is great. Games like Diablo 2 ran remarkably smoothly in most cases. But the game Oni, for instance, which was one of the more simple games that you would expect to run, won'

  • swShader? (Score:2, Interesting)

    by ravyne (858869)
    I wonder if this is possibly a take off of an open source project called swShader (its on source forge.) I've had some contact with the author of swShader, Nicholas Cappens(spelling likely incorrect), we discussed the unique approach he has taken to polygon filling/texturing. swShader also has DX 8 & 9 interfaces and a dll which could stand in to interface with regular DirectX games. While its an interesting piece of work, I hate to see when an OSS project, particularly one with one primary author(the o
  • You have to wonder though, why the runtime code generation? That takes cycles to figure out what to do; and then if the environment changes, the code has to be rebuilt again. Run-time code generation looks like this to me:

    - Decide what to do
    - Build the pipeline
    - Execute the pipeline
    - Decide if the pipeline is still valid
    - If true, execute the pipeline
    - If false, go back to 0

    Without it it looks like this:

    - Decide what to do
    - Execute those deci

"Anyone attempting to generate random numbers by deterministic means is, of course, living in a state of sin." -- John Von Neumann

Working...