From 1eae5ca94f34a85909a5dba4277aade4ff15f7de Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Sat, 23 May 2026 13:32:07 +0200 Subject: [PATCH] v3dv: allow device with only render node When using drm-shim there is no primary node for the driver. This is fine, and hence we only mark that we don't have primary device. This fixes using v3dv with drm-shim. Signed-off-by: Juan A. Suarez Romero Reviewed-by: Iago Toral Quiroga Part-of: --- src/broadcom/vulkan/v3dv_device.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index d153a15d982..113cb786e7d 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -1359,10 +1359,10 @@ create_physical_device(struct v3dv_instance *instance, if (fstat(primary_fd, &primary_stat) != 0) { result = vk_errorf(instance, VK_ERROR_INITIALIZATION_FAILED, "failed to stat DRM primary node"); - goto fail; + } else { + device->has_primary = true; + device->primary_devid = primary_stat.st_rdev; } - device->has_primary = true; - device->primary_devid = primary_stat.st_rdev; if (fstat(render_fd, &render_stat) != 0) { result = vk_errorf(instance, VK_ERROR_INITIALIZATION_FAILED, @@ -1664,7 +1664,7 @@ enumerate_devices(struct vk_instance *vk_instance) break; } - if (render_fd < 0 || primary_fd < 0) + if (render_fd < 0) result = VK_ERROR_INCOMPATIBLE_DRIVER; else result = create_physical_device(instance, primary_fd, render_fd, display_fd);