[Mesa-dev] [PATCH mesa v2 2/2] nv30: Disable msaa unless requested from the env by NV30_MAX_MSAA

Ilia Mirkin imirkin at alum.mit.edu
Wed Sep 9 09:15:37 PDT 2015


On Wed, Sep 9, 2015 at 9:52 AM, Hans de Goede <hdegoede at redhat.com> wrote:
> Some modern apps try to use msaa without keeping in mind the
> restrictions on videomem of older cards. Resulting in dmesg saying:
>
>  [ 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
>
> Because we are running out of video memory, after which the program
> using the msaa visual freezes, and eventually the entire system freezes.
>
> To work around this we do not allow msaa visauls by default and allow
> the user to override this via NV30_MAX_MSAA.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> Changes in v2:
> -Allow re-enabling msaa by setting NV30_MAX_MSAA in the environment

Moved this to screen init and pushed. is_format_supported is called a
lot, not sure how expensive getenv() is, don't want to find out.

> ---
>  src/gallium/drivers/nouveau/nv30/nv30_screen.c | 22 +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> index 7aad26b..4b77f43 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> @@ -319,8 +319,28 @@ nv30_screen_is_format_supported(struct pipe_screen *pscreen,
>                                  unsigned sample_count,
>                                  unsigned bindings)
>  {
> -   if (sample_count > 4)
> +   unsigned int max_sample_count;
> +
> +   /*
> +    * Some modern apps try to use msaa without keeping in mind the
> +    * restrictions on videomem of older cards. Resulting in dmesg saying:
> +    * [ 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
> +    *
> +    * Because we are running out of video memory, after which the program
> +    * using the msaa visual freezes, and eventually the entire system freezes.
> +    *
> +    * To work around this we do not allow msaa visauls by default and allow
> +    * the user to override this via NV30_MAX_MSAA.
> +    */
> +   max_sample_count = debug_get_num_option("NV30_MAX_MSAA", 0);
> +   if (max_sample_count > 4)
> +      max_sample_count = 4;
> +
> +   if (sample_count > max_sample_count)
>        return false;
> +
>     if (!(0x00000017 & (1 << sample_count)))
>        return false;
>
> --
> 2.4.3
>


More information about the mesa-dev mailing list