nir/lower_tex: Add a way to lower TXS(non-0-LOD) instructions
authorBoris Brezillon <boris.brezillon@collabora.com>
Mon, 17 Jun 2019 09:43:13 +0000 (11:43 +0200)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 18 Jun 2019 13:36:07 +0000 (06:36 -0700)
commit296c5fd25db15a535920fc43deea2b279e11c5d6
treeb480fda93f31856e74636bfa4cb4d3c7b9659024
parent0e489fd36061352e79cb4fb90f71f1b901211452
nir/lower_tex: Add a way to lower TXS(non-0-LOD) instructions

The V3D driver has an open-coded solution for this, and we need the
same thing for Panfrost, so let's add a generic way to lower TXS(LOD)
into max(TXS(0) >> LOD, 1).

Changes in v2:
* Use == 0 instead of !
* Rework the minification logic as suggested by Jason
* Assign cursor pos at the beginning of the function
* Patch the LOD just after retrieving the old value

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/compiler/nir/nir.h
src/compiler/nir/nir_lower_tex.c