blorp: allow blits with floating point source layers
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 15 Sep 2020 18:40:51 +0000 (21:40 +0300)
committerMarge Bot <eric+marge@anholt.net>
Thu, 22 Oct 2020 15:46:51 +0000 (15:46 +0000)
commit87934f02f9da94f1a493096049c229b973e4785c
tree1e9993cb3ca5f29d750ddd7eebe066b3ccc5ac8b
parente067078fcd2820bf9e1f805f35d9d913acf90f69
blorp: allow blits with floating point source layers

The current blorp API only allows source layers for 3D images to be
integers. That is causing problems with the Vulkan API where we need
to be able to use a 3D layer that could be in between 2 layers.

This change allows a floating point value to be passed for blits and
internally sets up the input parameters to pass floating point values
to kernels.

v2: Use tex op to determinate what types are the coordinates (Jason)
    Drop setting params->z (Lionel)

v3: Fix nir_texop_txf_ms_mcs op not considered as having integer coords (Lionel)

v4: Fix incorrect test on nir_texop_txf_ms_mcs (Ivan)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3458
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6909>
src/intel/blorp/blorp.c
src/intel/blorp/blorp.h
src/intel/blorp/blorp_blit.c
src/intel/blorp/blorp_priv.h