[Mesa-dev] [PATCH 3/3] tgsi/ureg: handle redundant declarations in ureg_DECL_system_value

Marek Olšák maraeo at gmail.com
Thu Jan 7 17:12:11 PST 2016


From: Marek Olšák <marek.olsak at amd.com>

---
 src/gallium/auxiliary/tgsi/tgsi_ureg.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.c b/src/gallium/auxiliary/tgsi/tgsi_ureg.c
index 9642723..5b78542 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ureg.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.c
@@ -322,7 +322,14 @@ ureg_DECL_system_value(struct ureg_program *ureg,
                        unsigned semantic_name,
                        unsigned semantic_index)
 {
-   unsigned i = 0;
+   unsigned i;
+
+   for (i = 0; i < ureg->nr_system_values; i++) {
+      if (ureg->system_value[i].semantic_name == semantic_name &&
+          ureg->system_value[i].semantic_index == semantic_index) {
+         goto out;
+      }
+   }
 
    if (ureg->nr_system_values < UREG_MAX_SYSTEM_VALUE) {
       ureg->system_value[ureg->nr_system_values].semantic_name = semantic_name;
@@ -333,6 +340,7 @@ ureg_DECL_system_value(struct ureg_program *ureg,
       set_bad(ureg);
    }
 
+out:
    return ureg_src_register(TGSI_FILE_SYSTEM_VALUE, i);
 }
 
-- 
2.1.4



More information about the mesa-dev mailing list