Mesa (master): tgsi: add info about MSAA samplers to tgsi_shader_info

Marek Olšák mareko at kemper.freedesktop.org
Thu Aug 15 00:04:39 UTC 2013


Module: Mesa
Branch: master
Commit: 128819d394fa722acb73e248a9adce585b4ef061
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=128819d394fa722acb73e248a9adce585b4ef061

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Aug  6 06:35:23 2013 +0200

tgsi: add info about MSAA samplers to tgsi_shader_info

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

---

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

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;




More information about the mesa-commit mailing list