pan/bi: Use TEXC for indices >= 8

Otherwise it can't fit, fixes

   dEQP-GLES3.functional.texture.units.all_units.only_2d.*
   dEQP-GLES3.functional.texture.units.all_units.only_cube.*
   dEQP-GLES3.functional.texture.units.all_units.mixed.*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Maciej Matuszczyk <maccraft123mc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8427>
This commit is contained in:
Alyssa Rosenzweig 2021-01-11 13:52:53 -05:00 committed by Marge Bot
parent 3705ad96aa
commit b15f3a1107

View file

@ -1625,7 +1625,8 @@ bi_emit_texc(bi_builder *b, nir_tex_instr *instr)
}
/* Simple textures ops correspond to NIR tex or txl with LOD = 0 on 2D (or cube
* map, TODO) textures. Anything else needs a complete texture op. */
* map, TODO) textures with sufficiently small immediate indices. Anything else
* needs a complete texture op. */
static bool
bi_is_simple_tex(nir_tex_instr *instr)
@ -1639,6 +1640,10 @@ bi_is_simple_tex(nir_tex_instr *instr)
return false;
}
/* Indices need to fit in 3 bits */
if (MAX2(instr->sampler_index, instr->texture_index) >= (1 << 3))
return false;
int lod_idx = nir_tex_instr_src_index(instr, nir_tex_src_lod);
if (lod_idx < 0)
return true;