Comment 31 for bug 925048

Revision history for this message
In , Simplehuman (simplehuman) wrote :

(In reply to comment #13)

>
> It's a bit of a mystery unfortunately. Adding to the annoyance, Ben said
> that it does work just fine on his NVC8, although he has the less powerful
> versions. Could be something with high ROP/TPC/GPC counts not being handled.
> (Or multiple PARTs?)
>
> That might actually be an interesting experiment -- before loading nouveau,
> mask out a bunch of the units and see if it helps. If it does, find the
> "breaking" point.
>
> This is the code that computes that stuff:
>
> http://cgit.freedesktop.org/~darktama/nouveau/tree/nvkm/engine/graph/nvc0.
> c#n1330
>
> priv->rop_nr = (nv_rd32(priv, 0x409604) & 0x001f0000) >> 16;
> priv->gpc_nr = nv_rd32(priv, 0x409604) & 0x0000001f;
> for (i = 0; i < priv->gpc_nr; i++) {
> priv->tpc_nr[i] = nv_rd32(priv, GPC_UNIT(i, 0x2608));
> priv->tpc_total += priv->tpc_nr[i];
> }
>
> Step 1: Print out the various values (i.e. number of ROPs, GPCs, and the
> per-GPC TPC counts).
> Step 2: Artificially lower them (to, e.g., 1) and see if it helps. If it
> does, figure out which of the values matter and where the breaking points
> are.
>
> If it doesn't help, perhaps the units need to be disabled a little harder,
> e.g. by setting 0x22584/0x22588.

Can you describe more detailed what I need to do? I'm afraid I'm not so advanced at this moment to understand everything in your comment. Maybe not in comments but by e-mail <email address hidden>