<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:eero.t.tamminen@intel.com" title="Eero Tamminen <eero.t.tamminen@intel.com>"> <span class="fn">Eero Tamminen</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED NOTOURBUG - Second Life shaders fail to compile"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=71591">bug 71591</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>eero.t.tamminen@intel.com
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED NOTOURBUG - Second Life shaders fail to compile"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=71591#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED NOTOURBUG - Second Life shaders fail to compile"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=71591">bug 71591</a>
              from <span class="vcard"><a class="email" href="mailto:eero.t.tamminen@intel.com" title="Eero Tamminen <eero.t.tamminen@intel.com>"> <span class="fn">Eero Tamminen</span></a>
</span></b>
        <pre>E.g. Unigine's Heaven benchmark (v4.0) does this also.

It's a shame as that would be a nice test case for recently added geometry
shader and GL_ARB_sample_shading support in Mesa.  93 of the shaders in Heaven
benchmark (= nearly half of them) have:
  #extension GL_ARB_sample_shading : enable

And in none of them it's at the start.  There are no other extension
declarations.


(In reply to <a href="show_bug.cgi?id=71591#c3">comment #3</a>)
<span class="quote">> This seems a common mistake.  I think we should consider applying it in
> upstream mesa too, for sake of compatability.</span >

All the Heaven shaders have main().  I think they're concatenated together from
different parts and in that case it makes sense to declare extensions required
by given part of shader, in the beginning of that part.

Program needing to keep track of what extensions are require by different
shader parts is inconvenient, especially if those concatenated parts can be
edited separately from the program (they e.g. come from disk).


(In reply to <a href="show_bug.cgi?id=71591#c1">comment #1</a>)
<span class="quote">> According to the GLSL specification (1.30, page 14), #extension directives
> must come before any non-preprocessor tokens.</span >

The spec says:
"Each extension can define its allowed granularity of scope. If nothing is
said, the granularity is a shader (that is, a single compilation unit), and the
extension directives must occur before any non-preprocessor tokens."

What if extension defines its allowed scope?</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>