Not entirely sure why this wasn't being done in the first place, as devices created with D3DCREATE_MIXED_VERTEXPROCESSING expect this to work properly and there are some games that require dynamically switching between the two.
In the case of either D3DCREATE_SOFTWARE_VERTEXPROCESSING or D3DCREATE_HARDWARE_VERTEXPROCESSING devices, the call to SetSoftwareVertexProcessing() will simply fail, but we can safely ignore that. In fact D3D8 will never return anything other than D3D_OK for any SetRenderState() calls.
Not entirely sure why this wasn't being done in the first place, as devices created with D3DCREATE_MIXED_VERTEXPROCESSING expect this to work properly and there are some games that require dynamically switching between the two.
In the case of either D3DCREATE_SOFTWARE_VERTEXPROCESSING or D3DCREATE_HARDWARE_VERTEXPROCESSING devices, the call to
SetSoftwareVertexProcessing()
will simply fail, but we can safely ignore that. In fact D3D8 will never return anything other than D3D_OK for anySetRenderState()
calls.