<p dir="ltr"></p>
<p dir="ltr">On Jul 18, 2016 3:49 PM, "Kenneth Graunke" <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>> wrote:<br>
><br>
> Signed-off-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
> ---<br>
>  src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 15 +++++++++++++--<br>
>  1 file changed, 13 insertions(+), 2 deletions(-)<br>
><br>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp<br>
> index 6265dc6..a39c37e 100644<br>
> --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp<br>
> +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp<br>
> @@ -4177,13 +4177,24 @@ fs_visitor::nir_emit_shared_atomic(const fs_builder &bld,<br>
>        dest = get_nir_dest(instr->dest);<br>
><br>
>     fs_reg surface = brw_imm_ud(GEN7_BTI_SLM);<br>
> -   fs_reg offset = get_nir_src(instr->src[0]);<br>
> +   fs_reg offset;<br>
>     fs_reg data1 = get_nir_src(instr->src[1]);<br>
>     fs_reg data2;<br>
>     if (op == BRW_AOP_CMPWR)<br>
>        data2 = get_nir_src(instr->src[2]);<br>
><br>
> -   /* Emit the actual atomic operation operation */<br>
> +   /* Get the offset */<br>
> +   nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);<br>
> +   if (const_offset) {<br>
> +      offset = brw_imm_ud(instr->const_index[0] + const_offset->u32[0]);</p>
<p dir="ltr">Should we be using nir_intrinsic_base here instead of accessing the const_index directly?</p>
<p dir="ltr">> +   } else {<br>
> +      offset = vgrf(glsl_type::uint_type);<br>
> +      bld.ADD(offset,<br>
> +             retype(get_nir_src(instr->src[0]), BRW_REGISTER_TYPE_UD),<br>
> +             brw_imm_ud(instr->const_index[0]));</p>
<p dir="ltr">Same here</p>
<p dir="ltr">> +   }<br>
> +<br>
> +   /* Emit the actua atomic operation operation */<br>
><br>
>     fs_reg atomic_result = emit_untyped_atomic(bld, surface, offset,<br>
>                                                data1, data2,<br>
> --<br>
> 2.9.0<br>
><br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br></p>