############################################################################
TransGaming Technologies Inc.
SwiftShader Demonstration
October 18, 2005
SwiftShader is Copyright(c)2003-2005 TransGaming Technologies Inc.
############################################################################
Thank you for downloading TransGaming's demonstration release of SwiftShader,
our high-speed pure-software 3D renderer.
SwiftShader is a revolutionary software-only 3D renderer that supports
DirectX 9 features including both Pixel and Vertex Shaders and can be more
than 50 times faster than Microsoft's reference rasterizer. SwiftShader
achieves this level of performance through the use of TransGaming's SwiftAsm
runtime code generation system. SwiftAsm allows developers to easily and
efficiently generate highly optimized code entirely at runtime. SwiftShader
uses SwiftAsm to translate both shader-based and fixed function geometry
and pixel pipeline operations into high-speed x86 SSE and MMX code, which
is then cached for later reuse as needed.
NOTE: Use of the SwiftShader Demonstration Release is subject to the enclosed
SwiftShader License agreement which you must have agreed to before downloading
this package.
System requirements
-------------------
* 700 MHz (or higher) x86 CPU with SSE extensions.
Pentium-M CPU recommended.
* Basic 2D video card - no 3D card necessary!
* Microsoft Windows 2000, Windows XP
OR
* Linux system running TransGaming's Cedega
* 256 MB RAM
* 25 MB free hard disk space
Installation
------------
TransGaming's SwiftShader 3D renderer is packaged into two DLL files:
D3D8.DLL and D3D9.DLL
These DLL files can be dropped into a directory containing an application
that uses Direct3D, and SwiftShader will automatically be used in place of
the built-in OS version of Direct3D. Note that some applications may load
the D3D DLL directly from the Windows System32 directory. Such programs
will not work directly with SwiftShader without modification.
In addition to the DLL file, an optional configuration file can be used
with SwiftShader. This file, SwiftShader.ini, should also be put in the
same directory as the application. The comments in the SwiftShader.ini
file provide basic documentation on the available options. The commercial
version of SwiftShader includes an API for changing many of these
settings at runtime.
Sample Software
---------------
This SwiftShader Demonstration release includes four pre-built sample
programs, CubeMap, Spheremap, DolphinVS and EffectEdit. These samples are
part of the standard Microsoft DirectX 8 and DirectX 9 SDKs. A final
example, a demonstration version of Max Payne, Remedy Entertainment's
popular 3rd person action game, can be downloaded separately from various
web sites and used with the enclosed SwiftShader.ini configuration file.
You may wish to try other software with SwiftShader, such as: Unreal
Tournament 2004, Max Payne 2 (in low detail mode), and 3DMark2001 SE.
The SwiftShader logo overlay cannot be removed in the Demonstration
release. It is of course disabled in the commercial version.
Max Payne
---------
The Max Payne title makes a convincing case for the performance of
SwiftShader. To run it with SwiftShader, simply install the game, and
drop the D3D8.dll and SwiftShader.ini file into the target folder for
the installed game.
When starting Max Payne, select a 640x480 resolution, and medium graphics
options from the options dialog accessible from the startup screen. The
game is quite fast on Pentium M CPUs.
For additional performance in the game, you can try both lowering the
in-game detail settings, as well as editing the SwiftShader.ini file to
set the TextureFilterQuality option to 'Point'. This forces the renderer
to use point filtering instead of bilinear filtering when texturing.
DolphinVS
---------
The DolphinVS sample is a basic test of Direct3D vertex shaders. To
try it, simply run the DolphinVS.exe file included in the directory.
All required media files are included in the directory already, and
SwiftShader is pre-installed. This version of DolphinVS is built against
the Direct3D 8 API, so includes the D3D8.dll version of SwiftShader.
The DolphinVS sample includes four vertex shader files with the .vsh
extension. These files can be viewed and modified if desired, and
are unmodified from the DirectX 8 SDK.
To compare SwiftShader performance vs the Microsoft Reference Rasterizer,
choose 'Change Device' from the file menu, and switch the Device from
HAL to REF. SwiftShader's performance will be many times faster, regardless
of the size of the window used. The smaller the window, the more time
is be spent on geometry calculations instead of rasterization, so
changing the window size can allow for a rough measure of rasterization
vs geometry performance.
Environment Mapping
-------------------
The two samples involving environment mapping, the Direct3D 9 CubeMap
and SphereMap samples, show the versatility of SwiftShader including its
support for rendering to cubemaps. In the CubeMap sample, an airplane
model is rendered to a cubic environment map, which is then used to
render the reflection from a mirrored teapot. In the SphereMap sample,
the same mirrored teapot is rendered, but with a static environment.
The SphereMap sample uses a Vertex Shader to calculate the texture
coordinates and other geometry required to render the teapot.
EffectEdit
----------
The EffectEdit sample is a generic editor for Direct3D 'effects' files.
These files consist of high level shader based descriptions of how to
display a given effect. A number of sample effects are included in the
EffectEdit directory, as well as a number of .x geometry description files
which can be used within the effect file to specify a sample object to
apply the effect to.
The available .fx files can be opened directly within EffectEdit through
the File..Open menu command.
The EffectEdit sample allows you to explore the performance of any
supported vertex or pixel shader operation within SwiftShader. If a shader
operation is not supported by SwiftShader, it may cause the demo to crash.
Please see the Functionality and Limitations section below to learn about
the shader operations currently supported by SwiftShader.
Functionality and Limitations
-----------------------------
SwiftShader includes support for all Vertex Shader 1.1 operations and
the Vertex Shader 2.0 arithmetic operations:
abs, crs, lrp, mova, nrm, pow and sgn
Using other Vertex Shader 2.0 operations may cause a crash.
SwiftShader includes support for most Pixel Shader 1.4 operations, with
the exception of the following:
texdp3 (PS 1.2)
texm3x3 (PS 1.2)
texm3x2depth (PS 1.3)
bem (PS 1.4)
texdepth (PS 1.4)
Using these Pixel Shader operations, or Pixel Shader 2.0 operations may
cause a crash.
Future SwiftShader releases will support the full spectrum of Shader
Model 2.0 instructions.
SwiftShader does not currently support stencil buffers. They will
be available in upcoming releases.
My application doesn�t work with SwiftShader installed. Why not?
-----------------------------------------------------------------
There are a number of possible reasons for this. If your application
explicitly loads the D3D DLL from the system32 directory, it will not
load SwiftShader in place of the standard D3D DLL until you explicitly
change the call used to load the D3D DLL. It is also possible that
your application uses a feature that SwiftShader does not support at
this time. SwiftShader will throw an internal C++ exception when a
feature is not supported, which is then caught
- 1
- 2
前往页