From: Marek Olšák Date: Tue, 6 Aug 2013 04:35:23 +0000 (+0200) Subject: tgsi: add info about MSAA samplers to tgsi_shader_info X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=128819d394fa722acb73e248a9adce585b4ef061;p=mesa.git tgsi: add info about MSAA samplers to tgsi_shader_info Reviewed-by: Michel Dänzer --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index 1294a7a98a7..05b711148ce 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -36,6 +36,7 @@ #include "util/u_debug.h" #include "util/u_math.h" +#include "util/u_memory.h" #include "util/u_prim.h" #include "tgsi/tgsi_parse.h" #include "tgsi/tgsi_util.h" @@ -128,6 +129,18 @@ tgsi_scan_shader(const struct tgsi_token *tokens, if (src->Register.Indirect) { info->indirect_files |= (1 << src->Register.File); } + + /* MSAA samplers */ + if (src->Register.File == TGSI_FILE_SAMPLER) { + assert(fullinst->Instruction.Texture); + assert(src->Register.Index < Elements(info->is_msaa_sampler)); + + if (fullinst->Instruction.Texture && + (fullinst->Texture.Texture == TGSI_TEXTURE_2D_MSAA || + fullinst->Texture.Texture == TGSI_TEXTURE_2D_ARRAY_MSAA)) { + info->is_msaa_sampler[src->Register.Index] = TRUE; + } + } } /* check for indirect register writes */ diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h index e2fa73a3fa7..d9147bd5bd9 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h @@ -80,6 +80,7 @@ struct tgsi_shader_info boolean color0_writes_all_cbufs; boolean writes_viewport_index; boolean writes_layer; + boolean is_msaa_sampler[PIPE_MAX_SAMPLERS]; unsigned num_written_culldistance; unsigned num_written_clipdistance;