Mesa (master): nir: fix lower_wpos for 16-bit fddy

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 2 20:25:45 UTC 2020


Module: Mesa
Branch: master
Commit: a6916d1ce823439d7de752b2f2013e9b3e434d82
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a6916d1ce823439d7de752b2f2013e9b3e434d82

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon May 11 02:56:47 2020 -0400

nir: fix lower_wpos for 16-bit fddy

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5002>

---

 src/compiler/nir/nir_lower_wpos_ytransform.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/compiler/nir/nir_lower_wpos_ytransform.c b/src/compiler/nir/nir_lower_wpos_ytransform.c
index d0a694f889b..2771f2afede 100644
--- a/src/compiler/nir/nir_lower_wpos_ytransform.c
+++ b/src/compiler/nir/nir_lower_wpos_ytransform.c
@@ -267,8 +267,11 @@ lower_fddy(lower_wpos_ytransform_state *state, nir_alu_instr *fddy)
    b->cursor = nir_before_instr(&fddy->instr);
 
    p = nir_ssa_for_alu_src(b, fddy, 0);
-   trans = get_transform(state);
-   pt = nir_fmul(b, p, nir_channel(b, trans, 0));
+   trans = nir_channel(b, get_transform(state), 0);
+   if (p->bit_size == 16)
+      trans = nir_f2f16(b, trans);
+
+   pt = nir_fmul(b, p, trans);
 
    nir_instr_rewrite_src(&fddy->instr,
                          &fddy->src[0].src,



More information about the mesa-commit mailing list