[Mesa-dev] [PATCH 00/19] AMD support for NIR deref instructions.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Sun May 13 00:19:54 UTC 2018


This implements support in radv and radeonsi for NIR deref
instructions instead of deref chains.

It contains 4 parts:
- patch 1 is a fixup for the initial series by Jason
- Add support everywhere for instruction based derefs
- Stop lowering them to deref chains (may need to be synchronized
  with other drivers and core nir code to keep things bisectable)
- Remove support for deref chains.

You can find this series at

https://github.com/bnieuwenhuizen/mesa/commits/derefs-v1


Bas Nieuwenhuizen (19):
  fixup! anv,i965,radv,st,ir3: Call nir_lower_deref_instrs
  ac/nir: Implement the deref instr for shared memory.
  ac/nir: Support deref instructions in get_sampler_desc.
  ac/nir: Support deref instructions in tex instructions.
  ac/nir: Implement derefs for integer gather4 lowering.
  ac/nir: Add deref support to image intrinsics.
  radv: Add shader info support for image deref instructions.
  ac/nir: Add deref based var loads/stores.
  radv: Gather info for deref instr based load/store.
  ac/nir: Add shared atomic deref instr support.
  ac/nir: Add deref interp support.
  radv: Use deref instructions for tex derefs in meta shaders.
  radv: Remove image_var stores.
  radeonsi: Add deref support to the nir scan pass.
  radv: Stop lowering deref instructions.
  st/nir: Stop lowering deref instructions.
  ac/nir: Remove deref chain support.
  radv: Remove deref chain support in radv shader info pass.
  radeonsi: Remove deref chain support in nir scan pass.

 src/amd/common/ac_nir_to_llvm.c              | 547 ++++++++++---------
 src/amd/vulkan/radv_meta.c                   |  20 +-
 src/amd/vulkan/radv_meta_blit.c              |  30 +-
 src/amd/vulkan/radv_meta_blit2d.c            |  21 +-
 src/amd/vulkan/radv_meta_bufimage.c          |  62 ++-
 src/amd/vulkan/radv_meta_fast_clear.c        |  17 +-
 src/amd/vulkan/radv_meta_resolve_cs.c        |  10 +-
 src/amd/vulkan/radv_shader.c                 |   2 -
 src/amd/vulkan/radv_shader_info.c            | 133 ++---
 src/gallium/drivers/radeonsi/si_shader_nir.c |  72 ++-
 src/mesa/state_tracker/st_glsl_to_nir.cpp    |   2 -
 11 files changed, 491 insertions(+), 425 deletions(-)

-- 
2.17.0



More information about the mesa-dev mailing list