From bd52eb4a3aa9bae446e376630372f1c54c881e34 Mon Sep 17 00:00:00 2001 From: Lars-Ivar Hesselberg Simonsen Date: Tue, 17 Feb 2026 13:28:14 +0100 Subject: [PATCH] panvk: Add v15 support --- src/panfrost/vulkan/meson.build | 8 ++++---- src/panfrost/vulkan/panvk_macros.h | 8 ++++++++ src/panfrost/vulkan/panvk_physical_device.c | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/panfrost/vulkan/meson.build b/src/panfrost/vulkan/meson.build index ce06192d50a..8cbac6d9d75 100644 --- a/src/panfrost/vulkan/meson.build +++ b/src/panfrost/vulkan/meson.build @@ -14,7 +14,7 @@ panvk_entrypoints = custom_target( '--device-prefix', 'panvk_v6', '--device-prefix', 'panvk_v7', '--device-prefix', 'panvk_v9', '--device-prefix', 'panvk_v10', '--device-prefix', 'panvk_v12', '--device-prefix', 'panvk_v13', - '--device-prefix', 'panvk_v14', + '--device-prefix', 'panvk_v14', '--device-prefix', 'panvk_v15', '--beta', with_vulkan_beta.to_string() ], depend_files : vk_entrypoints_gen_depend_files, @@ -66,7 +66,7 @@ valhall_archs = [9, 10] valhall_inc_dir = ['valhall'] valhall_files = [] -fifthgen_archs = [12, 13, 14] +fifthgen_archs = [12, 13, 14, 15] fifthgen_inc_dir = ['fifthgen'] fifthgen_files = [] @@ -84,7 +84,7 @@ jm_files = [ 'jm/panvk_vX_gpu_queue.c', ] -csf_archs = [10, 12, 13, 14] +csf_archs = [10, 12, 13, 14, 15] csf_inc_dir = ['csf'] csf_files = [ 'csf/panvk_vX_bind_queue.c', @@ -127,7 +127,7 @@ common_per_arch_files = [ sha1_h, ] -foreach arch : [6, 7, 10, 12, 13, 14] +foreach arch : [6, 7, 10, 12, 13, 14, 15] per_arch_files = common_per_arch_files inc_panvk_per_arch = [] diff --git a/src/panfrost/vulkan/panvk_macros.h b/src/panfrost/vulkan/panvk_macros.h index 09253ffdb93..0b5a2d347cb 100644 --- a/src/panfrost/vulkan/panvk_macros.h +++ b/src/panfrost/vulkan/panvk_macros.h @@ -64,6 +64,9 @@ panvk_catch_indirect_alloc_failure(VkResult error) case 14: \ panvk_arch_name(name, v14)(__VA_ARGS__); \ break; \ + case 15: \ + panvk_arch_name(name, v15)(__VA_ARGS__); \ + break; \ default: \ UNREACHABLE("Unsupported architecture"); \ } \ @@ -90,6 +93,9 @@ panvk_catch_indirect_alloc_failure(VkResult error) case 14: \ ret = panvk_arch_name(name, v14)(__VA_ARGS__); \ break; \ + case 15: \ + ret = panvk_arch_name(name, v15)(__VA_ARGS__); \ + break; \ default: \ UNREACHABLE("Unsupported architecture"); \ } \ @@ -110,6 +116,8 @@ panvk_catch_indirect_alloc_failure(VkResult error) #define panvk_per_arch(name) panvk_arch_name(name, v13) #elif PAN_ARCH == 14 #define panvk_per_arch(name) panvk_arch_name(name, v14) +#elif PAN_ARCH == 15 +#define panvk_per_arch(name) panvk_arch_name(name, v15) #else #error "Unsupported arch" #endif diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index bb18df6b49a..d9ac53e6afa 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -65,6 +65,7 @@ PER_ARCH_FUNCS(10); PER_ARCH_FUNCS(12); PER_ARCH_FUNCS(13); PER_ARCH_FUNCS(14); +PER_ARCH_FUNCS(15); static VkResult create_kmod_dev(struct panvk_physical_device *device, @@ -413,6 +414,7 @@ panvk_physical_device_init(struct panvk_physical_device *device, case 6: case 7: case 14: + case 15: if (!os_get_option("PAN_I_WANT_A_BROKEN_VULKAN_DRIVER")) { result = panvk_errorf(instance, VK_ERROR_INCOMPATIBLE_DRIVER, "WARNING: panvk is not well-tested on v%d, "