Add sqrt() builtin as an IR operation.
Following a discussion in #dri-devel, I think this makes more sense than implementing it as RSQ RCP CMP as Mesa did. The i965 has a hardware sqrt that should work, and AMD is suppposed to be able to implement it as RSQ RCP with an alternate floating point mode so that the 0.0 case is handled like we want.
This commit is contained in:
committed by
Ian Romanick
parent
ddd2e83db2
commit
44d68fd06f
@@ -84,6 +84,14 @@ generate_rsq(exec_list *instructions,
|
||||
generate_unop(instructions, declarations, type, ir_unop_rsq);
|
||||
}
|
||||
|
||||
static void
|
||||
generate_sqrt(exec_list *instructions,
|
||||
ir_variable **declarations,
|
||||
const glsl_type *type)
|
||||
{
|
||||
generate_unop(instructions, declarations, type, ir_unop_sqrt);
|
||||
}
|
||||
|
||||
static void
|
||||
generate_abs(exec_list *instructions,
|
||||
ir_variable **declarations,
|
||||
@@ -227,7 +235,7 @@ generate_110_functions(glsl_symbol_table *symtab, exec_list *instructions)
|
||||
make_gentype_function(symtab, instructions, "log", 1, generate_log);
|
||||
/* FINISHME: exp2() */
|
||||
/* FINISHME: log2() */
|
||||
/* FINISHME: sqrt() */
|
||||
make_gentype_function(symtab, instructions, "sqrt", 1, generate_sqrt);
|
||||
make_gentype_function(symtab, instructions, "inversesqrt", 1, generate_rsq);
|
||||
make_gentype_function(symtab, instructions, "abs", 1, generate_abs);
|
||||
/* FINISHME: sign() */
|
||||
|
||||
Reference in New Issue
Block a user