<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED NOTOURBUG - Fragment shader while loop causes geometry corruption"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=98664#c16">Comment # 16</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED NOTOURBUG - Fragment shader while loop causes geometry corruption"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=98664">bug 98664</a>
              from <span class="vcard"><a class="email" href="mailto:sroland@vmware.com" title="Roland Scheidegger <sroland@vmware.com>"> <span class="fn">Roland Scheidegger</span></a>
</span></b>
        <pre>(In reply to Nicolai Hähnle from <a href="show_bug.cgi?id=98664#c14">comment #14</a>)
<span class="quote">> I suspect the reason that the blob drivers do it this way is that if you
> don't, you're likely to hit a subtle bug with emit inside control flow. And
> making the effort to exploit the undefined-ness probably pays off very
> rarely, so...</span >

Also, you can do this with dx10, so app developers porting things are somewhat
likely to get it wrong (I suppose that's similar to other such subtle issues
like discard killing your derivatives if you have per-pixel control flow with
gl, but not with dx10).
At least I think so from the description of emit:
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh447053(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/windows/desktop/hh447053(v=vs.85).aspx</a>
"emit causes all declared o# registers to be read out of the Geometry Shader to
generate a vertex." Doesn't say explicitly the registers are still valid
afterwards, but since reading a register usually doesn't nuke the value, the
reg getting undefined would be a side-effect which should have been
mentioned...</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>