[Mesa-dev] [PATCH 02/20] tgsi: add info about MSAA samplers to tgsi_shader_info

Marek Olšák maraeo at gmail.com
Wed Aug 7 17:20:42 PDT 2013


---
 src/gallium/auxiliary/tgsi/tgsi_scan.c | 13 +++++++++++++
 src/gallium/auxiliary/tgsi/tgsi_scan.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 1294a7a..05b7111 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 e2fa73a..d9147bd 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;
-- 
1.8.1.2



More information about the mesa-dev mailing list