March 28, 2024

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

[su_dropcap style=”flat” size=”5″ class=””]I[/su_dropcap]n 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.”

 
[su_divider][/su_divider]
[su_box title=”Test System Specifications”]

[su_list icon=”” icon_color=”#333333″ class=””]

  • 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

[/su_list]

[/su_box]

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.

[su_divider][/su_divider]
[image-comparator title=”Compare Illustration 1: Sony Vegas Pro GUI full screen” left=”https://lh3.googleusercontent.com/snKf14IAZsDdtiH40zNAtkhFohibyc4Z5jCCTnFGJmtmtIhXrUL7ses7bckp6c5XtXcppZ-qNPPPMDL7FrfeokOWr4m33Noui5kW0b_QYJk8sp7cx_7faz_5z0B0t3JPerTCnsqMIS2ELn–dNj0rAWMIbZCneIEIfloKVg7zO0f0ylJqR9BH1uPGKPjrCsfvtwxWt0wfALY4aV-Msgcp1hLre1TAPQTvmXg68zy60r7_i8g63rlapXsDITR2tPVYwI9yj_sQ04kkHUVrVmRurYJU99agBNzOeaH17PTqU9KkB5jJe2Lpiv68zqO-T0OtgUaNE1AL8TW4xXYDU5dQTakMb2g8qMr3ReaTAKXnmNGuQoOjQWTbf9AErMrCxU8x4Ba-ecDMWJ9XMTnvkfHVdR1vRD6sMoVPYQozIMPOwahlNtOcNvyBt_IF_u52wjI9iJIAKlZZn1xjZgwD6LEcQJLuBch8qMeIkoIlFVJ-1x9hAwf0kfHDZW32Cfd0Mg9zPzbOp-S_SjyBgdjufvZPy_jCqoHDyddO9oE-dlGqY4WhkQko9Iy1_h2GMZodVLvRo_mLLpDrAYRTtcOYHstUSdYpMB4iGy6WMfDLTIqgIJIDBFw=w1024″ right=”https://lh3.googleusercontent.com/MXljibG1bj8-RMrIGzvclnmemripgVZHbZYpI96r6PCt83dx7ije1kfRnrLRSAs-1bFYxOVL7IjWe6cbcCOikmF86pT2ynGx121mEi090wcS2IBkqkbVWeI9NErDlpQNdtVS9J57VY1_fAcyoYfZe6SHaY-c85qgx6cA99sY9d80cTV9tJ6gRf9NJFQQaxxRY-8viFSNIcD5VTFeLZi-wxygnUdcu0dC2bJ4YGvAAUTDJMq_Df64q-W15SWCx79nZJKv07o163Xw1-EQY0m_zF3zUQsUmKQu7lcAbf2QuLO7bAUj2agrcCQKtWepsFXWEsCITgfwweyK2UrOOKP-bd0zhaWn9OWUF-UPYr78TI6uZgypCervzhy1FrTNWM8OLILN-gCA_t6tPZ8pseHhSAyRVr81ndQxKpx1vn4QvJdZ2IxcsrU_TUzWQX2NUnwXeMxx7C1zlwQcJ2DC9bEdoDyXPetOfIzET0fXaAfo1tgFBj-gEbiXpIpWAwyt9FmLoe6_Lu8ZLM-BodrhJRCeJT6g_xj9AizmhWqlAltp3MgrgKJODrAFLVk9v180M35IYnrR1MZlwZMUo-DgV6VkOScTr5DEa6Y2SLc0jm9TH5SzUjQs=w1024″ width=”150%” classes=”hover”][/image-comparator]

 
[su_divider][/su_divider]
[image-comparator title=”Compare Illustration 2: Sony Vegas Pro GUI cross section view” left=”https://lh3.googleusercontent.com/Z_cGJTkkHhf0Rv7mosethUi1qEx70G9SNwU3gHO6Qz1JT7-tNX4reWNLaqS169Q4FkA73tLyX_FOtVdrKgs6x_Q4UzR3Sr7GOsknVIq30VBYNqpXjsJYl6vI8bqdR9hSWvt3wInzUlEMkMNBWGOYTgntr1LrPH47IwDQYQF9btVlzexrTv9adrJhuMJ_r9sPQnHqQIKHXe-ysRHa24klkUMjCmk82iKPOgGXTi5dPuVxtZlXLtmg0ZeGVXgl5IJegMfqPPjhSmXjMDD9XahVjZtVDfgVuTZZoImw67LCormIOd6jMvebbG3eZkWEBMJP_c_LmkwyLvzr-b79H6uBLQbFsihEqQNh1U1TOrhYfgeboLfaWLo6ITHbAr22OOtkbvkBiukSQ61ppVwT68bBrDL7h-v3H3yozXA46NJ03tosH4xwQoDAUAsIZuUwLho_EdrWyzd9IXVgxQf-mf2d7W7FHFVLOw5r26pTFnLyFkSJLa7L2d7CqRCM8IWAwxu-gmzrpmgxaZehSrsB1f1-Yx1DsIMzH7vEZkKFGvLY_U-G5P3PWP5-WNCKCGLG8y1eBwhdGcK6atK05e8eD15jdmWiUieCBuiplOZeGz94GQPGKH8u=w1024″ right=”https://lh3.googleusercontent.com/S3qHbWHjCwSSKuEsejWCX84fat2XzSx-_-QLz-7jVynr7ZkXVr7sXlw2ZJmzFZBtKB0YJUM5AaIj0t-nWtDi70_vkN7LYxrBNhU6ufLYpAlMjNxc7oBWV0oo7IAbp-rhfjLZQu3fm6da-wZ1uUjqfij5eIzs58UmIZ9r_WJs_goM7FHz2PVuVxy-4gX9Nqh0kFBrUQ-VFsem26XKtdAHoKOJ08T7IVzF4KqKvei7hvgBm54fPBDIcKq1fz1lEHhfnoW6rngnNFm7k8irwVAwxSwlljUPjzgdP35DalBrZvTB09AteQ_czht9EkaVnkEL9hNsFV5suUHU1TzatDWqLTrkwkgjNeuTGz6zYSw3lQ1n4q9iYX8BBFtAnWFmGCXipNq9Jr6HT6Ny5iogzBPCSJq5u6B9pW-XOAqE0Fyize5tJpkxCrsuilxBecXDR5-V3E3XVxpA_i8ShexxuJTMgBAthPsPIPn0QcmhydyIokpZhlQV-iCzrOVvv4v_M8o-jcg4LJGHp8-VFEo7tBQgcYym6nUWKtzSCMjKcfgu8vw0zmpSEQ9Gw8yOgDJ7DhZ4bvegmN7AOjOBWXnBcEEicitWuhpZ0qp0x569mE0glOSy0qb3=w1024″ width=”150%” classes=”hover”][/image-comparator]

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.

[su_divider][/su_divider]

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.

[su_box title=”Step 0: Prepare System”]
[su_spoiler title=”Backup Files”]

  • You can backup you files using internal Windows backup resources.
  • You can also use third-party backup applications such as Acronis True Image.

[/su_spoiler]
[su_spoiler title=”Create System Restore Point”] Create a system restore point using Windows. This feature may already be working. If so, explore where it keeps its log of previously stored restore points and how to restore them. Its very simple and is click-n-play.
[/su_spoiler]
[su_spoiler title=”Application Software”]Locate and have ready any application software disks or license information in case the information is requested. It was not needed in my case.


[/su_spoiler]
[/su_box]

[su_divider][/su_divider]

[su_box title=”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.

[su_spoiler title=”Download Resource Hacker”] Download ResourceHacker from this link http://www.angusj.com/resourcehacker/reshacker_setup.exe [/su_spoiler]

[su_spoiler title=”Install Resource Hacker”]After downloading Resource Hacker. Install it onto your system.

[su_lightbox src=”https://lh3.googleusercontent.com/hrpGXoGo2RzjmIK6IEealFU3dr7qxrlyN2OXoefmxk8H4PJxkprAq2avBndUQOAgjf1_IWcaajJZgoCMwTvwUfhlw39lHhmi4fsa5Nu0ME2WIcVXNtJZzq_7bVMnxUGeplNotvJjGBwvbpWAEqCJFhyygXjOEGVOwqZiQcq59z97h4uytzdwZMPMKIJ_kBNgXlp_qdyb4gn3kyVvg-e8y4Ct5vqkY9b14tpGdeYoSCqc3HqxrBG9ooOQ86YB6_lXMgOgpNNf6cl8qMFJRPv-LI7o2ImNTc_bvylPsrv6kwyZaAwYiWVdr7arTER84QSjyZekSdszblcGTaHEQQMN1BQaC2G4nsXz5qtC2mjwc_K2-boPioP46EJwBC9x-m7zVs94HOnRHaIZE8SZRNuiUXcljnoUx9wDZBCYG4-to9KcYReVmeyX_pe0Xy6tnutntSaqkI8QaFADc9HFt4kSYGBlC117o8N2Fxqupw5H9AYRJR6c7oCEGYanBqnecelwBrcXcAnzOyFDMpl3fSCY1vWbxdxLcFO_3CDAQzTV6_GI1RoHXtdFnSbWn3Gv31TtR5aMWhYpEUD0TCfYNj4ptxaiQ9M0_vpleidiAXx9UYz3vLaC=h500″]

Alt TEXT
[/su_lightbox]

[/su_spoiler]

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

[/su_box]

[su_divider][/su_divider]

[su_box title=”Step 2: Access and open up Windows System Registry”]

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

[su_lightbox src=”https://lh3.googleusercontent.com/tMg8AqKC0upazpsVZPFkXYIVcnAAajXhvUipRSYvvqk0EYtJ31h6-zAqEbntvlCZJrvqNX04HHDXv0fBFgR3K1aVAcRlp56GM0xqZxypi2aqQnkd1fMTOknM5xKFhHQYddS1GZj8sCYSU23QCzolbZFUvTmwdMKgcXDLnURZYPID8iFsc9J9KklmZed1Dt-s6CPUgE2UihSahBBAm41XEiw5w7_zhkzNs1mbkAmblDzTcWepVbxTawLog8ISXNG9qOawicxQZZVNNvF7EI9JdOAyBfcFqOwtls1Fw_hO27PwBGPsz8KKycj0VxeLvWO9XfDL339qi_3IpEC8n3AcPkj_k6jWIUVwpqZfZsVRUxx7oTO6tpsi-hq6pOdEbngmZ5V35rS3_BKHCf0XU1X8jAF7pgkuTQ6wkQD6kItKGKVNq1grTiN0P7DHxC9khggicH80ajL34Nj55Z_tZDNoERnCPboponB7nyoXMyY7tEjQQqAnR7U0Dk0HDJvTBLBtpEHDW7oDJbIWxzpT_1xNUcurpCdoXBnZksatCVxCh5bzoYIPNZcXIiG5hyRWJYtn-mZSuMKPEPJVtKvMPmxStY3mHNlWLHpGfaU47jF0JA-wlJXc=h500″]

Alt TEXT

[/su_lightbox]

[/su_box]

[su_divider][/su_divider]

[su_box title=”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.

[su_spoiler title=”Run Resource Hacker”]Run Resource Hacker[/su_spoiler]

[su_spoiler title=”Use Resource Hacker to open Vegas130.exe”]

  • Open Resource Hacker
  • Navigate to and open Vegas130.exe
  • Navigate into MANIFEST directory
  • Copy all text inside MANIFEST/1033
  • Go to next step
  • [/su_spoiler]

    [su_spoiler title=”Open Resource Hacker”]Open Resource Hacker[/su_spoiler]

    [su_spoiler title=”Navigate to and open Vegas130.exe”]Navigate to and open Vegas130.exe[/su_spoiler]

    [/su_box]

    [su_divider][/su_divider]
    [su_box title=”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.

    [su_spoiler title=”Open Notepad.exe as Administrator”]Open Notepad.exe as Administrator[/su_spoiler]

    [su_spoiler title=”Paste Manifest Info into Notepad”]Paste Vegas130.exe internal Manifest Information into text file[/su_spoiler]

    [su_spoiler title=”Save File as Vegas130.exe.manifest”]Save text file as Vegas130.exe.manifest in Sony Vegas Pro program directory[/su_spoiler]

    [su_spoiler title=”Exit programs and Restart Windows”]Exit programs and Restart Windows[/su_spoiler]

    [/su_box]
    =================================================
    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