<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 7, 2018 at 11:14 AM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tuesday, February 6, 2018 5:09:10 PM PST Anuj Phogat wrote:<br>
> From Message Descriptor section in gfxspecs:<br>
>  "Memory fence messages without Commit Enable set do not return<br>
>   anything to the thread (response length is 0 and destination<br>
>   register is null)."<br>
><br>
> It fixes a piglit GPU hang in simulation environment.<br>
> Piglit test: arb_shader_image_load_store-<wbr>shader-mem-barrier<br>
><br>
> Signed-off-by: Anuj Phogat <<a href="mailto:anuj.phogat@gmail.com">anuj.phogat@gmail.com</a>><br>
> Cc: <a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.freedesktop.<wbr>org</a><br>
> ---<br>
>  src/intel/compiler/brw_eu_<wbr>emit.c | 8 +++++++-<br>
>  1 file changed, 7 insertions(+), 1 deletion(-)<br>
><br>
> diff --git a/src/intel/compiler/brw_eu_<wbr>emit.c b/src/intel/compiler/brw_eu_<wbr>emit.c<br>
> index 1fb9aab51c..c66b813af8 100644<br>
> --- a/src/intel/compiler/brw_eu_<wbr>emit.c<br>
> +++ b/src/intel/compiler/brw_eu_<wbr>emit.c<br>
> @@ -3290,7 +3290,13 @@ brw_memory_fence(struct brw_codegen *p,<br>
>      */<br>
>     insn = next_insn(p, BRW_OPCODE_SEND);<br>
>     dst = retype(dst, BRW_REGISTER_TYPE_UW);<br>
> -   brw_set_dest(p, insn, dst);<br>
> +<br>
> +  /* From Message Descriptor section in gfxspecs:<br>
> +        "Memory fence messages without Commit Enable set do not return<br>
> +         anything to the thread (response length is 0 and destination<br>
> +         register is null).<br>
> +   */<br>
> +   brw_set_dest(p, insn, retype(vec1(brw_null_reg()), BRW_REGISTER_TYPE_UW));<br>
>     brw_set_src0(p, insn, dst);<br>
>     brw_set_memory_fence_message(<wbr>p, insn, GEN7_SFID_DATAPORT_DATA_CACHE,<br>
>                                  commit_enable);<br>
><br>
<br>
</div></div>This seems wrong - it looks like you're doing this for messages with<br>
commit enable set, which do return things...<br>
<br></blockquote><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">​Right. I've to check for commit_enable to use null or non-null destination</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">here. I'll send out a v2.</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;display:inline">​</div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Cc'ing Curro.<br>
</blockquote></div><br></div></div>