[Mesa-dev] [PATCH v3 17/43] i965/fs: Enable rounding mode on f2f16 ops

Chema Casanova jmcasanova at igalia.com
Thu Nov 2 15:35:32 UTC 2017



El 30/10/17 a las 23:40, Jason Ekstrand escribió:
> On Thu, Oct 12, 2017 at 11:38 AM, Jose Maria Casanova Crespo
> <jmcasanova at igalia.com <mailto:jmcasanova at igalia.com>> wrote:
>
>     From: Alejandro Piñeiro <apinheiro at igalia.com
>     <mailto:apinheiro at igalia.com>>
>
>     By default we don't set the rounding mode. We only set
>     round-to-near-even or round-to-zero mode if explicitly set from nir.
>
>     v2: Use a single SHADER_OPCODE_RND_MODE opcode taking an immediate
>         with the rounding mode (Curro)
>
>     Signed-off-by: Jose Maria Casanova Crespo <jmcasanova at igalia.com
>     <mailto:jmcasanova at igalia.com>>
>     Signed-off-by: Alejandro Piñeiro <apinheiro at igalia.com
>     <mailto:apinheiro at igalia.com>>
>     ---
>      src/intel/compiler/brw_fs_nir.cpp | 8 ++++++++
>      1 file changed, 8 insertions(+)
>
>     diff --git a/src/intel/compiler/brw_fs_nir.cpp
>     b/src/intel/compiler/brw_fs_nir.cpp
>     index 6908c7ea02..b356836e80 100644
>     --- a/src/intel/compiler/brw_fs_nir.cpp
>     +++ b/src/intel/compiler/brw_fs_nir.cpp
>     @@ -693,6 +693,14 @@ fs_visitor::nir_emit_alu(const fs_builder
>     &bld, nir_alu_instr *instr)
>            inst->saturate = instr->dest.saturate;
>            break;
>
>     +   case nir_op_f2f16_rtne:
>     +   case nir_op_f2f16_rtz:
>     +      if (instr->op == nir_op_f2f16_rtz)
>     +         bld.emit(SHADER_OPCODE_RND_MODE, bld.null_reg_ud(),
>     brw_imm_d(BRW_RND_MODE_RTZ));
>     +      else if (instr->op == nir_op_f2f16_rtne)
>     +         bld.emit(SHADER_OPCODE_RND_MODE, bld.null_reg_ud(),
>     brw_imm_d(BRW_RND_MODE_RTNE));
>     +      /* fallthrough */
>
>
> It might look a little nicer (though it's more lines of code) to have
> a little brw_from_nir_rounding_mode helper and then we could have just
> the one emit call.  I don't care too much though.

I agree, and it could simplify if we want to enable other rounding modes
supported by the hardware in the future.

>  
>
>     +
>            /* In theory, it would be better to use BRW_OPCODE_F32TO16.
>     Depending
>             * on the HW gen, it is a special hw opcode or just a MOV, and
>             * brw_F32TO16 (at brw_eu_emit) would do the work to chose.
>     --
>     2.13.6
>
>     _______________________________________________
>     mesa-dev mailing list
>     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>     <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
>
>
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list