-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Resolution swapping back to dummy plug config resolution mid stream. #44
Comments
upload the logs |
I was having a similar issue, but it happened seconds after the monitor swaps and resolution changes. Logs from monitor swap
Logs from resolution automation
primary.cfg
dummy.cfg
settings.json
For me, the issue was that I |
Ahh, haha. Right as I had finished writing and posting the above, the exact behavior @Rummyster mentioned occurred -- after about 5-10 minutes the dummy plug's original resolution was restored, and I think I caught a glimpse of an LED on my monitor having changed color as if it detected a video signal. The resolution automation log has the same pattern, but is shorter
|
@KetchupBomb You uploaded my example log file instead of the one contained in logs folder on the monitor swapper one |
Hmm. I don't have any other logs for monitor swapper. I am wondering if Windows permissions are getting in the way due to it being installed in However, I am suspicious of the resolution automation log line:
The code that handles MonitorSwapAutomation/StreamMonitor.ps1 Lines 83 to 100 in 75045c8
Would a " |
I was also unable to get any new logs for this behavior. I moved the install folders around and reinstalled everything from scratch twice. Made sure everything was writable but still no logs. I eventually just decided to manually change the dummy plug resolution to whatever I was streaming on so that when it resets it keeps the resolution. Not a great work around but it works. Edit: |
The scripts won’t be able to generate logs if you moved it to program files because program files is write locked and the script by default doesn’t run elevated. also, can you try the pre-release version of the resolution script to see if runs any better? |
What I've done:
I continue to have the same behavior: after about 5-10 minutes of streaming just fine, the dummy resets to the default resolution. I have yet to 100% confirm that my monitor's LED changes ("wakes up") at the same time, but I am very suspicious they're related. I have captured log files for a single Moonlight session during which this resetting occurred. Monitor swap
Resolution automation
A few comments about the logs:
Thanks for your help, @Nonary. I still have some separate issues to raise, but your tools are slowly getting me to my preferred setup. 🙏 Is there a Discord or are Github issues the right way to go for communication like this? |
Both logs show that the stream ended after 12 minutes and somewhere between 8 and 20 seconds. These events usually happen when the undo command is executed, which Sunshine often uses to end a stream. The resolution matcher script is currently on the wrong branch. You should be using the 3.0 branch instead, as the script installer branch is outdated, though I haven’t deleted it yet. The monitor swap log isn’t revealing much either. It triggered the terminate event, meaning the script closed because another session of the monitor swap script was started. However, this is a bug—it should notify you that it’s gracefully closing due to a new session. I'm working on fixing that now. It's possible you might have duplicate installations, which could be causing them to cancel each other out after 5-10 minutes, but I'm not certain yet. |
Actually nevermind, there wasn't a bug there it is closing out properly on both script logs. Are you saying you didnt end the stream after 12 minutes? |
I don't actually think anything is wrong woth the scripts. I'm almost 100% certain it is windows trying to re-enable the disabled monitor it detects. It can be seen lighting up at the same time the dummy plug config get re-enabled. It may be a Nvidia only thing as that's the type of gpu I have. The only work around to this would be to write the resolution of the current display to the dummy plug at the start of a stream. I have confirmed that manually changing the dummy plug to match my clients resolution even while streaming prevents this behavior. |
@Rummyster I have the same issue too on an AMD card just for the record. I have resorted to changing the dummy config manually for now even if it is not ideal. |
Similar issue here. I am using this tool to disable all 3 of my monitors while streaming to my Steam Deck via Sunshine/Moonlight. It works for about 10 minutes then all of my monitors suddenly turn back on. Something is causing them to re enable I am just not quite sure what that is. |
Same issue here, something causes my original monitor to detect a signal for a brief second, and the dummy monitors resolution changes |
For what it's worth, I got a smart switch and put it on the outlet my monitor connects to. When I want to remote play, I just power off the monitor. That way it never sends a "heartbeat" check that messes with Windows swapping around primary monitors and what not. The smart switch hooks into Home Assistant, so when I begin remote play I can trigger all of this through automation. It's been working well. |
Having the same issue, except it only works for 15 seconds |
Tonight I spent some time playing around with the MultiMonitorTool commandline options executed as global do and undo commands in Sunshine. Enabling / Disabling the monitors individually worked, and my desktop monitors did not re-enable themselves. Simply loading the dummy / primary configs (as these scripts would) continuously ended in my monitors re-enabling themselves almost instantly. |
I can reliably solve this issue by setting the dummy / virtual monitor as the primary prior to loading the dummy config. |
Might be resolved in new version which no longer uses MultiMonitorTool https://github.com/Nonary/MonitorSwapAutomation/releases/tag/v2.0.1 |
I updated to As I think we're all coming to realize, there are some monitors that seem to "heartbeat" some signal to the PC, even when the monitor is disabled in Windows. This heartbeat causes windows to not re-enable the display, but it does cause some reset action on the resolution being used in the swapped-to display(s). One way to address this would be to have this MonitorSwapAutomation observe any events to the resolution caused to the swapped-to display(s) and, once detected, forcibly set it back to match the client that initially connected. I don't like this idea, though. Not only is it feature creep, but there are legitimately some use cases where manually changing the resolution after the client has connected is desirable. The way I deal with my monitor's heartbeat is by using a smart plug. One of Sunshine's pre-script makes an API call to the smart plug to turn it off before the stream starts. With the monitor being off, no heartbeat occurs, and the resolution is stable. |
I'm using this with resolution automation and virtual display driver. Everything works as expected when starting the stream but eventually, it will revert back to the resolution set in the dummy plug config.
This seems to happen when my physical monitor wakes up and checks for a connection which happens around the 5 to 10 minute mark.
I've set the enableStrictRestoration in the json file to true but no luck.
The text was updated successfully, but these errors were encountered: