February 19, 2018

Microsoft Surface Pro 4, Windows 10, and High-DPI Display Scaling Fix for Sony Vegas Pro 13

In case you haven’t already noticed, Windows 10 applications graphical icons and text fonts sometimes do not scale properly when viewed on high-DPI displays screens which are becoming standard on various portable computer systems such as the Microsoft Surface Pro 4.

Sony Vegas Pro 13 Box

Sony Vegas Pro v13 Retail Box.

Compounding the problem is the smaller 12.3 inch screen size on the SP4 which has a native resolution of 2736 x 1824.  So things that are small and not properly scaling appear really small.

Additionally, getting a larger display doesn’t solve the problem either.

For instance, applications not properly scaling and shown on a high-DPI display such as the Dell P2715Q 27″ Ultra HD 4K monitor still have disproportionately sized images and text. The reason for this is because the high-DPI monitor, though larger in size, also has increased pixel density.

So who is to blame for these scaling problems?

Should we placed the burden of properly scaling applications solely on the shoulders of Microsoft Windows 10? Or is it primarily the responsibility of the software manufacturer to be responsible for designing software capable of correctly adjusting itself to the high-DPI environment?

In addition, how much blame should be assigned to the computer system manufacturer for offering products with high-DPI display capabilities without ensuring backward compatibility by coordinating with industry software developers?

Though this article focuses on fixing Sony Vegas Pro v13, it is not the only leading media software failing to properly scale when displayed on high-DPI displays.

In this regard, many of Adobe’s flagship applications, to include Photoshop, Premiere Pro, Bridge, and InDesign, also fail to properly scale when shown on high-DPI displays.

Coincidentally, a variation of the fix used in this article for Sony Vegas Pro is also being used on Adobe products making them once again usable on systems using high-DPI displays.

image - Ants ReadingAs one blogger described improperly scaled graphics and text as being the size for “ants to read.”


Test System Specifications
  • Microsoft 12.3″ Surface Pro 4 Multi-Touch Tablet
  • Intel Core i7 6th Gen (Skylake)
  • 8GB RAM, 256GB SSD
  • 2736 x 1824 Screen Resolution (267 ppi)
  • Windows 10 Pro (x64)
  • Sony Vegas Pro 13.0 build 453

The in-house scaling feature in Windows was set to the recommended enlargement to 200%. Even though I was able to go up to 300%, this was not having the desired effect. In some cases only the font would enlarge past its intended field size. So this was not even a quick-fix option.

Lets first start by looking at a couple of before and after comparison images below.

By hovering your mouse over the image and by moving the scale from left to right you can see the difference between the non-scaling GUI on the left compared to the properly scaling GUI image on the right.

This side by side comparison helps demonstrate the benefits of apply the fix making a once too small GUI usable again. I’ve included two version of the side by side comparison images, a full screen shot of the entire Sony Vegas Pro GUI, and a zoomed in version of the upper left hand corner.

Compare Illustration 1: Sony Vegas Pro GUI full screen


Compare Illustration 2: Sony Vegas Pro GUI cross section view

Below I walk you through the step-by-step procedure to apply the fix using screen captures of the relevant screens so you will feel comfortable using this fix.

A companion video capture of the procedure has also been prepared and will be attached to this article later.

Some things that I wont spend time discussing are the technical details surrounding the areas of Windows configured to apply the fix. This includes the Windows system registry, PreferExternalManifest designations, and issues pertaining to the need to obtain administrator access privileges to your system’s protected areas.

Other things not going to be covered in will be manufacture conventions. This includes concepts and terms pertaining to DPI (dots per inch) and PPI (pixels per inch).

These types of discussions regarding various standards imposed on products by manufactures are interesting, however, are beyond the scope of this article.

Before Proceeding

What worked for me may not work for you.

So do what ever you need to protect your system and data before deciding to apply the procedure outlined in this article.

Step 0: Prepare System
Backup Files
Create System Restore Point
Application Software
Step 1: Download & Install Resource Hacker

The first thing you will need to do is download and install a small program called Resource Hacker. See steps below.

Download Resource Hacker
Install Resource Hacker

We won’t need to run Resource Hacker just yet. Proceed to the next step.

Step 2: Access and open up Windows System Registry

Next, open up the Windows System Registry and make a couple of adjustments.


Step 3: Use Resource Hacker to Explore Sony Vegas EXE file


In this step we use Resource Hacker program to access Sony Vegas Pro’s exe file information for its internal manifest information.

We then copy out the internal manifest information, and the close Sony Vegas Pro’s EXE file without making any changes.

We then apply the extracted internal manifest information to the next step.

Run Resource Hacker
Use Resource Hacker to open Vegas130.exe
Open Resource Hacker
Navigate to and open Vegas130.exe
Step 4: Create External Sony Vegas Manifest file


In this step we create an external manifest file for Sony Vegas Pro’s EXE (Vegas130.exe).

We do this by opening note pad using the “Run as Administor” option.

We then past the Internal Manifest information into this text file.

We then save the newly created text file as Vegas130.exe.manifest inside Sony Vegas Pro’s program directory the same place where Vegas130.exe is stored.

At the end of this step, we would have completed all the changes needed to configure Windows and Sony Vegas Pro to now scale its GUI properly when using a high-DPI display.

Open Notepad.exe as Administrator
Paste Manifest Info into Notepad
Save File as Vegas130.exe.manifest
Exit programs and Restart Windows


An API-aware process is a process that properly updates its process status through the type-specific API that is provided, such as COBOL or Crystal.

DPI and Windows


How Microsoft Windows handles DPI scaling[edit] Displays with high pixel densities were not common up to the Windows XP era. High DPI displays became mainstream around the time Windows 8 was released. Display scaling by entering a custom DPI irrespective of the display resolution is a feature of Microsoft Windows since Windows 95. [5] Windows XP introduced the GDI+ library which allows resolution-independent text scaling. [6]

Windows Vista introduced support for programs to declare themselves to the OS that they are high-DPI aware via a manifest file or using an API.[7][8] For programs that do not declare themselves as DPI-aware, Windows Vista supports a compatibility feature called DPI virtualization so system metrics and UI elements are presented to applications as if they are running at 96 DPI and the Desktop Window Manager then scales the resulting application window to match the DPI setting. Windows Vista retains the Windows XP style scaling option which when enabled turns off DPI virtualization for all applications globally. DPI virtualization is a compatibility option as application developers are all expected to update their apps to support high DPI without relying on DPI virtualization.

SetProcessDPIAware function
Link: https://msdn.microsoft.com/en-us/library/ms633543(VS.85).aspx

SetProcessDPIAware is available for use only in the operating systems specified in the Requirements section. This method may have unexpected behavior in subsequent versions of the operating system. Use SetProcessDpiAwareness instead.

DLLs should accept the dpi setting of the host process rather than call SetProcessDPIAware themselves. To be set properly, dpiAware should be specified as part of the application (.exe) manifest. (dpiAware defined in an embedded DLL manifest has no affect.) The following markup shows how to set dpiAware as part of an application (.exe) manifest.



Writing DPI-Aware Desktop and Win32 Applications

(See. Using an Application Manifest)

Declaring DPI Awareness
When an application declares itself to be DPI-aware, it is a statement specifying that the application behaves well at DPI settings up to 200 percent DPI. In Windows XP, DPI awareness has no impact on the application or the operating system, but it has meaning on both Windows Vista and later versions. In Windows Vista and later versions, when DPI virtualization is enabled, applications that are not DPI-aware are scaled, and applications receive virtualized data from the system APIs, such as the GetSystemMetric function.
Note By default, the DPI virtualization feature is enabled only when the DPI display setting is greater than 120 (125 percent).

Although the Win32 API provides a function declaring an application as DPI-aware, its use is discouraged, except in very specific circumstances. For more information, see the SetProcessDPIAware function. In general, using an application manifest is the recommended process for declaring an application to be DPI-aware.
Using an Application Manifest
To declare your application to be DPI-aware, add to the application manifest. Here is an example of how to use the element in an application manifest.



High DPI Settings in Windows
Link: http://www.kynosarges.org/WindowsDpi.html



Application Manifests:


An Easy Solution to the MacBook Pro’s Blanking Out Screen Problem

20141008_1642PA_01 Windows v8.1 Window Under Parallels_FULLxAuto.JPG

(Oct. 10, 2014) — I recently came across a problem with my MacBook Pro 15″ Mid 2012 Retina computer screen going blank when I unplugged the power cord from the system.

The obvious solution escaped me because I was at the tail end of installing Windows 8.1 Pro, along with all of my other software applications. I naturally assumed the problem was some kind of driver conflict or incompatibility resulting from all of the installs and updates I was undergoing during the installation processes.

To further cloud my troubleshooting efforts, I was installing W8.1 onto my MBP using Bootcamp. Bootcamp is one of a number of applications which allow you to install windows on the MBP, while keeping the OSx partition as well. This way, you can boot into either Windows or into the OSx environments.

All said and done, with all of the peripheral software tasks I was imposing onto the system at the time, it’s no wonder why I didn’t tune into the simplest solution to the problem at first involving the MBP’s automatic screen dimming (ASD) feature eventually.

There are a number of resources online, which of course I explored, and which involved more of a configuration or software based approach to dealing with a screen blanking out situation. Solutions such as resetting the MBP’s “parameter random-access memory” or PRAM, or “Non-Volatile random-access memory” or NVRAM, are discussed generously online. Feel free to explore those options should your troubleshooting adventure take you there. They, however, were not exactly causing the problem in the scenario I faced resulting in a blanking out screen.

I am not going to get into the resetting of VRAM solution here, because that wasn’t my problem. However, there are many articles on the web discussing how to reset the MBP’s VRAM cache, which may be a workable solution should a similar blank-out-screen problem occur.

So, the culprit here involved the MBP’s automatic screen dimming (ASD) feature.

In short, the ASD feature basically dims the screen, or reduces the brightness of the MBP’s screen when you disconnect it from an AC Power source. This is done as a battery power conservation approach when the MBP goes off AC power for any reason.

To make my situation even more complicated, my MBP’s screen actually would go blank when I plugged the AC power connector in, and not when I disconnected it.

My AC power connector is a Magsafe 2 connector, which is a great way to avoid breaking off your connector or damaging your MBP’s connector port in the event of a cable mishap.

More on troubleshooting.

When my MBP’s screen first started blanking out, I thought it was because of a system hanging problem. You know, that which happens alot on a traditional Windows system.

However, after a number of reboots, I realized my caps-lock key light was functioning. This gave me the impression the system had properly booted up.

A logical assumption was to believe that the system thought I was connected to an external monitor somehow, and was projecting the screen to that phantom monitor.

I didn’t have a separate monitor to test this theory, given I was working out of a local Starbucks coffee shop and basically had only the tools I brought with me in my computer bag, and what experience I could draw upon when contemplating a possible solution to this problem.

So, after several unsuccessful troubleshooting attempts failed to lead to successful results, I had to resort to more determined methods to uncover what the problem was.

Over the years, I have learned not to just throw my hands up in the air and get flustered when a “glitch” reveals itself on a computer. Trust me, this was not an easy temperament to learn. It comes after many, many hours of troubleshooting not only software installs, but hardware installs as well on older desktop system. Remember those blasted dip switches?

System was actually booting up successfully. That was a key starting point leading to the eventual solution. But that revelation was only uncovered by carefully noticing the caps-lock key indicator light properly functioning.

Exploring the working caps-lock indicator light further, I decided to test my theory by using an application I use frequently called iTeleport.

The iTeleport application allows you to access your computer over a network using either an iPhone, iPad, or other Mac computer running the associated iTeleport software. Basically, when you successfully log into the target computer, and after verifying your a qualified users, the iTeleport application allows you to “see” your computer from the remotely controlling device. Like a terminal.

Because iTeleport was configured to automatically load when Windows started on my MBP, it was, or should have been at the time, already running and waiting for “me” to log into it.

So I grabbed my iPad and iTeleported into my MBP – successfully.

Once I accessed my MBP using iTeleport and my iPad, my MBP’s screen appeared just like it would if it was being displayed on the MBP.

This was a key revelation and turning point in my troubleshooting the blanking screen problem. Because this confirmed my system was properly booting up and “running” Windows.

I still had not solved my screen blanking problem, but was understanding what was working or not, and that is key to discovery a solution to my problem.

Somewhere in the course of figuring out what was going on, I accidentally knocked off the power cord’s Magsafe 2 connector to my MBP. This is where another interesting thing happened, the screen magically reapeared – when the system went to battery mode.

This was contrary to basic expectations. If the system was receiving full AC power, it should have all the power it needs to power the screen. Right? Well, that was another twist to an already ongoing adventure into uncovering what was actually going on here.

One thing was clear, I was able to now disconnect my iTeleport connection, and at least be able to access Windows and my MBP’s screen as needed. At least until my battery power died.

Again, not looking for a simple solution, I dove into further software and configuration conflict troubleshooting. Again, spending another spell online researching possible solutions.

After finding several articles, each very articulately written and informative, most of them dealt with resetting the MBP’s VRAM cache. Still no success.

Finally, after more time spent researching and troubleshooting, which I also came to know as spending “quality time” with your MBP, I tried pressing the either of the two keys for decreasing or increasing the MBP’s screen brightness. That be the F1 or F2 keys respectively.

Well, by now you probably see where this article is going. But I did want to share with you my wonderful experience of also trying to re-configuring the power settings to not turn off the screen in either battery or plugged in modes using the hardware configuration panel in Windows. By the way, Microsoft graciously left us the traditional looking cpanel area when revamping Windows in version 8. However, it is not easy to find. Once you find it, you may want to create your own shortcut to it and place the shortcut in your quick launch tool bar.

Little did I know, the key to understanding the problem was to understand how the MBP’s ASD feature worked and how it was contributing to the problem.

So to make a long story not as long, I ended up at the end of hours of troubleshooting, simply pressing the F2 button to increase the brightness of the MBP’s screen.

Unconfirmed results, when playing with the F1 and F2 buttons, I believe the MBP does remember the state of dimming manually set in either battery or powered modes. Something which would explain why the system was blanking off when plugged into the AC power source.

I’ll let you explore this further, on a Saturday, so you too could spend some quality time with your MBP.

In a nutshell, the MBP really didn’t have a problem, rather, the system was just perfectly configured to have a “perfect storm” of particular settings that made it look like a screen blanking problem. When in fact, it was just the ASD system doing it thing.

So, if your MBP’s screen goes blank in either battery or powered modes, make your life easier by first trying to manually brighten the screen by pressing the F2 key. Be sure to increase the brightness in both battery and AC powered modes.

(c) MikesMultiMedia.com

A gallery of photos and images may be uploaded later for visible referencing.