tgsi: fix property parsing/building
diff --git a/src/gallium/auxiliary/tgsi/tgsi_build.c b/src/gallium/auxiliary/tgsi/tgsi_build.c
index 92903fe..de9cbc8 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_build.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_build.c
@@ -1025,7 +1025,7 @@
    size++;
 
    *property = tgsi_build_property(
-      TGSI_PROPERTY_GS_INPUT_PRIM,
+      full_prop->Property.PropertyName,
       header );
 
    assert( full_prop->Property.NrTokens <= 8 + 1 );
diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
index 80d3a1e..ca247a1 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_text.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
@@ -62,18 +62,20 @@
 }
 
 /*
- * Ignore case of str1 and assume str2 is already uppercase.
+ * Ignore case of str1 and assume str1 is already uppercase.
  * Return TRUE iff str1 and str2 are equal.
  */
 static int
 streq_nocase_uprcase(const char *str1,
                      const char *str2)
 {
-   while (*str1 && uprcase(*str1) == *str2) {
+   while (*str1 && *str2) {
+      if (*str1 != uprcase(*str2))
+         return FALSE;
       str1++;
       str2++;
    }
-   return *str1 == *str2;
+   return TRUE;
 }
 
 static boolean str_match_no_case( const char **pcur, const char *str )
@@ -1166,7 +1168,7 @@
    }
    for (property_name = 0; property_name < TGSI_PROPERTY_COUNT;
         ++property_name) {
-      if (streq_nocase_uprcase(id, property_names[property_name])) {
+      if (streq_nocase_uprcase(property_names[property_name], id)) {
          break;
       }
    }