<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Compiling of shader gets stuck in infinite loop"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=78468">78468</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>idr@freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Compiling of shader gets stuck in infinite loop
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>intel-3d-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux (All)
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>bugReporter92@gmail.com
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Drivers/DRI/i965
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr></table>
      <p>
        <div>
        <pre>While compiling a shader from the application supertuxkart, I get an infinite
loop. This is in the currect git checkout of supertuxkart which can be found at
<a href="https://github.com/supertuxkart/stk-code.git">https://github.com/supertuxkart/stk-code.git</a>
The shader in question is data/shaders/dof.frag

No matter how wrong this shader is, I figure the expected outcome is never for
the compiler to just hang there.

What follows is a partial stack trace from supertuxkart when compiling that
shader. If the full stack trace would be useful, then let me know and I can get
it.

#0  ir_expression::accept (this=0x1fb3200, v=0x7fffffffcd70) at
../../src/glsl/ir_hv_accept.cpp:156
#1  0x00007fffef29bd1b in ir_swizzle::accept (this=0x20ebf70, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#2  0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fb6250)
    at ../../src/glsl/opt_constant_folding.cpp:87
#3  0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fb6220) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#4  0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fb6220) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#5  0x00007fffef29b8d0 in ir_expression::accept (this=0x1fb6220,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#6  0x00007fffef29bd1b in ir_swizzle::accept (this=0x20df810, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#7  0x00007fffef29b881 in ir_expression::accept (this=0x1fb9240,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:142
#8  0x00007fffef29bd1b in ir_swizzle::accept (this=0x20dfdc0, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#9  0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fbc290)
    at ../../src/glsl/opt_constant_folding.cpp:87
#10 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fbc260) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#11 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fbc260) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#12 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fbc260,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#13 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e0300, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#14 0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fbf2b0)
    at ../../src/glsl/opt_constant_folding.cpp:87
#15 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fbf280) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#16 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fbf280) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#17 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fbf280,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#18 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e08b0, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#19 0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fc22d0)
    at ../../src/glsl/opt_constant_folding.cpp:87
#20 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fc22a0) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#21 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fc22a0) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#22 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fc22a0,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#23 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e0e60, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#24 0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fc52f0)
#25 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fc52c0) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#26 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fc52c0) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#27 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fc52c0,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#28 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e1410, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#29 0x00007fffef29b881 in ir_expression::accept (this=0x1fc82e0,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:142
#30 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e1950, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#31 0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fcb330)
    at ../../src/glsl/opt_constant_folding.cpp:87
#32 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fcb300) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#33 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fcb300) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#34 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fcb300,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#35 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e1f00, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#36 0x00007fffef29b881 in ir_expression::accept (this=0x1fce320,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:142
#37 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e24b0, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#38 0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fd1370)
    at ../../src/glsl/opt_constant_folding.cpp:87
#39 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fd1340) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#40 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fd1340) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#41 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fd1340,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#42 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e2a60, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#43 0x00007fffef2c8d59 in (anonymous
namespace)::ir_constant_folding_visitor::handle_rvalue (this=0x7fffffffcd70,
rvalue=0x1fd4390)
    at ../../src/glsl/opt_constant_folding.cpp:87
#44 0x00007fffef29e6e1 in ir_rvalue_base_visitor::rvalue_visit
(this=0x7fffffffcd70, ir=0x1fd4360) at ../../src/glsl/ir_rvalue_visitor.cpp:43
#45 0x00007fffef29eb89 in ir_rvalue_visitor::visit_leave (this=0x7fffffffcd70,
ir=0x1fd4360) at ../../src/glsl/ir_rvalue_visitor.cpp:156
#46 0x00007fffef29b8d0 in ir_expression::accept (this=0x1fd4360,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:156
#47 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e3010, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#48 0x00007fffef29b881 in ir_expression::accept (this=0x1fd7380,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:142
#49 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e35c0, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
#50 0x00007fffef29b881 in ir_expression::accept (this=0x1fda3a0,
v=0x7fffffffcd70) at ../../src/glsl/ir_hv_accept.cpp:142
#51 0x00007fffef29bd1b in ir_swizzle::accept (this=0x20e3b70, v=0x7fffffffcd70)
at ../../src/glsl/ir_hv_accept.cpp:243
...
There's more to the backtrace, up to 127 levels, but I wasn't sure how much
more would be useful.

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.0-devel
(git-23e9f06)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.3.0-devel (git-23e9f06)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

Debian Jessie using GNOME3 and a fresh git build of mesa.</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>