New blog at dancharblog.wordpress.com


Hi-dpi Multi-mon with Surface Pro 3 – dpi-scaling tweaks


Moved to https://dancharblog.wordpress.com/2014/11/01/hi-dpi-multi-mon-with-surface-pro-3-dpi-scaling-tweaks/

Comments (66)
  1. Danchar4 says:

    Here are some 3:2 aspect ratio resolutions you could add to pair with other monitors:

    • 1080×720 (200%) 108 dpi (effective) (lower than 1024×768 so can't run modern apps)
    • 1152×768 (187.5%) 115dpi (effective) (this is the minimum 3:2 ratio that will allow running modern apps)
    • 1200×800 (180%) 120 dpi (effective)
    • 1440×960 (150%) 144 dpi (effective)
    • 1728×1152 (125%) 172 dpi (effective)
    • 1800×1200 (120%) 180 dpi (effective)
    • 1920×1280 (112.5%) 192 dpi (effective)

    There may be subtle aliasing artifacts with these settings but that is the case when using almost any non-native resolution. I'm actually quite surprised that the original Surface GPU driver doesn't have some of these resolutions available by default.

  2. Limit says:

    Does changing your driver from the one microsoft provides to the intel drive have any affect on your battery life?

  3. mirth18 says:

    Maybe I missed it, but what is the reason for installing the old driver?  Just to be able to install the custom resolution?  Can we not just do that with the newest driver?  I see I have CustomModeApp in system32 already.

  4. mirth18 says:

    I guess I spoke too soon as nothing happens when I run it.  I will try to older driver.

  5. Danchar4 says:

    Rwerksman on tabletpcreview.com suggests a method to set the registry directly rather than using the Intel custom resolution tools: forum.tabletpcreview.com/…/surface-pro-3-custom-resolution-s-registry-entry.64713

    I have been meaning to use the sysinternals tools to trap the regkeys that the custom res tool sets, especially since the custom tool is conspicuously missing from Intel's latest drivers, but I never got around to it. I'm going to have to test this out on a few machines. I'm not sure if the settings under HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlClass{4d36e968-e325-11ce-bfc1-08002be10318}  are guaranteed to be the same on all machines or if it is different on each SP3 SKU (Core i5 vs Core i7 etc.) and different drivers installed by Windows Update or from intel.com.

     

    But I've added Surface_Pro_3_Custom_resolutions.reg to the main post so you can use it at your own risk to add a bunch of 3:2 aspect ratio resolutions.

    Thanks Rwerksman for the tip!

  6. Danchar4 says:

    @Limit @mirth18

    As far as I know, only the older driver has the custom resolution tool so you need this one to do the changes. I have not found any difference in battery life with the different drivers.

  7. NicNZ says:

    @mirth18, @Danchar4

    I also had the CustomModeApp pre-installed on the SP3 – and also found it didn't function on the default driver.

    After installing the latest Intel driver (3960) and having the Intel control panel available, the CustomModeApp does open the correct screen, and has happily added 1440×960 resolution that I wanted – for me this provides a great match with external 27" 1440p monitors I use.

    I did try adding the registry key mentioned above, but got no result and removed it.  Having made the changes mentioned above there is now a similar key (C_Modes_LFP_2b) but under the '0002' folder rather than '0001' as mentioned in the forum post.

  8. srinivas says:

    I have tested by installing the Surface Pro 3 driver from Intel, but didn’t get the required results.

    Scaling is not changing automatically when we disconnect the external monitor, the surface monitor is not going to the default settings until we log off from the profile.

    Also we need to set the scaling for the external monitor when we configure the inter graphic properties for the first time. This works great only if we use external monitor  as the main and only display.

    There is an issue with the intel  drivers also, tried installing the intel suggested driver win64_15363.exe, but the driver is rolling back to the windows preferred driver 10.18.10.3960, which is an old driver from windows.

  9. Danchar4 says:

    @srinivas, You need to download the .zip file not the .exe and use the have disk method to install. Also the dpi scaling factor does not change automatically, it is only the screen resolution that changes. The steps above have worked for many people already. Can you try removing any drivers that have been added and put the machine back to factory state then try the steps above again?

  10. srinivas says:

    Hi Dan,

    I did the same way using the disk method. You mean the screen resolution for external monitor or the surface monitor.

    Thanks

    Srinivas

  11. Danchar4 says:

    @srinivas, yes the settings are only intended to change the surface screen – the external screen stays at its default resolution.

  12. srinivas says:

    Dan, what about the scaling on the external monitor. can we set different scaling on surface screen and external monitor.

  13. Danchar4 says:

    @srinivas Windows 8.1 does not allow user configurable per-monitor/independent scaling settings. Perhaps in the next OS release…

  14. Neko says:

    Correct registry location for "C_MODES_LFP_2b" key is:

    [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4d36e968-e325-11ce-bfc1-08002be10318}002]

  15. Danchar4 says:

    @Neko,

    Thanks. I found that some machines use 002 and some use 001. Therefore in the .reg file attached to the post I set both keys so it will work an all systems.

  16. Alberto Silva says:

    Has anyone tried Windows 10 on the Surface Pro 3 to check if it handles better this scenario, like having a scaling factor defined per monitor?

  17. Neko says:

    Windows 8.1 saves monitor configurations. For me the best scenario is to use setup like this:

    • Surface display 2160×1440 150%  (only Surface display) – Best for anywhere use/mobile work.
    • External monitor 1920×1200 100% (only external monitor, Surface display is off) – Best for home/work Surface use. Bottom edge of monitor is above Surface screen so I can place Surface in front of monitor.

    There is only necessary to log off and log in back when I change displays or I want to switch from mobile mode to desktop mode. Display change and scaling is setup automatically by Windows. When I first time connect external display I setup it: Project > External display only.

    So it's works like this:

    1. Turn on
    2. Surface display only 2160×1440 150%
    3. Log off
    4. Connect external display or dock to Surface Docking Station with connected display
    5. Log in
    6. External display only 1920×1200 100%
    7. Log off
    8. Disconnect external display or undock from Surface Docking Station
    9. Log in

    …..

    This setup works flawlessly for me.

  18. Mikael Svenson says:

    I ended up doing 1178×1152 on the surface and have 2560×1440 on my external monitor with 125% dpi settings. Seems to work pretty good 🙂

  19. George says:

    Thank You, This was a life saver.

    Just to note, that the first time SP3 refused to boot up for 5 mins after adding the custom resolution. (Step 6)

    Using 1200*800 happily, Scaling at 100%.

  20. Søren Spelling Lund says:

    Can I just say that it pretty wild that a post like this even exists?

    I bought the Surface because it's an interesting take on PC hardware, so interesting in fact that it lured me back to the world of Windows. As a stand alone device it's awesome, loving the hell out of the it. Beautiful display, interesting hardware. Awesome!

    But when I try and use it as a laptop replacement as it's advertised to be, things end up a little different. Basically I now have to deal with posts like this to make it work properly with multi mon setup.

    At the end of the day I ended up installing a custom display resolution to disable scaling altogether, becuase it seems the least of the couple evils I can pick from to make it work properly.

    I realize that it's a Windows problem, but it's incredible to me that a device like this basically has me turning off one of its best feature to make it work properly in a work setting.

    It works and I get by, but why did I even have to spend the time figuring this out? The Surface to me is the Windows device made by Microsoft to "just work" seamlessly with their OS, but it doesn't for some reason.

    Fingers crossed that Windows 10 will introduce independent display scaling to fix this issue.

    /From  a semi-happy Surface user

  21. Danchar4 says:

    @Søren Spelling Lund,

    I hear that some bright folks are working really hard on improving this. Like I mentioned in the article, its a little more complicated than just making stuff on screen a little bigger. I reckon you'll be a fully-happy Surface user very soon…

  22. Dan says:

    For me it does not work.

    Maybe it's because I've got one monitor (2560×1440) plugged in at the dock and the other one (1920×1080) in the Surface itself…

    If I dock both monitors out the scale is at 100% instead of 150%.. that drives me crazy -.-

  23. streatsi says:

    hi, i tried the reg key method (just downloaded and hit run) and for a while it worked but now i can't get any displays to show using either the dvi port on the surface pro or the port on the docking station.

    any ideas.

    also can I just remove the new reg key and see if that helps again

  24. Danchar4 says:

    @streatsi

    Its unlikely that the regkey change caused your issue of being unable to use external monitors. The regkey doesn't do anything aside from allow you to set additional screen resolution modes on the surface pro 3 built-in panel.

    Were you able to switch resolutions OK? What changed on your PC between then and now? What happens when you press winkey+P and choose duplicate or extend?

    You might want to share additional details on the http://answers.microsoft.com forum since the helpful folks there will be better equipped to help you with general Surface and Windows problems.

    You can certainly use the advanced tool regedit.exe to remove the keys if you wish. Just open the .reg file in notepad to see which keys to edit and use any of the guides on the Internet on how to use regedit responsibly if you're not familiar with it.

  25. Shantanu says:

    Hi! Thanks a ton for this blog post. I received my new SP3 from my company a few days back and finally hooked it up with my 2, 24" monitors that are 3+ years old. Much as I liked the SP3's display at 100%, it became near impossible to use once I started to use it like a regular laptop, so I scaled up to 150% which naturally resulted in the 2 monitors scaling up as well, thereby diminishing their ability to display a lot of data without having to scroll. I finally found this blog post and followed the instructions to the T and it worked like a charm. Thank you so much! I did try resolutions higher than 1080 x 720 but they weren't that great. so I have stuck with 1080 x 720 for now although that means that I can only the SP3 for things like IM or Windows Explorer. Thanks again.

  26. Mike says:

    I followed Neko's method and it is the only solution I've found that works the way I want.

    Log in and set scaling and resolution undocked.

    Log out

    Dock, login, then set scaling and resolution.

    Log out

    Just make sure to log out between docking and undocking to get correct scaling.res settings

    In my scaling options, there is a checkbox to make scaling the same across all monitors.  UNCHECK this box!!!!!!!!

    My SP3 gets the slider moved 3/4 and my 1680x1050monitors get it slid all the way to the beginning.

    My sp3 res is set to Native.

  27. @LtCmdrKeene says:

    Hi Danchar4, I found your post absolutely amazing and link to it in my recent article at cmdrkeene.com/dpi-scaling-with-multi-monitor

    However, I'm not having luck with the Registry key method, it added many resolutions to my options, but none are the 1080×720.  There's a 1280×720 that is decent, but it doesn't fit the Surface panel so it's black at the top and bottom.

    I'm using Windows 10, I'm going to reboot into Windows 8.1 and try it there.  And either way I'll probably go back and try to use the long method in Windows 10.

    I have to say that even in my almost-quite-there resolution at 1280×720, I can already tell I'm going to enjoy this much better than leaving it at full-resolution with stretch scaling. For one thing, apps don't need to be aware of anything to look right in this setup.  Absolutely fantastic!

  28. Andy says:

    Great post and really helpful comments and although I don't have a Surface Pro 3 I was wondering if anyone might be able to help me? I have a new Dell Inspiron 15 7548 which has a 4K (3840 x 2160) screen and am  struggling to get good scaling / compromise between this and a 1920×1080 21.5" external screen extending the display via the laptops HDMI port. Per screen scaling doesn't seem to work as even with "Let me choose one scaling level for all my displays" UNTICKED and scaling set a few notches from the top with the 4k laptop set as my main display the external screen looks rubbish and I also get a "Your resolution is lower than 2400 x 1800. Some items might not fit on your screen" warning when in Screen Resolution settings for the 1920 x 1080 display.

    Thanks

  29. dudeinco says:

    Well, late to the game, but I did all this – the auto resolution changing works great… The DPI is not remembering docked vs not docked, however.

  30. Paolo says:

    Really all this all these words for something that is clearly broken? just bought a surface pro 3, with dock station, running win10 and there is no way it looks good on both the surface high dpi and the external lg ultrawide monitor! It just sucks! and all those things where quite expensive. it would be enough to let me choose what's best for me 100% for the external and 150% for the surface. I'm seriously considering switching back to Apple.

  31. Danchar4 says:

    @LtCmdrKeene, are any of the 3:2 aspect ratio resolutions available for you? I haven't actually tried this hack on Win10 myself but others said it worked for them. Perhaps you could post a screen shot showing what resolutions are available. Have you tried using the manual approach with the Intel control panel rather than the regkey? I haven't checked but perhaps the regkeys are different in Win10. BTW thanks for the kind words on your site.

    @Andy Your laptop has 282dpi while the external display is 103dpi. It will be difficult to get these to match perfectly since they just so far apart. But If you want items to appear roughly the same size on both screens when they are next to each other, set the laptop screen to 1536*864 (250% scaling). Just use the Intel control panel to add that custom resolution. With Win10 you'll be able to independently set the scaling factors to 250% on the laptop vs 100% on the external. In Win8.1 I think it chooses the wrong one by default for this config because its just over some limit and if you use the "one scaling factor for all" its just looks terrible in a setup like this. Win10 will be way better for you.

    @dudeinco That's expected. DPI switchover requires a logoff/logon. But with my approach you won't need to do that for most applications

    @Paolo. Sorry its not working out. Make sure to let Microsoft and the Surface team know about your problems. I don't work on the Surface team so there is only so much I can do as a single engineer in a different team. I recommend taking a picture of what exactly is wrong and try tweeting it @SurfaceSupport. There are some really smart and helpful folks there that may be able to help. You could also try updating to Windows10 which includes independent per-monitor scaling settings. Macbooks are great, especially when you load Windows on them, but they lack touchscreens and the flexibility that Surface offers.

  32. Andy says:

    Thanks for taking time to reply to me (and others) here in such detail. I'm sure Windows 8.1 was meant to allow you to set independent scaling on each screen wasn't it? From several plays with Windows 10 on a virtual machine unless something major changes between the latest preview build and final release I'm not sure I could live with the horrible new icons in 4k alongside losing a lot of what I like in Windows 8.1. Users who were happy with Windws 8.1 seem to have been thrown under the bus with the new worst of both worlds changes to try and appease those who can't get past the metro start menu but that's a whole other thread / post 🙂

  33. Danchar4 says:

    @Andy
    Win8.1 supports different scaling settings per monitor, but the settings are chosen algorithmically by Windows behind the scenes and it doesn't always choose correctly – hence the existence of this article. Win10 allows the user to choose the settings, however even on Win10 it seems folks are still think there are benefits to my approach here.

     

    reg key updated to work with Win10 – it now sets the /0000 in addition to /0001 and /0002 driver reg paths since the Intel driver seems to install to /0000 on Win10.

  34. adam says:

    i am so glad i found this. thank you! i have been banging my head against the wall with this for ever. finally out of everything i've found on the internet, a viable workaround!

  35. Jan says:

    Hi there – just an addition: The driver on the Intel homepage is newer than the one coming from microsoft now. MS installs version 10.18.14.4170, dated 2015/03/16 – Intel gives us version 10.18.14.4222, dated 2014/05/22.

    With this version, I had to uninstall the existing driver that came from Microsoft in device-manager while setting the surface offline with flight-mode as the driver would come back faster than I wanted and could not be updated directly. With the Microsoft basic VGA driver, I was able tu update it with the driver included in the ZIP file by Intel, the other steps worked as described.

    During my tests I stumbled accross the DPI settings not being corrected during docking in and out, that breaks it for me. The resolution on the surface integrated monitor is not my problem, it is only the scaling that can not be set per monitor.

    I hope Windows 10 will do it better, for now I am working with the native resolution on my surface, scaling at 125% and I have put my docking station not so far from my eyes 😉

  36. Jan says:

    Hi again – my surface just installed a new firmware update released on 2015/05/19 (http://www.microsoft.com/…/pro-3-update-history) which seams to prepare the device for the new graphic driver 10.18.14.4170. This new graphic driver version could come with another update by Microsoft, but as I already installed the driver manually following this blogpost it does not appear here. Does it appear on your devices where you did not manually change the graphic driver?

  37. Danchar4 says:

    Jan, if you would like the Microsoft provided driver to install, just uninstall the intel.com driver via device manager and make sure to click the checkbox "Delete the driver software for this device." reboot, and then check windows Update. The very latest Microsoft approved driver ought to install automatically.

  38. Jay says:

    Hello –

    I just upgraded my SP3 to windows 10.  I had set up custom resolutions prior to upgrading and they all transferred perfectly.  But just now, I was changing some settings and I lost all my custom resolutions.  The intel driver page for Windows 10 drivers gives a 404 not found error.

    Any tips?  I miss my custom resolutions!

  39. Danchar4 says:

    @Jay

    You probably got a Windows Update that included firmware and a new made-for-Surface driver. Not to worry though, you can just re-apply the .reg file above without changing anything else, reboot and get those resolution options restored.

  40. sawy3r says:

    Thanks for pulling this info together! I followed your steps and have my setup working perfectly now. This is the one part of the Surface that really bugs me, so poorly implemented…

    Cheers!

  41. Rocky says:

    Think this will work on the Surface Book being that it has 2 GPUs?

  42. Danchar4 says:

    @Rocky

    This same trick will work for SP4. I haven't tried on SurfaceBook yet but it ought to work fine using the updated regkey here:

    blogs.msdn.com/…/surface-pro-4-hi-dpi-multi-monitor-optimization-regkey.aspx

  43. Saitama says:

    Thank you. Would you mind adding the resolution 912×608? Its the resolution height and width resolution devided by 3. There are a lot of games that get very playable at 800×600 compared to the ,,around HD" resolutions, and therefore would be very useful, because no black bars and its cleanly downscaled.

    Kind Regards

  44. Saitama says:

    Thank you very much. Would you mind adding the 912×608 resolution? Its an important one for gaming at the Surface Pro 4 as it makes a lot of games very playable and its the main resolution cleanly divided by 3.

  45. Chris says:

    Here is the key for the Surface Book.

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4d36e968-e325-11ce-bfc1-08002be10318}000]

    "C_MODES_LFP_bb"=hex:04,00,00,00,04,00,00,00,bb,00,00,00,08,07,b0,04,08,50,00,

     00,00,60,49,c4,0a,78,09,00,00,08,07,00,00,08,07,00,00,77,09,00,00,80,07,00,

     00,3f,08,00,00,18,23,01,00,da,04,00,00,b0,04,00,00,b0,04,00,00,d9,04,00,00,

     b1,04,00,00,b3,04,00,00,3c,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,00,

     00,00,00,0a,00,00,00,01,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,80,

     07,00,05,08,50,00,00,00,40,b2,5b,0c,30,0a,00,00,80,07,00,00,80,07,00,00,2f,

     0a,00,00,08,08,00,00,d7,08,00,00,8c,36,01,00,2d,05,00,00,00,05,00,00,00,05,

     00,00,2c,05,00,00,01,05,00,00,03,05,00,00,3c,00,00,00,04,00,00,00,00,00,00,

     00,00,00,00,00,00,00,00,00,0a,00,00,00,01,00,00,00,00,00,00,01,00,00,00,00,

     00,00,00,00,00,a0,05,c0,03,08,50,00,00,00,c8,44,d3,06,80,07,00,00,a0,05,00,

     00,a0,05,00,00,7f,07,00,00,f8,05,00,00,8f,06,00,00,f8,e8,00,00,e2,03,00,00,

     c0,03,00,00,c0,03,00,00,e1,03,00,00,c1,03,00,00,c3,03,00,00,3c,00,00,00,04,

     00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0a,00,00,00,01,00,00,00,00,00,

     00,01,00,00,00,00,00,00,00,00,00,90,06,60,04,08,50,00,00,00,50,d4,59,09,d0,

     08,00,00,90,06,00,00,90,06,00,00,cf,08,00,00,f8,06,00,00,af,07,00,00,a4,0f,

     01,00,87,04,00,00,60,04,00,00,60,04,00,00,86,04,00,00,61,04,00,00,63,04,00,

     00,3c,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0a,00,00,00,

     01,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00

  46. Shahrum Amiri says:

    Thanks so much for sharing this. I came across a post on Reddit (http://www.reddit.com/…/surface_pro_4_scaling_with_applications_issues_in) that led me here in hopes of fixing issues with my Surface Pro 4. I'm afraid that even with the 1368×912 at 100% DPI that objects on my surface are still blurry. According to a comment on Reddit, the sweet spot is 1624 x 1080 at 100% scaling. Are you able to add that to your registry tweak for us? Thanks so much!

  47. alex says:

    Why all of these custom resolutions lower than native make text and icons on my SP4 display look blurry?

  48. Steve says:

    The .reg file worked great on my Surface pro 4.  Is there anything available to do the same on a Surface 3 – not pro.

Comments are closed.

Skip to main content

New blog at dancharblog.wordpress.com