<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Implement a NIR -> vec4 pass"
href="https://bugs.freedesktop.org/show_bug.cgi?id=89580#c17">Comment # 17</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Implement a NIR -> vec4 pass"
href="https://bugs.freedesktop.org/show_bug.cgi?id=89580">bug 89580</a>
from <span class="vcard"><a class="email" href="mailto:jason@jlekstrand.net" title="Jason Ekstrand <jason@jlekstrand.net>"> <span class="fn">Jason Ekstrand</span></a>
</span></b>
<pre>(In reply to Iago Toral from <a href="show_bug.cgi?id=89580#c16">comment #16</a>)
<span class="quote">> Hi Jason,
>
> I have tracked most of our current piglit failures (>800 test fails, a few
> crashes and a GPU hang) to this loop in get_mul_for_src
> (nir_opt_peephole_ffma.c) when trying to produce a multiply-add operation:
>
> for (unsigned i = 0; i < 4; i++) {
> if (!(alu->dest.write_mask & (1 << i)))
> break;
>
> swizzle[i] = swizzle[src->swizzle[i]];
> }</span >
Right.. That one's tricky. We should be breaking based on what channels are
readread rather than written. There are two options here: we can either use
the writemask or the number of channels used by the *add*. Since this pass
always runs with the shader in SSA form, it doesn't matter which you use so
long as use use the information from the add.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>