From 74c0426ae75d32f385cdf765882173cb2ae27970 Mon Sep 17 00:00:00 2001 From: Marc Alcala Prieto Date: Fri, 17 Apr 2026 14:04:44 +0200 Subject: [PATCH] panvk: Build for v14 Enable building panvk for v14. Reviewed-by: Lars-Ivar Hesselberg Simonsen --- src/panfrost/vulkan/meson.build | 7 ++++--- src/panfrost/vulkan/panvk_macros.h | 8 ++++++++ src/panfrost/vulkan/panvk_physical_device.c | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/panfrost/vulkan/meson.build b/src/panfrost/vulkan/meson.build index d79bcf885a7..ce06192d50a 100644 --- a/src/panfrost/vulkan/meson.build +++ b/src/panfrost/vulkan/meson.build @@ -14,6 +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', '--beta', with_vulkan_beta.to_string() ], depend_files : vk_entrypoints_gen_depend_files, @@ -65,7 +66,7 @@ valhall_archs = [9, 10] valhall_inc_dir = ['valhall'] valhall_files = [] -fifthgen_archs = [12, 13] +fifthgen_archs = [12, 13, 14] fifthgen_inc_dir = ['fifthgen'] fifthgen_files = [] @@ -83,7 +84,7 @@ jm_files = [ 'jm/panvk_vX_gpu_queue.c', ] -csf_archs = [10, 12, 13] +csf_archs = [10, 12, 13, 14] csf_inc_dir = ['csf'] csf_files = [ 'csf/panvk_vX_bind_queue.c', @@ -126,7 +127,7 @@ common_per_arch_files = [ sha1_h, ] -foreach arch : [6, 7, 10, 12, 13] +foreach arch : [6, 7, 10, 12, 13, 14] 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 940d00522bb..09253ffdb93 100644 --- a/src/panfrost/vulkan/panvk_macros.h +++ b/src/panfrost/vulkan/panvk_macros.h @@ -61,6 +61,9 @@ panvk_catch_indirect_alloc_failure(VkResult error) case 13: \ panvk_arch_name(name, v13)(__VA_ARGS__); \ break; \ + case 14: \ + panvk_arch_name(name, v14)(__VA_ARGS__); \ + break; \ default: \ UNREACHABLE("Unsupported architecture"); \ } \ @@ -84,6 +87,9 @@ panvk_catch_indirect_alloc_failure(VkResult error) case 13: \ ret = panvk_arch_name(name, v13)(__VA_ARGS__); \ break; \ + case 14: \ + ret = panvk_arch_name(name, v14)(__VA_ARGS__); \ + break; \ default: \ UNREACHABLE("Unsupported architecture"); \ } \ @@ -102,6 +108,8 @@ panvk_catch_indirect_alloc_failure(VkResult error) #define panvk_per_arch(name) panvk_arch_name(name, v12) #elif PAN_ARCH == 13 #define panvk_per_arch(name) panvk_arch_name(name, v13) +#elif PAN_ARCH == 14 +#define panvk_per_arch(name) panvk_arch_name(name, v14) #else #error "Unsupported arch" #endif diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 1e95c5c9390..bb18df6b49a 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -64,6 +64,7 @@ PER_ARCH_FUNCS(7); PER_ARCH_FUNCS(10); PER_ARCH_FUNCS(12); PER_ARCH_FUNCS(13); +PER_ARCH_FUNCS(14); static VkResult create_kmod_dev(struct panvk_physical_device *device, @@ -411,6 +412,7 @@ panvk_physical_device_init(struct panvk_physical_device *device, switch (arch) { case 6: case 7: + case 14: 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, "