[Mesa-dev] [Bug 111308] [Regression, NIR, bisected] Black squares in Unigine Heaven via DXVK

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Aug 7 15:31:10 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=111308

--- Comment #4 from Ian Romanick <idr at freedesktop.org> ---
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.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190807/33f71c4b/attachment.html>


More information about the mesa-dev mailing list