The still existing DPI Scale issue, "Blurry alike FXAA UI Text" on Studio and Client

Description

The creation of this Bug Report, is to mention things that remained forgotten from this old thread

https://devforum.roblox.com/t/having-to-modify-override-high-dpi-scaling-behavior-just-so-studio-doesnt-appear-blurry-and-poorly-scaled/103542

 

It contains two sections, and I want to focus on the Roblox one and not Qt. I mentioned Qt, to showcase that you can alter the DPI of your Studio.

 

What you need to know

  • This issue didn’t exist before
  • This issue rolled out on the Roblox Client FIRST. Before it did on Roblox Studio.
  • There were Fast Flags to flee from these changes that caused these issues.
    • Which were removed later…
  • It’s not just Text, but also UIStroke and various of other UI Components.

As once mentioned in a thread. The Luau over C++ case. Maybe not an issue.

It is becoming an unavoidable issue, because the Explorer and Properties Window is going to be replaced by a Roblox UI Luau based Plugin, and they come with Blurred Text. If Blurred Text doesn’t get fixed, these Plugins will be a downgrade.


 

Qt DPI Issues

This one is not so important. Therefore I put it in a spoiler. If you want to alter your Qt DPI for Studio though, you will find useful things.

We may can also blame Qt itself. But Qt does offer some utilities to alter some things.

Summary

But it’s part of the previous issue, but I want to focus on the Roblox App.

Eitherways. Qt DPI Scale Issues are minor. Qt doesn’t cause blurry text. However, since some experienced some issues with Roblox Studio, here is what you can do

This Documentation High DPI Displays | Qt 5.15 contains information regarding Global Environment Variables, YOU CAN INDEED change them.

  • QT_SCALE_FACTOR
  • QT_SCALE_FACTOR_ROUNDING_POLICY, this one is actually set to PassThrough in Roblox Studio. If you change it, you’ll be able to fix pixelated stuff, at cost of some things resizing.

https://devforum.roblox.com/t/explorer-window-in-studio-renders-weird-lines-making-it-very-irritating-not-navigate/2506283

This bug report for instance, is actually also a DPI issue.

I made crazy changes to the Environment Variables, that I created more rendering issues.

image

Just a note. DPI seems to rely on accurate values, if they’re not accurate, you’ll end up like this:

 

Roblox DPI Issues

Roblox Studio

Take a look at this

This is how Text appears in HTML. Perfect and no issues. The font I used was the same file from Roblox Studio, which was Source Sans Pro Regular.
image

 

With the wrong DPI

image

  • This is the same Font Size as the one at the top
  • Notice how certain individual letters are individually sized.

The next thing is that non-blurry text can appear blurred if you go in Fullscreen as well.

With an attempted simulation of the right DPI

The text doesn’t appear blurred.

The thing is these are the same Font Size, and you can’t tell the difference…
image

Not a great screenshot of mine

 

Due to DPI issues, all Stroke issues also inherit from the DPI issues

image

For instance there’s more stroke at the top of the text, than on the bottom.

 

And here there’s more Stroke at the bottom than on the top, and the stroke was Thickness 1

image

 

Roblox Client

Same issues happen on the Client. Except that I can’t override the entire DPI, nor do I believe that overriding Qt DPI will bring the right changes to the Roblox Viewport either.

With DPI Issues:

Without DPI Issues I think:

 

Questionable things

There’s a Fast Flag to override the DPI Scale of the MicroProfiler for instance. And one thing I notice is that the shadow is actually blurry. Is this supposed to be happening?

And what happened to FFlagClientEnableHiDpi2 and the rest of the flags 08/19/2022 11:25:05 · MaximumADHD/Roblox-FFlag-Tracker@4f5e873 · GitHub ?

 

Frames don’t have any blur issues, the corners are sharp, it’s only various 2D Rendering Implementations that can have Blur

image

 

 

The real Description of this issue

https://devforum.roblox.com/t/having-to-modify-override-high-dpi-scaling-behavior-just-so-studio-doesnt-appear-blurry-and-poorly-scaled/103542/81

The intended behavior of the DPI Scale update apparently is:

 

The issue is that the intended behavior is currently not met.

 

Paradox of DPI Scaling

There are various Screen Sizes in inches. Using math you can calculate PPI.

How is an application supposed to know whether it should scale things UP or scale things DOWN?

The Roblox Application certainly doesn’t know, and there’s no way to override this behavior on the Viewport of Roblox Studio, and the Roblox Client anymore.

 

Did you know that 125% DPI Scale in the Windows Settings, means 120 DPI. And that 100% actually means 96 DPI?

This is an important detail.

It’s either 1.2 or 0.8, AND NOT 1.25 or 0.75 Because the 100% refers to 96 DPI and not 100.

Because if you do set the wrong value, you’ll encounter your UI being cut off, same way as the screenshot I put at the “Qt DPI Issues” section.

See the RegEdit value LogPixels as for “Logical Pixels”.

 

Then, should something render first and then scale up?

There’s different scaling algorithms, some make things cool and some make things blurred. But something strange is happening to Text, that I feel like it’s being rendered first and then scaled up.

 

Re-production Steps

Find special screensizes, e.g. 4k or something else.

Or small laptops like 1920x1080 15.6"

The 17.3" should appear fine.

For instance 1920x1080 15.6" can be too small, but not for everything, a measure is to change the DPI Scale, e.g. to 125%. However, Roblox is also scaling up, even though it may not be intended to do so.

What really is High DPI, the screen’s DPI or your Windows Settings?

 

HD screens shouldn’t run into issues. But FHD may do. I don’t really know what is considered HD and FHD. But if a screen with 1920x1080 is only marked for FHD and not HD, then it’s probably a screen that will make things too small to display when on 1920x1080, compared to the resolution it promises for “HD”.

 

Expected Result

That we can force DPI Awareness to not apply, like it used to be possible once. Until all blurred text and icons are fixed.

Some games outside of Roblox fit things as built-in without the help of DPI.

Minecraft for instance has a GUI Scale Option.

Actual Result

Blurred 2D Rendering Implementations.

Affects various things, Text, various UI Strokes, Images, UI Border Rounding, 2D3D Text, e.g. BillboardGui Sizing along with cutoff text.

8 Likes