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