nir: Make nir_shader_gather_info() track texelFetch texture accesses.

For TGSI-based drivers, st_glsl_to_tgsi records this information.
For NIR-based drivers, nir_shader_gather_info() will do so.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Kenneth Graunke
2017-09-09 00:19:57 -07:00
parent fbf4c2916c
commit a576c148cd

View File

@@ -264,8 +264,20 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader)
static void
gather_tex_info(nir_tex_instr *instr, nir_shader *shader)
{
if (instr->op == nir_texop_tg4)
switch (instr->op) {
case nir_texop_tg4:
shader->info.uses_texture_gather = true;
break;
case nir_texop_txf:
case nir_texop_txf_ms:
case nir_texop_txf_ms_mcs:
shader->info.textures_used_by_txf |=
((1 << MAX2(instr->texture_array_size, 1)) - 1) <<
instr->texture_index;
break;
default:
break;
}
}
static void