On Tue, 2017-01-17 at 11:34 +0100, Juan A. Suarez Romero wrote: > > The above does not necessarily sum to "we shouldn't fix it" but it probably > > does mean it's low-priority at best and we need to be careful. > > > > Looking a bit into the math of atan2, I'm not convinced flushing denorms to > > zero is actually what we want to do. For x, I think it's valid, but as y > > approaches 0, you get +/- pi/2 depending on whether y positive or negative. > > As both approach zero, it's undefined. As you approach infinity, it > > approaches something in the interval [-pi/2, pi/2] but it depends on the > > direction of approach. If you do "man atan2" you'll see this all layed out > > in a horrifying amount of detail (somewhere around a dozen different cases). > > > > > > Yes, originally I only flushed 'x'. But then also flushed 'y' to keep > coherence. But didn't think about that corner case you mention. I think we > can remove the flush to 0 in 'y'.
Actually, after doing a couple of tests more, I don't think we need to flush 'x' any more. The thing is that originally I added the flush to 0 to solve a couple of cases from Vulkan CTS atan2 tests. But later I modified the code to cope with infinities, which lead a refactoring of code. I think this refactoring made the flush to 0 not required any more. I've run the tests again getting rid of both flushes, and seems results are exactly the same as with the flush. So maybe they are not required after all. J.A.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev