[Mesa-dev] [PATCH mesa 3/3] nv30: Disable msaa for now because it causes lockups

Ilia Mirkin imirkin at alum.mit.edu
Mon Sep 7 13:00:12 PDT 2015


On Mon, Sep 7, 2015 at 3:50 PM, Hans de Goede <hdegoede at redhat.com> wrote:
> msaa use on nv30 may trigger a (mesa?) bug where dmesg says:
>  [ 1197.850642] nouveau E[soffice.bin[3785]] fail ttm_validate
>  [ 1197.850648] nouveau E[soffice.bin[3785]] validating bo list
>  [ 1197.850654] nouveau E[soffice.bin[3785]] validate: -12
>  [ 1201.766955] nouveau E[soffice.bin[3785]] fail ttm_validate
>  [ 1201.766961] nouveau E[soffice.bin[3785]] validating bo list
>  [ 1201.766968] nouveau E[soffice.bin[3785]] validate: -12
>
> After which the program using the msaa visual freezes, and eventually
> the entire system freezes. Disable msaa until this is fixed.
>
> This happens on both nv3x and nv4x cards.

Ugh. This is aka "you ran out of vram, goodbye". We don't really
handle that case extremely well. I feel really bad doing this :( The
issue is anachronistic applications like soffice that don't keep with
the limitations of GPUs of the days of yore. So we end up penalizing
people who do use applications of the day.

But the practical issue is that people do upgrade, and people do run
these applications, and so it makes sense to keep it off by default.
Could I convince you to use debug_get_int_option (or something along
those lines, forget the function name) to still allow an env var
override? Like NV30_MAX_MSAA or something (and clamp it to 4 so people
don't get ideas).

>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
>  src/gallium/drivers/nouveau/nv30/nv30_screen.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> index 7aad26b..7a16e72 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> @@ -319,8 +319,25 @@ nv30_screen_is_format_supported(struct pipe_screen *pscreen,
>                                  unsigned sample_count,
>                                  unsigned bindings)
>  {
> +   /*
> +    * msaa use on nv30 may trigger a (mesa?) bug where dmesg says:
> +    * [ 1197.850642] nouveau E[soffice.bin[3785]] fail ttm_validate
> +    * [ 1197.850648] nouveau E[soffice.bin[3785]] validating bo list
> +    * [ 1197.850654] nouveau E[soffice.bin[3785]] validate: -12
> +    * [ 1201.766955] nouveau E[soffice.bin[3785]] fail ttm_validate
> +    * [ 1201.766961] nouveau E[soffice.bin[3785]] validating bo list
> +    * [ 1201.766968] nouveau E[soffice.bin[3785]] validate: -12
> +    *
> +    * After which the program using the msaa visual freezes, and eventually
> +    * the entire system freezes. Disable msaa until this is fixed.
> +    */
> +#if 1
> +   if (sample_count > 0)
> +#else
>     if (sample_count > 4)
> +#endif
>        return false;
> +
>     if (!(0x00000017 & (1 << sample_count)))
>        return false;
>
> --
> 2.4.3
>


More information about the mesa-dev mailing list