Skip to content
This repository has been archived by the owner on Mar 28, 2024. It is now read-only.

[BUG-11024] Second Life unusable on Windows 10 with 4k monitor: SL forcibly overrides DPI compatibility option #1286

Open
17 tasks
sl-service-account opened this issue Dec 21, 2015 · 12 comments

Comments

@sl-service-account
Copy link

sl-service-account commented Dec 21, 2015

Steps to Reproduce

  1. Install Windows 10 on a system with a high PPI (HiDPI) display. eg., common "4k" (3840x2160) displays or laptops
  2. Launch and observe that text controls are too tiny
  3. Try opening the "properties" for the Second Life shortcut, selecting the "Compatibility" tab, and unchecking the option to "Disable display scaling on HiDPI settings"
  4. Launch again and see that text is still too tiny
  5. Open "properties" again and observe that the "Disable display scaling on HiDPI settings" has been forcibly checked once again.

Actual Behavior

The GPU probe portion of our viewer tells Windows 10 to force-enable HiDPI mode. On a HiDPI display, this causes Windows to forcibly disable the pixel doubling that would otherwise render Second Life at a usable size. See the snapshots for the end result: Text is unreadably tiny. For example, the entire login field is less than an inch wide.

Because we cap the UI Scale setting to 1.4x and a minimum of 2.0x would be needed in order to actually use SL at native resolutions on HiDPI screens, the only workaround is to add the "--noprobe" flag to the launch shortcut and to manually adjust graphics settings instead of relying on automatic recommendations.

The most likely culprit would be an unwanted call to SetProcessDPIAware during the graphics probe.

Expected Behavior

Because Second Life is not DPI-aware, it should not do anything that overrides the compatibility settings.

Other information

Note: This will not reproduce on some Dell or Alienware systems unless you do a fresh install of Windows 10. The game management apps that they bundle appear to override the default Windows 10 behavior.

Attachments

Links

Duplicates

Related

Original Jira Fields
Field Value
Issue BUG-11024
Summary Second Life unusable on Windows 10 with 4k monitor: SL forcibly overrides DPI compatibility option
Type Bug
Priority Unset
Status Accepted
Resolution Accepted
Reporter Soft Linden (soft.linden)
Created at 2015-12-21T17:14:33Z
Updated at 2017-08-04T17:43:39Z
{
  'Business Unit': ['Platform'],
  'Date of First Response': '2015-12-21T11:30:49.056-0600',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': 'The GPU probe portion of our viewer tells Windows 10 to force-enable HiDPI mode. On a HiDPI display, this causes Windows to forcibly disable the pixel doubling that would otherwise render Second Life at a usable size. See the snapshots for the end result: Text is unreadably tiny. For example, the entire login field is less than an inch wide.\r\n\r\nBecause we cap the UI Scale setting to 1.4x and a minimum of 2.0x would be needed in order to actually use SL at native resolutions on HiDPI screens, the only workaround is to add the "--noprobe" flag to the launch shortcut and to manually adjust graphics settings instead of relying on automatic recommendations.\r\n\r\nThe most likely culprit would be an unwanted call to SetProcessDPIAware during the graphics probe.',
  'What were you doing when it happened?': '.',
  'What were you expecting to happen instead?': '.',
}
@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2015-12-21T17:30:49Z

Yep, been getting lots of complaints from Firestorm users about this, especially since the Threshold 2 update.
No decent workaround has been found yet apart from setting UI scaling to max, which isn't an ideal solution & doesn't really fix it.
I didn't know about the --noprobe trick. Thanks!

@sl-service-account
Copy link
Author

Soft Linden commented at 2015-12-21T17:33:37Z

Workaround details for others linking here:

  1. Exit Second Life
  2. Right-click the Second Life application shortcut and select "Properties"
  3. In the "Shortcut" tab, find the line marked "Target" and add "--noprobe" (without quotes) to the end. For example: ```Java
    "C:\Program Files (x86)\SecondLifeViewer\SecondLifeViewer.exe" --set InstallLanguage en --noprobe
4. In the "Compatibility" tab, find and UNCHECK the "Disable dispaly scaling on high DPI settings" option
5. Click "OK" to apply and launch Second Life as normal.

Notes:
- You may need to repeat this after automatic Second Life upgrades
- Do **not** bring up the "Help->About Second Life" menu option or you will need to repeat steps 1, 2, 4 and 5 above.

@sl-service-account
Copy link
Author

Soft Linden commented at 2015-12-21T17:35:20Z

Thanks for the confirmation, Whirly! Feel free to encourage Firestorm support to link directly to https://jira.secondlife.com/browse/BUG-11024?focusedCommentId=488265&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-488265

I saw this question come up in Firestorm Support group chat over the weekend and it didn't look like anyone had an answer yet.

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2015-12-21T18:48:53Z

Great thanks Soft!

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2015-12-21T22:19:23Z

I just wanted to add that this doesn't just affect those with a 4k monitor, "normal" sized screens have the same problem.
Just had a reply to one of my Firestorm support tickets from someone with this problem on a 1920x1080 screen and --noprobe fixed it :)

@sl-service-account
Copy link
Author

Soft Linden commented at 2015-12-21T22:28:26Z

Yup. 4k monitors are the most popular case, but these snapshots are actually from a 5k display. It's also going to include a lot of laptop setups. More generally, it would be anything with a DPI scale other than 100% configured in Windows 7/8/10. It would be unsurprising if we see a bunch of reports from people who get Surface Pro and Surfacebook setups over the holidays and find they can't use them with SL.

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2015-12-21T22:39:12Z

Yep. My guy with a 1920x1080 monitor defaulted to 150% DPI in Windows after the last Windows 10 update.

This has been a problem since Win 8.1 really with the DPI scaling "enhancements". If those affected didn't suffer from the UI & text being too small then they suffered from the camera spinning when alt clicking or in mouselook, which also happens when system DPI isn't at 100%.
In earlier versions of Windows 10 (Windows 7 & above also got updates to add the feature) there was the new "Disable desktop scaling on high DPI settings" & unticking this on earlier Win 10 versions worked fine to fix this problem.
Something must have changed with a recent Windows 10 update though because as you said, unticking this option does not work now, it just re-enables itself.

@sl-service-account
Copy link
Author

Lassie commented at 2016-06-08T21:29:20Z, updated at 2016-06-08T21:29:48Z

Does this 'fix' fix the SL search scaling?
In viewer UI scaling doesn't.

@sl-service-account
Copy link
Author

Soft Linden commented at 2016-06-08T21:35:47Z

@LASSIE No. The internal browser rendering at the wrong scale is issue OPEN-234

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2016-10-17T07:04:40Z

@Soft
I'm curious if you can reproduce BUG-40700
Bit more detail on the Firestorm JIRA: http://jira.phoenixviewer.com/browse/FIRE-20124

I think you may need a high res monitor to reproduce it.
Thanks!

@sl-service-account
Copy link
Author

Soft Linden commented at 2016-10-17T21:22:37Z

@whirly I don't currently have a good way to check this today. But see if the option in "Properties.png" above is no longer toggled automatically for these people. It sure looks like what people are seeing is the "compatibility mode" display scaling that Windows uses for old, DPI-unaware apps. It's an ugly scale that's applied by Windows' compositor after the app has done its own render.

Our viewer still doesn't scale natively, which puts it in the category of old, DPI-unaware apps. So this blurry scaling would be the expected behavior.

The correct solution would probably be to have the viewer make a call to SetProcessDPIAware, telling Windows that it does know how to scale. Then add a default "automatic" option to preferences, which makes Second Life slave the UI scale slider to the DPI of the current monitor. This would make Second Life a DPI-aware program that natively renders at the target resolution.

Unfortunately it might also turn out that a lot of machines with HiDPI displays aren't beefy enough to run the full SL rendering engine at native resolutions without FPS dropping severely. I'm not sure what the most appropriate workaround is there, but it might mean SL has to offer its own optional upscale mechanism or add another option which makes Second Life not call SetProcessDPIAware, and enable that option by default for low graphics classes.

Possibly an item for discussion in a TPV meeting?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant