Summary

These demos show the software rendering capabilities of swShader as a DirectX 8 DLL. When the d3d8.dll is placed next to an executable that uses DirectX 8, all calls will be intercepted. Because swShader renders everything on the CPU, no 3D hardware acceleration is required.

Newest Version

This is an alpha version. Please check http://sw-shader.sourceforge.net  regularly for newer versions.

Because this is an alpha version, it is potentially unstable. Many features are not supported (see below) and features that are expected to work might still fail. Although this software has little potential of damaging your system, and certainly hasn't been designed that way, I make no warranty that it doesn't so. Use it at your own discretion. Please read the detailed disclaimer at the bottom.

Demos

The demo executables are produced from the freely available DirectX 8 SDK using the unmodified code. You can test hardware accelerated rendering by renaming or removing the d3d8.dll from this package folder.

They require Windows 98/XP and a Pentium II compatible processor. A Pentium III compatible processor is highly recommended for  swShader's vector operations. Pentium II and Athlon - Thunderbird processors will use an emulation mode which is much slower. Your graphics card should be DirectDraw 7 compatible and support 32-bit color. Your desktop color depth should be 32-bit. No 3D hardware acceleration required! If you meet these specifications and the demos don't work, please contact me at nicolas@capens.net.

Features

You are free to use the DLL of this package for non-commercial purposes. Bug reports or any other feedback are very much appreciated. Below is a list of features that should already be supported, and some notes about stability.

General architecture: swShader's fixed-function pixel pipeline consists of up to eight stages, and each stage can do a texture lookup. All DirectX arguments and nearly all blending operations are supported. However, there is no separate pipeline for the alpha channel. It supports all stencil operations, all depth compare modes and some limited alpha blending. The fixed-function vertex pipeline implements basic T&L but no fog or texture coordinate transformations. Six user-defined clipping planes can be set.

DLL interfaces:

"Fully implemented" only means that all the interface's functions have an implementation. It doesn't mean this implementation is entirely tested.

There are known issues with the state management system. swShader caches render operations and associates a state. However, this state is not a one-to-one mapping with the DirectX states and currently it is not flawless. Therefore, it is possible that one render operation does not behave the same every time or cause an error even when the exact same DirectX state is used. This will be fixed in the near future.

Technology

swShader uses run-time code generation and SIMD assembly to achieve superiour software rendering performance and flexibility. By eliminating the need for state checks in the rendering pipeline, the full processor power is available. New rendering functions are generated when needed, and cached for reuse.

The run-time code generation is powered by SoftWire. It features run-time intrinsics, which allows to conveniently convert any shader instruction as an x86 assembly block. It is possible to do register allocation and peephole optimizations without multiple passes. The produced code is comparable to hand-optimized code.

License Conditions

All swShader header, source and library files are Copyright © 2002-2004 Nicolas Capens unless indicated otherwise. The freely available source code from SourceForge.net is licenced under the LGPL.

Only non-commercial use of swShader and its libraries is allowed. To license swShader technology or hire me for integration in your project, please contact me at nicolas@capens.net.

(It is illegal to remove the startup splash screen and redistribute it. If you do manage to crack it, please be sportsmanlike and let me know.)

DISCLAIMER

BECAUSE THE DEMONSTRATION IS FREE OF CHARGE, THERE IS NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE CREATOR(S), THE DEMONSTRATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE DEMONSTRATION IS WITH YOU. SHOULD THE DEMONSTRATION PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY CREATOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE DEMONSTRATION (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE DEMONSTRATION TO OPERATE WITH ANY OTHER SOFTWARE).

Copyright © 2002-2004 Nicolas Capens - nicolas@capens.net