From 27284d14fd486a977da3d254073922d0e2ce43a6 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 21 Jan 2025 09:07:36 -0800 Subject: [PATCH] tu: Fix raytracing query with vdrm Need to query the cap _before_ we close the connection. Fixes: 4a5b234d5e95 ("tu: Plumb through raytracing fuse") Signed-off-by: Rob Clark Part-of: --- src/freedreno/vulkan/tu_knl_drm_virtio.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_knl_drm_virtio.cc b/src/freedreno/vulkan/tu_knl_drm_virtio.cc index a5685ede188..3a16d0545ac 100644 --- a/src/freedreno/vulkan/tu_knl_drm_virtio.cc +++ b/src/freedreno/vulkan/tu_knl_drm_virtio.cc @@ -1159,6 +1159,9 @@ tu_knl_drm_virtio_load(struct tu_instance *instance, uint32_t bank_swizzle_levels = tu_drm_get_ubwc_swizzle(vdrm); enum fdl_macrotile_mode macrotile_mode = tu_drm_get_macrotile_mode(vdrm); + /* TODO add a cap for this */ + bool has_raytracing = tu_drm_get_raytracing(vdrm); + vdrm_device_close(vdrm); mesa_logd("wire_format_version: %u", caps.wire_format_version); @@ -1227,8 +1230,7 @@ tu_knl_drm_virtio_load(struct tu_instance *instance, device->submitqueue_priority_count = caps.u.msm.priorities; - /* TODO add a cap for this */ - device->has_raytracing = tu_drm_get_raytracing(vdrm); + device->has_raytracing = has_raytracing; device->syncobj_type = vk_drm_syncobj_get_type(fd); /* we don't support DRM_CAP_SYNCOBJ_TIMELINE, but drm-shim does */