Software & AppsOperating SystemLinux

Optirun vs Primusrun: Understanding the Difference

Ubuntu 20

Linux users with Nvidia Optimus technology often use the Bumblebee project to utilize their discrete graphics card. Two commands associated with this project are optirun and primusrun. This article will delve into the differences between these two commands, their usage, and their benefits.

Quick Answer

Optirun and primusrun are both commands used in the Bumblebee project to run applications on the discrete GPU in Nvidia Optimus technology. The main difference between the two lies in the backend they use. Optirun uses VirtualGL, while primusrun uses Primus. Primusrun is generally recommended as it offers better performance and compatibility with a wider range of applications.

Understanding Bumblebee and Nvidia Optimus

Before we dive into the differences between optirun and primusrun, it’s important to understand the context in which these commands are used. Nvidia Optimus is a technology that allows computers to save power by switching between an integrated graphics chip for normal use and a high-performance discrete GPU for heavy-duty applications like gaming or 3D modeling.

The Bumblebee project is an effort to support Nvidia Optimus on Linux. It enables users to choose when to use the high-performance GPU for graphics-intensive applications. This is where optirun and primusrun come into play.

Optirun: The Original Command

optirun is a command used in the Bumblebee project to run an application on the discrete GPU. The syntax is simple: optirun [options] application [application-parameters]. The options parameter is optional and can be used to specify various settings, while application is the name of the program you want to run, and application-parameters are any parameters you want to pass to that program.

optirun uses the VirtualGL backend. VirtualGL redirects 3D commands from a program running on the discrete GPU to the integrated GPU used for display. However, it may not work well with certain applications, such as Wine and Crossover, which are used to run Windows programs on Linux.

Primusrun: The Improved Command

primusrun is a newer command that is recommended as a replacement for optirun. Like optirun, you use it by typing primusrun application in the terminal.

primusrun uses the Primus backend, which is more efficient than VirtualGL. It offers several advantages over optirun. Firstly, it provides better performance, making your graphics-intensive applications run smoother. Secondly, it has better compatibility with applications like Wine and Crossover, allowing you to play Windows games on your Linux machine using the discrete GPU.

Optirun vs Primusrun: The Comparison

The main difference between optirun and primusrun lies in the backend they use. optirun uses VirtualGL, which can cause compatibility issues with certain applications. On the other hand, primusrun uses Primus, which is more efficient and compatible with a wider range of applications.

In terms of performance, primusrun generally provides better results compared to optirun. This is especially noticeable when running graphics-intensive applications or games.


In conclusion, while optirun and primusrun are both useful commands in the Bumblebee project, primusrun is generally the better choice due to its improved compatibility and performance. However, it’s always a good idea to test both on your system to see which one works best for your specific needs.

For more information on the Bumblebee project and Nvidia Optimus, you can visit the Bumblebee Github page and the Nvidia Optimus page.

Can I use `optirun` and `primusrun` on any Linux distribution?

Yes, optirun and primusrun can be used on most Linux distributions that support the Bumblebee project. However, it’s always a good idea to check the documentation or support forums of your specific distribution to ensure compatibility.

Can I use `optirun` or `primusrun` with any Nvidia graphics card?

Yes, both optirun and primusrun are designed to work with Nvidia graphics cards. However, it’s recommended to check the Bumblebee project’s documentation or support forums to ensure compatibility with your specific graphics card model.

Can I use `optirun` or `primusrun` with AMD or Intel graphics cards?

No, optirun and primusrun are specifically designed for Nvidia Optimus technology and Nvidia graphics cards. They are not compatible with AMD or Intel graphics cards.

How can I install Bumblebee and use `optirun` or `primusrun`?

The installation process may vary depending on your Linux distribution. It’s recommended to refer to the Bumblebee project’s documentation or the documentation of your specific distribution for detailed installation instructions. Generally, you would need to add the Bumblebee repository, update your package manager, and then install the bumblebee package. Once installed, you can use optirun or primusrun to run applications on the discrete GPU.

Can I use `optirun` or `primusrun` with Steam games?

Yes, you can use optirun or primusrun with Steam games. However, it’s important to configure Steam to use the command properly. You can do this by right-clicking on a game in your Steam library, selecting "Properties," and then adding either optirun %command% or primusrun %command% in the "Set Launch Options" field. This ensures that the game runs using the discrete GPU.

Are there any drawbacks to using `primusrun` over `optirun`?

While primusrun generally provides better performance and compatibility, it may not be compatible with all applications. In some rare cases, certain applications may work better with optirun rather than primusrun. It’s always a good idea to test both commands on your system to see which one works best for your specific needs.

Leave a Comment

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