On Tuesday, March 17, 2015 07:17:19 PM Jason Ekstrand wrote:
> ---
> src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> index 5da8423..41f9ae2 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
> @@ -1234,7 +1234,13 @@ fs_visitor::nir_emit_alu(nir_alu_instr *instr)
> break;
>
> case nir_op_ffma:
> - inst = emit(MAD(result, op[2], op[1], op[0]));
> + if (brw->gen >= 6) {
> + inst = emit(MAD(result, op[2], op[1], op[0]));
> + } else {
> + fs_reg temp = vgrf(glsl_type::float_type);
> + emit(MUL(temp, op[0], op[1]));
> + inst = emit(ADD(result, temp, op[2]));
> + }
> inst->saturate = instr->dest.saturate;
> break;
>
> I think this is a reasonable plan for now - it's simple and works. Connor is probably right that we can do better with nir_opt_algebraic, but I think doing that as a follow-on patch justified by statistics would be wise. Patches 3-6 are: Reviewed-by: Kenneth Graunke <[email protected]>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
