Mesa (main): radv: Initialize vk device drm fd.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Dec 31 15:40:22 UTC 2021


Module: Mesa
Branch: main
Commit: 3055d2f9dfed64e2b2a07afaffb6e61e7a1e8e22
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3055d2f9dfed64e2b2a07afaffb6e61e7a1e8e22

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Sun Nov 28 13:39:21 2021 +0100

radv: Initialize vk device drm fd.

For common sync.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

---

 src/amd/vulkan/radv_device.c                      | 1 +
 src/amd/vulkan/radv_radeon_winsys.h               | 2 ++
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 8 ++++++++
 src/amd/vulkan/winsys/null/radv_null_winsys.c     | 7 +++++++
 4 files changed, 18 insertions(+)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 20063e0e230..633bb2ea8ab 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -3074,6 +3074,7 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
    device->physical_device = physical_device;
 
    device->ws = physical_device->ws;
+   vk_device_set_drm_fd(&device->vk, device->ws->get_fd(device->ws));
 
    keep_shader_info = device->vk.enabled_extensions.AMD_shader_info;
 
diff --git a/src/amd/vulkan/radv_radeon_winsys.h b/src/amd/vulkan/radv_radeon_winsys.h
index 07d3480b07a..b7a281c6050 100644
--- a/src/amd/vulkan/radv_radeon_winsys.h
+++ b/src/amd/vulkan/radv_radeon_winsys.h
@@ -312,6 +312,8 @@ struct radeon_winsys {
 
    /* Note that this, unlike the normal import, uses an existing syncobj. */
    int (*import_syncobj_from_sync_file)(struct radeon_winsys *ws, uint32_t syncobj, int fd);
+
+   int (*get_fd)(struct radeon_winsys *ws);
 };
 
 static inline void
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
index beb237b21b1..538576db212 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
@@ -180,6 +180,13 @@ radv_amdgpu_winsys_destroy(struct radeon_winsys *rws)
    FREE(rws);
 }
 
+static int
+radv_amdgpu_winsys_get_fd(struct radeon_winsys *rws)
+{
+   struct radv_amdgpu_winsys *ws = (struct radv_amdgpu_winsys *)rws;
+   return amdgpu_device_get_fd(ws->dev);
+}
+
 struct radeon_winsys *
 radv_amdgpu_winsys_create(int fd, uint64_t debug_flags, uint64_t perftest_flags, bool reserve_vmid)
 {
@@ -244,6 +251,7 @@ radv_amdgpu_winsys_create(int fd, uint64_t debug_flags, uint64_t perftest_flags,
    ws->base.read_registers = radv_amdgpu_winsys_read_registers;
    ws->base.get_chip_name = radv_amdgpu_winsys_get_chip_name;
    ws->base.destroy = radv_amdgpu_winsys_destroy;
+   ws->base.get_fd = radv_amdgpu_winsys_get_fd;
    radv_amdgpu_bo_init_functions(ws);
    radv_amdgpu_cs_init_functions(ws);
    radv_amdgpu_surface_init_functions(ws);
diff --git a/src/amd/vulkan/winsys/null/radv_null_winsys.c b/src/amd/vulkan/winsys/null/radv_null_winsys.c
index 4a133d013ea..bcac3528ed8 100644
--- a/src/amd/vulkan/winsys/null/radv_null_winsys.c
+++ b/src/amd/vulkan/winsys/null/radv_null_winsys.c
@@ -157,6 +157,12 @@ radv_null_winsys_destroy(struct radeon_winsys *rws)
    FREE(rws);
 }
 
+static int
+radv_null_winsys_get_fd(struct radeon_winsys *rws)
+{
+   return -1;
+}
+
 struct radeon_winsys *
 radv_null_winsys_create()
 {
@@ -168,6 +174,7 @@ radv_null_winsys_create()
 
    ws->base.destroy = radv_null_winsys_destroy;
    ws->base.query_info = radv_null_winsys_query_info;
+   ws->base.get_fd = radv_null_winsys_get_fd;
    radv_null_bo_init_functions(ws);
    radv_null_cs_init_functions(ws);
 



More information about the mesa-commit mailing list