Re: [Nouveau] Chromium - Application-level nouveau blacklist

2019-01-07 Thread K. York
> Opinions welcome.

I have a few ideas on the best way to approach this.

 - First of all, obviously, fix the WebGL CTS problems. (with
--ignore-gpu-blacklist )
 - Fix all other crashing issues and request re-inclusion. (This is
comment #37.) Chrome versions are only 6 weeks, so not too bad of a
lead time.
 - Set up fuzz testing to discover new crashing and stability issues
before they impact userspace. This will also help with discovering the
crash issues that need to get fixed. Chromium will probably loan
ClusterFuzz resources to help with this.
 - Set up monkey testing with Chrome on Nouveau to discover the causes
of the black-rectangle bugs.
 - Set up as-rendered diff testing between major Nouveau versions vs
HEAD and require review of differences before a release can be made.
(see https://fifoci.dolphin-emu.org/about/ for prior art)
 - Set up diff testing with the propietary NVIDIA drivers. (This may
cost a significant amount of money to do.)

All of this requires developer time and effort to do. You might need
to organize a call for volunteers from a wider audience than just the
nouveau mailing list.

Best of luck,
~Kane
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] Chromium - Application-level nouveau blacklist

2019-01-05 Thread Ilia Mirkin
On Sat, Jan 5, 2019 at 10:36 PM K. York  wrote:
>
> > Opinions welcome.
>
> I have a few ideas on the best way to approach this.
>
>  - First of all, obviously, fix the WebGL CTS problems. (with
> --ignore-gpu-blacklist )
>  - Fix all other crashing issues and request re-inclusion. (This is
> comment #37.) Chrome versions are only 6 weeks, so not too bad of a
> lead time.
>  - Set up fuzz testing to discover new crashing and stability issues
> before they impact userspace. This will also help with discovering the
> crash issues that need to get fixed. Chromium will probably loan
> ClusterFuzz resources to help with this.
>  - Set up monkey testing with Chrome on Nouveau to discover the causes
> of the black-rectangle bugs.
>  - Set up as-rendered diff testing between major Nouveau versions vs
> HEAD and require review of differences before a release can be made.
> (see https://fifoci.dolphin-emu.org/about/ for prior art)
>  - Set up diff testing with the propietary NVIDIA drivers. (This may
> cost a significant amount of money to do.)
>
> All of this requires developer time and effort to do. You might need
> to organize a call for volunteers from a wider audience than just the
> nouveau mailing list.

Thanks for your feedback. Following such steps would surely lead to a
much higher quality driver than what we have today. As you're aware,
what you're suggesting requires an IMMENSE investment of effort, and
holds the nouveau driver to a considerably higher standard than any of
the other drivers, including the NVIDIA proprietary driver. For the
driver that's backed by the fewest resources of almost any of the
other driver efforts, I don't think that's reasonable.

Here's the thing -- the only thing that outright dies for me right now
is the max-texture-size thing + what feel like browser bugs. The WebGL
CTS is relatively new, and not well battle-tested, so achieving a 100%
pass rate will involve fixing a lot of their tests (in fact I've
already fixed some of them). And even if I come back with clean
results, that will still be 1 test result from a matrix of (GPU SKU,
Mesa version, Kernel version, Other Factors) combinations which
probably numbers in the millions.

I've glanced at the HN discussion about this situation
(https://news.ycombinator.com/item?id=18834715), and it does seem like
people are focusing on the wrong thing... the important bit isn't that
nouveau crashes and burns in some situations -- everyone already knew
that, including the users of nouveau who continue to use it
nonetheless. It's that if every piece of software feels free to ignore
a system integrator's or user's wishes, then the user now has to know
how to override that behaviour separately in every application. The
situation is that Distro X has decided that nouveau is the right thing
for its users. A user can disable that by uninstalling or otherwise
disabling nouveau if they wish. But now chrome comes along with its
own set of rules. What if every application starts doing that?

It should also be noted that outside of a few pathological cases, like
creating 2GB+ textures which never happens in practice, nouveau works
just fine for me. For other people, it dies at random intervals,
irrespective of whether they're using chrome or not. While this is a
non-ideal scenario, chrome shouldn't be in the business of worrying
about things like that. It just confuses the situation for everyone.

Cheers,

  -ilia
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] Chromium - Application-level nouveau blacklist

2019-01-05 Thread Ilia Mirkin
It looks like as of Chromium 71, nouveau is completely blacklisted.

I don't really see a way back from this, since they don't cite any
easily reproducible issues, except that some people had some issues
with indeterminate hardware and indeterminate versions of mesa.

In the bug that triggered this
(https://bugs.chromium.org/p/chromium/issues/detail?id=876523), where
I might have slightly lost my cool, they (at the end) suggested that
we try to make nouveau a first-class citizen with chromium. However I
will never be able to present concrete evidence that inconcrete issues
are resolved. I did run the WebGL CTS suite, but that resulted in some
hangs from the the max-texture-size-equivalent test, and some
browser-level weirdness after some tests where later tests all fail
(due to what I have to assume is a browser bug). I don't think I
managed to properly track down the true reason why. I didn't want to
reach out to them with such results, as that's just further evidence
of nouveau not working perfectly.

In the meanwhile, end users are losing accelerated WebGL which in
practice worked just fine (at least in my usage of it), and probably
some other functionality.

One idea is to flip GL_VENDOR to some random string if chromium is
running. I don't like this idea, but I also don't have any great
alternatives. We can also just take this, as yet-another nail in the
nouveau coffin.

Opinions welcome.

Cheers,

  -ilia
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau