Win10 with Eve 4k and a Full HD monitor - problems of the OS

This is not 100% Eve or Spectrum related, but it popped up with my new Spectrum and maybe others are in a similar situation or have already solved it…

As the title states, I am using my 4k Eve and another Full HD monitor with Win10.
The Eve is scaled by 175% while the other one stays at 100%. I can’t use the 4k Monitor at 100%, since everything would be way to small :sweat_smile:
Most of the apps are working fine with this setup, but there are issues with some apps or some combinations.

1.) some apps look heavily oversized on the Full HD monitor, like they were also affected by the 175% scaling (e.g. FastStone Image Viewer or the “magnifying” feature of the screenshot tool Monosnap)

2.) I set Destiny 2 to run on FullHD on the Eve. There are several issues: I get thrown out of the game window several times before being able to play. Also the second monitor, where I normaly place either my browser or discord, only shows the wallpaper - sometimes the wallpapers of both screens oddly arranged - and nothing more.

  1. is obviously some compatibility issue of win, the app and the two resolutions, whereas 2. seems to be an issue with the changed resolution itself.

Did anybody experience similar issues? Does anybody have a solution?

1 Like

Yeah, that is windows doing its job :confused: . I had my two cents for this topic:

Maybe this changed with win11, but you’ll probably have to live with these problems if you want to run two resolutions.

The “oddly arranged” settings happen, if the desktop resolution is different form the ingame resolution

2 Likes

thanks for your feedback. I did not want to replace the Eizo screen, but looks like sooner or later I have to :see_no_evil:

1 Like

Windows is notoriously bad about dealing with multi-monitor situations - especially when you’re using mixed resolution environments.

If you have a nvidia card, you can enable Dynamic Super Resolution (set DSR - Factors in nvidia manage 3d settings panel to 4.00x). This will let you set your 1080p monitor to 4k, and means that both monitors run at the same resolution. This will eliminate the weird different screen scales when moving windows between monitors.

Play in fullscreen windowed (aka borderless) mode when possible.

If your card can’t handle 4k gaming, some games allow you to scale down the render resolution (so it renders at 1080p and then upscales to the 4k display).

If the game doesn’t have that feature, you can try getting windows to scale it for you:

image

The point is to keep the monitor resolution at 4k, and scale the game to fit it instead. This avoids the windows issues related to resolution switching in a multi monitor environment.

Obviously it won’t look as good as it would have in native, but this can avoid some of the headaches that comes from resolution switching in a multi-monitor environment until Windows realizes it’s not 1999 anymore and people actually can afford more than 1 monitor.

To be clear - you’d change those DPI settings for the game you’re trying to play, not for chrome. I just used that as an example =P

4 Likes

thanks a lot! I did not know about that nvidia feature - going to test that right away!
your suggestions sound really promissing, thanks a lot for sharing!

1 Like

Welcome! The best solution is to just have a video card capable of 4k gaming, so you don’t have to do any of the scaling “hacks”.

I know price wouldn’t be an issue (anyone who can afford a spectrum can afford a card to drive it, and really should prioritize their money on the card over the monitor if they can’t afford both), but I realize not everyone can get their hands on the new cards yet due to availability.

1 Like

Fwiw, for games, the “System (Enhanced)” DPI-scaling mode is overkill while it sometimes affects performance noticeably. For games, just “System” should be used, not “System (Enhanced)”. The “Enhanced” part corresponds to that Windows tries to render text (only possible if the app renders text via GDI) at full native/desktop resolution while displaying user interface and graphics scaled.

But actually, both “System” and “System (Enhanced)” are unneeded because Eve Spectrum has built-in pixel-perfect (integer) scaling and DPI scaling is unneeded as a way for scaling. Just set the in-game resolution to FHD and enjoy high performance with zero quality loss compared with a Full-HD monitor of the same size. Make sure to switch the game to exclusive full-screen mode. If the game does not support exclusive full-screen mode and only supports so called borderless mode (“Windowed Fullscreen”), switching Windows to the in-game resolution before running the game is needed for utilizing the monitor’s own scaling.

1 Like

Only if you’re allowing resolution changes. These suggestions were a way to let him keep the monitor at 4k resolution while rendering at a lower resolution if his card can’t handle 4k gaming. This would be to avoid some of the windows glitches that result from resolution switching in a muli-monitor environment (windows moving weirdly/disappearing on second screen, etc).

Ah, ok, good to know. I used the enhanced mode for everything because it’s what seemed to look the best originally when working with older apps that didn’t dpi scale properly, so just kept using it when trying to make games scale too before getting my new video card. I never noticed a performance issue doing this, but I also don’t really play competitive shooters or anything.

There is another fix that may work better for some FOSS type apps, particularly those that use QT 5 for the UI.

Open Control Panel, then go to System, then Advanced System Settings (for Windows 11, you can simply open Windows Settings → System → About → click the link to Advanced System settings under Device Specifications section). On the System Properties dialog box, click Environment variables... button.

An alternate way is to use the Start Menu search for ‘environment variables’ (leave off the quotation marks) and it should find it as a Control Panel applet that you can open directly.

It should look something like this:

17

Once there, under the bottom section (System variables) click the New... button and then add the following in:

Variable name: QT_AUTO_SCREEN_SCALE_FACTOR
Variable value: 0

After adding that, click New... button again and add the following in:

Variable name: QT_SCREEN_SCALE_FACTORS
Variable value: 2

I’ve found that using this method fixes 99% of apps using QT (and particularly QT 5) with multiple DPI scaling values in a multi-resolution setup perfectly fine. In fact, better than native Windows apps.

Background: I use a Spectrum as my primary monitor, and an older 1080p monitor as secondary. The end goal is to have a pair of Spectrums on the desk, but until that happens, this is what I have. I run the 1080p at 100% DPI scaling, and the Spectrum at 150% DPI scaling, and Windows Settings (in Windows 11) gets stupid, forget other apps. If I allow the machine to go into standby, or power off the monitors, then when I come back, Windows Settings will always open on the secondary monitor - and always as if 150% DPI scaling is enabled (so very large text). Dragging it to the Spectrum and the size and text size and scaling get 'fixed, then dragging it back to the 1080p and it still renders correctly. But apps that use QT for the GUI were notorious for showing all sorts of weird sizes and scaling on the Spectrum. Using the settings above fixed 99% of my scaling issues with apps that use QT, and QT 5 in particular.

As with any fixes, YMMV, and please be aware this is not for the majority of Windows apps, just those (mostly open source) ones that use QT / QT 5 for displaying GUIs (like KeePassXC, Free Download manager, etc.).

HTH

2 Likes

thanks for this new approach - is this only for Win11?

1 Like

it might have a positive effect on win10 too - will observe this. it seems the windows stay where they are and probably even wakeup is a bit faster. but as said I need to observe it a bit

1 Like

This should work across Windows going back to XP, but I haven’t actually tested on anything before Windows 10.

I do have it working on both 10 and 11 with no issues.

Personally, I just enabled DSR (4.0x), which let me set my 1080p monitor to 4k, and then set a global custom DPI to be used across all monitors.

In addition to this, to fix some really recalcitrant QT5.x-based apps, you can also add in a third env var to the list:

variable name QT_SCALE_FACTOR
variable value 1

For reference, here are the other two:

Variable name: QT_AUTO_SCREEN_SCALE_FACTOR
Variable value: 0

Variable name: QT_SCREEN_SCALE_FACTORS
Variable value: 2

The information I’ve found has been gleaned from a variety of sources, but this link shows it all in one place, directly from the QT devs:

https://doc.qt.io/qt-5/highdpi.html

HTH

1 Like