[PATCH] ddraw: Implement FPU mode fixup in d3d7 device.

Alexander Dorofeyev alexd4 at inbox.lv
Thu Jun 19 18:49:46 CDT 2008


As documented in DirectX7 SDK, d3d7 devices set FPU mode (control word) on every 
call and restore it back to original state before returning, if created in 
DDSCL_FPUPRESERVE cooperative mode. This allows games to work with FPU in a 
possibly incompatible mode and avoid resetting it all the time. This patch 
implements similar functionalty in Wine.

Fixes http://bugs.winehq.org/show_bug.cgi?id=13225 - rendering problems in 
Sacrifice game because it changes FPU mode and causes float rounding issues in 
opengl libs (at least on Intel DRI drivers and Nvidia binary drivers).
---
  dlls/ddraw/ddraw.c         |    2 -
  dlls/ddraw/ddraw_private.h |    3 +-
  dlls/ddraw/device.c        | 1209 +++++++++++++++++++++++++++++++++++++++++---
  dlls/ddraw/direct3d.c      |    6 +-
  4 files changed, 1135 insertions(+), 85 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 351bb864d4e2b28f9e07326f59fc9ccc91d1def9.diff
Type: text/x-patch
Size: 71297 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080620/64ce3534/attachment-0001.bin 


More information about the wine-patches mailing list