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,