|
|
a13567d |
From 3306a3395b36d3ebddaa0ed28c58ca1272196695 Mon Sep 17 00:00:00 2001
|
|
|
a13567d |
From: Dave Airlie <airlied@gmail.com>
|
|
|
a13567d |
Date: Fri, 15 Jan 2021 09:57:52 +1000
|
|
|
a13567d |
Subject: [PATCH] lavapipe: fix missing piece of
|
|
|
a13567d |
VK_KHR_get_physical_device_properties2
|
|
|
a13567d |
|
|
|
a13567d |
I missed two parts of the APIs for this, so add them, should fix
|
|
|
a13567d |
crashes in gstreamer vulkan when it tries to load lvp.
|
|
|
a13567d |
|
|
|
a13567d |
Cc: "20.3" <mesa-stable@lists.freedesktop.org>
|
|
|
a13567d |
---
|
|
|
a13567d |
src/gallium/frontends/lavapipe/lvp_device.c | 43 +++++++++++++++++----
|
|
|
a13567d |
1 file changed, 35 insertions(+), 8 deletions(-)
|
|
|
a13567d |
|
|
|
a13567d |
diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c
|
|
|
a13567d |
index 0eaf278679c..3d05e424278 100644
|
|
|
a13567d |
--- a/src/gallium/frontends/lavapipe/lvp_device.c
|
|
|
a13567d |
+++ b/src/gallium/frontends/lavapipe/lvp_device.c
|
|
|
a13567d |
@@ -631,6 +631,19 @@ void lvp_GetPhysicalDeviceProperties2(
|
|
|
a13567d |
}
|
|
|
a13567d |
}
|
|
|
a13567d |
|
|
|
a13567d |
+static void lvp_get_physical_device_queue_family_properties(
|
|
|
a13567d |
+ VkQueueFamilyProperties* pQueueFamilyProperties)
|
|
|
a13567d |
+{
|
|
|
a13567d |
+ *pQueueFamilyProperties = (VkQueueFamilyProperties) {
|
|
|
a13567d |
+ .queueFlags = VK_QUEUE_GRAPHICS_BIT |
|
|
|
a13567d |
+ VK_QUEUE_COMPUTE_BIT |
|
|
|
a13567d |
+ VK_QUEUE_TRANSFER_BIT,
|
|
|
a13567d |
+ .queueCount = 1,
|
|
|
a13567d |
+ .timestampValidBits = 64,
|
|
|
a13567d |
+ .minImageTransferGranularity = (VkExtent3D) { 1, 1, 1 },
|
|
|
a13567d |
+ };
|
|
|
a13567d |
+}
|
|
|
a13567d |
+
|
|
|
a13567d |
void lvp_GetPhysicalDeviceQueueFamilyProperties(
|
|
|
a13567d |
VkPhysicalDevice physicalDevice,
|
|
|
a13567d |
uint32_t* pCount,
|
|
|
a13567d |
@@ -642,15 +655,21 @@ void lvp_GetPhysicalDeviceQueueFamilyProperties(
|
|
|
a13567d |
}
|
|
|
a13567d |
|
|
|
a13567d |
assert(*pCount >= 1);
|
|
|
a13567d |
+ lvp_get_physical_device_queue_family_properties(pQueueFamilyProperties);
|
|
|
a13567d |
+}
|
|
|
a13567d |
|
|
|
a13567d |
- *pQueueFamilyProperties = (VkQueueFamilyProperties) {
|
|
|
a13567d |
- .queueFlags = VK_QUEUE_GRAPHICS_BIT |
|
|
|
a13567d |
- VK_QUEUE_COMPUTE_BIT |
|
|
|
a13567d |
- VK_QUEUE_TRANSFER_BIT,
|
|
|
a13567d |
- .queueCount = 1,
|
|
|
a13567d |
- .timestampValidBits = 64,
|
|
|
a13567d |
- .minImageTransferGranularity = (VkExtent3D) { 1, 1, 1 },
|
|
|
a13567d |
- };
|
|
|
a13567d |
+void lvp_GetPhysicalDeviceQueueFamilyProperties2(
|
|
|
a13567d |
+ VkPhysicalDevice physicalDevice,
|
|
|
a13567d |
+ uint32_t* pCount,
|
|
|
a13567d |
+ VkQueueFamilyProperties2 *pQueueFamilyProperties)
|
|
|
a13567d |
+{
|
|
|
a13567d |
+ if (pQueueFamilyProperties == NULL) {
|
|
|
a13567d |
+ *pCount = 1;
|
|
|
a13567d |
+ return;
|
|
|
a13567d |
+ }
|
|
|
a13567d |
+
|
|
|
a13567d |
+ assert(*pCount >= 1);
|
|
|
a13567d |
+ lvp_get_physical_device_queue_family_properties(&pQueueFamilyProperties->queueFamilyProperties);
|
|
|
a13567d |
}
|
|
|
a13567d |
|
|
|
a13567d |
void lvp_GetPhysicalDeviceMemoryProperties(
|
|
|
a13567d |
@@ -673,6 +692,14 @@ void lvp_GetPhysicalDeviceMemoryProperties(
|
|
|
a13567d |
};
|
|
|
a13567d |
}
|
|
|
a13567d |
|
|
|
a13567d |
+void lvp_GetPhysicalDeviceMemoryProperties2(
|
|
|
a13567d |
+ VkPhysicalDevice physicalDevice,
|
|
|
a13567d |
+ VkPhysicalDeviceMemoryProperties2 *pMemoryProperties)
|
|
|
a13567d |
+{
|
|
|
a13567d |
+ lvp_GetPhysicalDeviceMemoryProperties(physicalDevice,
|
|
|
a13567d |
+ &pMemoryProperties->memoryProperties);
|
|
|
a13567d |
+}
|
|
|
a13567d |
+
|
|
|
a13567d |
PFN_vkVoidFunction lvp_GetInstanceProcAddr(
|
|
|
a13567d |
VkInstance _instance,
|
|
|
a13567d |
const char* pName)
|
|
|
a13567d |
--
|
|
|
a13567d |
2.29.2
|
|
|
a13567d |
|