Mesa (master): freedreno/ir3: Parse, but ignore @in, @out and @tex headers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Apr 25 00:30:02 UTC 2020


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

Author: Kristian H. Kristensen <hoegsberg at google.com>
Date:   Thu Apr 23 11:33:04 2020 -0700

freedreno/ir3: Parse, but ignore @in, @out and @tex headers

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741>

---

 src/freedreno/ir3/ir3_lexer.l  |  3 +++
 src/freedreno/ir3/ir3_parser.y | 18 ++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/src/freedreno/ir3/ir3_lexer.l b/src/freedreno/ir3/ir3_lexer.l
index aca2d62b4db..823cb1587dc 100644
--- a/src/freedreno/ir3/ir3_lexer.l
+++ b/src/freedreno/ir3/ir3_lexer.l
@@ -79,6 +79,9 @@ static int parse_reg(const char *str)
 "@invocationid"                   return TOKEN(T_A_INVOCATIONID);
 "@wgid"                           return TOKEN(T_A_WGID);
 "@numwg"                          return TOKEN(T_A_NUMWG);
+"@in"                             return TOKEN(T_A_IN);
+"@out"                            return TOKEN(T_A_OUT);
+"@tex"                            return TOKEN(T_A_TEX);
 "(sy)"                            return TOKEN(T_SY);
 "(ss)"                            return TOKEN(T_SS);
 "(absneg)"                        return TOKEN(T_ABSNEG);
diff --git a/src/freedreno/ir3/ir3_parser.y b/src/freedreno/ir3/ir3_parser.y
index f12222e7a5c..b42ea9d4fe2 100644
--- a/src/freedreno/ir3/ir3_parser.y
+++ b/src/freedreno/ir3/ir3_parser.y
@@ -260,6 +260,9 @@ static void print_token(FILE *file, int type, YYSTYPE value)
 %token <tok> T_A_INVOCATIONID
 %token <tok> T_A_WGID
 %token <tok> T_A_NUMWG
+%token <tok> T_A_IN
+%token <tok> T_A_OUT
+%token <tok> T_A_TEX
 /* todo, re-add @sampler/@uniform/@varying if needed someday */
 
 /* src register flags */
@@ -506,6 +509,9 @@ header:            localsize_header
 |                  invocationid_header
 |                  wgid_header
 |                  numwg_header
+|                  in_header
+|                  out_header
+|                  tex_header
 
 const_val:         T_FLOAT   { $$ = fui($1); }
 |                  T_INT     { $$ = $1;      }
@@ -549,6 +555,18 @@ numwg_header:      T_A_NUMWG '(' T_CONSTANT ')' {
                        add_const($3, 0, 0, 0, 0);
 }
 
+/* Stubs for now */
+in_header:         T_A_IN '(' T_REGISTER ')' T_IDENTIFIER '(' T_IDENTIFIER '=' integer ')' { }
+
+out_header:        T_A_OUT '(' T_REGISTER ')' T_IDENTIFIER '(' T_IDENTIFIER '=' integer ')' { }
+
+tex_header:        T_A_TEX '(' T_REGISTER ')'
+                       T_IDENTIFIER '=' integer ',' /* src */
+                       T_IDENTIFIER '=' integer ',' /* samp */
+                       T_IDENTIFIER '=' integer ',' /* tex */
+                       T_IDENTIFIER '=' integer ',' /* wrmask */
+                       T_IDENTIFIER '=' integer     /* cmd */ { }
+
 iflag:             T_SY   { iflags.flags |= IR3_INSTR_SY; }
 |                  T_SS   { iflags.flags |= IR3_INSTR_SS; }
 |                  T_JP   { iflags.flags |= IR3_INSTR_JP; }



More information about the mesa-commit mailing list