[Mesa-dev] [PATCH] spirv: fix AtomicLoad/Store on images

Lionel Landwerlin lionel.g.landwerlin at intel.com
Mon Sep 19 17:04:45 UTC 2016


On 19/09/16 18:02, Jason Ekstrand wrote:
>
> This looks good to me.
>
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net 
> <mailto:jason at jlekstrand.net>>
>
> Do we have tests for this? If not, we should write some.  I know there 
> are other image atomic tests in the CTS. They shouldn't be hard to extend.
>

Not that I saw. I'll add some.


>
> On Sep 19, 2016 9:36 AM, "Lionel Landwerlin" <llandwerlin at gmail.com 
> <mailto:llandwerlin at gmail.com>> wrote:
>
>     OpAtomicLoad/Store should have pointer to images just like the
>     rest of the
>     atomic operators. These couple of lines were poorly copied from the
>     ssbo/shared_vars cases (the only ones currently tests by the CTS).
>
>     Fixes 2afb950161f847d9b0a7 "spirv/nir: Add support for
>     OpAtomicLoad/Store"
>     Cc: Timothy Arceri <timothy.arceri at collabora.com
>     <mailto:timothy.arceri at collabora.com>>
>     Cc: Jason Ekstrand <jason at jlekstrand.net
>     <mailto:jason at jlekstrand.net>>
>     ---
>      src/compiler/spirv/spirv_to_nir.c | 13 +++----------
>      1 file changed, 3 insertions(+), 10 deletions(-)
>
>     diff --git a/src/compiler/spirv/spirv_to_nir.c
>     b/src/compiler/spirv/spirv_to_nir.c
>     index 49338b2..12b43ee 100644
>     --- a/src/compiler/spirv/spirv_to_nir.c
>     +++ b/src/compiler/spirv/spirv_to_nir.c
>     @@ -1671,6 +1671,7 @@ vtn_handle_image(struct vtn_builder *b,
>     SpvOp opcode,
>         case SpvOpAtomicIDecrement:
>         case SpvOpAtomicIAdd:
>         case SpvOpAtomicISub:
>     +   case SpvOpAtomicLoad:
>         case SpvOpAtomicSMin:
>         case SpvOpAtomicUMin:
>         case SpvOpAtomicSMax:
>     @@ -1681,17 +1682,9 @@ vtn_handle_image(struct vtn_builder *b,
>     SpvOp opcode,
>            image = *vtn_value(b, w[3],
>     vtn_value_type_image_pointer)->image;
>            break;
>
>     -   case SpvOpAtomicLoad: {
>     -      image.image =
>     -         vtn_value(b, w[3],
>     vtn_value_type_access_chain)->access_chain;
>     -      break;
>     -   }
>     -
>     -   case SpvOpAtomicStore: {
>     -      image.image =
>     -         vtn_value(b, w[1],
>     vtn_value_type_access_chain)->access_chain;
>     +   case SpvOpAtomicStore:
>     +      image = *vtn_value(b, w[1],
>     vtn_value_type_image_pointer)->image;
>            break;
>     -   }
>
>         case SpvOpImageQuerySize:
>            image.image =
>     --
>     2.9.3
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160919/fc091153/attachment.html>


More information about the mesa-dev mailing list