2016-03-08 19:39 GMT+01:00 Paul Gofman gofmanp@gmail.com:
On 03/08/2016 09:32 PM, Matteo Bruni wrote:
2016-03-08 19:16 GMT+01:00 Paul Gofman gofmanp@gmail.com:
On 03/08/2016 09:08 PM, Matteo Bruni wrote: It depends but, if it has to do with float results precision, probably just allowing for a little tolerance is fine (see the compare_float() in d3dx9_36/tests/effect.c).
One case can be solved by the tolerance (though I did not want to introduce it as the other cases match exactly), but the two others are about sin and cos from FLOAT_MAX value, and the difference is big. It is BTW a sort of msvcrt issue in my understanding. My (Wine) results match exactly native d3dx if Wine's msvcrt is used by native d3dx, and do not match when d3dx is using native msvcrt (and there is also the difference for that between Windows version). Native msvcrt is apparently using one of many possible tricky sin/cos/sqrt computation in Win32. I was curious if there is a legitimate Windows version dependent "wine_if", or some check for Wine version, or better exclude such test at all from comparison?
Oh, interesting. You can use broken() to mark the Windows result that you don't want to replicate. In this case though not running the test may be okay too, given that there might not be a "correct" result. If you go for the latter, still put the affected test in a #if 0 block with a comment for documentation purposes.