projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
17078d9
)
st/nine: Remove usage of SQRT in ff code
author
Axel Davy
<axel.davy@ens.fr>
Sat, 6 Feb 2016 18:55:54 +0000
(19:55 +0100)
committer
Axel Davy
<axel.davy@ens.fr>
Fri, 12 Feb 2016 22:26:36 +0000
(23:26 +0100)
SQRT is not supported everywhere, so replace
it by RSQ + MUL and handle case <= 0.
Signed-off-by: Axel Davy <axel.davy@ens.fr>
src/gallium/state_trackers/nine/nine_ff.c
patch
|
blob
|
history
diff --git
a/src/gallium/state_trackers/nine/nine_ff.c
b/src/gallium/state_trackers/nine/nine_ff.c
index a5466a7bdd4d00d92cac48a54f805b880de0fc09..e79d0b4f8811cc0f703fa1dbfef769191c4e1f0e 100644
(file)
--- a/
src/gallium/state_trackers/nine/nine_ff.c
+++ b/
src/gallium/state_trackers/nine/nine_ff.c
@@
-563,7
+563,9
@@
nine_ff_build_vs(struct NineDevice9 *device, struct vs_build_ctx *vs)
struct ureg_src cPsz2 = ureg_DECL_constant(ureg, 27);
ureg_DP3(ureg, tmp_x, ureg_src(r[1]), ureg_src(r[1]));
- ureg_SQRT(ureg, tmp_y, _X(tmp));
+ ureg_RSQ(ureg, tmp_y, _X(tmp));
+ ureg_MUL(ureg, tmp_y, _Y(tmp), _X(tmp));
+ ureg_CMP(ureg, tmp_y, ureg_negate(_Y(tmp)), _Y(tmp), ureg_imm1f(ureg, 0.0f));
ureg_MAD(ureg, tmp_x, _Y(tmp), _YYYY(cPsz2), _XXXX(cPsz2));
ureg_MAD(ureg, tmp_x, _Y(tmp), _X(tmp), _WWWW(cPsz1));
ureg_RCP(ureg, tmp_x, ureg_src(tmp));