On Sat, Aug 13, 2016 at 10:43 AM, Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> wrote: > > > > On 13.08.2016 12:02, Karol Herbst wrote: >> >> Signed-off-by: Karol Herbst <karolher...@gmail.com> >> --- >> src/gallium/drivers/nouveau/codegen/nv50_ir_target.h | 1 + >> src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp | 7 ++++++- >> src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h | 1 + >> 3 files changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h >> b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h >> index 4a701f7..485ca16 100644 >> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h >> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h >> @@ -222,6 +222,7 @@ public: >> const Value *) const = 0; >> // whether @insn can be issued together with @next (order matters) >> + virtual bool hasDualIssueing() const { return false; } >> virtual bool canDualIssue(const Instruction *insn, >> const Instruction *next) const { return >> false; } >> virtual int getLatency(const Instruction *) const { return 1; } >> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp >> b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp >> index 04ac288..faf2121 100644 >> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp >> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp >> @@ -605,12 +605,17 @@ int TargetNVC0::getThroughput(const Instruction *i) >> const >> } >> } >> +bool TargetNVC0::hasDualIssueing() const
The correct spelling is "issuing". English can be so silly at times... >> +{ >> + return getChipset() >= 0xe4; >> +} >> + >> bool TargetNVC0::canDualIssue(const Instruction *a, const Instruction *b) >> const >> { >> const OpClass clA = operationClass[a->op]; >> const OpClass clB = operationClass[b->op]; >> - if (getChipset() >= 0xe4) { >> + if (hasDualIssueing()) { >> // not texturing >> // not if the 2nd instruction isn't necessarily executed >> if (clA == OPCLASS_TEXTURE || clA == OPCLASS_FLOW) >> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h >> b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h >> index 7d11cd9..3d55da7 100644 >> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h >> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h >> @@ -57,6 +57,7 @@ public: >> virtual bool isPostMultiplySupported(operation, float, int& e) const; >> virtual bool mayPredicate(const Instruction *, const Value *) const; >> + virtual bool hasDualIssueing() const; >> virtual bool canDualIssue(const Instruction *, const Instruction *) >> const; >> virtual int getLatency(const Instruction *) const; >> virtual int getThroughput(const Instruction *) const; > > > Reviewed-by: Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> > _______________________________________________ > 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