Fixed bug 1338 - Direct3D renderer should set D3DCREATE_FPU_PRESERVE for not behaving vastly different on doubles (causes 3rd party lib crashes!)
Jonas Thiem 2011-11-29 12:28:02 PST Direct3D renderer should set D3DCREATE_FPU_PRESERVE for not behaving vastly different to OpenGL/software rendering on doubles and break some libraries really badly. Most notable affected example: Lua, which does the most unpredictable things which are really almost impossible to debug/find out for beginners who never heard this culprit exists. Since I believe all renderers should behave the same on that doubles simply work as expected in a program, this should really be changed! (also this wasted a few days of my life wondering why everything in my program was so broken)
This commit is contained in:
parent
3a7d58ddf8
commit
ad85c9da0e
1 changed files with 2 additions and 2 deletions
|
@ -441,11 +441,11 @@ D3D_CreateRenderer(SDL_Window * window, Uint32 flags)
|
||||||
result = IDirect3D9_CreateDevice(data->d3d, data->adapter,
|
result = IDirect3D9_CreateDevice(data->d3d, data->adapter,
|
||||||
D3DDEVTYPE_HAL,
|
D3DDEVTYPE_HAL,
|
||||||
pparams.hDeviceWindow,
|
pparams.hDeviceWindow,
|
||||||
(caps.
|
D3DCREATE_FPU_PRESERVE | ((caps.
|
||||||
DevCaps &
|
DevCaps &
|
||||||
D3DDEVCAPS_HWTRANSFORMANDLIGHT) ?
|
D3DDEVCAPS_HWTRANSFORMANDLIGHT) ?
|
||||||
D3DCREATE_HARDWARE_VERTEXPROCESSING :
|
D3DCREATE_HARDWARE_VERTEXPROCESSING :
|
||||||
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
|
D3DCREATE_SOFTWARE_VERTEXPROCESSING),
|
||||||
&pparams, &data->device);
|
&pparams, &data->device);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
D3D_DestroyRenderer(renderer);
|
D3D_DestroyRenderer(renderer);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue