Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu>
On Sun, Sep 18, 2016 at 6:33 AM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > This helps shaders in UE4 demos, especially with Elemental > (+1% perf). This optimization reduces spilling usage in one > shader which explains the little gain. > > GF100/GK104: > > total instructions in shared programs :2838551 -> 2838045 (-0.02%) > total gprs used in shared programs :396706 -> 396684 (-0.01%) > total local used in shared programs :34432 -> 34416 (-0.05%) > > local gpr inst bytes > helped 1 19 112 112 > hurt 0 0 0 0 > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > index a9172f8..74a5a85 100644 > --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > @@ -576,6 +576,16 @@ ConstantFolding::expr(Instruction *i, > return; > } > break; > + case OP_SUB: > + switch (i->dType) { > + case TYPE_F32: res.data.f32 = a->data.f32 - b->data.f32; break; > + case TYPE_F64: res.data.f64 = a->data.f64 - b->data.f64; break; > + case TYPE_S32: > + case TYPE_U32: res.data.u32 = a->data.u32 - b->data.u32; break; > + default: > + return; > + } > + break; > case OP_POW: > switch (i->dType) { > case TYPE_F32: res.data.f32 = pow(a->data.f32, b->data.f32); break; > -- > 2.9.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev