d3dx9: Implement D3DXFloat32To16Array and D3DXFloat16To32Array. (try 2)
Rico Schüller
kgbricola at web.de
Mon Feb 21 14:59:50 CST 2011
Am 21.02.2011 20:19, schrieb Misha Koshelev:
>
> Thanks Rico.
>
> Still trying to investigate this further.
>
> Perhaps, if you have any more hints as to how you arrived at this
> magical value, much appreciated.
I got to this value by running the attached test patch applied after
yours. You probably may
modify the for loop. I've chosen the increment because of time/usage.
You may try with 0xff or a lower value instead of 0xfff, but be warned
running at 1 will take a
while to see a failed test.
You need a copy of native d3dx9_36.dll renamed to d3dx9_36_2.dll in the
path. The test
should show the difference between native and wine's implementation. I
haven't run the test
on windows, yet.
> Namely, at first my hunch was that this value (2.9806e-08 with the
> following bitwise representation):
> 0 01100110 00000000000010000000000
> was simply being truncated to the smallest denormalized value
> representable by a half precision float:
> 0 000.00 00.0000.0001 6×10-8 (Smallest denormalized value)
> but this is clearly not true for other values that are too small (they
> are returned as 0.0f).
I haven't had the time to investigate this completely, yet. But probably
there are a couple of values
produced by the patch which should give a hint to what bits are
truncated/rounded.
Cheers
Rico
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mathtest
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110221/7ec6226c/attachment.asc>
More information about the wine-devel
mailing list