<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - dEQP-GLES3: reflect does not produce correct results for limit values"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89648">89648</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>dEQP-GLES3: reflect does not produce correct results for limit values
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

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

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

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

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

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

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

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

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

        <tr>
          <th>Reporter</th>
          <td>itoral@igalia.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>intel-3d-bugs@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>List of affected tests:

dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.scalar

The same underlying problems described for modf (<a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - dEQP-GLES3: modf does not produce correct results with infinities"
   href="show_bug.cgi?id=89645">bug 89645</a>) and mix (<a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - dEQP-GLES3: mix does not produce correct results with infinities"
   href="show_bug.cgi?id=89647">bug
89647</a>): the hardware produces NaNs for some of the operations involved.

reflect(x,y) is computed as: x - 2.0 * dot(y, x) * y = x - 2.0 * x * y * y (for
scalars, but the argument is the same for vectors). If, for example, y is a
very large number so that y * y = inf, and x = 0, then we have to multiply  0
by inf and that results in NaN. The same happens if x is not 0.0, but something
very close (starting from -1.00e-38 for negative values for example) 

As with the other related bug reports, we could probably fix this by emitting
code that checks for these values specifically and resolves them directly
rather than using the formula, but that would hurt performance.</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>