Bug 89637 - dEQP-GLES3: atan, atan2, do not have enough precision
Summary: dEQP-GLES3: atan, atan2, do not have enough precision
Status: RESOLVED WONTFIX
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Ian Romanick
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-18 07:17 UTC by Iago Toral
Modified: 2016-03-26 09:39 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Iago Toral 2015-03-18 07:17:45 UTC
List of affected tests:

dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.lowp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.mediump_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_vertex.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_fragment.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.highp_fragment.vec4

According to the GLES3 specs, trigonometric functions have undefined precision, so I wonder if these tests are valid at all.

Since these are approximated using polynomials, in case we want to improve precision, we could use higher order polynomials at the cost of some performance. I have conducted some tests after a quick research and found some polynomials that seemed to reduce significantly the number of tests failed (for combined highp, mediump, lowp tests) but increased significantly the maximum absolute error we obtained in some cases, so we probably want to find better polynomials if we want to improve this.
Comment 1 Kenneth Graunke 2015-03-19 01:40:56 UTC
Using better polynomials is probably wise.

Programs known to use atan: Champions of Regnum, Guacamelee, Natural Selection 2, The Polynomial, To The Moon, Unigine Valley, Unreal 4's Sun Temple demo.
Comment 2 Humberto Israel Perez Rodriguez 2015-10-23 16:10:57 UTC
This also happen with HSW-U with the following configuration :


xorg-server-1.17.2
libdrm-2.4.65
xf86-video-intel-2.99.917
mesa-11.1.0-devel (git 6f39546)
libva-1.6.1
intel-driver-1.6.1
cairo-1.14.2


kernel: 4.3.0-rc5-drm-intel-nightly+
commit ce4630de6e6ba63c0477e753510f6294fac9d30c
Author: Matt Roper <matthew.d.roper@intel.com>
Date:   Wed Oct 21 15:05:45 2015 -070


List of affected tests :

<%dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.scalar%>
<%dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec3%>
<%dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec2%>
<%dEQP-GLES3.functional.shaders.builtin_functions.precision.atan2.highp_fragment.vec4%>
Comment 3 Kenneth Graunke 2016-03-26 09:39:37 UTC
The atan tests all pass now.  Half of the atan2 tests still fail.  However, the failing atan2 tests have been stricken from the Android must-pass list as well as the Vulkan conformance suite.  So it doesn't seem like this is worth fixing.

Marking Resolved/Wontfix.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.