If you use several 4K displays with a device that has multiple physical GPUs (for example, HP Elite t755), you need to implement special GPU configurations to successfully operate all screens. This article provides explanation and the necessary configurations.


Environment

  • OS: OS 12 Base System
  • Hardware: HP Elite t755 with multiple physical GPUs
  • Display Setup: 6 or more 4K displays

Problem

When several screens are in use, the Linux driver merges multiple physical GPUs into one logical X screen by having one GPU doing all the rendering for all screens. The secondary GPU only receives a copy of the frame buffers it needs to display. 

External GPU (add-in card)

The external GPU (add-in card) sometimes doesn’t have enough VRAM for all 6 screens plus what is required for rendering, double-buffering, etc. If it has less than 2GB of VRAM, it should be operated as secondary GPU so that it only needs to maintain the frame buffer for the two displays attached to it.

Internal GPU

If the internal video card doesn’t have enough VRAM, the driver will allocate system memory to alleviate the situation and it seems to work at first but this is only a kludge and seems to fail during a suspend/resume cycle when the driver tries to [re-]allocate the system memory. As a result, the two monitors connected to the external GPU remain dark.

Solution

We have this situation with a HP Elite t755 and 6 monitors and need to make sure we assign the primary role to the correct GPU.

External GPU (add-in card)

The external GPU (add-in card) should be configured as secondary GPU. Configuring this in the BIOS does not yield the expected result because the BIOS only defines which GPU to use for boot messages.

You need to use the corresponding IGEL registry parameter:

  1. In the configuration dialog go to System > Registry > x > drivers > swap_card0_with_card1.
  2. Enable Make the secondary graphic card to the primary one.

For more information on registry parameters, see Registry in IGEL OS 12.

Internal GPU

In order to guarantee the internal GPU responsible for rendering all screen content has enough VRAM, you need to assign 2GB VRAM to it in the BIOS. This needs to be done by forcing the corresponding setting in the BIOS:

  1. Start the HP BIOS (Setup Utility) by pressing F10 during boot.
  2. Navigate to Advanced > Device Options > Auto.
  3. Then press the key “cursor left” and the word Auto will change to Force.
  4. Now navigate one line down to UMA Frame Buffer Size and change the 512MB to 2048MB.
  5. Leave the Device Options by pressing [F10] for Accepting the change.
  6. Then navigate to File > Save Changes and Exit.
  7. Press [Enter] to Save this change.