[Mesa-dev] NaN behavior in GLSL (was Re: [PATCH] glsl: always do sqrt(abs()) and inversesqrt(abs()))

Matteo Bruni matteo.mystral at gmail.com
Thu Jan 12 21:57:34 UTC 2017


2017-01-12 22:25 GMT+01:00 Roland Scheidegger <sroland at vmware.com>:
> Is there actually a formal requirement that d3d9 hw never generates
> NaNs? I think d3d9 is very lacking in spec there - if that is specified
> somewhere I've never seen it... Maybe just everybody is expecting no
> NaNs there too (because earlier hw couldn't do it). I think some hw
> couldn't do infinity neither.

Right, I don't think there is any clear requirement in d3d9. Probably
applications at some point just started to depend (knowingly or not)
on not getting NaNs and later on the d3d9 drivers for newer hardware
which supported NaN had to preserve the established behavior to avoid
breaking them.

d3d9 and below don't have much of an actual spec though, similar
patterns of formally unspecified behavior actually requiring a
specific handling happen a lot so it doesn't seem particularly
surprising to me. On top of my mind, there's the behavior when
sampling from a texture unit with no texture bound but if you're
interested you can just look at the d3d9 tests in Wine to find a bunch
more...

> In any case, being able to select NaN behavior looks potentially quite
> useful to me.
>
> Roland
>
>
>> Cheers,
>> Matteo Bruni.
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>


More information about the mesa-dev mailing list