[Mesa-dev] [PATCH v2 00/16] ARB_gl_spirv series 3 v2: support for atomic counters

Timothy Arceri tarceri at itsqueeze.com
Tue Jul 3 00:29:43 UTC 2018


Series looks good to me. How much to go before we can turn this 
extension on?

On 03/07/18 00:58, Alejandro Piñeiro wrote:
> Hi Timothy. Thanks for the quick review!
> 
> As you suggested some squash and commit drops, Im resending the v2 of
> the series, just in case you want a final overview of the series
> (although it is somewhat an overkill, I know).
> 
> The only patch missing a review is "[PATCH 13/16] nir: Fix
> OpAtomicCounterIDecrement for uniform atomic counters"
> 
> As you suggested, the patch that added a utility to get the depth of
> multidimensional arrays was dropped. So "[PATCH 07/16] nir/spirv: Fix
> atomic counter (multidimensional-)arrays" is the patch that had more
> changes, although those were the changes you suggested.
> 
> The patches can be found here (rebased against today master).
> https://github.com/Igalia/mesa/tree/arb_gl_spirv-series3-atomics-counters-v2
> 
> Again, thanks for the quick review
> 
> Alejandro Piñeiro (10):
>    compiler/glsl: refactor empty_uniform_block utilities to linker_util
>    nir/linker: handle uniforms without explicit location
>    spirv/nir: SpvStorageClassAtomicCounter support on
>      vtn_storage_class_to_mode
>    spirv/nir: add offset at vtn_variable
>    nir_types: add glsl_atomic_uint_type() helper
>    spirv/nir: tweak nir type when storage class is
>      SpvStorageClassAtomicCounter
>    spirv/nir: initialize offset on the nir var at vtn_create_variable
>    spirv/nir: add atomic counter support on
>      vtn_handle_ssbo_or_shared_atomic
>    spirv/nir: add capability check for SpvCapabilityAtomicStorage
>    i965: enable AtomicStorage capability for gen7+
> 
> Antia Puentes (3):
>    nir/spirv: Fix atomic counter (multidimensional-)arrays
>    nir: Fix OpAtomicCounterIDecrement for uniform atomic counters
>    mesa/glspirv: lower workgroup access to offsets
> 
> Neil Roberts (3):
>    nir/types: Add wrappers for a couple of atomic counter methods
>    nir/linker: Add a pure NIR implementation of the atomic counter linker
>    i965: Use the new nir atomic counter linker for SPIR-V shaders
> 
>   src/compiler/Makefile.sources                |   1 +
>   src/compiler/glsl/gl_nir_link_atomics.c      | 282 +++++++++++++++++++++++++++
>   src/compiler/glsl/gl_nir_link_uniforms.c     |  64 +++++-
>   src/compiler/glsl/gl_nir_linker.h            |   3 +
>   src/compiler/glsl/gl_nir_lower_atomics.c     |   8 +-
>   src/compiler/glsl/glsl_to_nir.cpp            |   4 +-
>   src/compiler/glsl/link_uniforms.cpp          |  34 +---
>   src/compiler/glsl/linker.cpp                 |  19 +-
>   src/compiler/glsl/linker.h                   |  13 --
>   src/compiler/glsl/linker_util.cpp            |  55 ++++++
>   src/compiler/glsl/linker_util.h              |  21 ++
>   src/compiler/glsl/meson.build                |   1 +
>   src/compiler/nir/nir_intrinsics.py           |   3 +-
>   src/compiler/nir/nir_lower_atomics_to_ssbo.c |   8 +-
>   src/compiler/nir_types.cpp                   |  18 ++
>   src/compiler/nir_types.h                     |   4 +
>   src/compiler/shader_info.h                   |   1 +
>   src/compiler/spirv/spirv_to_nir.c            |  95 ++++++++-
>   src/compiler/spirv/vtn_private.h             |   1 +
>   src/compiler/spirv/vtn_variables.c           |  42 +++-
>   src/mesa/drivers/dri/i965/brw_context.c      |   1 +
>   src/mesa/drivers/dri/i965/brw_link.cpp       |   2 +
>   src/mesa/main/glspirv.c                      |   1 +
>   23 files changed, 599 insertions(+), 82 deletions(-)
>   create mode 100644 src/compiler/glsl/gl_nir_link_atomics.c
> 


More information about the mesa-dev mailing list