[Mesa-dev] [PATCH 00/18] nir/spirv: Rework UBOs, SSBOs, and pointers

Connor Abbott cwabbott0 at gmail.com
Fri Jun 30 22:32:37 UTC 2017


Aside from one small comment on patch 18, the series is:

Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

On Thu, Jun 29, 2017 at 10:33 AM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> This rework has been on my ToDo list for a long time.  The real crowning
> patch is patch 12 which makes us compute offsets to UBOs and SSBOs on the
> fly instead of waiting until we have the full access chain.  In theory, we
> could do something similar for images and textures where we pass around the
> resource index instead using derefs.
>
> Along with the change for UBOs and SSBOs are advances to the vtn type
> system which make it much easier to handle pointers.  One example of this
> improvement is patch 18 where we rework function handling a bit.  Before,
> we had a bunch of magic to make SSA and pointer parameters work.  For SSA
> parameters, We would make everything pointers (because that's what they are
> in NIR) and then vtn_ssa_value would automatically do a load when called on
> a pointer value.  Instead of that, we now handle the two cases explicitly
> so it's a lot more clear exactly what's going on.
>
> Jason Ekstrand (18):
>   nir/spirv: Move a "}"
>   nir/spirv: Use the type from the deref for atomics
>   nir/spirv: Add a storage_class_to_mode helper
>   nir/spirv: Split up Uniform and UniformConstant storage classes
>   nir/spirv: Rename some things from access_chain to pointer
>   nir/spirv: Wrap access chains in a new vtn_pointer data structure
>   nir/spirv: Use the correct stride for non-32-bit vectors
>   nir/spirv: Simplify matrix loads/stores
>   nir/spirv: Remove unneeded parameters from pointer_to_offset
>   nir/spirv: Break variable creation out into a helper
>   nir/spirv: Rework the way pointers get dereferenced
>   nir/spirv: Compute offsets for UBOs and SSBOs up-front
>   nir/spirv: Simplify type copying
>   nir/spirv: Compact vtn_type
>   nir/spirv: Beef up the type system a bit
>   nir/spirv: Stop using glsl_type for function types
>   nir/spirv: Use real pointer types
>   nir/spirv: Rework function argument setup
>
>  src/compiler/spirv/spirv_to_nir.c  |  230 ++++----
>  src/compiler/spirv/vtn_cfg.c       |   84 +--
>  src/compiler/spirv/vtn_private.h   |  175 ++++--
>  src/compiler/spirv/vtn_variables.c | 1085 ++++++++++++++++++++----------------
>  4 files changed, 916 insertions(+), 658 deletions(-)
>
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list