Mesa (gallium-resource-sampling): tgsi: fix parsing and dumping of resources

Zack Rusin zack at kemper.freedesktop.org
Tue Jun 8 09:55:19 PDT 2010


Module: Mesa
Branch: gallium-resource-sampling
Commit: 7ea3e376bd085248beafb556dfe869fe989247f7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ea3e376bd085248beafb556dfe869fe989247f7

Author: Zack Rusin <zackr at vmware.com>
Date:   Tue Jun  8 12:51:51 2010 -0400

tgsi: fix parsing and dumping of resources

---

 src/gallium/auxiliary/tgsi/tgsi_dump.c |   10 ++++------
 src/gallium/auxiliary/tgsi/tgsi_info.c |   18 +++++++++---------
 src/gallium/auxiliary/tgsi/tgsi_text.c |   20 +++++++++++---------
 3 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
index 7032e0e..2e10d23 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_dump.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c
@@ -340,13 +340,11 @@ iter_declaration(
       TXT(", ");
       ENM(decl->Resource.Resource, texture_names);
       TXT(", ");
-      if (decl->Resource.ReturnTypeX ==
-          decl->Resource.ReturnTypeY ==
-          decl->Resource.ReturnTypeZ ==
-          decl->Resource.ReturnTypeW)
+      if ((decl->Resource.ReturnTypeX == decl->Resource.ReturnTypeY) &&
+          (decl->Resource.ReturnTypeX == decl->Resource.ReturnTypeZ) &&
+          (decl->Resource.ReturnTypeX == decl->Resource.ReturnTypeW)) {
          ENM(decl->Resource.ReturnTypeX, type_names);
-      else {
-         TXT(", ");
+      } else {
          ENM(decl->Resource.ReturnTypeX, type_names);
          TXT(", ");
          ENM(decl->Resource.ReturnTypeY, type_names);
diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c
index e420f5b..14ed56a 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.c
@@ -177,15 +177,15 @@ static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] =
    { 0, 0, 0, 0, 0, 0, "DEFAULT", TGSI_OPCODE_DEFAULT },
    { 0, 0, 0, 0, 0, 0, "ENDSWITCH", TGSI_OPCODE_ENDSWITCH },
 
-   { 1, 2, 1, 0, 0, 0, "LOAD",        TGSI_OPCODE_LOAD },
-   { 1, 2, 1, 0, 0, 0, "LOAD_MS",     TGSI_OPCODE_LOAD_MS },
-   { 1, 3, 1, 0, 0, 0, "SAMPLE",      TGSI_OPCODE_SAMPLE },
-   { 1, 4, 1, 0, 0, 0, "SAMPLE_B",    TGSI_OPCODE_SAMPLE_B },
-   { 1, 4, 1, 0, 0, 0, "SAMPLE_C",    TGSI_OPCODE_SAMPLE_C },
-   { 1, 4, 1, 0, 0, 0, "SAMPLE_C_LZ", TGSI_OPCODE_SAMPLE_C_LZ },
-   { 1, 5, 1, 0, 0, 0, "SAMPLE_D",    TGSI_OPCODE_SAMPLE_D },
-   { 1, 3, 1, 0, 0, 0, "SAMPLE_L",    TGSI_OPCODE_SAMPLE_L },
-   { 1, 3, 1, 0, 0, 0, "GATHER4",     TGSI_OPCODE_GATHER4 },
+   { 1, 2, 0, 0, 0, 0, "LOAD",        TGSI_OPCODE_LOAD },
+   { 1, 2, 0, 0, 0, 0, "LOAD_MS",     TGSI_OPCODE_LOAD_MS },
+   { 1, 3, 0, 0, 0, 0, "SAMPLE",      TGSI_OPCODE_SAMPLE },
+   { 1, 4, 0, 0, 0, 0, "SAMPLE_B",    TGSI_OPCODE_SAMPLE_B },
+   { 1, 4, 0, 0, 0, 0, "SAMPLE_C",    TGSI_OPCODE_SAMPLE_C },
+   { 1, 4, 0, 0, 0, 0, "SAMPLE_C_LZ", TGSI_OPCODE_SAMPLE_C_LZ },
+   { 1, 5, 0, 0, 0, 0, "SAMPLE_D",    TGSI_OPCODE_SAMPLE_D },
+   { 1, 3, 0, 0, 0, 0, "SAMPLE_L",    TGSI_OPCODE_SAMPLE_L },
+   { 1, 3, 0, 0, 0, 0, "GATHER4",     TGSI_OPCODE_GATHER4 },
    { 1, 2, 0, 0, 0, 0, "RESINFO",     TGSI_OPCODE_RESINFO },
    { 1, 2, 0, 0, 0, 0, "SAMPLE_POS",  TGSI_OPCODE_SAMPLE_POS },
    { 1, 2, 0, 0, 0, 0, "SAMPLE_INFO", TGSI_OPCODE_SAMPLE_INFO },
diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
index 5a26eaa..2535d81 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_text.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
@@ -1044,7 +1044,6 @@ static boolean parse_declaration( struct translate_ctx *ctx )
       cur++;
       eat_opt_white( &cur );
       if (file == TGSI_FILE_RESOURCE) {
-         debug_printf("RESOURCE!!!!!!!!\n");
          for (i = 0; i < TGSI_TEXTURE_COUNT; i++) {
             if (str_match_no_case(&cur, texture_names[i])) {
                if (!is_digit_alpha_underscore(cur)) {
@@ -1058,10 +1057,11 @@ static boolean parse_declaration( struct translate_ctx *ctx )
             return FALSE;
          }
          eat_opt_white( &cur );
-         if (*ctx->cur != ',') {
+         if (*cur != ',') {
             report_error( ctx, "Expected `,'" );
             return FALSE;
          }
+         ++cur;
          eat_opt_white( &cur );
          for (j = 0; j < 4; ++j) {
             for (i = 0; i < PIPE_TYPE_COUNT; ++i) {
@@ -1094,13 +1094,15 @@ static boolean parse_declaration( struct translate_ctx *ctx )
                }
                break;
             } else {
-               eat_opt_white( &ctx->cur );
-               if (*ctx->cur != ',') {
-                  report_error( ctx, "Expected `,'" );
-                  return FALSE;
-               }
-               ctx->cur++;
-               eat_opt_white( &ctx->cur );
+               const char *cur2 = cur;
+               eat_opt_white( &cur2 );
+               if (*cur2 == ',') {
+                  cur2++;
+                  eat_opt_white( &cur2 );
+                  cur = cur2;
+                  continue;
+               } else
+                  break;
             }
          }
          if (j < 4) {



More information about the mesa-commit mailing list