About Device Types

Direct3D supports four types of Direct3D devices. The Direct3D device that an application creates must correspond to the capabilities of the hardware on which the application is running. Direct3D provides rendering capabilities either by accessing 3-D hardware that is installed in the computer, or by emulating the capabilities of 3-D hardware in software. Therefore, Direct3D provides devices for both hardware access and for software emulation.

Hardware-accelerated devices give better performance than software-emulated devices. In most cases, your application will target machines that have hardware acceleration of some kind, and fall back on software emulation to accommodate lower-end computers.

With the exception of the reference rasterizer, software devices do not always support the same features as a hardware device. For example, software devices do not support assigning a texture to more than one texture stage at a time. Applications should always query for device capabilities to determine which features are supported.