[Mesa-dev] [v2 PATCH 09/16] glsl: Optimize clamp(x, 0, 1) as saturate(x)
Matt Turner
mattst88 at gmail.com
Mon Jul 7 23:22:48 PDT 2014
On Mon, Jul 7, 2014 at 11:00 PM, Erik Faye-Lund <kusmabite at gmail.com> wrote:
> On Mon, Jul 7, 2014 at 7:18 PM, Matt Turner <mattst88 at gmail.com> wrote:
>> This comment tripped me up for a second. This really means that you've
>> found either
>>
>> - min(max(x, 0.0), 1.0); or
>> - max(min(x, 1.0), 0.0)
>
> Hmm, but are optimizing both of these to saturate OK? Shouldn't
> min(max(NaN, 0.0), 1.0) give 0.0, whereas max(min(NaN, 1.0), 0.0) give
> 1.0?
Under standard IEEE rules, wouldn't the NaN propagate through all of
these expressions?
The GLSL 4.40 spec says
"Operations and built-in functions that operate on a NaN are not required to
return a NaN as the result."
So it seems like we have a lot of flexibility here. Is there some text
I'm missing?
More information about the mesa-dev
mailing list