<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Register spilling is slow"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=70613#c7">Comment # 7</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Register spilling is slow"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=70613">bug 70613</a>
              from <span class="vcard"><a class="email" href="mailto:kenneth@whitecape.org" title="Kenneth Graunke <kenneth@whitecape.org>"> <span class="fn">Kenneth Graunke</span></a>
</span></b>
        <pre>Kevin,

The GLSL compiler has no support for non-inlined functions, nor do most (all?)
of the driver backends.  I have some code in a branch from 2011 that begins to
add support for proper functions in the compiler, but I never got to the
backend work.

It would be a huge amount of work to actually support non-inlined function
calls.

Eric's point is that our register spilling code is insanely stupid: if we fail
to allocate, it tries to spill a single register, and then starts over, having
to recompute the live interval analysis and register interference graphs.  This
is extremely wasteful and stupid.  If we fixed that, shaders that spill
wouldn't take obscenely long to compile.

We just haven't found time to care yet, since real world shaders that spill are
very rare.

--Ken</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>