[Mesa-dev] [PATCH v2 1.2/3] nir: Make nir_shader_gather_info() track texelFetch texture accesses.

Nicolai Hähnle nhaehnle at gmail.com
Thu Oct 12 08:02:24 UTC 2017


On 12.10.2017 09:44, Kenneth Graunke wrote:
> For TGSI-based drivers, st_glsl_to_tgsi records this information.
> For NIR-based drivers, nir_shader_gather_info() will do so.
> ---
>   src/compiler/nir/nir_gather_info.c | 14 +++++++++++++-
>   1 file changed, 13 insertions(+), 1 deletion(-)
> 
> Patches 1.1 and 1.2 here replace:
> [PATCH 1/3] compiler: Track which textures are accessed via texelFetch().
> now that Nicolai's patches have landed.

R-b for both.


> 
> diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c
> index ac87bec46c0..f46cee7aa5e 100644
> --- a/src/compiler/nir/nir_gather_info.c
> +++ b/src/compiler/nir/nir_gather_info.c
> @@ -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
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list