fabiangreffrath / woof

Woof! is a continuation of the Boom/MBF bloodline of Doom source ports.
GNU General Public License v2.0
186 stars 32 forks source link

Dynamic Resolution doesn't stay at my native resolution #1738

Closed MrAlaux closed 3 weeks ago

MrAlaux commented 1 month ago

Tested in the latest master artifact (Win-64).

As you may remember, Woof runs at 1364x640 for me when I set the resolution to native (with widescreen set to Auto; 16:9 in my case).

With Dynamic Resolution disabled, at the start of Doom2 Map01, the game stays at 59 FPS just fine, and by disabling VSync I get around 118 FPS.

Judging by this, I would guess that Dynamic Resolution should keep me at my native resolution. However, it simply doesn't: if I set resolution to native and enable Dynamic Resolution, once I leave the menu it stays at 1364x640 for just about a second, then drops to 1278x600 and stays there.

If I set resolution to 300% (which corresponds to 1278x600), it does stay in that resolution.

I'm pretty sure this has been the case for me ever since the first release with Dynamic Resolution, and it's the reason I rarely use it, but I never bothered to report it until now.

rfomin commented 1 month ago

I would guess that Dynamic Resolution should keep me at my native resolution. However, it simply doesn't: if I set resolution to native and enable Dynamic Resolution, once I leave the menu it stays at 1364x640 for just about a second, then drops to 1278x600 and stays there.

For a more stable image only 50px step is used, so 640p is not included. This can be fixed, but I'm not sure it's worth it. I have a few questions:

  1. Can you, without using the IDRATE cheat code, see the difference between 640p and 600p?
  2. Why do you prefer 640p? I think 640p looks worse than 600p, it's noticeable on the UI elements.

I'm thinking of increasing the dynamic resolution step to 100p or even 200p, but then it would be completely useless for 768p displays.

MrAlaux commented 1 month ago
  1. Can you, without using the IDRATE cheat code, see the difference between 640p and 600p?

Barely, admittedly.

  1. Why do you prefer 640p? I think 640p looks worse than 600p, it's noticeable on the UI elements.

Simply because it's closer to my native resolution. I play with Smooth Pixel Scaling off, so some UI elements are notably stretched due to aspect ratio correction, and I'm already used to it.

fabiangreffrath commented 1 month ago

So, what can we do about this?

  1. Let dynamic resolution start at the native resolution and reduce in steps from there on, i.e. 640 -> 540 -> 440 -> ...
  2. Adapt the dynamic resolution step size to make sure the native resolution is reached by one of the steps, i.e. 640 -> 600 -> 560 -> ...
  3. Force the native resolution to be the last step on the dynamic resolution scale but keep step size elsewhere, i.e. 640 -> 600 -> 500 -> 400 -> ...
  4. Ignore and close the issue 😛
rfomin commented 1 month ago

3. Force the dynamic resolution to be the last step on the dynamic resolution scale but keep step size elsewhere, i.e. 640 -> 600 -> 500 -> 400 -> ...

I've thought about this approach, but haven't tried it yet.

fabiangreffrath commented 1 month ago
  1. Force the dynamic resolution to be the last step on the dynamic resolution scale but keep step size elsewhere, i.e. 640 -> 600 -> 500 -> 400 -> ...

I've thought about this approach, but haven't tried it yet.

It has to be "native resolution" in the first part of the quoted sentence, sorry!