
ControlExpert - Unresponsive ST Editor - Cause & Resolution
In recent versions of ControlExpert, when running inside of a VMware Workstation VM, the entire application will hang whenever the cursor is moved within the ST editor window if any variables on-screen are not valid. This is a major problem because writing programs often involves the mass creation of new, not-yet-valid variables. I am making this post in an effort to save others time and agony trying to resolve this extremely irritating issue.
The Cause
According to my super-sophisticated diagnostic tests (i.e. profiling the application via dotTrace), the application hangs while waiting on the Win32 draw call which renders the red squiggly line underneath the invalid variable (incredible stuff). This only occurs on VMs with the following conditions:
- The VM's Hardware Compatibility Version is greater than Workstation 16.2.x
- The "Accelerate Graphics" VM option is Enabled
Since ControlExpert is a native application, the technical details of this bug are opaque to the public, but we can assume from the required conditions that the VMware Workstation implementation of Graphics Acceleration changed between Hardware Compatibility versions Workstation 16.2.x and Workstation 17.x.x in a way that doesn't jive with ControlExpert.
The Solution
Configure the VM running ControlExpert to use Hardware Compatibility version Workstation 16.2.x. This is a downgrade from the default in modern versions of VMWare Workstation, but the application will permit you to do it, so long as the VM is shut down.
To do this, perform the following:
- Ensure VM is fully shut down (not paused)
- Right click the tab of the VM at the top of the VM Workstation window
- Select
Manage > Change Hardware Compatibility - Use the wizard to select Hardware compatibility Workstation 16.2.x