From 00cd455bd50c6b16b2f72a6d2726de3d3818c7f5 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 11 Jul 2013 12:16:06 -0400 Subject: gallium: fixup definitions of the rsq and sqrt GLSL spec says that rsq is undefined for src<=0, but the D3D10 spec says it needs to be a NaN, so lets stop taking an absolute value of the source which completely breaks that behavior. For the gl program we can simply insert an extra abs instrunction which produces the desired behavior there. Signed-off-by: Zack Rusin Reviewed-by: Roland Scheidegger Reviewed-by: Brian Paul --- src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/gallium/auxiliary/gallivm') diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c index 68bd1243ece..e99c8ef134e 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c @@ -633,8 +633,6 @@ rsq_emit( struct lp_build_tgsi_context * bld_base, struct lp_build_emit_data * emit_data) { - emit_data->args[0] = lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_ABS, - emit_data->args[0]); if (bld_base->rsq_action.emit) { bld_base->rsq_action.emit(&bld_base->rsq_action, bld_base, emit_data); } else { @@ -1349,9 +1347,6 @@ rcp_emit_cpu( } /* Reciprical squareroot (CPU Only) */ - -/* This is not the same as TGSI_OPCODE_RSQ, which requres the argument to be - * greater than or equal to 0 */ static void recip_sqrt_emit_cpu( const struct lp_build_tgsi_action * action, -- cgit v1.2.3