Lossless Scaling

Lossless Scaling

(ノ°□°)ノ  [developer] Dec 7, 2022 @ 8:36am
2
2.2.3 released
- Added the ability to output scaled content to another display.

The main reason for adding this strange option is to be able to capture games running in exclusive fullscreen mode on the primary monitor and display scaled content on the secondary one, which seems to be the only possible way.
When scaling the game from the primary monitor (both windowed and fullscreen mode) the lowest latency is observed. The opposite maybe true when the displays are connected to the same GPU, but this is not my case.
Since it can be important, when choosing a display, it is written to which GPU it is physically connected.
You can also downscale the game from a higher resolution monitor to a lower one, but I can't imagine why anyone would want to do that ¯\_(ツ)_/¯
< >
Showing 1-15 of 18 comments
Pant Dec 7, 2022 @ 8:47am 
:steamthumbsup:
Blvck Raevyn Dec 7, 2022 @ 9:52am 
Scaling hype!
xvt Dec 7, 2022 @ 12:00pm 
Thanks for the update!
Been looking forward to this functionality since I have 2 screens (a monitor and a tv, both with different refresh rates). I usually game on the tv.

Testing this version, even when I select the tv as output, LS seems to sync only to whatever is the main display -in this case, the monitor's refresh rate (both Draw FPS option in LS and PresentMon show it doing so) and there's visible judder in the upscaled 3D app because of desync.
Is there a way to make LS "sync" to the screen refresh rate it is upscaling to?
Last edited by xvt; Dec 7, 2022 @ 12:12pm
(ノ°□°)ノ  [developer] Dec 7, 2022 @ 12:16pm 
Originally posted by xvt:
Testing this version, even when I select the tv as output, LS seems to sync to the monitor's refresh rate (both Draw FPS option in LS and PresentMon show it doing so) and there's visible judder in the upscaled 3D app because of desync.
Is there a way to make LS "sync" to the screen refresh rate it is upscaling to?

There should be no "desync" as game capture and scaled content rendering happen independently. So it's caused by something else.
As for the refresh rate, I haven't worked out the details myself yet. If I scale the game from a 60 Hz monitor to a 120 Hz monitor, LS runs at 120 FPS. If I keep the game on 120 Hz monitor and output to it, then for some reason it is 60 FPS. The 60 Hz monitor is the primary one. What is your configuration?
Last edited by (ノ°□°)ノ; Dec 7, 2022 @ 12:18pm
xvt Dec 7, 2022 @ 3:28pm 
Monitor is 75 Hz (main), TV is 60 Hz.
If I start a game (configured to start on the TV), the game's window starts on the TV, no problem. When using LS to upscale, it upscales without a problem, but as I mentioned, there's judder and both internal LS framerate counter and PresentMon show LS running at 75 fps.

If I make the TV the main screen, judder disappears and both LS framerate counter and PresentMon show LS running at 60 fps, that's why I mentioned "desync": in my limited knowledge about the topic my theory is LS is synchronizing the output to the main screen refreshrate (based on LS Draw FPS and PresentMon info), not to the screen it is upscaling to.
I've seen the same behaviour with RTSS's hybrid s-sync: if the "wrong" screen is synced to, there's judder.
Last edited by xvt; Dec 7, 2022 @ 3:33pm
softsoundd Dec 7, 2022 @ 7:34pm 
Quality updates just keep on coming. Amazing work, best Steam purchase I've made in a while
(ノ°□°)ノ  [developer] Dec 8, 2022 @ 12:27am 
Originally posted by xvt:
If I make the TV the main screen, judder disappears and both LS framerate counter and PresentMon show LS running at 60 fps, that's why I mentioned "desync": in my limited knowledge about the topic my theory is LS is synchronizing the output to the main screen refreshrate (based on LS Draw FPS and PresentMon info), not to the screen it is upscaling to.
I've seen the same behaviour with RTSS's hybrid s-sync: if the "wrong" screen is synced to, there's judder.

This contradicts my testing. As I already said, my primary screen has 60 Hz, while LS runs at 120 FPS on the secondary screen.

Have you tried keeping the game on the monitor and scaling on the TV?

Another test: scaling a game from 120 Hz to 60 Hz monitor uncaps LS framerate (I get over 120 FPS) ¯\_(ツ)_/¯
Last edited by (ノ°□°)ノ; Dec 8, 2022 @ 1:23am
xvt Dec 8, 2022 @ 1:58pm 
How odd!
Here's a screenshot[i.imgur.com] showing the Pendulum Demo running at 120 on the monitor (no vsync, just a plain framerate cap at 120) and you can see both PresentMon and LS's Draw FPS option showing 75 FPS on the TV.
I removed both Nvidia CP and RTSS profiles for LS just in case those were affecting the test.

Now, if I launch the Pendulum Demo and then make the TV the main display and then upscale with LS, here's how it looks[i.imgur.com].
Last edited by xvt; Dec 8, 2022 @ 2:10pm
(ノ°□°)ノ  [developer] Dec 8, 2022 @ 2:34pm 
Originally posted by xvt:
How odd!

It definitely has something to do with the primary display, but I don't see a consistent pattern of behavior yet. Without knowing what Windows does under the hood, it will be difficult to figure it out. By the way, what version do you have?
xvt Dec 8, 2022 @ 3:09pm 
Win 11 22H2 Build 22621.900

I also ran both scenarios with the new "Optimization for windowed games" option disabled, but the results are the same.
Last edited by xvt; Dec 8, 2022 @ 3:10pm
shodanpc Dec 8, 2022 @ 4:27pm 
Thank you!
Hi, I dont know what it is but after the last update feels a bit off, no matter if I choose the integrated intel gpu or dedicated nvidia gpu, and no matter if I choose fsr or nis or Bicubic CAS, the latency is really really bad, 12 ms + where before using Bicubic CAS I had 2-3 ms, besides this really nice app, hopefully this little problem gets patched/fixed somehow. Thank you again for all the effort!
(ノ°□°)ノ  [developer] Dec 9, 2022 @ 2:22pm 
Originally posted by BadBun うさぎの耳:
Hi, I dont know what it is but after the last update feels a bit off, no matter if I choose the integrated intel gpu or dedicated nvidia gpu, and no matter if I choose fsr or nis or Bicubic CAS, the latency is really really bad, 12 ms + where before using Bicubic CAS I had 2-3 ms, besides this really nice app, hopefully this little problem gets patched/fixed somehow. Thank you again for all the effort!

Hi,
How do you measure the latency?
Originally posted by (ノ°□°)ノ :
Originally posted by BadBun うさぎの耳:
Hi, I dont know what it is but after the last update feels a bit off, no matter if I choose the integrated intel gpu or dedicated nvidia gpu, and no matter if I choose fsr or nis or Bicubic CAS, the latency is really really bad, 12 ms + where before using Bicubic CAS I had 2-3 ms, besides this really nice app, hopefully this little problem gets patched/fixed somehow. Thank you again for all the effort!

Hi,
How do you measure the latency?

Hi handsome, with the in app Draw FPS , I use this option since you release it and I love it, but as said, in this last version I notice an increase in latency, no matter the scaling type or the preferred GPU, laptop here, before when I was using intel gpu (integrated) with bicubic CAS or FSR the latency was in between 2 and 3 ms, and high fps value, while using nvidia (dedicated) I was getting not more than 30 fps no matter what and latency around 10-13ms, now with this last version, I get ok ish fps with both, higher fps with integrated as usual, but with both (intel integrated, nvidia dedicated) the latency is 10ms +
Last edited by BadBunうさぎの耳; Dec 9, 2022 @ 2:39pm
(ノ°□°)ノ  [developer] Dec 9, 2022 @ 3:03pm 
Originally posted by BadBun うさぎの耳:
Hi handsome, with the in app Draw FPS , I use this option since you release it and I love it, but as said, in this last version I notice an increase in latency, no matter the scaling type or the preferred GPU, laptop here, before when I was using intel gpu (integrated) with bicubic CAS or FSR the latency was in between 2 and 3 ms, and high fps value, while using nvidia (dedicated) I was getting not more than 30 fps no matter what and latency around 10-13ms, now with this last version, I get ok ish fps with both, higher fps with integrated as usual, but with both (intel integrated, nvidia dedicated) the latency is 10ms +

App draws the frame time (time it takes to scale one frame), not latency. But it may also affect latency when it's high. Does "double buffering" option makes a difference ?
< >
Showing 1-15 of 18 comments
Per page: 1530 50

Date Posted: Dec 7, 2022 @ 8:36am
Posts: 18