[Mesa-dev] [PATCH 05/11] intel/compiler: Use null destination register for memory fence messages

Kenneth Graunke kenneth at whitecape.org
Wed Mar 21 22:01:15 UTC 2018


On Wednesday, March 21, 2018 2:06:16 PM PDT Matt Turner wrote:
> From Message Descriptor section in gfxspecs:
> 
>   "Memory fence messages without Commit Enable set do not return
>    anything to the thread (response length is 0 and destination
>    register is null)."
> 
> This fixes a GPU hang in simulation in the piglit test
> arb_shader_image_load_store-shader-mem-barrier
> 
> The mem fence message doesn't send any data, and previously we were
> setting the SEND's src0 to the same register as the destination. I've
> kept that behavior, so src0 will now be the null register in a number of
> cases, necessitating a few changes in the EU validator. The simulator
> and real hardware seem to be okay with this.
> ---
>  src/intel/compiler/brw_eu_emit.c        |  4 ++--
>  src/intel/compiler/brw_eu_validate.c    | 13 +++++++++++--
>  src/intel/compiler/brw_fs_nir.cpp       | 14 +++++++++++---
>  src/intel/compiler/test_eu_validate.cpp |  9 +++++++++
>  4 files changed, 33 insertions(+), 7 deletions(-)

NAK on using NULL registers as SEND message sources.  It won't end well.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180321/38f66eab/attachment-0001.sig>


More information about the mesa-dev mailing list