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
- Open a terminal with
Ctrl + Alt + T. - List all graphics hardware with
lspci | grep -E "VGA|3D". You should see both your integrated GPU and an NVIDIA controller. - Check the driver in use with
lspci -k | grep -A 2 -E "VGA|3D". The NVIDIA entry should sayKernel driver in use: nvidia. - 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.
- Launch the slow game and leave it on a gameplay screen, not just the main menu.
- Open a terminal without closing the game.
- Run
nvidia-smi. If the game is using NVIDIA, it will appear in the Processes list at the bottom with memory usage. - If the list is empty and the GPU shows 0% utilisation, the game is not on NVIDIA.
- For a live view, run
watch -n 1 nvidia-smiand 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.
- Open Steam and go to your Library.
- Right-click the slow game and select Properties.
- Stay on the General tab and find the Launch Options box.
- Enter
prime-run %command%if your system provides theprime-runscript, which is common on Arch, Manjaro, and many Ubuntu setups. - If
prime-runis not available, use the full variables instead:__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia %command% - Close Properties and launch the game.
- Check
nvidia-smiagain 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.
- Close Steam completely, including from the system tray.
- Launch it from a terminal with
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia steam. - Alternatively, right-click the Steam icon in your applications menu if your desktop offers “Launch using Discrete Graphics Card” and use that option.
- 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.
- Open NVIDIA X Server Settings from your applications menu.
- Select PRIME Profiles on the left.
- 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.
- Apply the change and reboot. A profile change does not fully apply without a restart.
- From the terminal you can check the current mode with
prime-select queryand change it withsudo prime-select nvidiaorsudo 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 andnvidia-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=1mainly helps OpenGL and Mesa setups. NVIDIA Vulkan games need the PRIME offload variables orprime-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.


[…] also play through Steam and still see odd behaviour in a single title, our troubleshooting notes on fixing a game that uses the integrated GPU instead of NVIDIA on Linux cover per-game checks that still […]