[ODE] ODE behaving differently for different renderers

Jon Watte (ODE) hplus-ode at mindcontrol.org
Fri Feb 23 17:04:18 MST 2007


Yup, that's what the docs say. It's possible they've tightened up the 
behavior. It used to be that certain D3D or D3DX calls would touch the 
FPU even with that flag set.

Cheers,

          / h+


gl wrote:
>>> 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 
>
> _______________________________________________
> ODE mailing list
> ODE at ode.org
> http://mooshika.org/mailman/listinfo/ode
>
>
>   


More information about the ODE mailing list