Microsoft DirectX 8.0 (Visual Basic)

Pluggable Software Device

If the user's computer provides no special hardware acceleration for 3-D operations, your application might emulate 3-D hardware in software. Software rasterization devices emulate the functions of color 3-D hardware in software. Because a software device is emulated in software, it runs more slowly than a hardware abstraction layer (HAL) device. However, software devices take advantage of any special instructions supported by the user's CPU to increase performance. Instruction sets include the AMD 3D-Now! instruction set on some AMD processors and the MMX instruction set supported by many Intel processors. Microsoft® Direct3D uses the 3D-Now! instruction set to accelerate transformation and lighting operations and the MMX instruction set to accelerate rasterization.

Software rasterization for Direct3D® is provided by pluggable software devices, which enable applications to access a variety of software rasterizers through the Direct3D interfaces. Software devices are loaded by the application and registered with the Direct3D object, at which point you can create a Direct3DDevice object that will perform rendering with the software device.

Direct3D software devices communicate with Direct3D through an interface similar to the hardware device driver interface (DDI).

The Direct3D DDK provides the documentation and headers for developing pluggable software devices.