mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 07:08:04 +02:00
tgsi: Add support to parse IMM[x] too.
Thanks to Brian for pointing this out.
This commit is contained in:
parent
2ab6e67d90
commit
ea2978b11c
2 changed files with 30 additions and 2 deletions
|
|
@ -242,6 +242,7 @@ struct translate_ctx
|
|||
struct tgsi_header *header;
|
||||
unsigned processor : 4;
|
||||
int implied_array_size : 5;
|
||||
unsigned num_immediates;
|
||||
};
|
||||
|
||||
static void report_error( struct translate_ctx *ctx, const char *msg )
|
||||
|
|
@ -1336,6 +1337,31 @@ static boolean parse_immediate( struct translate_ctx *ctx )
|
|||
uint advance;
|
||||
int type;
|
||||
|
||||
if (*ctx->cur == '[') {
|
||||
uint uindex;
|
||||
|
||||
++ctx->cur;
|
||||
|
||||
eat_opt_white( &ctx->cur );
|
||||
if (!parse_uint( &ctx->cur, &uindex )) {
|
||||
report_error( ctx, "Expected literal unsigned integer" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (uindex != ctx->num_immediates) {
|
||||
report_error( ctx, "Immediates must be sorted" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
eat_opt_white( &ctx->cur );
|
||||
if (*ctx->cur != ']') {
|
||||
report_error( ctx, "Expected `]'" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ctx->cur++;
|
||||
}
|
||||
|
||||
if (!eat_white( &ctx->cur )) {
|
||||
report_error( ctx, "Syntax error" );
|
||||
return FALSE;
|
||||
|
|
@ -1363,6 +1389,8 @@ static boolean parse_immediate( struct translate_ctx *ctx )
|
|||
return FALSE;
|
||||
ctx->tokens_cur += advance;
|
||||
|
||||
ctx->num_immediates++;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ DCL OUT[1], COLOR
|
|||
|
||||
DCL TEMP[0]
|
||||
|
||||
IMM FLT32 { 1.0, 0.0, 0.0, 0.0 }
|
||||
IMM FLT32 { 1.5, 0.0, 0.0, 0.0 }
|
||||
IMM[0] FLT32 { 1.0, 0.0, 0.0, 0.0 }
|
||||
IMM[1] FLT32 { 1.5, 0.0, 0.0, 0.0 }
|
||||
|
||||
ADD TEMP[0], IN[0], IMM[0]
|
||||
RCP TEMP[0].x, TEMP[0].xxxx
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue