October 19, 2017

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.

Alt TEXT

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

Summary:

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

Summary:

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
=================================================
Definitions:

API-Aware

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

https://en.wikipedia.org/wiki/Dots_per_inch

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

Remarks
Warning
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.
XML

true

============================

Writing DPI-Aware Desktop and Win32 Applications
https://msdn.microsoft.com/en-us/library/dn469266%28v=vs.85%29.aspx

(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.

true

====================

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

============================

https://blogs.msdn.microsoft.com/chuckw/2013/09/10/manifest-madness/k

============================
Application Manifests:

https://msdn.microsoft.com/en-us/library/aa374191%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

Sony DSC HX5v Solo Video Test Part 8 Piedmont Park Toms Power Kite [1080P]

More Info:
http://www.mikesmultimedia.com/store/Panasonic_Cam
http://www.mikesmultimedia.com/store/Sony_Cam

Donations (Support my work):
http://www.mikesmultimedia.com/donate

This is the stand alone version of the above referenced clip, used in the Side by Side video comparison clips located in my channel.

Here, the clip is shown in its full frame, as apposed to side by side split screen for the comparison videos.

Settings on the camera were at full automatic, Intelligent Mode.

No post production was applied to the clip other than the titles and production information.

Bit rate calculations:

The 11.5 Bit rate was determined by MediaInfo bit rate calculation software on the source clips before rendering.

For information, Sony advertises the following information regarding recording formats for the HX5v.

•Movie Mode(s) :
AVCHD:
1920 x 1080 (59.94i, Interlace) (Approx.17Mbps) /
1440 x 1080 (59.94i, Interlace) (Approx.9Mbps)

MP4:
1440 x 1080 (29.97fps, Progressive) (Approx.12Mbps) /
1280×720 (29.97fps, Progressive) (Approx.6Mbps) /
VGA (640 x 480) (29.97fps, Progressive) (Approx.3Mbps)

[VID: V8_20100419_0100A_B1_1440x1080x11.5Mbps]

Sony DSC HX5v Solo Video Test Part 6 Atlanta Station Overpass [1080P]

More Info:
http://www.mikesmultimedia.com/store/Panasonic_Cam
http://www.mikesmultimedia.com/store/Sony_Cam

Donations (Support my work):
http://www.mikesmultimedia.com/donate

Recording Format: [AVCHD @ 1440×1080 11.5 Mbps] Render Format: [MP4/AVC @ 1440x1080p 11.5Mbps]

This is the stand alone version of the above referenced clip, used in the Side by Side video comparison clips located in my channel.

Here, the clip is shown in its full frame, as apposed to side by side split screen for the comparison videos.

Settings on the camera were at full automatic, Intelligent Mode.

No post production was applied to the clip other than the titles and production information.

Bit rate calculations:

The 11.5 Bit rate was determined by MediaInfo bit rate calculation software on the source clips before rendering.

For information, Sony advertises the following information regarding recording formats for the HX5v.

•Movie Mode(s) :
AVCHD:
1920 x 1080 (59.94i, Interlace) (Approx.17Mbps) /
1440 x 1080 (59.94i, Interlace) (Approx.9Mbps)

MP4:
1440 x 1080 (29.97fps, Progressive) (Approx.12Mbps) /
1280×720 (29.97fps, Progressive) (Approx.6Mbps) /
VGA (640 x 480) (29.97fps, Progressive) (Approx.3Mbps)

[VID: V9_20100417_0545A]