diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index e0ff9476cb2..83f0b1b0134 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -378,6 +378,16 @@ micro_dfrac(union tgsi_double_channel *dst, dst->d[3] = src->d[3] - floor(src->d[3]); } +static void +micro_dflr(union tgsi_double_channel *dst, + const union tgsi_double_channel *src) +{ + dst->d[0] = floor(src->d[0]); + dst->d[1] = floor(src->d[1]); + dst->d[2] = floor(src->d[2]); + dst->d[3] = floor(src->d[3]); +} + static void micro_dldexp(union tgsi_double_channel *dst, const union tgsi_double_channel *src0, @@ -6110,6 +6120,10 @@ exec_instruction( exec_double_unary(mach, inst, micro_dfrac); break; + case TGSI_OPCODE_DFLR: + exec_double_unary(mach, inst, micro_dflr); + break; + case TGSI_OPCODE_DLDEXP: exec_dldexp(mach, inst); break;