diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 9aeabc9b381..e68ed136d86 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -810,12 +810,18 @@ anv_physical_device_try_create(struct anv_instance *instance, goto fail_alloc; } + if (!anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE_ARRAY)) { + result = vk_errorfi(device->instance, NULL, + VK_ERROR_INITIALIZATION_FAILED, + "kernel missing syncobj support"); + goto fail_base; + } + device->has_exec_async = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC); device->has_exec_capture = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_CAPTURE); device->has_exec_fence = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE); - device->has_syncobj = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE_ARRAY); - device->has_syncobj_wait = device->has_syncobj && - anv_gem_supports_syncobj_wait(fd); + device->has_syncobj = true; + device->has_syncobj_wait = anv_gem_supports_syncobj_wait(fd); device->has_syncobj_wait_available = anv_gem_get_drm_cap(fd, DRM_CAP_SYNCOBJ_TIMELINE) != 0;