[Mesa-dev] [PATCH 1/9] tgsi: add tgsi_get_processor_type helper from radeon

Marek Olšák maraeo at gmail.com
Sun Feb 1 14:09:36 PST 2015


Yes. I think the tests should segfault on most drivers, because they
test something that has never been used before.

Marek

On Sun, Feb 1, 2015 at 9:10 PM, Glenn Kennard <glenn.kennard at gmail.com> wrote:
> On Sun, 01 Feb 2015 18:15:53 +0100, Marek Olšák <maraeo at gmail.com> wrote:
>
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> ---
>>  src/gallium/auxiliary/tgsi/tgsi_parse.c       | 12 ++++++++++++
>>  src/gallium/auxiliary/tgsi/tgsi_parse.h       |  2 ++
>>  src/gallium/drivers/radeon/r600_pipe_common.c | 11 -----------
>>  3 files changed, 14 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/gallium/auxiliary/tgsi/tgsi_parse.c
>> b/src/gallium/auxiliary/tgsi/tgsi_parse.c
>> index f2370ed..9cc8383 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 bfcca48..cd4b2af 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
>>  }
>> diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c
>> b/src/gallium/drivers/radeon/r600_pipe_common.c
>> index ddb4142..ee4cda7 100644
>> --- a/src/gallium/drivers/radeon/r600_pipe_common.c
>> +++ b/src/gallium/drivers/radeon/r600_pipe_common.c
>> @@ -883,17 +883,6 @@ void r600_destroy_common_screen(struct
>> r600_common_screen *rscreen)
>>         FREE(rscreen);
>>  }
>> -static 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;
>> -}
>> -
>>  bool r600_can_dump_shader(struct r600_common_screen *rscreen,
>>                           const struct tgsi_token *tokens)
>>  {
>
>
>
> null_sampler_view(TGSI_TEXTURE_2D) test case segfaults on R600 (with
> GALLIUM_TESTS=1), which i presume is intentional to expose a bug there. If
> yes, then:
>
> Patches 1-9 are Reviewed-by: Glenn Kennard <glenn.kennard at gmail.com>


More information about the mesa-dev mailing list