<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: mix does not produce correct results with infinities"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89647">89647</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>dEQP-GLES3: mix does not produce correct results with infinities
          </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.mix.lowp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.lowp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.mediump_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.mix.highp_fragment.vec4

This is the same problem described for modf in <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> but for mix.

In gen6+, mix() is implemented as an lrp hardware operation, so I guess there
is no way around this other than adding conditionals to check for infinities
and resolve them directly.

An alternative would be to implement it as gen5 (when lrp was not available in
hardware) by doing x*(1-a)+y*a, which works better in some cases but still
produces NaN for some (specifically when we need to multiply infinity with 0).
This method should have a performance penalty.</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>