[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