diff options
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_parse.c | 12 | ||||
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_parse.h | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_parse.c b/src/gallium/auxiliary/tgsi/tgsi_parse.c index f2370ed7a06..9cc83830fdc 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_parse.c +++ b/src/gallium/auxiliary/tgsi/tgsi_parse.c @@ -315,3 +315,15 @@ tgsi_dump_tokens(const struct tgsi_token *tokens) debug_printf("0x%08x,\n", dwords[i]); debug_printf("};\n"); } + +unsigned +tgsi_get_processor_type(const struct tgsi_token *tokens) +{ + struct tgsi_parse_context parse; + + if (tgsi_parse_init( &parse, tokens ) != TGSI_PARSE_OK) { + debug_printf("tgsi_parse_init() failed in %s:%i!\n", __func__, __LINE__); + return ~0; + } + return parse.FullHeader.Processor.Processor; +} diff --git a/src/gallium/auxiliary/tgsi/tgsi_parse.h b/src/gallium/auxiliary/tgsi/tgsi_parse.h index bfcca484576..cd4b2afdb8b 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_parse.h +++ b/src/gallium/auxiliary/tgsi/tgsi_parse.h @@ -153,6 +153,8 @@ tgsi_alloc_tokens(unsigned num_tokens); void tgsi_free_tokens(const struct tgsi_token *tokens); +unsigned +tgsi_get_processor_type(const struct tgsi_token *tokens); #if defined __cplusplus } |