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.
- 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…
- 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:
With the manifest file in place, the fonts are a bit blurrier, but everything is visible and the icons look normal:
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:
Again, with the manifest file being obeyed, the appearance is strikingly different:
Plan Explorer – Plan Diagram
Finally, there are some areas that look much better without the manifest file:
Compare that to having the manifest file in place, where the icons look the same but the fonts are much blurrier:
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@geeksforgeeks.org.
Shout-out to Alec Pickup for helping out with this post.
Suril (@suriljasani) is the Director of Product Management at SentryOne, where he directs the definition, delivery, and overall performance of the SQL Sentry product portfolio. 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.