Backport MR #9425 to fix GNOME Shell crash on Jetson Nano (#1930977)

This commit is contained in:
Adam Williamson 2021-03-08 11:52:48 -08:00
parent 9b263e7cc2
commit de16407125
3 changed files with 76 additions and 1 deletions

View file

@ -0,0 +1,38 @@
From a84c8ddb19beef7580d6a4b8c417bb188517412a Mon Sep 17 00:00:00 2001
From: Karol Herbst <kherbst@redhat.com>
Date: Thu, 4 Mar 2021 20:32:10 +0100
Subject: [PATCH 1/2] tegra/context: fix regression in tegra_draw_vbo
We should only pass in a new indirect_info object if we actually set valid
values in it.
Fixes: abe8ef862fe5 "gallium: make pipe_draw_indirect_info * a draw_vbo parameter"
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9425>
---
src/gallium/drivers/tegra/tegra_context.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/tegra/tegra_context.c b/src/gallium/drivers/tegra/tegra_context.c
index 1d976267aee..97b45ed1627 100644
--- a/src/gallium/drivers/tegra/tegra_context.c
+++ b/src/gallium/drivers/tegra/tegra_context.c
@@ -75,13 +75,13 @@ tegra_draw_vbo(struct pipe_context *pcontext,
if (pindirect && pindirect->buffer) {
memcpy(&indirect, pindirect, sizeof(indirect));
indirect.buffer = tegra_resource_unwrap(pindirect->buffer);
+ pindirect = &indirect;
}
if (pinfo->index_size && !pinfo->has_user_indices)
info.index.resource = tegra_resource_unwrap(info.index.resource);
pinfo = &info;
- pindirect = &indirect;
}
context->gpu->draw_vbo(context->gpu, pinfo, pindirect, draws, num_draws);
--
2.30.1

View file

@ -0,0 +1,28 @@
From 12f1e42ed34e9807484bdfbec535bc56950e2338 Mon Sep 17 00:00:00 2001
From: Karol Herbst <kherbst@redhat.com>
Date: Fri, 5 Mar 2021 10:46:48 +0100
Subject: [PATCH 2/2] tegra/context: unwrap indirect_draw_count as well
Fixes: 22f6624ed318 "gallium: separate indirect stuff from pipe_draw_info - 80 -> 56 bytes"
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9425>
---
src/gallium/drivers/tegra/tegra_context.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/drivers/tegra/tegra_context.c b/src/gallium/drivers/tegra/tegra_context.c
index 97b45ed1627..10b04f969ad 100644
--- a/src/gallium/drivers/tegra/tegra_context.c
+++ b/src/gallium/drivers/tegra/tegra_context.c
@@ -75,6 +75,7 @@ tegra_draw_vbo(struct pipe_context *pcontext,
if (pindirect && pindirect->buffer) {
memcpy(&indirect, pindirect, sizeof(indirect));
indirect.buffer = tegra_resource_unwrap(pindirect->buffer);
+ indirect.indirect_draw_count = tegra_resource_unwrap(pindirect->indirect_draw_count);
pindirect = &indirect;
}
--
2.30.1

View file

@ -52,7 +52,7 @@ Name: mesa
Summary: Mesa graphics libraries
%global ver 21.0.0-rc5
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
Release: 2%{?dist}
Release: 3%{?dist}
License: MIT
URL: http://www.mesa3d.org
@ -65,6 +65,12 @@ Source1: Mesa-MLAA-License-Clarification-Email.txt
# fix glx regression with sddm
Patch1: 0001-glx-proposed-fix-for-setSwapInterval.patch
# fix GNOME crash on Jetson Nano:
# https://bugzilla.redhat.com/show_bug.cgi?id=1930977
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9425
Patch2: 0001-tegra-context-fix-regression-in-tegra_draw_vbo.patch
Patch3: 0002-tegra-context-unwrap-indirect_draw_count-as-well.patch
BuildRequires: meson >= 0.45
BuildRequires: gcc
BuildRequires: gcc-c++
@ -598,6 +604,9 @@ popd
%endif
%changelog
* Mon Mar 08 2021 Adam Williamson <awilliam@redhat.com> - 21.0.0~rc5-3
- Backport MR #9425 to fix GNOME Shell crash on Jetson Nano (#1930977)
* Mon Feb 22 2021 Dave Airlie <airlied@redhat.com> - 21.0.0~rc5-2
- fix sddm/vmware regression