Drivers Prime Time Laptops & Desktops



Software updates are a vital part of keeping your PC running its best. It's important to periodically check for updates since they are released at different intervals. To make things easier, your Samsung PC allows you to quickly check and apply updates. You can even customize the update options, so they'll only happen at times that are convenient for you. The average Prime Inc salary ranges from approximately $36,266 per year for Over the Road Truck Driver to $76,224 per year for Owner Operator Driver. Average Prime Inc weekly pay ranges from approximately $500 per week for Driver to $2,200 per week for Lease Operator.

PRIME is a technology used to manage hybrid graphics found on recent desktops and laptops (Optimus for NVIDIA, AMD Dynamic Switchable Graphics for Radeon). PRIME GPU offloading and Reverse PRIME are an attempt to support muxless hybrid graphics in the Linux kernel.

Installation

Open-source drivers

Remove any closed-source graphic drivers and replace them with the open source equivalent:

Reboot and check the list of attached graphic drivers:

We can see that there are two graphic cards: Intel, the integrated card (id 0x7d), and Radeon, the discrete card (id 0x56), which should be used for GPU-intensive applications.

By default the Intel card is always used:

Note: Sometimes, the displayed provider is 'HAINAN @ pci:0000:03:00.0', not radeon. In this case you should use 'HAINAN @ pci:0000:03:00.0' as the provider in the next command.

Closed-source drivers

To get PRIME functioning on the proprietary drivers, it is pretty much the same process. Follow the following articles to install the drivers:

  • Catalyst or AMDGPU PRO to install drivers for ATI/AMD GPUs.
  • NVIDIA to install drivers for NVIDIA GPUs.

After you have the driver installed, do not reboot or relaunch Xorg. Depending on your system configuration, this may render your Xorg system unusable until reconfigured.

Follow the instructions for the section on your designated use-case. You do not need to uninstall the open-source drivers for it to function, but you probably should, for the sake of preventing clutter and potential future issues.

PRIME GPU offloading

Prime

We want to render applications on the more powerful card and send the result to the card which has display connected.

The command xrandr --setprovideroffloadsink provider sink can be used to make a render offload provider send its output to the sink provider (the provider which has a display connected). The provider and sink identifiers can be numeric (0x7d, 0x56) or a case-sensitive name (Intel, radeon).

Note:
  • This setting is no longer necessary when using the default intel/modesetting driver from the official repos, as they have DRI3 enabled by default and will therefore automatically make these assignments. Explicitly setting them again does no harm, though.
  • GPU offloading is not supported by the closed-source drivers (for the NVidia driver this is no longer the case, for more info see #PRIME render offload below).

Example:

You may also use provider index instead of provider name:

For open source drivers - PRIME

To use your discrete card for the applications who need it the most (for example games, 3D modellers...), prepend the DRI_PRIME=1 environment variable:

Other applications will still use the less power-hungry integrated card. These settings are lost once the X server restarts, you may want to make a script and auto-run it at the startup of your desktop environment (alternatively, put it in /etc/X11/xinit/xinitrc.d/). This may reduce your battery life and increase heat though.

PRIME render offload

NVIDIA driver since version 435.17 supports this method. xf86-video-modesetting, xf86-video-amdgpu (450.57), and xf86-video-intel (455.38) are officially supported as iGPU drivers.

Note: Full power management of the dGPU in this configuration is still experimental, and available only for Turing-generation cards paired with Intel Coffee Lake CPUs. Instructions to try this are available here.

To run a program on the NVIDIA card you can use the prime-run script provided by nvidia-prime:

Laptops

Troubleshooting

If, for some reason automatic configuration does not work, it might be necessary to explicitly configure X with a Xorg#Using xorg.conf file:

In some cases, it might even be necessary to also include the appropriate BusID for the iGPU and dGPU devices in the configuration above, as per Xorg#More than one graphics card.

PRIME render offload needs a specific set of patches to the xorg-server that are present since version 1.20.6-1 on Arch. Also, starting from Xorg 1.20.7, the Xorg options AllowEmptyInitialConfiguration and AllowPRIMEDisplayOffloadSink are not needed anymore, since they are already present on the driver directly. Manually adding the options won't hurt though.

If you had bumblebee package installed you should remove it because it blacklists nvidia_drm driver which is required to load nvidia driver by X server for offloading.

PRIME synchronization

When using PRIME, the primary GPU renders the screen content / applications, and passes it to the secondary GPU for display. Quoting an NVIDIA thread, 'Traditional vsync can synchronize the rendering of the application with the copy into system memory, but there needs to be an additional mechanism to synchronize the copy into system memory with the iGPU’s display engine. Such a mechanism would have to involve communication between the dGPU’s and the iGPU’s drivers, unlike traditional vsync.'

This synchronization is achieved using PRIME sync. To check if PRIME synchronization is enabled for your display, check the output of xrandr --prop.

To enable it run:

Note: A pre-requisite for PRIME sync with the NVidia driver is to enable modesetting.

Reverse PRIME

This article or section needs expansion.

Reason: Missing info about configuring Intel + AMD reverse prime for both open and closed amdgpu drivers (Discuss in Talk:PRIME#)
Note: Reverse PRIME is currently not supported for AMDGPU + NVIDIA. See [1] for more details. An alternative is to use NVIDIA as the primary card as described in #Discrete card as primary GPU.
Note: Currently when only external display is enabled you will only get 1fps. See [2] for more details.

If the second GPU has outputs that are not accessible by the primary GPU, you can use Reverse PRIME to make use of them. This will involve using the primary GPU to render the images, and then pass them off to the second GPU.

Configuration

First, identify integrated GPU BusID

In the above example Intel card has 00:02.0 which translates to PCI:0:2:0.

Set up your xorg.conf as follows and adjust BusID.

The command xrandr --setprovideroutputsource provider source sets the provider as output for the source. For example:

When this is done, the discrete card's outputs should be available in xrandr, and you could do something like:

to configure both internal as well as external displays.

Problems

If after reboot you only have one provider, it might be because when Xorg starts there is no nvidia module yet.You need to enable early module loading.

User scenarios

Discrete card as primary GPU

Drivers Prime Time Laptops & Desktops 2019

Imagine following scenario: The LVDS1 (internal laptop screen) and VGA outputs are both only accessible through the integrated Intel GPU. The HDMI and Display Port outputs are attached to the discrete NVIDIA card. It is possible to use all four outputs by making use of the #Reverse PRIME technology as described above. However the performance might be slow, because all the rendering for all outputs is done by the integrated Intel card. To improve this situation it is possible to do the rendering by the discrete NVIDIA card, which then copies the framebuffers for the LVDS1 and VGA outputs to the Intel card.

Create the following Xorg configuration:

Note: For the proprietary NVIDIA driver see [3] instead.

Restart Xorg. The discrete NVIDIA card should be used now. The HDMI and Display Port outputs are the main outputs. The LVDS1 and VGA outputs are off. To enable them run:

The internal card's outputs should be available now in xrandr.

Note: With NVidia being used to render the screen, you may face sluggish scrolling or screen tearing. Check NVIDIA/Troubleshooting#Avoid screen tearing on how to mitigate it.

Troubleshooting

The factual accuracy of this article or section is disputed.

Reason: No sources to motivate the workarounds in this section (Discuss in Talk:PRIME#)

XRandR specifies only 1 output provider

Delete/move /etc/X11/xorg.conf file and any other files relating to GPUs in /etc/X11/xorg.conf.d/. Restart the X server after this change.

If the video driver is blacklisted in /etc/modprobe.d/, load the module and restart X. This may be the case if you use the bbswitch module for Nvidia GPUs.

Another possible problem is that Xorg might try to automatically assign monitors to your second GPU. Check the logs:

To solve this add the ServerLayout section with inactive device to your xorg.conf:

Drivers Prime Time Laptops & Desktops Computers

When an application is rendered with the discrete card, it only renders a black screen

In some cases PRIME needs a composition manager to properly work. If your window manager doesn’t do compositing, you can use xcompmgr on top of it.

If you use Xfce, you can go to Menu->Settings->Window Manager Tweaks->Compositor and enable compositing, then try again your application.

Black screen with GL-based compositors

Currently there are issues with GL-based compositors and PRIME offloading. While Xrender-based compositors (xcompmgr, xfwm, compton's default backend, cairo-compmgr, and a few others) will work without issue, GL-based compositors (Mutter/muffin, Compiz, compton with GLX backend, Kwin's OpenGL backend, etc) will initially show a black screen, as if there was no compositor running. While you can force an image to appear by resizing the offloaded window, this is not a practical solution as it will not work for things such as full screen Wine applications. This means that desktop environments such as GNOME3 and Cinnamon have issues with using PRIME offloading.

Additionally if you are using an Intel IGP you might be able to fix the GL Compositing issue by running the IGP as UXA instead of SNA, however this may cause issues with the offloading process (ie, xrandr --listproviders may not list the discrete GPU).

For details see FDO Bug #69101.

One other way to approach this issue is by enabling DRI3 in the Intel driver. See the below issue for a sample config.

Kernel crash/oops when using PRIME and switching windows/workspaces

Note: This has been tested on a system with Intel+AMD

Drivers Prime Time Laptops & Desktops

Using DRI3 WITH a config file for the integrated card seems to fix this issue.

To enable DRI3, you need to create a config for the integrated card adding the DRI3 option:

After this you can use DRI_PRIME=1 WITHOUT having to run xrandr --setprovideroffloadsink radeon Intel as DRI3 will take care of the offloading.

Glitches/Ghosting synchronization problem on second monitor when using reverse PRIME

Drivers Prime Time Laptops & Desktops Refurbished

This problem can affect users when not using a composite manager, such as with i3. [4]

If you experience this problem under Gnome, then a possible fix is to set some environment variables in /etc/environment[5]

Error 'radeon: Failed to allocate virtual address for buffer:' when launching GL application

This error is given when the power management in the kernel driver is running.You can overcome this error by appending radeon.runpm=0 to the kernel parameters in the bootloader.

Drivers Prime Time Laptops & Desktops

Drivers Prime Time Laptops & Desktops Best Buy

Constant hangs/freezes with Vulkan applications/games using VSync with closed-source drivers and reverse PRIME

Some Vulkan applications (particularly ones using VK_PRESENT_MODE_FIFO_KHR and/or VK_PRESENT_MODE_FIFO_RELAXED_KHR, including Windows games ran with DXVK) will cause the GPU to lockup constantly (~5-10 seconds freezed, ~1 second working fine)[6] when ran on a system using reverse PRIME.

A GPU lockup will render any input unusable (this includes switching TTYs and using SysRq functions).

There's no known fix for this NVIDIA bug, but a few workarounds exist:

  • Turning Vsync off (not possible for some applications)
  • Turning PRIME Synchronization[7] off (will introduce screen tearing):

You can verify if your configuration is affected by the issue simply by running vkcube from the vulkan-tools package.

See also

Retrieved from 'https://wiki.archlinux.org/index.php?title=PRIME&oldid=651515'