tgsi: implement ddiv opcode
softpipe (along with llvmpipe) claims to support arb_gpu_shader_fp64, so we really need to support that opcode. Cc: 17.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
4c180f9633
commit
3b575a955c
|
@ -209,6 +209,16 @@ micro_dadd(union tgsi_double_channel *dst,
|
||||||
dst->d[3] = src[0].d[3] + src[1].d[3];
|
dst->d[3] = src[0].d[3] + src[1].d[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
static void
|
||||||
micro_ddx(union tgsi_exec_channel *dst,
|
micro_ddx(union tgsi_exec_channel *dst,
|
||||||
const union tgsi_exec_channel *src)
|
const union tgsi_exec_channel *src)
|
||||||
|
@ -5995,6 +6005,10 @@ exec_instruction(
|
||||||
exec_double_binary(mach, inst, micro_dadd, TGSI_EXEC_DATA_DOUBLE);
|
exec_double_binary(mach, inst, micro_dadd, TGSI_EXEC_DATA_DOUBLE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TGSI_OPCODE_DDIV:
|
||||||
|
exec_double_binary(mach, inst, micro_ddiv, TGSI_EXEC_DATA_DOUBLE);
|
||||||
|
break;
|
||||||
|
|
||||||
case TGSI_OPCODE_DMUL:
|
case TGSI_OPCODE_DMUL:
|
||||||
exec_double_binary(mach, inst, micro_dmul, TGSI_EXEC_DATA_DOUBLE);
|
exec_double_binary(mach, inst, micro_dmul, TGSI_EXEC_DATA_DOUBLE);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue