From 5db135f66ad325dcbf782c208480fcdced93db60 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 26 Aug 2024 13:29:03 +0200 Subject: [PATCH] panvk: Advertize v10 support Patch panvk_macros.h to add a case for v10 and accept v10 devices. Signed-off-by: Boris Brezillon Reviewed-by: Rebecca Mckeever Reviewed-by: Lars-Ivar Hesselberg Simonsen Reviewed-by: John Anthony Acked-by: Erik Faye-Lund Part-of: --- src/panfrost/vulkan/panvk_macros.h | 6 ++++++ src/panfrost/vulkan/panvk_physical_device.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/panfrost/vulkan/panvk_macros.h b/src/panfrost/vulkan/panvk_macros.h index 1e79c153305..e79a735dd68 100644 --- a/src/panfrost/vulkan/panvk_macros.h +++ b/src/panfrost/vulkan/panvk_macros.h @@ -29,6 +29,9 @@ case 7: \ panvk_arch_name(name, v7)(__VA_ARGS__); \ break; \ + case 10: \ + panvk_arch_name(name, v10)(__VA_ARGS__); \ + break; \ default: \ unreachable("Unsupported architecture"); \ } \ @@ -43,6 +46,9 @@ case 7: \ ret = panvk_arch_name(name, v7)(__VA_ARGS__); \ break; \ + case 10: \ + ret = panvk_arch_name(name, v10)(__VA_ARGS__); \ + break; \ default: \ unreachable("Unsupported architecture"); \ } \ diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 28aea6709a9..ae3867d86e9 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -670,7 +670,7 @@ panvk_physical_device_init(struct panvk_physical_device *device, path); } - if (strcmp(version->name, "panfrost")) { + if (strcmp(version->name, "panfrost") && strcmp(version->name, "panthor")) { drmFreeVersion(version); close(fd); return vk_errorf(instance, VK_ERROR_INCOMPATIBLE_DRIVER, @@ -706,7 +706,13 @@ panvk_physical_device_init(struct panvk_physical_device *device, unsigned arch = pan_arch(device->kmod.props.gpu_prod_id); - if (arch <= 5 || arch >= 8) { + switch (arch) { + case 6: + case 7: + case 10: + break; + + default: result = vk_errorf(instance, VK_ERROR_INCOMPATIBLE_DRIVER, "%s not supported", device->model->name); goto fail; @@ -899,6 +905,7 @@ panvk_GetPhysicalDeviceExternalFenceProperties( DEVICE_PER_ARCH_FUNCS(6); DEVICE_PER_ARCH_FUNCS(7); +DEVICE_PER_ARCH_FUNCS(10); VKAPI_ATTR VkResult VKAPI_CALL panvk_CreateDevice(VkPhysicalDevice physicalDevice,