>>
>> + if ( (pq->w >= 1.0f) || (pq->w == -1.0f) )
>
>I think the second comparison should be '<=', if you want to avoid getting NaNs.
I checked in Vista. D3DX accepts -1.0f as input and returns what the patch does.
However, any value < -1.0f is a unacceptable value for D3DX ( D3DX returns (-1#IND00,-1#IND00,-1#IND00,-1#IND00) ).
Best regards
Nozomi