From ae82437b4fd4aee4712b1d6ae9a231870a1c709f Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 3 Feb 2021 14:21:59 +1000 Subject: [PATCH] Fix zink/swrast/lavapipe/gnome-shell interaction (#1924360) --- 0001-zink-don-t-pick-a-cpu-device-ever.patch | 45 ++++++++++++++++++++ mesa.spec | 8 +++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 0001-zink-don-t-pick-a-cpu-device-ever.patch diff --git a/0001-zink-don-t-pick-a-cpu-device-ever.patch b/0001-zink-don-t-pick-a-cpu-device-ever.patch new file mode 100644 index 0000000..322804b --- /dev/null +++ b/0001-zink-don-t-pick-a-cpu-device-ever.patch @@ -0,0 +1,45 @@ +From dff56769b504ceb6e45d87201587201249d1d808 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Wed, 3 Feb 2021 14:17:46 +1000 +Subject: [PATCH] zink: don't pick a cpu device ever. + +This goes down the list and picks the first gpu device, when +we merge the CI patch we should add a forcing env var in here. +--- + src/gallium/drivers/zink/zink_screen.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c +index e190a7af672..918749b90b1 100644 +--- a/src/gallium/drivers/zink/zink_screen.c ++++ b/src/gallium/drivers/zink/zink_screen.c +@@ -709,7 +709,7 @@ static VkPhysicalDevice + choose_pdev(const VkInstance instance) + { + uint32_t i, pdev_count; +- VkPhysicalDevice *pdevs, pdev; ++ VkPhysicalDevice *pdevs, pdev = NULL; + vkEnumeratePhysicalDevices(instance, &pdev_count, NULL); + assert(pdev_count > 0); + +@@ -717,7 +717,6 @@ choose_pdev(const VkInstance instance) + vkEnumeratePhysicalDevices(instance, &pdev_count, pdevs); + assert(pdev_count > 0); + +- pdev = pdevs[0]; + for (i = 0; i < pdev_count; ++i) { + VkPhysicalDeviceProperties props; + vkGetPhysicalDeviceProperties(pdevs[i], &props); +@@ -1095,6 +1094,9 @@ zink_internal_create_screen(const struct pipe_screen_config *config) + debug_printf("ZINK: failed to setup debug utils\n"); + + screen->pdev = choose_pdev(screen->instance); ++ if (!screen->pdev) ++ goto fail; ++ + update_queue_props(screen); + + screen->have_X8_D24_UNORM_PACK32 = zink_is_depth_format_supported(screen, +-- +2.26.2 + diff --git a/mesa.spec b/mesa.spec index d45a154..fbe92be 100644 --- a/mesa.spec +++ b/mesa.spec @@ -50,7 +50,7 @@ Name: mesa Summary: Mesa graphics libraries %global ver 21.0.0-rc3 Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} -Release: 1%{?dist} +Release: 2%{?dist} License: MIT URL: http://www.mesa3d.org @@ -63,6 +63,9 @@ Source1: Mesa-MLAA-License-Clarification-Email.txt # fix qemu/egl issue Patch2: fix-egl.patch +# fix zink/swrast/gnome-shell +Patch3: 0001-zink-don-t-pick-a-cpu-device-ever.patch + BuildRequires: meson >= 0.45 BuildRequires: gcc BuildRequires: gcc-c++ @@ -596,6 +599,9 @@ popd %endif %changelog +* Wed Feb 03 2021 Dave Airlie - 21.0.0~rc3-2 +- Fix zink/swrast/lavapipe/gnome-shell interaction (#1924360) + * Fri Jan 29 2021 Pete Walter - 21.0.0~rc3-1 - Update to 21.0.0-rc3