anv: add nir lowering pass for ycbcr textures
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Mon, 19 Jun 2017 15:56:47 +0000 (16:56 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 6 Oct 2017 15:32:19 +0000 (16:32 +0100)
commitf3e91e78a3377594f0ef40ba50abed04dc590623
tree39d77695e5f60bc9c38177da50282a3547107cf6
parent3492d560671c09a4d42630cbf51ceaefc99b9db6
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
src/intel/vulkan/anv_nir.h
src/intel/vulkan/anv_nir_lower_ycbcr_textures.c [new file with mode: 0644]
src/intel/vulkan/anv_pipeline.c
src/intel/vulkan/anv_private.h
src/intel/vulkan/meson.build