<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 --- - r300g does not eliminate unread varyings"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=65416">65416</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>dri-devel@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>r300g does not eliminate unread varyings
          </td>
        </tr>

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

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

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>stefandoesinger@gmx.at
          </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/Gallium/r300
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=80344" name="attach_80344" title="Example shaders">attachment 80344</a> <a href="attachment.cgi?id=80344&action=edit" title="Example shaders">[details]</a></span>
Example shaders

r300g tries to interpolate varyings written by the vertex shader even if the
fragment shader does not read them. The attached program code illustrates this
with two sample shaders.

The shaders in question were generated by Wine's fixed function pipeline
replacement, generated from a fixed function setup set up by 3DMark 2000.

The visible issues caused by this are broken fog because the driver runs out of
varyings and reduced performance due to the extra shader instructions.

An argument could be made that this is Wine's bug, and it should not generate
such inefficient shaders. Doing this would be a major inconvenience though
because the vertex and fragment shader are generated independently. As far as I
can see the proprietary drivers optimize this inefficiency away.</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>