summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/tgsi/util')
-rw-r--r--src/gallium/auxiliary/tgsi/util/tgsi_dump.c25
-rw-r--r--src/gallium/auxiliary/tgsi/util/tgsi_parse.c4
-rw-r--r--src/gallium/auxiliary/tgsi/util/tgsi_parse.h4
-rw-r--r--src/gallium/auxiliary/tgsi/util/tgsi_scan.c15
4 files changed, 36 insertions, 12 deletions
diff --git a/src/gallium/auxiliary/tgsi/util/tgsi_dump.c b/src/gallium/auxiliary/tgsi/util/tgsi_dump.c
index 26bfc2051f..4c65ffd780 100644
--- a/src/gallium/auxiliary/tgsi/util/tgsi_dump.c
+++ b/src/gallium/auxiliary/tgsi/util/tgsi_dump.c
@@ -767,6 +767,31 @@ dump_instruction_short(
SID( dst->DstRegister.Index );
CHR( ']' );
+ switch (dst->DstRegisterExtModulate.Modulate) {
+ case TGSI_MODULATE_1X:
+ break;
+ case TGSI_MODULATE_2X:
+ TXT( "_2X" );
+ break;
+ case TGSI_MODULATE_4X:
+ TXT( "_4X" );
+ break;
+ case TGSI_MODULATE_8X:
+ TXT( "_8X" );
+ break;
+ case TGSI_MODULATE_HALF:
+ TXT( "_D2" );
+ break;
+ case TGSI_MODULATE_QUARTER:
+ TXT( "_D4" );
+ break;
+ case TGSI_MODULATE_EIGHTH:
+ TXT( "_D8" );
+ break;
+ default:
+ assert( 0 );
+ }
+
if( dst->DstRegister.WriteMask != TGSI_WRITEMASK_XYZW ) {
CHR( '.' );
if( dst->DstRegister.WriteMask & TGSI_WRITEMASK_X ) {
diff --git a/src/gallium/auxiliary/tgsi/util/tgsi_parse.c b/src/gallium/auxiliary/tgsi/util/tgsi_parse.c
index c3526cb71f..5bea773840 100644
--- a/src/gallium/auxiliary/tgsi/util/tgsi_parse.c
+++ b/src/gallium/auxiliary/tgsi/util/tgsi_parse.c
@@ -43,7 +43,7 @@ tgsi_full_token_free(
union tgsi_full_token *full_token )
{
if( full_token->Token.Type == TGSI_TOKEN_TYPE_IMMEDIATE ) {
- FREE( full_token->FullImmediate.u.Pointer );
+ FREE( (void *) full_token->FullImmediate.u.Pointer );
}
}
@@ -156,7 +156,7 @@ tgsi_parse_token(
imm->u.Pointer = MALLOC(
sizeof( struct tgsi_immediate_float32 ) * (imm->Immediate.Size - 1) );
for( i = 0; i < imm->Immediate.Size - 1; i++ ) {
- next_token( ctx, &imm->u.ImmediateFloat32[i] );
+ next_token( ctx, (struct tgsi_immediate_float32 *) &imm->u.ImmediateFloat32[i] );
}
break;
diff --git a/src/gallium/auxiliary/tgsi/util/tgsi_parse.h b/src/gallium/auxiliary/tgsi/util/tgsi_parse.h
index da0121c482..15e76feb7c 100644
--- a/src/gallium/auxiliary/tgsi/util/tgsi_parse.h
+++ b/src/gallium/auxiliary/tgsi/util/tgsi_parse.h
@@ -52,8 +52,8 @@ struct tgsi_full_immediate
struct tgsi_immediate Immediate;
union
{
- void *Pointer;
- struct tgsi_immediate_float32 *ImmediateFloat32;
+ const void *Pointer;
+ const struct tgsi_immediate_float32 *ImmediateFloat32;
} u;
};
diff --git a/src/gallium/auxiliary/tgsi/util/tgsi_scan.c b/src/gallium/auxiliary/tgsi/util/tgsi_scan.c
index ea4a72967d..65650ed22a 100644
--- a/src/gallium/auxiliary/tgsi/util/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/util/tgsi_scan.c
@@ -103,18 +103,14 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
info->file_max[file] = MAX2(info->file_max[file], (int)i);
if (file == TGSI_FILE_INPUT) {
- info->input_semantic_name[info->num_inputs]
- = (ubyte)fulldecl->Semantic.SemanticName;
- info->input_semantic_index[info->num_inputs]
- = (ubyte)fulldecl->Semantic.SemanticIndex;
+ info->input_semantic_name[i] = (ubyte)fulldecl->Semantic.SemanticName;
+ info->input_semantic_index[i] = (ubyte)fulldecl->Semantic.SemanticIndex;
info->num_inputs++;
}
if (file == TGSI_FILE_OUTPUT) {
- info->output_semantic_name[info->num_outputs]
- = (ubyte)fulldecl->Semantic.SemanticName;
- info->output_semantic_index[info->num_outputs]
- = (ubyte)fulldecl->Semantic.SemanticIndex;
+ info->output_semantic_name[i] = (ubyte)fulldecl->Semantic.SemanticName;
+ info->output_semantic_index[i] = (ubyte)fulldecl->Semantic.SemanticIndex;
info->num_outputs++;
}
@@ -137,6 +133,9 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
}
}
+ assert( info->file_max[TGSI_FILE_INPUT] + 1 == info->num_inputs );
+ assert( info->file_max[TGSI_FILE_OUTPUT] + 1 == info->num_outputs );
+
info->uses_kill = (info->opcode_count[TGSI_OPCODE_KIL] ||
info->opcode_count[TGSI_OPCODE_KILP]);