[Mesa-dev] [PATCH 1/1] r600: Enable FMA on chips that support it

Marek Olšák maraeo at gmail.com
Wed Jun 15 18:41:45 UTC 2016


On Wed, Jun 15, 2016 at 8:19 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
> On Wed, Jun 15, 2016 at 2:13 PM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
>> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
>> ---
>> Untested (I don't have the required hw)
>>
>>  src/gallium/drivers/r600/r600_pipe.c   | 5 ++++-
>>  src/gallium/drivers/r600/r600_shader.c | 2 +-
>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
>> index a49b00f..49c3e1d 100644
>> --- a/src/gallium/drivers/r600/r600_pipe.c
>> +++ b/src/gallium/drivers/r600/r600_pipe.c
>> @@ -548,7 +548,6 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
>>                 return 0;
>>         case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
>>         case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
>> -       case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
>>         case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
>>         case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
>>                 return 0;
>> @@ -558,6 +557,10 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
>>                  *    https://bugs.freedesktop.org/show_bug.cgi?id=86720
>>                  */
>>                 return 255;
>> +       case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
>> +               // Enable on CYPRESS(EG) and CAYMAN(NI)
>> +               return rscreen->b.family == CHIP_CYPRESS ||
>> +                      rscreen->b.family == CHIP_CAYMAN;
>
> Also CHIP_HEMLOCK (CYPRESS x2) and CHIP_ARUBA (trinity/richland) I think.

My docs say that FMA support is the same as double precision support,
so maybe HEMLOCK should also enable double precision?

Marek


More information about the mesa-dev mailing list