DPI less than 100% scale

Discussion in 'Windows 10' started by Kayiji, Mar 17, 2019.

  1. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    Hello i search a way to have my dpi less than 100% scaling, i know a hack was possible in the regedit in the past but i dont know when,
    do someone know a trick ?
    i mean to fake higher resolution by changing dpi display scaling,

    idk if in ltsb 2016 it was possible but in ltsc 2019 it's not

    thanks for the help
     
  2. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    Sadly it's not possible anymore; neither in LTSC 2019, nor LTSB 2016.

    General information available on TechNet about Windows 10 on DPI-Scaling (as well as 8.1) shows off the changes that took place in comparison to its predecessors and was essentially introduced by the switch to UWP-Apps | Windows 8.1 RT | Windows 10 Mobile and the common HiDPI-Displays since Apple Retina and Samsung AMOLED for smartphoens and tablets and introduction of the 4K desktop displays for PCs and the large ones for home entertainment | gaming | blu-ray | tv | vod.

    The last Version of Windows where the DPI scaling was not based on Pixel Density of the Display (as is done since HiDPI is a given for greater than FullHD-Displays) was 8.0 (NT 6.2). The Technical and Insider Previews of Windows 10 before Built 14393 could be forced to the 'classic' DPI setting of 72 DPI, as used in XP | Vista | 7 | 8 (NT 5.1 | 6.0 | 6.1 | 6.2) via editing the according registry key|value.

    Since Windows 8.1U1 (NT 6.3.1) and Windows 10 1607 RedStone the OS doesn't base the DPI any longer on the registry key, but on the DPI-Scale setting given by the display-driver and|or the graphics-unit. It is possible to create a patched generic driver, with a custom setting, but that is no option on AMD64|x86_64 systems if the driver-signing isn't forcibly set to be ignored.

    A workaround that i use on my HP 27x Series EliteBooks, which have very sharp displays at a resolution of 1280x800, is that i use the RemoteDesktop-App (UWP : Universal Windows Platform; from the Windows Store), because it allows to set a virtual resolution; In my case, depending on the software i have to use, i either use WVSGA 1680x1080 or Full-HD WVXGA 1920x1200, which would be the counterparts to setting the DPI to 72 | 64. If ClearType is active, it is actually pretty usable, especially if you have good eyesight and are used to detailed fineprint work. If you combine this workaround with a patched termsrv.dll | using RDP Wrapper, you can open your 'virtual' Desktops in preferred resolutions, for a given set of applications concurrently.

    Another Workaround, if the tools you would like to use with a virtually higher resolution are available on Linux X11, is to use WSL with e.g.: vcxsrv and set the wanted resolution | DPI-scaling via XRandr, or if you use Ubuntu with Unity, via the Scaling in the Settings for Display, where for example 0.625 would be the equivalent of WVXGA FullHD 1920x1200 on a 1280x800 Display.

    These solutions, for sure, take a bit time to invest, but once you've done it two or three times it is actually done in 5 to 15 minutes, depending how fluent you are|become in doing this workaround.

    For Tools like Browsers i would generally recommend using the WSL-Variant with Ubuntu 16.04.5 Xenial Xerus and vcxsrv X11 display server for Windows, simply because of the performance, that is equal or better than the Windows native Browsers, like Chromium | FireFox | Brave | Opera | etc. - Also you can combine it with firejail, which gives you complete per-App and per-Instance Isolation | Jailing | SandBoxing besides that WSL itself acts like a SandBox, so no malware can actually corrupt your Windows System; WSL is a Linux-ABI and does need neither Hardware-Assisted-Virtualization, nor a Hypervisor at all. On LTSB 2016 x64 you can use the WSL Beta, which gives Ubuntu 14.04 Trusty, which can be upgraded to 16.04.5 Xenial. Or you use third-party WSL-Installer as available open-source on github.

    Hope it helps.

    If you find a native solution for Windows LTSB 2016 | LTSC 2019 , Server 2016 | 2019, asides the patched display-driver solution or the workaround by utilizing patched termsrv and RDP-UWP-App, please provide it by any means. As you might already have became aware, while doing research on this special use-case, there is not much to find. The ways i presented here, are the only ones working guaranteed, that i could find | establish since 2013 up to today.

    Happy hunting for helpers! ... As told, if you catch a catchy one, please share ..
     
  3. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    Hello, ill keep searching and thanks a lot for the informations,

    i think i'm gonna code something that we use in game development know as Pixel perfect resolution and virtual resolution

    i think i can render the whole actual resolution into an image and instantly render the image on top of everything on the screen, i know the performence will be decreased but i think it can be a good option. so we can render the screen in a picture of 1920x1080 for exemple and scale the image down to 1280x720 as it is your native resolution, so you finally have it, i think it can work, i will try it this week
     
  4. pf100

    pf100 Duct Tape Coder

    Oct 22, 2010
    2,069
    3,449
    90
    It's funny how you can do this in linux easily with xrandr, but in windows it's like it's a big deal or something and it's tied to the graphics driver and whether the display edid can be overridden. I just don't understand it. This is the price we pay for having no control over many facets of the windows os and many solutions involve hacking parts of the os. Whatever. Good luck.
     
  5. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    Yeah, windows is so bad for this...
    Also working on a custom Explorer for windows to integrate some tiling windows managers like i3 gaps on linux ahhh
    Thanks i'll try my best and let you know how it goes
     
  6. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    Relating to the mention of coding a tool to do this, I am totally in for it.

    I did some research in what could be viable attempts on that topic, which left me focusing on the following variants:


    A) Use the options available to Enterprise and in part Professional Editions of flipping explorer for a custom de|wm, lockdown the usage configuration abilities, etc.;

    This would take time and a fair use of collaboration needed plus at least a basic understanding of the Windows Platform Components in detail, as also a deep dive into Group Policies and WSUS to ensure the custom made will be left untouched (and having been into templating/configuring former Embedded/Industry Editions of Windows makes that easier) to guarantee the resulting workload will still be updateable;

    Asides that a good amount of knowledge on Visual Studio to decide for a reasonable way to attack this problem with the systems own methods, hopefully solely based on free editions to for one ensure interested newbies can find a way in as less harmed as possible by the dogmatic environment and for the other, allowing the use for a relatively broad mass of people, just looking for a system-native stable windows 10 platform that allows to just work with it instead of on it.


    B) Design a compositor on top of standard dwm, to justdo what you have considered already: Render the workspace on virtual display-boundaries, to allow scaling in Real Time;

    This sounds for sure easy in comparison, but I am worried that it would need to be maintained long term and will need very short response times, once the underlying API and Kernel gets updates; And because of that happening very frequently on Windows in general and only a bit less often on CBB and a bit more of a bit less often on LTSC|LTSB and Server, the maintainance has to be middled somewhere inbetween update-frequency and resulting workload versus narrowing usage down by constricting to less often updated editions.

    None the less, this (if it works) is still the most adaptable option and would lead to the possibility otherwise only given via X11 on Windows, to allow for a per-app|per-window custom ratio|dpi-scaling.


    C) Make use of the possibilities to control window-content-representation that are given on most gpu-driver-sets.

    For Intel and ATI|AMD I know there are solutions built into the standard drivers, which as I vaguely remember are utilized via .NET-framework, so possibly there is documentation available, which would allow for static configuration via application-specific config-files and the like. Or event-driven, for example on listening for alternative resizing by holding a modifier-key, etc.

    This would (at least for the mass of gpus) allow for a per-app | per-window configuration, as in variant B.


    D) Create a custom remote-viewer, that for example uses direct-rendering or via directx | open-gl | sdl | whatever hardware-assisted rendering via overlay | texture-buffer transformations and such.

    This one is the most sexiest, if I may say so, as it also allows to enhance the window-management and window-decoration possibilities in general on Windows Platforms and can be (in comparison to the other proposed solutions) extremely fast and versatile, while supporting a near-generic subset of the windows platform (in terms of edition | licensing necessities).

    Further on it opens up easily for everyone, from total noob to terribly nerdy, as the mass of available and maintained window-managers is open-source and the range of programming languages used for them is rich.


    I didn't mean to hijack this thread, but would like to know if there is anyone thinking of being able and | or willed to support such an endeavor. If so, it would be nice if you leave a reply stating your abilities and thoughts on the proposed ways or if you have another idea presenting that one.

    If the OP thinks this personal request of mine will fud the topic, please just say so, then I transfer my thoughts and request to a new thread; If OP thinks it is okay for now to be part of this thread, thank you.


    OP, would you be so kind to elaborate on some details of how you would tackle the task, practically?


    Thank you.
     
  7. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    Just noticed the links in your footer; seems you would be the perfect partner in crime for the endeavor I just proposed as a specialist on and about Windows Update?
     
  8. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    In an afterthought on my proposed possibile ways to provide a solution and while rereading your reply, I just remembered that possibly an alternative to ClearType could serve as an angle of attack.
    I do not remember the name and supported platforms, but I know I once tried out a replacement for ClearType, that delivered various rendering engines to be used for aliasing | kerning | hinting; It was proposed by an installer for a patched UX theme-switcher and or -editor, but I never actually used it and therefore can't think of the name of either right now.
    But maybe that tool (if source is available or if it is still in active development|maintenance, maybe the developer would share details on how to use a similar model, to allow for intercepting the rendering of window-contents?

    Does anyone know that piece of software and remember its name?
     
  9. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    Hum i remember a chinese thing for cleartype with UX patcher, wait it's mactype
     
  10. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    Hum hey, i'm totally okay for making something for this.. Any collab is okay too,
    I'm sure the community can resolve this problem that everyone get on windows with DPI, gonna try to find some solution and expose them here as soon as possible, i think we can find something possible.

    I know the GDI and USER32 DLL can be use throught C#, its from the windows API and we can modify lot of thing with it.
     
  11. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    You nailed it! That is exactly what I tried to remember.

    It is MacType; For download under mactype.net
    The upper right peel links to the mactype GitHub-repo of user snowie2000.

    I just installed it on a fresh instance of Windows 10 Enterprise S N LTSB 2016; works so far I can tell it.

    From having a quick look at the projects that are mentioned in the installer, the software mactype was inspired by | based on, it might be a possible way for the implementation of a rerender | compositor.

    MacType allows for a set of different modi to run it:
    - via Registry; manual configuration
    - via Service; preset configuration
    - via MacTray running in SysTray

    and in a per-window | per-app mode, that is enabled by dragging the Shortcut | Executable of the software which should be rendered with a different profile onto the MacType- -Shortcut | -Executable.

    It also has a configurator | wizard built in that allows to define and create custom presets.

    @Kayiji would you take a look at the source; maybe you can estimate if MacType would be a viable template to build on?
     
  12. pf100

    pf100 Duct Tape Coder

    Oct 22, 2010
    2,069
    3,449
    90
    *Off-topic warning* That's my specialty. You can dm me or post in my wrapper script thread. */Now back on Topic...*
     
  13. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    @Kayiji would you mind to sketch the necessities to be of help for the thought of rerender | compositor application?

    Independent of becoming realized or not by whomever, I would like to have your opinion on how the toolchain to design | build | test such an application might look like.

    Spontaneously I would pinpoint it (at least for me) to:

    - Windows 10 Enterprise S N LTSB 2016 with all Updates (effectively 1709 userland, I believe?)
    - VSCode Stable
    - Visual Studio Community 2017

    Do you think this could be a base?

    If you think using Visual Studio is an option, please provide info on workloads | components to install. Also I am not sure if Visual Studio Solutions are locale- | windows-display-language- -independent, meaning: Is it necessary to use e.g.: en-US as a common ground, to guarantee hassle-free collaboration?
     
  14. claudiusraphaelpaeth

    Jan 24, 2019
    9
    1
    0
    To add in another piece of information to enrich the soup of could-be-template for a universal rerender | compositor application:

    GBAtemp ( i think ) lead me to VisualBoy Advance ( ??? ) GameBoy Advanced Emulator. As far as i can remember it allowed to apply a set of rerender-modi spanning from simple bicubic, diverse interpoltions inbetween up to Eagle. I think ... I believe ... ( Do i ? )

    Whatever, i'll have a look when i find time.
     
  15. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    @claudiusraphaelpaeth

    I'm gonna use Vscode with c# to code, i'm gonna work with dotnet core console app.
    all gonna be sync on github in a repository and open source.
    We can use some low level dll from win api with interop, i think we can do something with that.

    I'll be back soon with more information i really need to think about good solution for that like renderTargets downscaled
     
  16. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    Why not creating a developer discord server and make the project part of it ?
     
  17. Kayiji

    Kayiji MDL Novice

    Sep 16, 2018
    8
    2
    0
    I'm actually building a replacement for the windows default shell (interface) for windows 10.
    I'm on LTSC 2019

    Just found out that there is some interesting features, i think i can try something with it.

    I found out that i can redraw the desktop at a virtual resolution, i think i found a method to do the thing we want !
    I'm actually wrapping around the win32, i'll be back soon with news !