   [C++] What exactly is mixed VP?
  When I learned about mixed mode vp, I was shown this example.// Check for HW T&Lif (mCaps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT){mBehavior = D3DCREATE_HARDWARE_VERTEXPROCESSING;   bMixedMode = true; // <-- Hereif (mCaps.DevCaps & D3DDEVCAPS_PUREDEVICE){mBehavior |= D3DCREATE_PUREDEVICE;}}else{   mBehavior = D3DCREATE_SOFTWARE_VERTEXPROCESSING;}Mixed mode was defined as "partial hardware support", which of course feels ambiguous. I'm having trouble finding out where that hardware is applied. Is there anything that tells you exactly where hardware is used, like with D3DDEVCAPS_HWRASTERIZATION, and does that also imply mixed mode support?Oh, and what's with that Network Solutions junk site that keeps popping up as gamedev.net? Is anyone else seeing that?   
  Mixed vertex processing means that you can switch between software and hardware vertex processing without resetting the device. This is useful if you target older hardware that can process some of your vertex shaders but not all of them. You'd switch to software processing if you need to run shaders of higher profile than your GPU can handle, and to hardware processing for potential performance increases.HAL devices are required to implement rasterization in hardware. You can't toggle that behavior. Note that separate software devices such as the reference rasterizer have the D3DDEVCAPS_HWRASTERIZATION flag set to false, because it indeed does rasterize in software.As a side note, using a pure device may not be optimal for all cases. A non-pure device caches state changes so as to reduce redundant traffic between the device object and the hardware, which is good for performance; as a side effect, you can also call the various Get* methods of the device since it remembers the states. If your own state manager (graphics engine) already handles redundant state settings perfectly, then the pure device offers a smaller memory footprint and slightly increased performance due to not having to cache the set states.   