Skip to content

Commit be7a0cf

Browse files
authored
Add new troubleshooting options with descriptions (#4106)
* Add new troubleshooting options with descriptions * Fix anchor warnings
1 parent 5cb2770 commit be7a0cf

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

landing/arm-docs/apps-on-arm-program-compat-troubleshooter.md

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Program Compatibility Troubleshooter on Arm
33
description: Guidance for adjusting compatibility settings if your app isn't working correctly on Arm
4-
ms.date: 06/25/2021
4+
ms.date: 02/23/2024
55
ms.topic: article
66
ms.service: windows
77
ms.subservice: arm
@@ -12,19 +12,26 @@ ms.reviewer: marcs
1212

1313
# Program Compatibility Troubleshooter on Arm
1414

15-
Emulation to support x86 apps is a new feature created for Windows on Arm64. Sometimes the emulation performs optimizations that don't result in the best experience. You can use the Program Compatibility Troubleshooter to toggle emulation settings for your x86 app, reducing the default optimizations and potentially increasing compatibility.
15+
PCs powered by Arm provide great application compatibility and allow you to run your existing unmodified x86 win32 applications. Arm apps run natively without any emulation, while x86 and x64 apps run under emulation on Arm devices.
16+
17+
However, sometimes the emulation performs optimizations that don't result in the best user experience. You can use the **Program Compatibility Troubleshooter** to toggle emulation settings for your x86 or x64 app, reducing the default optimizations and potentially increasing compatibility.
1618

1719
## Start the Program Compatibility Troubleshooter
1820

19-
You start the [Program Compatibility Troubleshooter](https://support.microsoft.com/help/15078/windows-make-older-programs-compatible) manually in the same way on any Windows PC: right-click an executable (.exe) file and select **Troubleshoot compatibility**. This screen appears.
21+
You start the [Program Compatibility Troubleshooter](https://support.microsoft.com/help/15078/windows-make-older-programs-compatible) manually in the same way on any Windows PC: right-click an executable (.exe) file and select **Troubleshoot compatibility**. You will then have the option to *Try recommended settings* to test run the program using recommended compatibility settings or *Troubleshoot program* to choose compatibility settings based on specific problems that you've noticed.
2022

2123
![Screenshot of the Troubleshoot compatibility options.](images/Capture4.png)
2224

23-
If you click on **Troubleshoot program** you will be presented with the following options.
25+
If you select **Troubleshoot program**, you will have the option to select:
26+
27+
- The program worked in earlier versions of Windows but won't install or run now
28+
- The program opens but doesn't display correctly
29+
- The program requires additional permissions
30+
- I don't see my problem listed
2431

2532
![Screenshot of the What problems do you notice options.](images/Capture5.png)
2633

27-
All options enable the settings that are applicable and applied on Windows Desktop PCs. In addition, the first, second, and fourth options apply the [Disable application cache](#disable-app-cache) and [Disable hybrid execution mode](#disable-hybrid-exec-mode) emulation settings.
34+
All options enable the settings that are applicable and applied on Windows Desktop PCs. In addition, the first, second, and fourth options apply the `Disable application cache` and `Disable hybrid execution mode` emulation settings. (See the emulation settings table below for descriptions.)
2835

2936
## Toggling emulation settings
3037

@@ -33,26 +40,29 @@ All options enable the settings that are applicable and applied on Windows Deskt
3340
3441
You can toggle emulation settings by right-clicking the executable and selecting **Properties**.
3542

36-
On ARM, a section titled **Windows 10 on ARM** or **Windows 11 on ARM** will be available in the **Compatibility** tab. Click **Change emulation settings** to launch a second window as here.
43+
On ARM, a section titled **Windows 10 on ARM** or **Windows 11 on ARM** will be available in the **Compatibility** tab. Select **Change emulation settings** to launch an Emulations Properties window.
3744

3845
![Change emulation settings screenshot](images/Capture.png)
3946

40-
This window provides two ways to modify emulation settings. You may select a pre-defined group of emulation settings, or you may click the **Use advanced settings** option to enable choosing individual settings.
47+
This Emulations Properties window provides two ways to modify emulation settings. You may select a pre-defined group of emulation settings or select the **Use advanced settings** option to enable choosing individual settings.
4148

42-
The grouped emulation settings reduce performance optimizations in favor of quality. Below are some grouped settings that you can select.
49+
The following emulation settings reduce performance optimizations in favor of quality and can be used to experiment with testing your x86 or x64 app's compatibility when running in Windows on Arm.
4350

4451
![Change emulation settings screenshot2](images/Capture2.png)
4552

4653
Select **Use advanced settings** to choose individual settings as described in this table.
4754

4855
| Emulation setting | Result |
4956
| ----------------- | ----------- |
50-
| <p id="disable-app-cache">Disable application cache</p> | The operating system will cache compiled blocks of code to reduce emulation overhead on subsequent executions. This setting requires the emulator to recompile all app code at runtime. |
51-
| <p id="disable-hybrid-exec-mode">Disable hybrid execution mode</p> | Compiled Hybrid Portable Executable (CHPE), binaries are x86 compatible binaries that include native Arm64 code to improve performance, but that may not be compatible with some apps. This setting forces use of x86-only binaries. |
57+
| Disable application cache | The operating system will cache compiled blocks of code to reduce emulation overhead on subsequent executions. This setting requires the emulator to recompile all app code at runtime. |
58+
| Disable hybrid execution mode | Compiled Hybrid Portable Executable (CHPE), binaries are x86 compatible binaries that include native Arm64 code to improve performance, but that may not be compatible with some apps. This setting forces use of x86-only binaries. |
59+
| Additional lightweight emulation protections | A catch-all update affecting things like volatile metadata which can impact performance when running an x86 or x64 app in emulation. |
5260
| Strict self-modifying code support | Enable this to ensure that any self-modifying code is correctly supported in emulation. The most common self-modifying code scenarios are covered by the default emulator behavior. Enabling this option significantly reduces performance of self-modifying code during execution. |
5361
| Disable RWX page performance optimization | This optimization improves the performance of code on readable, writable, and executable (RWX) pages, but may be incompatible with some apps. |
62+
| Disable JIT optimization (x64 apps only) | This is no longer used and will be removed in future versions of the Troubleshooter. |
63+
| Disable floating point optimization (x64 apps only) | Check to emulate x87 floating point at a full 80-bit precision, but at a performance cost. x87 is a floating-point coprocessor used in some older x86 processors to perform floating-point arithmetic using an 80-bit floating point format with higher precision than the 32-bit or 64-bit format. |
5464

55-
You can also select multi-core settings, as shown here.
65+
You can also change how the application uses multiple CPU cores, selecting between Fast, Strict multi-core operation, Very strict, or Force single-core operation. Test your apps emulation when running Windows on Arm with these settings if you notice compatibility issues.
5666

5767
![Multi-core settings screenshot](images/Capture3.png)
5868

0 commit comments

Comments
 (0)