Linux & Open SourceTechnology

Fix Low FPS on Linux: Game Using Integrated GPU Instead of NVIDIA

Admin
Fix Low FPS on Linux: Game Using Integrated GPU Instead of NVIDIA

Your laptop has a powerful NVIDIA graphics card, but your game runs at 18 frames per second like it is using a basic office GPU. Menus stutter, fans stay quiet when they should be loud, and settings changes make almost no difference. This almost always means the game launched on the integrated Intel or AMD graphics instead of the dedicated NVIDIA GPU.

Linux laptops with two GPUs use a hybrid setup called PRIME. It saves battery by using the integrated GPU for the desktop and the NVIDIA card only when you ask for it. If Steam or the game does not ask correctly, performance collapses. This guide shows you how to confirm the problem and force the NVIDIA GPU for Steam games properly.

Quick Answer

Confirm the issue by checking which GPU a running game uses with nvidia-smi, then launch Steam or the individual game with the NVIDIA offload variables __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia or by using prime-run %command% as the Steam launch option. On Ubuntu you can also select NVIDIA On-Demand or Performance mode in NVIDIA Settings and reboot. The game should then appear in nvidia-smi and frame rates should rise sharply.

Why Linux Chooses the Wrong GPU

Most gaming laptops have two graphics processors. The integrated GPU is built into the CPU. It is efficient and perfect for browsing, video, and office work. The dedicated NVIDIA GPU is much faster for 3D games but uses more power and creates more heat.

On Windows, the driver often switches automatically. On Linux, the default is more conservative. Unless an app requests offloading, it stays on the integrated GPU to save power. Steam itself is a 2D app, so it opens on the integrated GPU — and games it launches can inherit that choice if no offload command is used.

This is not a broken driver in most cases. It is the system doing exactly what it was told to do. You just need to give the game the right instruction.

Step 1: Confirm Which GPU Your System Sees

  1. Open a terminal with Ctrl + Alt + T.
  2. List all graphics hardware with lspci | grep -E "VGA|3D". You should see both your integrated GPU and an NVIDIA controller.
  3. Check the driver in use with lspci -k | grep -A 2 -E "VGA|3D". The NVIDIA entry should say Kernel driver in use: nvidia.
  4. Check the current desktop renderer with glxinfo | grep "OpenGL renderer". On a hybrid laptop this will often show the integrated GPU — that alone is normal and does not prove the game is wrong.

If lspci does not show NVIDIA at all, the problem is different. Check your BIOS for a disabled discrete GPU, or check whether the card is turned off by a hardware MUX switch.

Step 2: Prove the Game Is on the Wrong GPU

The most reliable test is to watch GPU usage while the game is running.

  1. Launch the slow game and leave it on a gameplay screen, not just the main menu.
  2. Open a terminal without closing the game.
  3. Run nvidia-smi. If the game is using NVIDIA, it will appear in the Processes list at the bottom with memory usage.
  4. If the list is empty and the GPU shows 0% utilisation, the game is not on NVIDIA.
  5. For a live view, run watch -n 1 nvidia-smi and watch utilisation while you move in the game.

You can also add an overlay inside Steam. Add DXVK_HUD=full %command% temporarily as a launch option — the overlay shows the GPU name at the top. If it names Intel or AMD integrated graphics, you have confirmed the issue.

Step 3: Fix It Per Game in Steam

A per-game fix is the safest method. It does not change your desktop, battery use, or other apps.

  1. Open Steam and go to your Library.
  2. Right-click the slow game and select Properties.
  3. Stay on the General tab and find the Launch Options box.
  4. Enter prime-run %command% if your system provides the prime-run script, which is common on Arch, Manjaro, and many Ubuntu setups.
  5. If prime-run is not available, use the full variables instead: __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
  6. Close Properties and launch the game.
  7. Check nvidia-smi again while playing. The game process should now be listed.

For a detailed walkthrough of GPU selection on hybrid laptops, see our guide on how to switch an Acer Nitro 5 to use only the dedicated GPU on Ubuntu, which covers the system-wide method as well.

Step 4: Run All of Steam on NVIDIA

If every game has the same problem, launching Steam itself on NVIDIA can be more convenient. Every child process then inherits the offload.

  1. Close Steam completely, including from the system tray.
  2. Launch it from a terminal with __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia steam.
  3. Alternatively, right-click the Steam icon in your applications menu if your desktop offers “Launch using Discrete Graphics Card” and use that option.
  4. Launch a game without any per-game launch option and test with nvidia-smi.

The trade-off is battery life. Steam and all its games will use the power-hungry GPU while Steam stays open this way. For a plugged-in gaming session that is fine. For daily laptop use, the per-game method is better.

Step 5: Set the PRIME Profile on Ubuntu

Ubuntu provides PRIME profiles that set the default behaviour for the whole system.

  1. Open NVIDIA X Server Settings from your applications menu.
  2. Select PRIME Profiles on the left.
  3. Choose “NVIDIA On-Demand” for balanced use — this is the recommended mode that still allows offloading — or “Performance Mode” to use NVIDIA as the primary GPU.
  4. Apply the change and reboot. A profile change does not fully apply without a restart.
  5. From the terminal you can check the current mode with prime-select query and change it with sudo prime-select nvidia or sudo prime-select on-demand.

NVIDIA’s own explanation of the render offload environment variables and limitations is in the official NVIDIA PRIME Render Offload documentation. A second useful reference is the Arch Wiki guide to PRIME and GPU offloading, which applies to most distributions even if you do not use Arch.

Other Causes of Low FPS to Rule Out

VSync and Frame Limiters

If nvidia-smi shows the game is on NVIDIA but FPS is locked at exactly 30 or 60, check in-game VSync, frame rate caps, and Steam’s background limits. Also check whether GameMode or MangoHud is applying a cap you set earlier and forgot.

Wrong Proton Version or Shader Compilation

First launches after an update compile shaders and can stutter badly for several minutes. If FPS improves steadily the longer you play one area, that is shader compilation, not a GPU selection problem. Let it finish before judging performance.

Power and Thermal Limits

On battery power, many laptops limit the NVIDIA GPU heavily. Plug in the charger, set your system power profile to Performance, and make sure vents are not blocked. A GPU that is correctly selected but starved of power will still perform poorly.

Common Mistakes and Useful Tips

  • Testing only with glxinfo: The desktop renderer will often show the integrated GPU even when games offload correctly. Always test with a running game and nvidia-smi.
  • Forgetting %command%: A Steam launch option without %command% can prevent the game from starting at all. Always include it at the end of the variable section.
  • Using DRI_PRIME alone for Vulkan games: DRI_PRIME=1 mainly helps OpenGL and Mesa setups. NVIDIA Vulkan games need the PRIME offload variables or prime-run.
  • Switching to Performance Mode and expecting good battery life: Full NVIDIA mode is for plugged-in use. Switch back to On-Demand or Intel mode for travel.
  • Having two conflicting launch options: Remove old test options when you add a new one. Stacked variables from different guides can cancel each other out.
  • Not rebooting after a driver or profile change: PRIME profile and driver changes need a full reboot, not just logging out.

A smart habit is to keep one small, well-known game as your test title. Because it loads fast, you can verify GPU selection in under a minute whenever you change drivers or settings, instead of waiting for a large game to load.

Conclusion

Low FPS on a hybrid Linux laptop is very often a GPU selection problem, not a lack of power. Confirm it with nvidia-smi while the game runs, then force offloading with prime-run %command% or the NVIDIA offload variables for that game. Use a system-wide PRIME profile only when you want every game to behave the same way. Once the game appears in nvidia-smi and utilisation rises during play, you have fixed the root cause and your frame rates should reflect the hardware you actually paid for.

Frequently Asked Questions

How can I tell for sure if a game is using NVIDIA?

Run nvidia-smi while the game is in active gameplay. If the game process is listed with GPU memory usage and utilisation rises above zero, it is using the NVIDIA card.

What launch option should I try first?

Try prime-run %command% first because it is short and widely supported. If your system does not have prime-run, use the full offload variables listed in Step 3.

Will forcing NVIDIA hurt my laptop?

No. It will use more battery and produce more heat, which is normal during gaming. Use it while plugged in and keep vents clear, just as you would on Windows.

My game is on NVIDIA but FPS is still low. What next?

Check for a frame cap, VSync, shader compilation stutter, and power limits. Also confirm your NVIDIA driver is current and that the game is not running at a much higher resolution than you expected.

Does this fix work for non-Steam games in Lutris or Heroic?

Yes. In Lutris, enable NVIDIA PRIME Render Offload in the game’s system options. In Heroic, enable the dedicated GPU option in the game’s settings. The underlying variables are the same.

Admin

Passionate about the intersection of style and storytelling. I simplify fashion trends and industry news into easy-to-follow advice, helping you stay stylish and informed in the fast-paced world of fashion.

One response to “Fix Low FPS on Linux: Game Using Integrated GPU Instead of NVIDIA”

Leave a Reply

Your email address will not be published. Required fields are marked *