From ff8c0b183be29249264076dee0a4c3182300fac6 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 10 Sep 2021 11:05:09 +0200 Subject: [PATCH] Introduce finish_drm For now it just closes the DRM FD, but will do more soon. --- src/drm.cpp | 6 ++++++ src/drm.hpp | 1 + src/steamcompmgr.cpp | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/drm.cpp b/src/drm.cpp index 32d2649..7f57d72 100644 --- a/src/drm.cpp +++ b/src/drm.cpp @@ -607,6 +607,12 @@ int init_drm(struct drm_t *drm, const char *device_name) return 0; } +void finish_drm(struct drm_t *drm) +{ + close(drm->fd); + drm->fd = -1; +} + static int add_property(drmModeAtomicReq *req, uint32_t obj_id, std::map &props, const char *name, uint64_t value) { if ( props.count( name ) == 0 ) diff --git a/src/drm.hpp b/src/drm.hpp index 5274e17..dc06076 100644 --- a/src/drm.hpp +++ b/src/drm.hpp @@ -125,6 +125,7 @@ extern bool g_bDebugLayers; extern const char *g_sOutputName; int init_drm(struct drm_t *drm, const char *device); +void finish_drm(struct drm_t *drm); int drm_commit(struct drm_t *drm, struct Composite_t *pComposite, struct VulkanPipeline_t *pPipeline ); int drm_prepare( struct drm_t *drm, const struct Composite_t *pComposite, const struct VulkanPipeline_t *pPipeline ); bool drm_poll_state(struct drm_t *drm); diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp index f441629..34e9ab0 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp @@ -3852,4 +3852,6 @@ steamcompmgr_main (int argc, char **argv) statsThreadRun = false; statsThreadSem.signal(); } + + finish_drm( &g_DRM ); }