Den tir. 11. sep. 2018 kl. 01:30 skrev Ian Romanick <i...@freedesktop.org>:
>
> From: Ian Romanick <ian.d.roman...@intel.com>
>
> No shader-db or CI changes on any Intel platform.
>

I'm no expert on the intel backend, but this seems trivial enough.

Reviewed-by: Thomas Helland<thomashellan...@gmail.com>

> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
> ---
>  src/intel/compiler/brw_fs_nir.cpp   | 14 +-------------
>  src/intel/compiler/brw_vec4_nir.cpp | 12 ++----------
>  2 files changed, 3 insertions(+), 23 deletions(-)
>
> diff --git a/src/intel/compiler/brw_fs_nir.cpp 
> b/src/intel/compiler/brw_fs_nir.cpp
> index 7f453d75b64..12b087a5ec0 100644
> --- a/src/intel/compiler/brw_fs_nir.cpp
> +++ b/src/intel/compiler/brw_fs_nir.cpp
> @@ -842,6 +842,7 @@ fs_visitor::nir_emit_alu(const fs_builder &bld, 
> nir_alu_instr *instr)
>        break;
>
>     case nir_op_fsign: {
> +      assert(!instr->dest.saturate);
>        if (op[0].abs) {
>           /* Straightforward since the source can be assumed to be either
>            * strictly >= 0 or strictly <= 0 depending on the setting of the
> @@ -854,10 +855,6 @@ fs_visitor::nir_emit_alu(const fs_builder &bld, 
> nir_alu_instr *instr)
>              : bld.MOV(result, brw_imm_f(1.0f));
>
>           set_predicate(BRW_PREDICATE_NORMAL, inst);
> -
> -         if (instr->dest.saturate)
> -            inst->saturate = true;
> -
>        } else if (type_sz(op[0].type) < 8) {
>           /* AND(val, 0x80000000) gives the sign bit.
>            *
> @@ -873,10 +870,6 @@ fs_visitor::nir_emit_alu(const fs_builder &bld, 
> nir_alu_instr *instr)
>
>           inst = bld.OR(result_int, result_int, brw_imm_ud(0x3f800000u));
>           inst->predicate = BRW_PREDICATE_NORMAL;
> -         if (instr->dest.saturate) {
> -            inst = bld.MOV(result, result);
> -            inst->saturate = true;
> -         }
>        } else {
>           /* For doubles we do the same but we need to consider:
>            *
> @@ -897,11 +890,6 @@ fs_visitor::nir_emit_alu(const fs_builder &bld, 
> nir_alu_instr *instr)
>
>           set_predicate(BRW_PREDICATE_NORMAL,
>                         bld.OR(r, r, brw_imm_ud(0x3ff00000u)));
> -
> -         if (instr->dest.saturate) {
> -            inst = bld.MOV(result, result);
> -            inst->saturate = true;
> -         }
>        }
>        break;
>     }
> diff --git a/src/intel/compiler/brw_vec4_nir.cpp 
> b/src/intel/compiler/brw_vec4_nir.cpp
> index 124714b59de..eaf1754b006 100644
> --- a/src/intel/compiler/brw_vec4_nir.cpp
> +++ b/src/intel/compiler/brw_vec4_nir.cpp
> @@ -1818,6 +1818,7 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
>        unreachable("not reached: should have been lowered");
>
>     case nir_op_fsign:
> +      assert(!instr->dest.saturate);
>        if (op[0].abs) {
>           /* Straightforward since the source can be assumed to be either
>            * strictly >= 0 or strictly <= 0 depending on the setting of the
> @@ -1830,10 +1831,6 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
>              ? emit(MOV(dst, brw_imm_f(-1.0f)))
>              : emit(MOV(dst, brw_imm_f(1.0f)));
>           inst->predicate = BRW_PREDICATE_NORMAL;
> -
> -         if (instr->dest.saturate)
> -            inst->saturate = true;
> -
>         } else if (type_sz(op[0].type) < 8) {
>           /* AND(val, 0x80000000) gives the sign bit.
>            *
> @@ -1849,11 +1846,6 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
>           inst = emit(OR(dst, src_reg(dst), brw_imm_ud(0x3f800000u)));
>           inst->predicate = BRW_PREDICATE_NORMAL;
>           dst.type = BRW_REGISTER_TYPE_F;
> -
> -         if (instr->dest.saturate) {
> -            inst = emit(MOV(dst, src_reg(dst)));
> -            inst->saturate = true;
> -         }
>        } else {
>           /* For doubles we do the same but we need to consider:
>            *
> @@ -1886,7 +1878,7 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
>           /* Now convert the result from float to double */
>           emit_conversion_to_double(dst, retype(src_reg(tmp),
>                                                 BRW_REGISTER_TYPE_F),
> -                                   instr->dest.saturate);
> +                                   false);
>        }
>        break;
>
> --
> 2.14.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to