Using SQL Sentry on a 4K / HiDPI Monitor

Suril Jasani

Published On: September 16, 2016

Categories: SQL Sentry, 4K, HiDPI, Support 0

We are aware that a few of you are enjoying these spiffy HiDPI / UltraHD / 4K screens, whether you're using a Retina screen, a Surface, or an external high-end monitor. We have plans to fully accommodate these higher resolutions in our software, and in the meantime, we have helped multiple customers with a workaround (first demonstrated by Gianluca Sartori) that you can use to scale Windows elements using an alternate method: bitmap scaling.

For some applications, you can use the Windows shortcut setting "Disable display scaling on high DPI settings" to adjust appearances back to "normal" - but for some applications, like SQL Sentry and SSMS, this doesn't always work as well as you'd like (see Aaron Bertrand's post about SSMS).

There are two components to this workaround.

  1. First, you will need to add a DWORD (32-bit) Value to your registry:


    Windows Registry Editor Version 5.00
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
    "PreferExternalManifest"=dword:00000001
     

    The registry entry tells Windows that it should assist apps by checking for a manifest file in their installation folder. The manifest file, in this case, tells Windows that the application is DPI-unaware, and so instructs Windows to disable DPI scaling and enable bitmap scaling instead. Which brings us to...

  2. You will need to place a manifest file in the installation directory, alongside the SQL Sentry Plan Explorer or SentryOne / SQL Sentry client executable. You can download the manifest files here:

 

SentryOne Client Manifest (v11+)

SQL Sentry Client Manifest (v10-)

SQL Sentry Plan Explorer manifest

 

Note that when using a manifest file, the name of the file has to match the name of the executable exactly (including ".exe") while appending ".manifest" to the filename. Please ensure you save the manifest file as SentryOne Client.exe.manifest (for v11 and above), SQL Sentry Client.exe.manifest (for v10 and earlier), or SQL Sentry Plan Explorer.exe.manifest, otherwise it will not be recognized when launching the application.


After putting the manifest file and registry entry in place, both SQL Sentry Plan Explorer and the SQL Sentry Client should look a little bit cleaner on ultra-high resolution screens. Note that bitmap scaling makes certain aspects more usable, but you will lose those nice, crisp fonts you are used to, so you may choose to use the manifest file or not, depending on what you are doing. A few examples:

SQL Sentry Client - Navigator & Dashboard

Here we can see that, due to the high resolution, areas with smaller fonts are not re-mapped properly, and icons (such as those in the navigator) don't resize:

sj_ss_nomanifest

With the manifest file in place, the fonts are a bit blurrier, but everything is visible and the icons look normal:

sj_ss_manifest

Plan Explorer - Index Analysis

Similarly to the client, there are grids we are using that don't resize according to the higher resolution fonts, so in some places the entire column header (or the data in it) won't be readable:

sj_pe_ia_nomanifest

Again, with the manifest file being obeyed, the appearance is strikingly different:

sj_pe_ia_manifest

Plan Explorer - Plan Diagram

Finally, there are some areas that look much better without the manifest file:

sj_pe_pd_nomanifest

Compare that to having the manifest file in place, where the icons look the same but the fonts are much blurrier:

sj_pe_pd_manifest

Try it out

If you want to compare different parts of the application with or without the manifest file in place, you don't need to modify the registry again, just rename the manifest file from .manifest to .NOTmanifest or vice versa (you'll need to re-launch the application for the change to take effect).

Summary

We do have plans to address these issues in a future release, however it will involve re-writing some of our underlying components and a healthy dose of regression testing, so we don't have an ETA just yet. If you have any issues using our software with HiDPI screens, please let us know at support@sentryone.com.

Shout-out to Alec Pickup for helping out with this post.

Suril (@suriljasani) is the Client Support Manager at SentryOne, where he directs the activities of the Client Support Department, providing technical and strategic leadership spanning a wide variety of objectives. Here he covers a range of topics that include SQL Sentry features, tips and tricks, troubleshooting methodologies, team updates, and more. Suril holds a BS in Computer Science from University of North Carolina at Charlotte, and a BS in Finance from Gardner-Webb University.


Comments