<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Nov 26, 2018 at 2:08 PM Francisco Jerez <<a href="mailto:currojerez@riseup.net">currojerez@riseup.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Jason Ekstrand <<a href="mailto:jason@jlekstrand.net" target="_blank">jason@jlekstrand.net</a>> writes:<br>
<br>
> ---<br>
>  src/intel/compiler/brw_shader.cpp | 12 ++++++++++++<br>
>  1 file changed, 12 insertions(+)<br>
><br>
> diff --git a/src/intel/compiler/brw_shader.cpp b/src/intel/compiler/brw_shader.cpp<br>
> index 34b8f3acf93..5cb91e0dce9 100644<br>
> --- a/src/intel/compiler/brw_shader.cpp<br>
> +++ b/src/intel/compiler/brw_shader.cpp<br>
> @@ -1007,6 +1007,18 @@ backend_instruction::has_side_effects() const<br>
>     case SHADER_OPCODE_SEND:<br>
>        return send_has_side_effects;<br>
>  <br>
> +   case SHADER_OPCODE_TYPED_SURFACE_READ:<br>
> +   case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:<br>
> +   case SHADER_OPCODE_UNTYPED_SURFACE_READ:<br>
> +   case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:<br>
> +   case SHADER_OPCODE_BYTE_SCATTERED_READ:<br>
> +   case SHADER_OPCODE_BYTE_SCATTERED_READ_LOGICAL:<br>
> +      /* The back-end compilers don't know how to properly re-order reads with<br>
> +       * respect to writes.  In order to prevent accidental re-ordering and<br>
> +       * CSE, flag them as having side-effects.<br>
> +       */<br>
> +      return true;<br>
> +<br>
<br>
Why would that be necessary?  Don't surface writes and atomics act as a<br>
scheduling barrier?<br></blockquote><div><br></div><div>Yes, they do.  Looking a bit more, I just found is_volatile() which is actually what I want.  It does, indeed, return true for these but not for the new SEND opcode I added.  That explains why things haven't exploded before.  Thanks!  I'll fix the send opcode.  Feel free to disregard this patch.<br></div><div><br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
>     case SHADER_OPCODE_UNTYPED_ATOMIC:<br>
>     case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:<br>
>     case SHADER_OPCODE_UNTYPED_ATOMIC_FLOAT:<br>
> -- <br>
> 2.19.1<br>
><br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div></div>