Handling Problems

Wikis > Panorama > Handling Problems

Performance

Panorama performance is determined primarily by two things:

  1. The processor speed, and
  2. The memory speed.

Note that the video controller hardware is not a determining factor for performance. This is because Panorama is a software based driver, not a hardware driver.

Obviously there is nothing Panorama can do about the processor speed. You get what you get. Also the number of CPUs doesn’t matter for video performance. All that matters is how fast data can be moved from one memory location to another.

Memory speed is another matter and this is where Panorama tries to modify the system so video performance improves. Panorama attempts to set write combining caching for the video display memory using MTRRs. Changing the MTRRs affects physical memory for the whole system, not just Panorama. This means that all access to video memory from all drivers and all programs anywhere in the system are affected. If your system does not support this type of MTRR change, or if Panorama is unable to make this change, Panorama will use PAT to set write combine caching for its own accesses to video memory. PAT is process specific so it does not affect anything outside of the process that sets it. This means that any other video applications that do not use Panorama will not be able to take advantage of Panorama’s setting of PAT and will not have any performance enhancement. DIVE and full screen sessions, for example, do not use Panorama. They write to video memory directly and outside of the Panorama process, so they will not get any performance improvements from Panorama’s use of PAT. Panorama cannot help or affect these other processes in this situation.

The ability to change MTRR settings is directly affected by the amount of physical memory in the system and the complexity of the physical memory layout. The more physical memory or the more complex the physical memory layout, the less likely it is that changing the MTRR settings will be successful. This is a system memory issue unrelated to Panorama or video.

To determine what type of memory cache combining has been set (if any), open %LOGFILES%\vbe2grad.log and go to the end of the file. if you see something like this:

MTRR Write Combine caching enabled Base=E0000000 Size=8000000

Then the MTRRs were successfully changed. However if you see something like this:

Failed to enable MTRR Write Combine caching.
PAT Write Combine caching enabled for Vram
PAT Write Combine caching enabled for VramRing0

Then changing the MTRRs was unsuccessful and PAT is being used instead.

The other thing that can affect performance is color depth. 32 bit color depths use twice as much memory and system resources including CPU cycles as 16 bit color depths do. Since Panorama is not an accelerated driver, in most cases using 16 bit color depths will result in better performance than 32 bit color depths.

Higher Resolutions, 4K displays, etc.

The maximum theoretical resolution limit for Panorama is 65535x65535x32bpp. So any limitations lower than that are imposed by something outside of Panorama. The primary limiting factor for what resolutions Panorama will support is in the video hardware itself and the video BIOS that controls it. Panorama has been tested on a wide variety of hardware and at various resolutions. The table below shows the results of some hardware when using a 4k display.

DateHardwareBIOSConnResults
2020Intel HD graphics 610Intel Accelerated SVGA BIOS 14.34 rev 1040 04/05/2016DPWorks perfectly at 640×480, 800×600, 1024×768, 1280×1024, 1600×1200, 1920×1440, 3840×2160.
2020Intel HD graphics 530Intel Accelerated SVGA BIOS [9.0.1046]DPWorks perfectly at 640×480, 800×600, 1024×768, 1280×1024, 1600×1200, 1920×1440, 3840×2160.
2020Radeon Vega 8AMD RAVEN 16.2.0.4 11/10/17HDMIWorks perfectly at 640×480, 800×600, 1024×768, 1280×1024, 1280×960, 1400×1050, 1920×1080.
2020Intel Xeon E3-1200 v3/4th Gen integrated GraphicsIntel Accelerated SVGA BIOS 14.34 rev 2177 07/25/2013DPWorks perfectly at 640×480, 800×600, 1024×768, 1280×1024, 1600×1200, 1920×1080 using a standard display. Plugging in a display with more than 1200 vertical pixels crashes the video BIOS which causes Panorama to not load.

Note that due to HDMI bandwidth limits and video BIOS limitations, some higher resolutions may not be available when connected via HDMI. For example, some BIOS cannot be configured for 30Hz refresh rates.

How Screen Resolutions work in Panorama

Panorama is a BIOS driven video driver, so the video BIOS in your computer controls almost everything that Panorama can do. When Panorama loads just before the desktop appears, it queries your monitor’s EDID using the DDC and extracts the display’s default resolution from that. Then it checks to see if the display’s default resolution is already present in the BIOS table of supported resolutions. If not, Panorama attempts to patch the BIOS to add that resolution. This added resolution is known as the Custom Resolution. Then when you open the Screen Object, all the BIOS resolutions, including the custom one will be shown. You can then select whatever resolution and color depth you want. Beware that all the BIOS resolutions and color depths are shown and some of them may not work for your particular display or configuration. This design was deliberately chosen since Panorama cannot determine which selections will work and which will not. It was decided that Panorama should display all the BIOS resolutions and color depths so that the user can decide which to use. Just because you can select a certain option does not mean that it will work.

Note that on many systems, the BIOS also reads the monitor’s EDID on power on and configures itself accordingly. On these type of systems, you must completely power off your system if you change the display.

The sequence of events when starting a system using Panorama is as follows:

  1. On power on, the video BIOS attempts to read the display’s EDID and sets up BIOS configurations and limitations accordingly. Note that these BIOS imposed configurations and limitations will affect Panorama’s abilities if you change the display while your system is powered on. Panorama is not loaded or involved during BIOS startup.
  2. The operating system is booted. Panorama is not loaded or involved during boot.
  3. PMSHELL is started and this loads Panorama. This occurs at the end of the boot procedure and happens when the screen is cleared right before the screen changes to the Presentation Manager GUI. Note that Panorama is not loaded or running while OS/2 is booting.
  4. When Panorama starts, it attempts to read the EDID from the display. If Panorama cannot read the display’s EDID, then steps 5 and 6 are skipped.
  5. Panorama checks to see if the display’s default resolution is already present in the BIOS table of supported resolutions. If not, Panorama attempts to patch the BIOS to add that resolution.
  6. if “Use Native Resolution” is enabled, Panorama sets the Presentation Manager screen resolution setting to the display’s default resolution. Otherwise the Presentation Manager screen resolution setting is left unchanged.
  7. Presentation Manager starts and paints the GUI on the screen. Presentation Manager starts at  whatever resolution is set in the Presentation Manager settings. This can be changed by using the Screen Object and choosing a resolution of your choice. Note that you should only choose resolutions that are supported by your display. The screen object will show all the resolutions that the BIOS can do, but some of them might not work on your display.

If you change any of the Panorama settings from the defaults, the operation of Panorama described above no longer takes place and you will only have the default BIOS resolutions available. In this case, any custom resolution must be manually controlled.

Panorama can only patch newer Intel BIOS and ATI/ATOM BIOS. Panorama cannot patch Nvidia and Matrox BIOS. If you have a BIOS that cannot be patched, then you are stuck with whatever resolutions are provided by the BIOS.

Recovering from Setting a Bad Resolution

  1. Press CTL-ALT-DEL to start the full screen CAD handler
  2. Press C to Run Command Shell
  3. Enter this command:
    panoutil -p
  4. Reboot your system.

This will reset your system to 800×600 with 16 bit color. Then you can use the Screen object to select your desired screen settings. Using this command does not change any of the Panorama settings. It just changes the resolution that Presentation Manager uses the same as if you chose 800×600 in the Screen Object.

Custom Resolutions

This section is for version 1.02 and higher. Previous versions had a different command syntax. Custom resolutions are not available on systems with a UEFI BIOS when booted without using a CSM.

WARNING: DO NOT CHANGE CUSTOM RESOLUTION SETTINGS UNLESS YOU FULLY UNDERSTAND WHAT EACH SETTING DOES. The default settings are correct for almost every system. You will not need to change ANY settings except in extremely rare cases. To get back to the default settings, open the Screen object, go to the Custom Resolutions page and click Default.

WARNING: The custom resolution feature cannot be used to configure a resolution higher than the native resolution of the display. Attempting to configure a resolution higher than the native resolution of the display in either the horizontal or vertical direction is not supported, can damage your display, and may be prevented by your BIOS. Additionally, for any particular resolution to work, it must be compatible with the BIOS, the video hardware, and the display. The custom resolution feature may try to configure the specified resolution, but it won’t work if the hardware cannot handle it.

The custom resolution feature is experimental and may not work in all cases. The custom resolution feature works by patching the video BIOS if necessary. Newer Intel BIOS and ATI/ATOM BIOS are supported. Nvidia and Matrox BIOS are currently not supported. Patching the BIOS does not always work and results may vary. Some BIOS have limitations and won’t work at some resolutions even though the mode table has been patched. There is nothing that can be done in Panorama to fix this limitation in the BIOS. Additionally, the Custom Resolution feature cannot be used to configure an arbitrary resolution that the display cannot handle.

By default, Panorama will query the display resolution and timing (EDID) via the Display Data Channel (DDC). If this succeeds, Panorama will automatically add the native display resolution to the list of available resolutions that are displayed in the Screen Object settings. You can then select the desired resolution from the list. This is the best method of operation since the exact timings that are provided by the display are used.

If you have previously used a wide screen enabler, then there is a chance that Presentation Manager might use an incorrect resolution when switching to Panorama. To prevent this confusion, switch to a standard SVGA resolution (800×600, 1024×768, or 1280×1024) before installing Panorama. Reboot to make sure that the standard SVGA resolution you have chosen actually works, install Panorama, reboot and select your desired resolution from the list. If you did not do this prior to installing Panorama and the Presentation Manager has selected a non-displayable resolution, you can reset the Presentation Manager selected resolution as described above.

If you have problems with the custom resolution feature, the PanoUtil.exe program can be used to control the custom resolution functions. If you happen to boot to a resolution that cannot be displayed, you can type CTL-ALT-DEL to activate the CAD handler and go to a command prompt to execute these commands. If CTL-ALT-DEL does not work you can boot to the maintenance desktop using ALT-F1 then F4, or boot a different partition. If running the PanoUtil command from a maintenance desktop or from a different partition you must specify the drive to operate on. PanoUtil, like Panorama itself, requires the Presentation Manager so PanoUtil will not run on a system booted to a command line (ALT-F1 then F2 for example).

To reset all the custom resolution settings to the default and set the PM resolution to 800×600:

PanoUtil -r
PanoUtil -p
PanoUtil -e 0
PanoUtil -d 1

These commands clear any manual resolution, reset the Presentation Manager resolution to 800×600, clears any manual EDID, and enables the Custom Resolution Module, respectively.

To manually set a custom resolution of 1920×1080:

PanoUtil -c 1920 1080

To remove the manual custom resolution:

PanoUtil -r

To completely disable all the custom resolution support:

PanoUtil -d 0

To enable the custom resolution support:

PanoUtil -d 1

To reset the Presentation Manager selected resolution to 800×600:

PanoUtil -p

To see the status of the custom resolution settings:

PanoUtil -s

All of these commands can also be executed from a different boot partition or from the maintenance desktop if you specify the drive to operate on. For example, to change the settings on drive d:, add the drive specification to the end of the desired command:

PanoUtil -s d:
PanoUtil -r d:
PanoUtil -p d:
PanoUtil -c 1920 1080 d:
PanoUtil -d 0 d:
PanoUtil -d 1 d:
PanoUtil -e 0 d:

Collecting a TestLog Log

  1. If you don’t already have the current version of the TestLog program, you can download it here: Get TestLog
  2. Make sure your system is booted with Panorama installed
  3. Open a command prompt.
  4. type:
    testlog generic
  5. Attach the generated LOG file to your ticket.

Systems Running the Debug Kernel Might Get an Unexpected Trace Interrupt

The video BIOS in some systems will sometimes generate an unexpected trace interrupt when the system is running the debug Kernel. You can simply disable the trace interrupt handling using the “vc 1” kernel debugger command. Systems running the retail kernel are not affected.

This entry last updated: by David A