We currently have two dynamic array implementations in mesa.
One lives in nir, and is used in only one location, and the
other lives in galliums util directory. Let's merge these two,
so that we can get the best of both worlds.

This series uses the u_dynarray from gallium as the basis,
and merges in the nir_array's iterator and support for using
ralloc for memory handling. It then ports the user of nir_array,
and deletes it.

I have not tested this on freedreno, as I'm having some issues
building it. It seems to be the only user of u_dynarray that
I have not been able to at least build-test, so there might be
similar include-related issues as uncovered for nouveau.

I still have to do some thorough testing, but I tested a quick
run with shader-db, and there where no immediate crashes and
no ir validation failures, so that counts for something.

Let me know what you think. A disadvantage is the slightly
higher memory usage due to the extra pointer stored for the
ralloc mem_ctx compared to u_dynarray before this series.

Thomas Helland (7):
  gallium: Add missing includes
  util: Move u_dynarray to src/util
  util: Remove unused includes and convert to lower-case memory ops
  util: Port nir_array functionality to u_dynarray
  nir: Remove unused include
  nir: Port to u_dynarray and delete nir_array
  util: Add extern c to u_dynarray.h

 src/compiler/Makefile.sources                    |  1 -
 src/compiler/nir/nir_array.h                     | 99 ------------------------
 src/compiler/nir/nir_lower_locals_to_regs.c      |  1 -
 src/compiler/spirv/vtn_cfg.c                     |  6 +-
 src/compiler/spirv/vtn_private.h                 |  4 +-
 src/gallium/auxiliary/Makefile.sources           |  1 -
 src/gallium/drivers/freedreno/freedreno_batch.c  |  6 +-
 src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c |  3 +-
 src/gallium/drivers/nouveau/nv30/nvfx_vertprog.c |  3 +-
 src/gallium/drivers/nouveau/nv50/nv50_context.c  |  2 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_context.c  |  2 +-
 src/gallium/state_trackers/va/config.c           |  1 +
 src/gallium/state_trackers/va/postproc.c         |  1 +
 src/gallium/state_trackers/va/surface.c          |  2 +-
 src/util/Makefile.sources                        |  1 +
 src/{gallium/auxiliary => }/util/u_dynarray.h    | 72 ++++++++++++-----
 16 files changed, 70 insertions(+), 135 deletions(-)
 delete mode 100644 src/compiler/nir/nir_array.h
 rename src/{gallium/auxiliary => }/util/u_dynarray.h (70%)

-- 
2.13.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to