radv: lower 64-bit drcp/dsqrt/drsq for fixing precision issues
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 23 Jun 2020 16:29:22 +0000 (18:29 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 25 Jun 2020 12:09:08 +0000 (12:09 +0000)
commitc84f11e7b67cfa3c01780210ca31665b658e5ebd
treeb7ba850882592d199b8625f4df1857ae7e32fdf2
parent82b46667836647226387442b2feb9d7f1475bd36
radv: lower 64-bit drcp/dsqrt/drsq for fixing precision issues

The hardware precision of v_rcp_f64, v_sqrt_f64 and v_rsq_f64
is less than what Vulkan requires.

This lowers using the Goldschmidt's algorithm to improve precision.

Fixes dEQP-VK.glsl.builtin.precision_double.* on both compiler
backends.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5609>
.gitlab-ci/deqp-radv-fiji-aco-fails.txt
.gitlab-ci/deqp-radv-navi10-aco-fails.txt
.gitlab-ci/deqp-radv-pitcairn-aco-fails.txt
.gitlab-ci/deqp-radv-polaris10-aco-fails.txt
.gitlab-ci/deqp-radv-raven-aco-fails.txt
.gitlab-ci/deqp-radv-vega10-aco-fails.txt
src/amd/compiler/aco_instruction_selection.cpp
src/amd/vulkan/radv_shader.c