<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - shader_test leads mesa master to an infinity compilation"
href="https://bugs.freedesktop.org/show_bug.cgi?id=111405">111405</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>shader_test leads mesa master to an infinity compilation
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/DRI/i965
</td>
</tr>
<tr>
<th>Assignee</th>
<td>intel-3d-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>andrey.simiklit.1989@gmail.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>intel-3d-bugs@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=145070" name="attach_145070" title="reproducer">attachment 145070</a> <a href="attachment.cgi?id=145070&action=edit" title="reproducer">[details]</a></span>
reproducer
While I was trying to create a shader_test for the issue:
<a class="bz_bug_link
bz_status_NEW "
title="NEW - Assertion fails in nir_opt_remove_phis.c during compilation of SPIR-V shader"
href="show_bug.cgi?id=111069">https://bugs.freedesktop.org/show_bug.cgi?id=111069</a>
I created a test which leads the latest mesa master to an infinity compilation.
Like in the mentioned issue there is a loop without any exits.
And compiler stucks in an optimization loop because 'progress' always is true.
One of optimization can't stop some constants generation( here is a part of
nir:
<span class="quote">> vec1 32 ssa_5 = load_const (0x3fc00000 /* 1.500000 */)
> vec1 32 ssa_6 = load_const (0x40100000 /* 2.250000 */)
> vec1 32 ssa_7 = load_const (0x40580000 /* 3.375000 */)
> ...
> ...
> vec1 32 ssa_221 = load_const (0x7ef509be /* 162855721648427948063735027106695872512.000000 */)
> vec1 32 ssa_222 = load_const (0x7f37c74e /* 244283572331437120269767328686418165760.000000 */)
> vec1 32 ssa_223 = load_const (0x7f800000 /* inf */)</span >
Possible that this and mentioned issue could be fixed using a single solution
which was mentioned by Jason Ekstrand in the <a class="bz_bug_link
bz_status_NEW "
title="NEW - Assertion fails in nir_opt_remove_phis.c during compilation of SPIR-V shader"
href="show_bug.cgi?id=111069">bug111069</a>:
<span class="quote">> 1. Detect when we've deleted the last exit of a loop and simply delete the entire loop immediately in nir_opt_dead_cf.</span >
But it is just an assumption.
I am investigating this issue.</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>