On Wednesday, April 01, 2015 10:39:16 AM Ben Widawsky wrote: > When an instruction has a side effect, it impacts the available options when > reordering an instruction. As the EOT flag is an implied write to the render > target in the FS, it can be considered a side effect. > > This patch shouldn't actually have any impact on the current code since the > EOT > flag implies that the opcode is already one with side effects, > FS_OPCODE_FB_WRITE. The next patch however will introduce an optimization > whereby the EOT flag can occur with an opcode SHADER_OPCODE_TEX, and as that > instruction will perform the same implied write to the render target, it > cannot > be reordered. > > Cc: Matt Turner <[email protected]> > Cc: Kenneth Graunke <[email protected]> > Signed-off-by: Ben Widawsky <[email protected]> > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 7 +++++++ > src/mesa/drivers/dri/i965/brw_ir_fs.h | 1 + > 2 files changed, 8 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index 9c2ccce..e540dd1 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -531,6 +531,13 @@ fs_inst::can_do_source_mods(struct brw_context *brw) > return true; > } > > + > +bool > +fs_inst::has_side_effects() const > +{ > + return this->eot || backend_instruction::has_side_effects(); > +} > + > void > fs_reg::init() > { > diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h > b/src/mesa/drivers/dri/i965/brw_ir_fs.h > index 9ef1261..30c19f4 100644 > --- a/src/mesa/drivers/dri/i965/brw_ir_fs.h > +++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h > @@ -225,6 +225,7 @@ public: > bool is_partial_write() const; > int regs_read(int arg) const; > bool can_do_source_mods(struct brw_context *brw); > + bool has_side_effects() const; > > bool reads_flag() const; > bool writes_flag() const; >
Reviewed-by: Kenneth Graunke <[email protected]>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
