Mesa (main): Revert "zink: remove drm_fd"

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Jun 4 01:48:26 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Jun  1 11:30:32 2022 -0400

Revert "zink: remove drm_fd"

This reverts commit c5960f64b139605dbefa34c2cc2a089ba00ae1e2.

Reviewed-by: Adam Jackson <ajax at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16815>

---

 src/gallium/drivers/zink/zink_screen.c | 7 +++++++
 src/gallium/drivers/zink/zink_screen.h | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index b1e47f17aca..3645c7fb8ca 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -1275,6 +1275,8 @@ zink_destroy_screen(struct pipe_screen *pscreen)
    util_idalloc_mt_fini(&screen->buffer_ids);
 
    util_dl_close(screen->loader_lib);
+   if (screen->drm_fd != -1)
+      close(screen->drm_fd);
 
    slab_destroy_parent(&screen->transfer_pool);
    ralloc_free(screen);
@@ -2348,6 +2350,9 @@ struct pipe_screen *
 zink_create_screen(struct sw_winsys *winsys, const struct pipe_screen_config *config)
 {
    struct zink_screen *ret = zink_internal_create_screen(config);
+   if (ret) {
+      ret->drm_fd = -1;
+   }
 
    return &ret->base;
 }
@@ -2357,6 +2362,8 @@ zink_drm_create_screen(int fd, const struct pipe_screen_config *config)
 {
    struct zink_screen *ret = zink_internal_create_screen(config);
 
+   if (ret)
+      ret->drm_fd = os_dupfd_cloexec(fd);
    if (ret && !ret->info.have_KHR_external_memory_fd) {
       debug_printf("ZINK: KHR_external_memory_fd required!\n");
       zink_destroy_screen(&ret->base);
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index 3dc925108e9..142c127f3c5 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -113,6 +113,7 @@ struct zink_screen {
    simple_mtx_t dt_lock;
 
    bool device_lost;
+   int drm_fd;
 
    struct hash_table framebuffer_cache;
 



More information about the mesa-commit mailing list