[ODE] ODE behaving differently for different renderers
gl
gl at ntlworld.com
Fri Feb 23 08:21:08 MST 2007
>> D3DCREATE_FPU_PRESERVE
>>
>
> This flag is dangerous, because it only affects the create call -- not
> all possible calls into DirectX. If you care about the precision and
> rounding mode, set them manually each time you begin your
> collision/physics step.
'because it only affects the create call' doesn't sound right - it would
make the flag pointless.
I was always under the impression it meant that each D3D call set the the
FPU mode to what it required internally, and restored it to the previous
state when it returned.
However, according to the latest docs, it actually means that D3D will *not*
change the current mode, even internally:
"Forces Direct3D to not change the floating-point unit (FPU) control word,
*running the pipeline using the precision of the calling thread*. Without
this flag, Direct3D defaults to setting the FPU to single-precision
round-to-nearest mode. Using this flag with the FPU in double-precision mode
will reduce Direct3D performance.
Warning Portions of Direct3D assume FPU exceptions are masked. Unmasking
such exceptions may lead to undefined behavior."
--
gl
More information about the ODE
mailing list