SwiftShader 2.0 experience

ShiftShader 2.0, a pure software renderer with a Direct3D 9 interface, just got released. I tried it on rendering unit tests and some benchmark tests we have for Unity.

In short, I’m impressed.

It runs rendering tests almost correctly; the only minor bugs seem to be somewhere in attenuation of fixed function vertex lights. Everything else, including shaders, shadows, render to texture works without any problems.

Performance wise, of course it’s dozens to hundreds times slower than a real graphics card, but hey. I also tested with Intel 965 (aka GMA X3000) integrated graphics for comparison. All this on Intel Core2 Quad (Q6600), 3 GB RAM, Windows XP SP2.

  • Avert Fate demo: Radeon HD 3850 about 300 FPS, SwiftShader about 5 FPS (about 15 FPS if per-pixel lighting is turned off), Intel 965 about 22 FPS (about 50 FPS if per-pixel lighting is turned off).
  • Scene with lots of objects and lots of shadow-casting lights: Radeon HD 3850 about 76 FPS, SwiftShader 2.5 FPS, Intel - shadows not supported, duh.
  • High detail terrain with lots of vegetation and four cameras rendering it simultaneously: Radeon HD 3850 about 68 FPS, SwiftShader about 3 FPS, Intel 965 about 12 FPS.

Ok, so SwiftShader loses on performance to Intel 965, but the difference is only “a couple of times”, and not in order of magnitude or so. Pretty good I’d say.

3 Responses to 'SwiftShader 2.0 experience'

  1. nerius

    SwiftShader site says:
    “SwiftShader can be integrated more deeply into other software products, serving as a software geometry-processing engine for a 3D card that accelerates only rasterization”
    It would be interesting to see how it performs compared to D3D software vertex processing.
    From my experience, GMA950 (no hardware VS) chokes on even the most simple vertex shaders, maybe this could be a possible solution.

  2. Aras Pranckevičius

    In my experience D3D’s software vertex processing is pretty good. Well, as good as it can be; you can’t expect a regular CPU to process dozens of millions of vertices. Don’t know if ShiftShader is more or less efficient though.

  3. improver

    I found somewhere a way to disable annoying logo in transgaming swiftshader 2.0 demo.

    find this sequence in d3d9.dll and d3d8.dll (hex) -

    96 00 00 00 C8 00 00 00

    and change it to -

    01 00 00 00 01 00 00 00

    thats all. :)

Leave a Reply