Add a patch from upstream master to disable msaa on nv3x/nv4x (#1008089)
This commit is contained in:
parent
355708d872
commit
699ee52770
|
@ -0,0 +1,82 @@
|
||||||
|
From 3e9df0e3af7a8a84147ae48f588e9c435bf65b98 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Wed, 9 Sep 2015 15:52:09 +0200
|
||||||
|
Subject: [PATCH mesa] nv30: Disable msaa unless requested from the env by
|
||||||
|
NV30_MAX_MSAA
|
||||||
|
|
||||||
|
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@redhat.com>
|
||||||
|
[imirkin: move env var lookup to screen so that it's only done once]
|
||||||
|
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
|
||||||
|
Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org>
|
||||||
|
---
|
||||||
|
src/gallium/drivers/nouveau/nv30/nv30_screen.c | 20 +++++++++++++++++++-
|
||||||
|
src/gallium/drivers/nouveau/nv30/nv30_screen.h | 2 ++
|
||||||
|
2 files 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..efa3a59 100644
|
||||||
|
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
|
||||||
|
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
|
||||||
|
@@ -310,8 +310,9 @@ nv30_screen_is_format_supported(struct p
|
||||||
|
unsigned sample_count,
|
||||||
|
unsigned bindings)
|
||||||
|
{
|
||||||
|
- if (sample_count > 4)
|
||||||
|
+ if (sample_count > nv30_screen(pscreen)->max_sample_count)
|
||||||
|
return FALSE;
|
||||||
|
+
|
||||||
|
if (!(0x00000017 & (1 << sample_count)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
@@ -441,6 +442,23 @@ nv30_screen_create(struct nouveau_device
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * 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.
|
||||||
|
+ */
|
||||||
|
+ screen->max_sample_count = debug_get_num_option("NV30_MAX_MSAA", 0);
|
||||||
|
+ if (screen->max_sample_count > 4)
|
||||||
|
+ screen->max_sample_count = 4;
|
||||||
|
+
|
||||||
|
pscreen = &screen->base.base;
|
||||||
|
pscreen->destroy = nv30_screen_destroy;
|
||||||
|
pscreen->get_param = nv30_screen_get_param;
|
||||||
|
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.h b/src/gallium/drivers/nouveau/nv30/nv30_screen.h
|
||||||
|
index 7b17b88..df11233 100644
|
||||||
|
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.h
|
||||||
|
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.h
|
||||||
|
@@ -38,6 +38,8 @@ struct nv30_screen {
|
||||||
|
/*XXX: nvfx state */
|
||||||
|
struct nouveau_heap *vp_exec_heap;
|
||||||
|
struct nouveau_heap *vp_data_heap;
|
||||||
|
+
|
||||||
|
+ unsigned max_sample_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
static INLINE struct nv30_screen *
|
||||||
|
--
|
||||||
|
2.4.3
|
10
mesa.spec
10
mesa.spec
|
@ -52,7 +52,7 @@
|
||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
Name: mesa
|
Name: mesa
|
||||||
Version: 10.4.7
|
Version: 10.4.7
|
||||||
Release: 1.%{git}%{?dist}
|
Release: 2.%{git}%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
URL: http://www.mesa3d.org
|
URL: http://www.mesa3d.org
|
||||||
|
@ -78,6 +78,9 @@ Patch30: mesa-10.3-bigendian-assert.patch
|
||||||
# https://bugs.freedesktop.org/show_bug.cgi?id=73512
|
# https://bugs.freedesktop.org/show_bug.cgi?id=73512
|
||||||
Patch99: 0001-opencl-use-versioned-.so-in-mesa.icd.patch
|
Patch99: 0001-opencl-use-versioned-.so-in-mesa.icd.patch
|
||||||
|
|
||||||
|
# upstream fix for msaa issues on nv3x/nv4x
|
||||||
|
Patch100: 0001-nv30-Disable-msaa-unless-requested-from-the-env-by-N.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig autoconf automake libtool
|
BuildRequires: pkgconfig autoconf automake libtool
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
BuildRequires: kernel-headers
|
BuildRequires: kernel-headers
|
||||||
|
@ -364,6 +367,8 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1
|
||||||
%patch99 -p1 -b .icd
|
%patch99 -p1 -b .icd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch100 -p1
|
||||||
|
|
||||||
%if 0%{with_private_llvm}
|
%if 0%{with_private_llvm}
|
||||||
sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac
|
sed -i 's/llvm-config/mesa-private-llvm-config-%{__isa_bits}/g' configure.ac
|
||||||
sed -i 's/`$LLVM_CONFIG --version`/&-mesa/' configure.ac
|
sed -i 's/`$LLVM_CONFIG --version`/&-mesa/' configure.ac
|
||||||
|
@ -704,6 +709,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
# Generate changelog using:
|
# Generate changelog using:
|
||||||
# git log old_commit_sha..new_commit_sha --format="- %H: %s (%an)"
|
# git log old_commit_sha..new_commit_sha --format="- %H: %s (%an)"
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 11 2015 Hans de Goede <hdegoede@redhat.com> - 10.4.7-2.20150323
|
||||||
|
- Add a patch from upstream master to disable msaa on nv3x/nv4x (#1008089)
|
||||||
|
|
||||||
* Mon Mar 23 2015 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 10.4.7-1.20150323
|
* Mon Mar 23 2015 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 10.4.7-1.20150323
|
||||||
- 10.4.7
|
- 10.4.7
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue