[Nouveau] [PATCH] nv50/ir: don't touch degree on physreg RIG nodes
Ilia Mirkin
imirkin at alum.mit.edu
Thu Jan 7 17:41:51 PST 2016
Withdrawn. This fix is bogus -- it doesn't actually fix the original
issue! It's the result of me futzing a lot and a similar-but-different
fix did change things around enough to fix the original issue but then
proceeded to break other stuff. So... ignore.
On Wed, Jan 6, 2016 at 5:30 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> These nodes don't go through reduction, so we shouldn't be increasing
> their degrees.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91895
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> Cc: "11.0 11.1" <mesa-stable at lists.freedesktop.org>
> ---
>
> I would like to see a *bunch* of testing on this before merging it... RA-land
> is far from my expertise. However it does fix the shaders in the original bug
> and doesn't regress the few additional things that I tried.
>
> src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> index cd8c42c..f1ffcba 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> @@ -1129,9 +1129,11 @@ GCRA::doCoalesce(ArrayList& insns, unsigned int mask)
> void
> GCRA::RIG_Node::addInterference(RIG_Node *node)
> {
> - this->degree += relDegree[node->colors][colors];
> - node->degree += relDegree[colors][node->colors];
> -
> + // don't add degree for physregs since they won't go through simplify()
> + if (this->reg < 0)
> + this->degree += relDegree[node->colors][colors];
> + if (node->reg < 0)
> + node->degree += relDegree[colors][node->colors];
> this->attach(node, Graph::Edge::CROSS);
> }
>
> --
> 2.4.10
>
More information about the Nouveau
mailing list