FrogTheFrog / moondeck

A plugin that makes it easier to manage your gamestream sessions from the SteamDeck.
GNU General Public License v3.0
99 stars 3 forks source link

It ignores docked tv resolution #19

Closed igoticecream closed 1 year ago

igoticecream commented 1 year ago

I’m using a 4K tv to stream games from my pc (it also has a 4K monitor connected)

when I launch the game, the stream is using a a low resolution, no setting seems to work

FrogTheFrog commented 1 year ago

Please check the Buddy's logs (also enable debug logs) if it tries to resize host resolution, but fails. Also check the troubleshooting page in wiki, maybe the Moonlight is not properly configured.

lynlevenick commented 1 year ago

I've encountered this as well, I don't have the logs on hand but my desktop successfully resizes to 3840x2160 (from 3440x1440), the stream starts, and everything on the host end looks fine. The client appears to be running at 1920x1080, which gets FSR/integer/nearest/etc upscaled by the deck to the TV's 3840x2160 resolution, resulting in text looking awful among other errors.

I have tried this with a moondeck setting for 4k, a moonlight setting for 4k, every combination of pass-to-moonlight/don't-pass-to-moonlight, nothing fixes it. I'm running the current stable branch on my deck, but this has been happening for at least a month (I didn't use your software before that).

If I run moonlight directly in desktop mode, I receive the 4k image just fine, but due to no fault of your software that isn't a good solution for me because my deck refuses to do 4k60 on my TV whilst in desktop mode (but not in game mode!).

FrogTheFrog commented 1 year ago

I've encountered this as well, I don't have the logs on hand but my desktop successfully resizes to 3840x2160 (from 3440x1440), the stream starts, and everything on the host end looks fine. The client appears to be running at 1920x1080, which gets FSR/integer/nearest/etc upscaled by the deck to the TV's 3840x2160 resolution, resulting in text looking awful among other errors.

I have tried this with a moondeck setting for 4k, a moonlight setting for 4k, every combination of pass-to-moonlight/don't-pass-to-moonlight, nothing fixes it. I'm running the current stable branch on my deck, but this has been happening for at least a month (I didn't use your software before that).

If I run moonlight directly in desktop mode, I receive the 4k image just fine, but due to no fault of your software that isn't a good solution for me because my deck refuses to do 4k60 on my TV whilst in desktop mode (but not in game mode!).

Have you tried setting Moonlight to use native scaling/resolution? See point 2 in https://github.com/FrogTheFrog/moondeck/wiki/Troubleshooting#black-bordersstrange-resolutionstrange-scaling

You need to add Moonlight as non-Steam shortcut first to access the options.

lynlevenick commented 1 year ago

Have you tried setting Moonlight to use native scaling/resolution? See point 2 in https://github.com/FrogTheFrog/moondeck/wiki/Troubleshooting#black-bordersstrange-resolutionstrange-scaling

You need to add Moonlight as non-Steam shortcut first to access the options.

I went and did these steps:

  1. Turn on deck.
  2. Go to desktop mode.
  3. Open Steam.
  4. Add non-steam game.
  5. Select Moonlight.
  6. Go to game mode.
  7. In the new non-steam game for moonlight, set the resolution from "Default" to "Native".
  8. Attempted to stream The Witcher 3 to my deck.
  9. Verified that the problem was still occurring, image was blurry, gamescope overlay level 5 showed FSR active.
  10. Checked the game settings and my desktop to see that it was running in 4k.

edit: though it occurs to me I didn't try the various combinations of passing resolutions/not passing. off to try that now
edit 2: tried that, under every combination the same result occurs
edit 3: same results for setting from "Default" to "3840x2160"

FrogTheFrog commented 1 year ago

Welp, I'm sorry, but I don't have any real advice. Your goal should be to get the non-Steam shortcut working somehow 😐

FrogTheFrog commented 1 year ago

Have you tried setting Moonlight to use native scaling/resolution? See point 2 in https://github.com/FrogTheFrog/moondeck/wiki/Troubleshooting#black-bordersstrange-resolutionstrange-scaling You need to add Moonlight as non-Steam shortcut first to access the options.

I went and did these steps:

1. Turn on deck.

2. Go to desktop mode.

3. Open Steam.

4. Add non-steam game.

5. Select Moonlight.

6. Go to game mode.

7. In the new non-steam game for moonlight, set the resolution from "Default" to "Native".

8. Attempted to stream The Witcher 3 to my deck.

9. Verified that the problem was still occurring, image was blurry, gamescope overlay level 5 showed FSR active.

10. Checked the game settings and my desktop to see that it was running in 4k.

edit: though it occurs to me I didn't try the various combinations of passing resolutions/not passing. off to try that now edit 2: tried that, under every combination the same result occurs edit 3: same results for setting from "Default" to "3840x2160"

Can you try doing this for the shortcut generated by MoonDeck itself? You can find shortcuts under the MoonDeck settings.

FrogTheFrog commented 1 year ago

I'm asking since after the latest Steam Client update now I started to get upscaled image regardless of the troubleshooting recommendation. It fixed it in my case and I will be releasing update to force the use of Native resolution override by MoonDeck shortcuts...

lynlevenick commented 1 year ago

Unfortunately I've been away from my computer (and deck) all weekend. I will try to get back to you tomorrow!

lynlevenick commented 1 year ago

I'm asking since after the latest Steam Client update now I started to get upscaled image regardless of the troubleshooting recommendation. It fixed it in my case and I will be releasing update to force the use of Native resolution override by MoonDeck shortcuts...

It works if I specify 3840x2160. I launch the game, the Moonlight launching screen appears (and is upscaled!) but once the game launches there is no upscaling (per the overlay and image clarity).

However, it does not work if I specify Native. The Moonlight launching screen is still upscaling per usual, but once the game launches there is still upscaling (per the overlay and image clarity) but surprisingly the game is much clearer than it was on Default(!).

That makes me think that 3840x2160 sets the resolution to 3840x2160, Native sets it to 1920x1080 (somehow, in this use case), and that Default is 1280x720 (somehow, in this use case).

lynlevenick commented 1 year ago

Additionally, I tested launching the non-Steam Moonlight shortcut directly and it similarly has no upscaling (for viewing the Desktop "application") when viewed under the 3840x2160 setting, but upscaling is present under Native. It appears that my existing shortcuts (I didn't test making a new one) were all operating under their own resolution options, and the option for the non-Steam shortcut wasn't used as the custom per-game ones were used.

FrogTheFrog commented 1 year ago

@lynlevenick I assume you are using the "auto detect native resolution" (or whatever it is called in MoonDeck) option, right? If so, can you paste the contents from /tmp/moondeck-runner.log for me?

FrogTheFrog commented 1 year ago

I'm thinking about adding a new option for MoonDeck, called App Resolution Override. It will have 3 options:

  1. Default
  2. Native
  3. Custom

The Custom one will match the one that MoonDeck tries to provide for the host.

lynlevenick commented 1 year ago

Here is a link to the contents of that file.

I use a custom resolution of 3840x2160 @ 120000kbps. In Host Settings I have "Pass the resolution and bitrate options to Moonlight [...]" enabled, "Try to apply SteamDeck's resolution on host PC" enabled, and "Try to apply custom resolution on host PC" enabled. My selected custom resolution is that 3840x2160 resolution.

I don't know what "auto detect native resolution" setting you might be talking about. I am on plugin version 1.5.7.

FrogTheFrog commented 1 year ago

Can you please disable Try to apply custom resolution on host PC and paste the log again?

FrogTheFrog commented 1 year ago

What I'm interested in is whether the MoonDeck can detect external display's resolution or not...

lynlevenick commented 1 year ago

Here you go!

Sunshine is my host, this is with Moonlight set to 4k@120kbps, my host monitor originally running at its 3440x1440 resolution but it appears that the moonlight/sunshine handshake appropriately set it to 4k, to stream to the client TV.

FrogTheFrog commented 1 year ago

Here you go!

Sunshine is my host, this is with Moonlight set to 4k@120kbps, my monitor originally running at its 3440x1440 resolution but it appears that the moonlight/sunshine handshake appropriately set it to 4k.

Moonlight does not such thing, MoonDeck did :D

FrogTheFrog commented 1 year ago

Ok, I now have enough info and will try to work on it on free time. Will ping you once it's in the Testing store :)

FrogTheFrog commented 1 year ago

@lynlevenick can you please grab a release from the testing store and check how the new feature work for you? There are 4 options to chose from (found at the bottom of host settings page). The default one should work out of the box.

lynlevenick commented 1 year ago

It works great for The Witcher 3, where the game goes to its configured 3840x2160 resolution on its own and the client is no longer FSR scaled and fully sharp. I also ran where I purged all of the moondeck shortcuts beforehand to simulate a fresh install and everything was still great. Thank you so much for the fix!

As an aside, if I launch a game which relies on my desktop resolution, like Forspoken, it doesn't resize my desktop and ends up running letterboxed at 3440x1440 on the 3840x2160 display, but I can at least work around that by changing it manually before I go off to use the TV, and changing any of that behavior isn't in the scope of this ticket and easily worked around besides.

FrogTheFrog commented 1 year ago

As an aside, if I launch a game which relies on my desktop resolution, like Forspoken, it doesn't resize my desktop and ends up running letterboxed at 3440x1440 on the 3840x2160 display, but I can at least work around that by changing it manually before I go off to use the TV, and changing any of that behavior isn't in the scope of this ticket and easily worked around besides.

I'm not sure I understand the issue. Please tell me that I understand it correctly.

  1. You have a monitor running at 3440x1440 and a TV display running at 3840x2160.
  2. Before the stream starts MoonDeck sends a request to change the desktop resolution to 3840x2160 and I can see from the logs that your host PC is happy with this request.
  3. MoonDeck then sends a request to start the game.
  4. Witcher 3 happily uses the 3840x2160 resolution (maybe running as borderless window or smt).
  5. Forspoken uses the last resolution it used before, namely the 3440x1440 unless you change it manually in the game?

If this is correct, then the Sunshine would still capture the whole desktop (3840x2160), but since Forspoken is running in fullscreen mode and renders only at 3440x1440, the GPU has to perform scaling. Depending on the scaling configuration (at least for nvidia there is a "no scaling" option), it can also do nothing and as a result you will get a 3440x1440 image centered inside a black 3840x2160 rectangle.

So, is my speculation correct?

lynlevenick commented 1 year ago

It does run on the 3840x2160 desktop but in 3440x1440 letterboxed inside the 3840x2160 resolution (so, doubly letterboxed because I have a 21:9 monitor, singly letterboxed on the TV because it's streaming 3840x2160). For some reason Forspoken refuses to go to 3840x2160 unless my desktop is set to that before I ever try to launch with moondeck. Witcher 3 is fine with everything. Even if I try to change settings ingame, Forspoken only offers me resolutions up to 3440x1440, even if I switch between borderless to fullscreen/windowed/etc. If I had to speculate I'd say Forspoken captures the available resolutions incredibly weirdly/early and doesn't recheck later? idk.

FrogTheFrog commented 1 year ago

Pffff, yeah I have no idea what's the problem. As I mentioned, MoonDeck changes resolution before it launches the game 🤔. Anyway, ty for the feedback and happy gaming!