From 5802d2c0904a99be5e549547e052236df9193dc1 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 14 Aug 2025 17:06:50 -0400 Subject: [PATCH] hasvk: Require HAS_EXEC_ASYNC This feature is as old as the Vulkan driver itself. We've required newer kernels for a long time. There's no point in having this feature bit kicking around. Acked-by: Daniel Stone Acked-by: Lionel Landwerlin Part-of: --- src/intel/vulkan_hasvk/anv_allocator.c | 2 +- src/intel/vulkan_hasvk/anv_device.c | 8 ++++++-- src/intel/vulkan_hasvk/anv_private.h | 1 - 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan_hasvk/anv_allocator.c b/src/intel/vulkan_hasvk/anv_allocator.c index 94403f385fd..3cd9c7b9ae6 100644 --- a/src/intel/vulkan_hasvk/anv_allocator.c +++ b/src/intel/vulkan_hasvk/anv_allocator.c @@ -1527,7 +1527,7 @@ anv_bo_alloc_flags_to_bo_flags(struct anv_device *device, bo_flags |= EXEC_OBJECT_WRITE; } - if (!(alloc_flags & ANV_BO_ALLOC_IMPLICIT_SYNC) && pdevice->has_exec_async) + if (!(alloc_flags & ANV_BO_ALLOC_IMPLICIT_SYNC)) bo_flags |= EXEC_OBJECT_ASYNC; if (pdevice->use_softpin) diff --git a/src/intel/vulkan_hasvk/anv_device.c b/src/intel/vulkan_hasvk/anv_device.c index 1437e30daba..8b2978519f9 100644 --- a/src/intel/vulkan_hasvk/anv_device.c +++ b/src/intel/vulkan_hasvk/anv_device.c @@ -1699,8 +1699,12 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, goto fail_base; } - if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC, &val)) - device->has_exec_async = val; + if (!intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC, &val) || !val) { + result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, + "kernel missing exec async support"); + goto fail_base; + } + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_CAPTURE, &val)) device->has_exec_capture = val; diff --git a/src/intel/vulkan_hasvk/anv_private.h b/src/intel/vulkan_hasvk/anv_private.h index 4bea281117b..3ee3d5afa57 100644 --- a/src/intel/vulkan_hasvk/anv_private.h +++ b/src/intel/vulkan_hasvk/anv_private.h @@ -859,7 +859,6 @@ struct anv_physical_device { */ uint32_t n_perf_query_commands; int cmd_parser_version; - bool has_exec_async; bool has_exec_capture; int max_context_priority; uint64_t gtt_size;