X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fprogram%2Fprog_opt_constant_fold.c;h=1d796dcf2e43b809101ca5aa8ea1c5cfc55849a7;hb=ce9c042ab3d1c86837285c4e4d6de07646c1952f;hp=3811c0d8aa6b40da4a9a3d60d2b30eebddd365d8;hpb=9a32203e1618486e87c7baf494134e05f0e38cf3;p=mesa.git diff --git a/src/mesa/program/prog_opt_constant_fold.c b/src/mesa/program/prog_opt_constant_fold.c index 3811c0d8aa6..1d796dcf2e4 100644 --- a/src/mesa/program/prog_opt_constant_fold.c +++ b/src/mesa/program/prog_opt_constant_fold.c @@ -38,6 +38,8 @@ src_regs_are_constant(const struct prog_instruction *inst, unsigned num_srcs) for (i = 0; i < num_srcs; i++) { if (inst->SrcReg[i].File != PROGRAM_CONSTANT) return false; + if (inst->SrcReg[i].RelAddr) + return false; } return true; @@ -80,7 +82,6 @@ src_regs_are_same(const struct prog_src_register *a, return (a->File == b->File) && (a->Index == b->Index) && (a->Swizzle == b->Swizzle) - && (a->Abs == b->Abs) && (a->Negate == b->Negate) && (a->RelAddr == 0) && (b->RelAddr == 0); @@ -97,13 +98,6 @@ get_value(struct gl_program *prog, struct prog_src_register *r, float *data) data[2] = value[GET_SWZ(r->Swizzle, 2)].f; data[3] = value[GET_SWZ(r->Swizzle, 3)].f; - if (r->Abs) { - data[0] = fabsf(data[0]); - data[1] = fabsf(data[1]); - data[2] = fabsf(data[2]); - data[3] = fabsf(data[3]); - } - if (r->Negate & 0x01) { data[0] = -data[0]; }