[Mesa-dev] [PATCH 3/3] tgsi: implement ddiv opcode

Nicolai Hähnle nhaehnle at gmail.com
Tue Jan 24 09:08:59 UTC 2017


On 23.01.2017 18:47, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> softpipe (along with llvmpipe) claims to support arb_gpu_shader_fp64,
> so we really need to support that opcode.

Cc: 17.0 <mesa-stable at lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

> ---
>  src/gallium/auxiliary/tgsi/tgsi_exec.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
> index 915cd10..2135ad1 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
> @@ -210,6 +210,16 @@ micro_dadd(union tgsi_double_channel *dst,
>  }
>
>  static void
> +micro_ddiv(union tgsi_double_channel *dst,
> +          const union tgsi_double_channel *src)
> +{
> +   dst->d[0] = src[0].d[0] / src[1].d[0];
> +   dst->d[1] = src[0].d[1] / src[1].d[1];
> +   dst->d[2] = src[0].d[2] / src[1].d[2];
> +   dst->d[3] = src[0].d[3] / src[1].d[3];
> +}
> +
> +static void
>  micro_ddx(union tgsi_exec_channel *dst,
>            const union tgsi_exec_channel *src)
>  {
> @@ -5995,6 +6005,10 @@ exec_instruction(
>        exec_double_binary(mach, inst, micro_dadd, TGSI_EXEC_DATA_DOUBLE);
>        break;
>
> +   case TGSI_OPCODE_DDIV:
> +      exec_double_binary(mach, inst, micro_ddiv, TGSI_EXEC_DATA_DOUBLE);
> +      break;
> +
>     case TGSI_OPCODE_DMUL:
>        exec_double_binary(mach, inst, micro_dmul, TGSI_EXEC_DATA_DOUBLE);
>        break;
>


More information about the mesa-dev mailing list