On 2016-05-27 14:05:29, Jason Ekstrand wrote:
>    On Fri, May 27, 2016 at 11:24 AM, Jordan Justen
>    <jordan.l.jus...@intel.com> wrote:
> 
>      v2:
>       * simd16/32 fixes (curro)
> 
>      Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
>      ---
>       src/compiler/nir/nir_intrinsics.h        |  1 +
>       src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 15 +++++++++++++++
>       2 files changed, 16 insertions(+)
> 
>      diff --git a/src/compiler/nir/nir_intrinsics.h
>      b/src/compiler/nir/nir_intrinsics.h
>      index aeb6038..6f86c9f 100644
>      --- a/src/compiler/nir/nir_intrinsics.h
>      +++ b/src/compiler/nir/nir_intrinsics.h
>      @@ -304,6 +304,7 @@ SYSTEM_VALUE(work_group_id, 3, 0, xx, xx, xx)
>       SYSTEM_VALUE(user_clip_plane, 4, 1, UCP_ID, xx, xx)
>       SYSTEM_VALUE(num_work_groups, 3, 0, xx, xx, xx)
>       SYSTEM_VALUE(helper_invocation, 1, 0, xx, xx, xx)
>      +SYSTEM_VALUE(channel_num, 1, 0, xx, xx, xx)
> 
>    Might be good to make this channel_num_i965 since it is back-end specific.
>     

I assumed that the intrinsic could potentially be implemented on other
hardware, and they might similarly find an interesting use case for
the value. Would an alternate name make it generic enough to not need
to add i965 into the name?

-Jordan

> 
>       /*
>        * Load operations pull data from some piece of GPU memory.  All load
>      diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
>      b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
>      index 954bfab..c9e4b3c 100644
>      --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
>      +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
>      @@ -3881,6 +3881,21 @@ fs_visitor::nir_emit_intrinsic(const fs_builder
>      &bld, nir_intrinsic_instr *instr
>             break;
>          }
> 
>      +   case nir_intrinsic_load_channel_num: {
>      +      fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UW);
>      +      dest = retype(dest, BRW_REGISTER_TYPE_UD);
>      +      const fs_builder allbld8 = bld.group(8, 0).exec_all();
>      +      allbld8.MOV(tmp, brw_imm_v(0x76543210));
>      +      if (dispatch_width > 8)
>      +         allbld8.ADD(byte_offset(tmp, 16), tmp, brw_imm_uw(8u));
>      +      if (dispatch_width > 16) {
>      +         const fs_builder allbld16 = bld.group(16, 0).exec_all();
>      +         allbld16.ADD(byte_offset(tmp, 32), tmp, brw_imm_uw(16u));
>      +      }
>      +      bld.MOV(dest, tmp);
>      +      break;
>      +   }
>      +
>          default:
>             unreachable("unknown intrinsic");
>          }
>      --
>      2.8.1
> 
>      _______________________________________________
>      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