On Sat, Feb 22, 2014 at 10:43:02PM +0200, Pohjolainen, Topi wrote: > On Thu, Feb 20, 2014 at 01:41:27PM -0800, Matt Turner wrote: > > Will get more complicated when fs_reg src becomes a pointer. > > --- > > src/mesa/drivers/dri/i965/brw_fs.cpp | 5 +++++ > > src/mesa/drivers/dri/i965/brw_fs.h | 1 + > > src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 3 +-- > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > > b/src/mesa/drivers/dri/i965/brw_fs.cpp > > index 7dc83ad..77b9f57 100644 > > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > > @@ -131,6 +131,11 @@ fs_inst::fs_inst(enum opcode opcode, fs_reg dst, > > assert(src[2].reg_offset >= 0); > > } > > > > +fs_inst::fs_inst(const fs_inst &that) > > +{ > > + memcpy(this, &that, sizeof(that)); > > +} > > + > > Before patch 16 declaring and implementing this isn't really necessary as > compiler will generate this.
Sorry, I meant patch 17. > > > #define ALU1(op) \ > > fs_inst * \ > > fs_visitor::op(fs_reg dst, fs_reg src0) \ > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.h > > b/src/mesa/drivers/dri/i965/brw_fs.h > > index fe063e6..054008e 100644 > > --- a/src/mesa/drivers/dri/i965/brw_fs.h > > +++ b/src/mesa/drivers/dri/i965/brw_fs.h > > @@ -180,6 +180,7 @@ public: > > fs_inst(enum opcode opcode, fs_reg dst, fs_reg src0, fs_reg src1); > > fs_inst(enum opcode opcode, fs_reg dst, > > fs_reg src0, fs_reg src1,fs_reg src2); > > + fs_inst(const fs_inst &that); > > > > bool equals(fs_inst *inst); > > bool overwrites_reg(const fs_reg ®); > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp > > b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp > > index b28d7aa..76f93c9 100644 > > --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp > > +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp > > @@ -2441,8 +2441,7 @@ fs_visitor::emit_untyped_surface_read(unsigned > > surf_index, fs_reg dst, > > fs_inst * > > fs_visitor::emit(const fs_inst &inst) > > { > > - fs_inst *list_inst = new(mem_ctx) fs_inst; > > - *list_inst = inst; > > + fs_inst *list_inst = new(mem_ctx) fs_inst(inst); > > emit(list_inst); > > return list_inst; > > } > > -- > > 1.8.3.2 > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev