<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 20, 2016 at 11:08 AM, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat, Jun 18, 2016 at 12:42 PM, Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br>
> While mathematically correct, these two optimizations result in an<br>
> expression with substantially lower precision than the original.  For any<br>
> positive finite floating-point value, log2(x) is well-defined and finite.<br>
> More precisely, it is in the range [-150, 150] so any sum of logarithms<br>
> log2(a) + log2(b) is also well-defined and finite as long as a and b are<br>
> both positive and finite.  However, if a and b are either very small or<br>
> very large, their product may get flushed to infinity or zero causing<br>
> log2(a * b) to be nowhere close to log2(a) + log2(b).<br>
><br>
> This imprecision was causing incorrect rendering in Talos Principal because<br>
> part of its HDR rendering process involves doing 8 texture operations,<br>
> clamping the result to [0, 65000], taking a dot-product with a constant,<br>
> and then taking the log2.  This is done 6 or 8 times and summed to produce<br>
> the final result which is written to a red texture.  In cases where you<br>
> have a region of the screen that is very dark, it can end up getting a<br>
> result value of -inf which is not what is intended.<br>
><br>
> Signed-off-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=96425" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=96425</a><br>
> Cc: Matt Turner <<a href="mailto:mattst88@gmail.com">mattst88@gmail.com</a>><br>
<br>
</span>Ah, that's too bad.<br></blockquote><div><br></div><div>Yeah, I liked those too. :(<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Reviewed-by: Matt Turner <<a href="mailto:mattst88@gmail.com">mattst88@gmail.com</a>><br></blockquote><div><br></div><div>Thanks! <br></div></div><br></div></div>