Using SQL Sentry on a 4K / HiDPI Monitor - SentryOne Team Blog

Using SQL Sentry on a 4K / HiDPI Monitor

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:

    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.

Comments ( 0 )

    Leave A Comment

    Your email address will not be published.

    This site uses Akismet to reduce spam. Learn how your comment data is processed.