From e0d3794c1dee087455916b4d5086c9e6ea81a013 Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Sun, 19 Jul 2026 00:14:40 +1000 Subject: [PATCH] [idd] helper: fix dependency cycle issue on windows 10 --- idd/LGIddHelper/CPipeClient.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/idd/LGIddHelper/CPipeClient.cpp b/idd/LGIddHelper/CPipeClient.cpp index 834366e8..f9ec9518 100644 --- a/idd/LGIddHelper/CPipeClient.cpp +++ b/idd/LGIddHelper/CPipeClient.cpp @@ -337,9 +337,14 @@ bool CPipeClient::EnsureOnlyDisplayLocked() path.targetInfo.modeInfoIdx = 1; path.flags |= DISPLAYCONFIG_PATH_ACTIVE; + // Keep a bootable physical-display topology in the persistence + // database. Persisting an LG-only topology creates a dependency cycle + // on Windows 10 at the next boot: IddCx waits for display topology + // initialization while the saved topology waits for this IDD adapter. + // The helper reapplies this temporary topology on startup, display + // changes and periodically, so it remains enforced for the session. result = SetDisplayConfig(1, &path, 2, selectedModes, - SDC_APPLY | SDC_USE_SUPPLIED_DISPLAY_CONFIG | - SDC_ALLOW_CHANGES | SDC_SAVE_TO_DATABASE); + SDC_APPLY | SDC_USE_SUPPLIED_DISPLAY_CONFIG | SDC_ALLOW_CHANGES); if (result != ERROR_SUCCESS) { DEBUG_ERROR("Failed to apply the LG-only display topology (%ld)",