Developing Games on Intel Graphics
If you are gaming on graphics integrated in your Intel Processor, this is the place for you! Find answers to your questions or post your issues with PC games
489 Discussions

HD graphics, DirectX, bug report, FPU precision loss

Pasi_Tuomainen
Beginner
436 Views

The FPU precision should stay intact when FPU preserve flag is defined. By investigating the FPU mantissa lenght before Direct3D device creation, it tells 53 bits, which is OK. After device creation, the mantissa length is only 24 bits, and all computation gets horribly inaccurate after that.

- Creating a Direct3D device (D3D9)

- D3DCREATE_FPU_PRESERVE flag set on

- x86 application

I've investigated the mantissa length with _controlfp_s function.

We have tested this with two laptops, i5 and i3, both having Intel HD graphics, and both have the problem.

FPU preserve flag works correctly in all Ati and nVidia GPUs we have tested.

When making a x64 or AnyCPU application, the accuracy is OK, even with Intel.

The bug must be in Intel HD DirectX drivers. The driver version in i5 laptop is 8.15.10.2189, dated July 28th, 2010 (the newest one through windows update)

I've posted this issue also in another forum http://communities.intel.com/message/138266#138266, I hope somebody would respond to this message and eventually there would be a solution to this problem. So far, to bypass the problem with Intel HD, we to set FPU computation mantissa length manually with _controlfp_s function.

0 Kudos
1 Reply
Stephen_H_Intel
Employee
436 Views
Hi Pasi

We are currently looking to see if this is an issue. I will post back when we know more.

Thx

Steve
0 Kudos
Reply