anv: add nir lowering pass for ycbcr textures
This pass implements all the implicit conversions required by the VK_KHR_sampler_ycbcr_conversion specification. It also inserts plane sources onto sampling instructions that we then let the pipeline layout pass deal with, when mapping things correctly to descriptors. v2: Add new file to meson build (Lionel) Use nir_frcp() rather than (1.0f / x) (Jason) Reuse nir_tex_instr_dest_size() rather than handwritten one (Jason) Return progress (Jason) Account for array of samplers (Jason) Signed-off-by:Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
- src/intel/Makefile.sources 1 addition, 0 deletionssrc/intel/Makefile.sources
- src/intel/vulkan/anv_nir.h 3 additions, 0 deletionssrc/intel/vulkan/anv_nir.h
- src/intel/vulkan/anv_nir_lower_ycbcr_textures.c 475 additions, 0 deletionssrc/intel/vulkan/anv_nir_lower_ycbcr_textures.c
- src/intel/vulkan/anv_pipeline.c 2 additions, 0 deletionssrc/intel/vulkan/anv_pipeline.c
- src/intel/vulkan/anv_private.h 14 additions, 2 deletionssrc/intel/vulkan/anv_private.h
- src/intel/vulkan/meson.build 1 addition, 0 deletionssrc/intel/vulkan/meson.build