diff --git a/0001-lavapipe-fix-missing-piece-of-VK_KHR_get_physical_de.patch b/0001-lavapipe-fix-missing-piece-of-VK_KHR_get_physical_de.patch new file mode 100644 index 0000000..1819f7f --- /dev/null +++ b/0001-lavapipe-fix-missing-piece-of-VK_KHR_get_physical_de.patch @@ -0,0 +1,86 @@ +From 3306a3395b36d3ebddaa0ed28c58ca1272196695 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Fri, 15 Jan 2021 09:57:52 +1000 +Subject: [PATCH] lavapipe: fix missing piece of + VK_KHR_get_physical_device_properties2 + +I missed two parts of the APIs for this, so add them, should fix +crashes in gstreamer vulkan when it tries to load lvp. + +Cc: "20.3" +--- + src/gallium/frontends/lavapipe/lvp_device.c | 43 +++++++++++++++++---- + 1 file changed, 35 insertions(+), 8 deletions(-) + +diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c +index 0eaf278679c..3d05e424278 100644 +--- a/src/gallium/frontends/lavapipe/lvp_device.c ++++ b/src/gallium/frontends/lavapipe/lvp_device.c +@@ -631,6 +631,19 @@ void lvp_GetPhysicalDeviceProperties2( + } + } + ++static void lvp_get_physical_device_queue_family_properties( ++ VkQueueFamilyProperties* pQueueFamilyProperties) ++{ ++ *pQueueFamilyProperties = (VkQueueFamilyProperties) { ++ .queueFlags = VK_QUEUE_GRAPHICS_BIT | ++ VK_QUEUE_COMPUTE_BIT | ++ VK_QUEUE_TRANSFER_BIT, ++ .queueCount = 1, ++ .timestampValidBits = 64, ++ .minImageTransferGranularity = (VkExtent3D) { 1, 1, 1 }, ++ }; ++} ++ + void lvp_GetPhysicalDeviceQueueFamilyProperties( + VkPhysicalDevice physicalDevice, + uint32_t* pCount, +@@ -642,15 +655,21 @@ void lvp_GetPhysicalDeviceQueueFamilyProperties( + } + + assert(*pCount >= 1); ++ lvp_get_physical_device_queue_family_properties(pQueueFamilyProperties); ++} + +- *pQueueFamilyProperties = (VkQueueFamilyProperties) { +- .queueFlags = VK_QUEUE_GRAPHICS_BIT | +- VK_QUEUE_COMPUTE_BIT | +- VK_QUEUE_TRANSFER_BIT, +- .queueCount = 1, +- .timestampValidBits = 64, +- .minImageTransferGranularity = (VkExtent3D) { 1, 1, 1 }, +- }; ++void lvp_GetPhysicalDeviceQueueFamilyProperties2( ++ VkPhysicalDevice physicalDevice, ++ uint32_t* pCount, ++ VkQueueFamilyProperties2 *pQueueFamilyProperties) ++{ ++ if (pQueueFamilyProperties == NULL) { ++ *pCount = 1; ++ return; ++ } ++ ++ assert(*pCount >= 1); ++ lvp_get_physical_device_queue_family_properties(&pQueueFamilyProperties->queueFamilyProperties); + } + + void lvp_GetPhysicalDeviceMemoryProperties( +@@ -673,6 +692,14 @@ void lvp_GetPhysicalDeviceMemoryProperties( + }; + } + ++void lvp_GetPhysicalDeviceMemoryProperties2( ++ VkPhysicalDevice physicalDevice, ++ VkPhysicalDeviceMemoryProperties2 *pMemoryProperties) ++{ ++ lvp_GetPhysicalDeviceMemoryProperties(physicalDevice, ++ &pMemoryProperties->memoryProperties); ++} ++ + PFN_vkVoidFunction lvp_GetInstanceProcAddr( + VkInstance _instance, + const char* pName) +-- +2.29.2 + diff --git a/mesa.spec b/mesa.spec index 6eed5cb..95153fa 100644 --- a/mesa.spec +++ b/mesa.spec @@ -52,7 +52,7 @@ Name: mesa Summary: Mesa graphics libraries %global ver 20.3.3 Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} -Release: 2%{?dist} +Release: 3%{?dist} License: MIT URL: http://www.mesa3d.org @@ -64,6 +64,8 @@ Source1: Mesa-MLAA-License-Clarification-Email.txt # fix device selection layer Patch0: 0001-device-select-layer-update-for-vulkan-1.2.patch +# fix lvp extension missing +Patch1: 0001-lavapipe-fix-missing-piece-of-VK_KHR_get_physical_de.patch BuildRequires: meson >= 0.45 BuildRequires: gcc @@ -594,6 +596,9 @@ popd %endif %changelog +* Fri Jan 15 2021 Dave Airlie - 20.3.3-3 +- Fix lavapipe missing ext that breaks gstreamer/pidgin + * Fri Jan 15 2021 Dave Airlie - 20.3.3-2 - Fix device selection layer for vulkan 1.2