<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: sin, cos, tan do not have enough precision"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89634">89634</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>dEQP-GLES3: sin, cos, tan do not have enough precision
          </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.sin.mediump_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.mediump_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.sin.highp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.mediump_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.cos.highp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.tan.mediump_fragment.vec4

The GLES3 specs say that trigonometric functions do not have a defined
precision, so I wonder if these tests are valid at all. However, it is true
that for large enough angles the results have so much error that they are
completely bogus. This can probably be fixed in software by rounding input
angles to 0..2PI for example, but I woder if we want to take the cost of that
considering that the precision error only becomes big enough for very large
values of the input angle.

There was a brief discussion on the mailing list about this topic:
<a href="http://lists.freedesktop.org/archives/mesa-dev/2014-December/072429.html">http://lists.freedesktop.org/archives/mesa-dev/2014-December/072429.html</a></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>