On 22/03/16 23:31, Ian Romanick wrote:
On 03/17/2016 09:18 AM, Martin Peres wrote:
On 16/03/16 19:33, Kenneth Graunke wrote:
The SIN and COS instructions on Intel hardware can produce values
slightly outside of the [-1.0, 1.0] range for a small set of values.
Obviously, this can break everyone's expectations about trig functions.
According to an internal presentation, the COS instruction can produce
a value up to 1.000027 for inputs in the range (0.08296, 0.09888). One
suggested workaround is to multiply by 0.99997, scaling down the
amplitude slightly. Apparently this also minimizes the error function,
reducing the maximum error from 0.00006 to about 0.00003.
I chose to apply this only when not saturating, as saturate already
clamps to 1.0. This may or may not be a good idea.
Fixes 16 dEQP precision tests
dEQP-GLES31.functional.shaders.builtin_functions.precision.
{cos,sin}.{highp,mediump}_compute.{scalar,vec2,vec4,vec4}.
at the cost of making every sin and cos call more expensive.
Signed-off-by: Kenneth Graunke <[email protected]>
---
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 26
++++++++++++++++++++------
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 26
++++++++++++++++++++------
2 files changed, 40 insertions(+), 12 deletions(-)
This has been in the Vulkan tree for a while - we needed it to pass the
Vulkan CTS, as it contains these same dEQP tests.
I haven't run shader-db yet, but I don't expect we'll like the results.
The patch is pretty sketchy, too. I'm sort of tempted to hide it behind
an INTEL_STRICT_CONFORMANCE=1 option, like we had way back in the day...
FYI, a quick run on hsw_gt2 shows -10.45% on Gputest:voplosion.
Can you explain this result? -10.45% of what? Instructions? FPS? And
this is comparing what to what? Before this patch to after?
So sorry Ian, I completely missed your email!
Yes, it was just applying this patch and I was talking about FPS.
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev