Here is what the DirectX manual says: (From Microsft Press)
When a DirectX object is created for a particular device, DirectX queries the hardware for information used to fill a table of "capabilities". If a hardware support exist for a particular capability -- say a graphics coprocessor that that can perform stretching -- DirectX will call on that hardware to provide that functionality. Where there is no hardware support for a capability, an equivalent Hardware Emulation Layer function will be called.
And that is how I have understood the situation myself for
some time. In fact, the phrase '3D Acceleration' implies that it
will simply go faster with the hardware capability. Not that
it cannot go at all without it.
But I know that a program can 'insist' that the
Hardware Emulation Layer' not be used. It can 'insist' that
the functionality exist in the haredware.
But I have no need to run B3D test. And the fact that my
TNT2 card is sufficient for my needs proves that I don't
spend a lot of time playing things like Doom and Half-Life
( or whatever games are current ).