<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO - [Regression, NIR, bisected] Black squares in Unigine Heaven via DXVK"
href="https://bugs.freedesktop.org/show_bug.cgi?id=111308#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO - [Regression, NIR, bisected] Black squares in Unigine Heaven via DXVK"
href="https://bugs.freedesktop.org/show_bug.cgi?id=111308">bug 111308</a>
from <span class="vcard"><a class="email" href="mailto:idr@freedesktop.org" title="Ian Romanick <idr@freedesktop.org>"> <span class="fn">Ian Romanick</span></a>
</span></b>
<pre>I think I have an idea what could be happening. There are a lot of occurrences
of a pattern like
y = exp2(-(x*x)) * small_constant + y;
At the end, y is compared 0 < y, and that comparison is eliminated. If x*x is
sufficiently large, exp2(-(x*x)) will flush to zero.
Does changing
case nir_op_fexp2:
r = (struct ssa_result_range){gt_zero, analyze_expression(alu, 0,
ht).is_integral};
break;
to
case nir_op_fexp2:
r = (struct ssa_result_range){ge_zero, analyze_expression(alu, 0,
ht).is_integral};
break;
help? I don't have the renderdoc set up on this system. I can try that later
today of you don't beat me to it.
If that fixes the problem, then fmul and ffma (and possibly others) will need
fixes to account for flush-to-zero behavior.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>