Mesa (main): gallivm: use lp_build_log2_safe for pow

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Aug 5 17:56:43 UTC 2021


Module: Mesa
Branch: main
Commit: 08a12feb6ed08691a3630b1d319e21b579c04a97
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=08a12feb6ed08691a3630b1d319e21b579c04a97

Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date:   Tue Jul 27 14:28:44 2021 +0200

gallivm: use lp_build_log2_safe for pow

lp_build_log2 isn't robust enough to handle special cases for pow, so
let's use lp_build_log2_safe instead.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11800>

---

 src/gallium/auxiliary/gallivm/lp_bld_arit.c          | 2 +-
 src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml  | 2 +-
 src/gallium/frontends/lavapipe/ci/deqp-lvp-fails.txt | 3 ---
 3 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index 96ba8c01a45..14fda8db0f3 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -3043,7 +3043,7 @@ lp_build_pow(struct lp_build_context *bld,
    }
 
    LLVMValueRef cmp = lp_build_cmp(bld, PIPE_FUNC_EQUAL, x, lp_build_const_vec(bld->gallivm, bld->type, 0.0f));
-   LLVMValueRef res = lp_build_exp2(bld, lp_build_mul(bld, lp_build_log2(bld, x), y));
+   LLVMValueRef res = lp_build_exp2(bld, lp_build_mul(bld, lp_build_log2_safe(bld, x), y));
 
    res = lp_build_select(bld, cmp, lp_build_const_vec(bld->gallivm, bld->type, 0.0f), res);
    return res;
diff --git a/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml b/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml
index 54869e795dd..3fbd5eb5b1b 100644
--- a/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml
+++ b/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml
@@ -73,7 +73,7 @@ traces:
   - path: bgfx/07-callback.rdc
     expectations:
       - device: gl-vmware-llvmpipe
-        checksum: 77381f3eb028306e028ab54267a1926a
+        checksum: 488d471efb84824f2d4be1c75e455881
   - path: bgfx/09-hdr.rdc
     expectations:
       - device: gl-vmware-llvmpipe
diff --git a/src/gallium/frontends/lavapipe/ci/deqp-lvp-fails.txt b/src/gallium/frontends/lavapipe/ci/deqp-lvp-fails.txt
index a4c5846573f..a1023ddb6a4 100644
--- a/src/gallium/frontends/lavapipe/ci/deqp-lvp-fails.txt
+++ b/src/gallium/frontends/lavapipe/ci/deqp-lvp-fails.txt
@@ -28,9 +28,6 @@ dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8b8a8_unorm.r1
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8b8a8_unorm.r16g16b16a16_unorm.optimal_general_linear,Fail
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.2d.r8g8b8a8_unorm.r16g16b16a16_unorm.optimal_linear_linear,Fail
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.ctimeolor.2d.a8b8g8r8_unorm_pack32.r16_unorm.general_optimal_linear,Fail
-dEQP-VK.glsl.builtin.precision.pow.highp.vec2,Fail
-dEQP-VK.glsl.builtin.precision.pow.highp.vec3,Fail
-dEQP-VK.glsl.builtin.precision.pow.highp.vec4,Fail
 dEQP-VK.glsl.texture_functions.query.texturequerylod.isampler2d_fragment,Fail
 dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler1d_fixed_fragment,Fail
 dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler1darray_float_fragment,Fail



More information about the mesa-commit mailing list