PRIMUSRUN(1)

πŸ’… NAME πŸ’…

ok so primusrun β€” she runs an application on a discrete NVIDIA video card ✨ like that's literally her whole job and she ate


πŸ¦‹ SYNOPSIS πŸ¦‹

primusrun command

🌸 DESCRIPTION 🌸

ok bestie, here's the tea β˜• Primus implements low-overhead local-only client-side OpenGL offloading via GLX forking. That's the whole vibe. No cap.

It's currently intended to be used alongside Bumblebee, and it gives you a drop-in replacement for optirun β€” i.e. "primusrun". So if you already know optirun, you already know her. Slay πŸ’…


✨ VARIABLES ✨

here's the list of environment variables that affect the primus library and might actually matter to you as an end user, bestie 🫢

  • PRIMUS_SYNC β€” the readback-display synchronization method, default is 0
    • 0: no sync
    • 1: synced, display previous frame
    • 2: synced, display latest frame
  • PRIMUS_VERBOSE β€” verbosity level, default is 1
    • 0: only errors
    • 1: warnings
    • 2: profiling
  • PRIMUS_DISPLAY β€” the secondary Xorg server display number, default is :8

🌈 EXAMPLES 🌈

ok these are the moments, the iconic little demos πŸ’–

  • primusrun glxgears -info

Runs the graphics demo supplied by mesa-utils to confirm whether the discrete card is being used for GL rendering. literally the vibe check for your GPU, no cap πŸ‘‘

  • PRIMUS_VERBOSE=2 primusrun glxgears

Runs the graphics demo supplied by mesa-utils with verbose output from primus. she's chatty and we love that for her πŸ—£οΈβœ¨

  • vblank_mode=0 primusrun glxgears

Disable vblank synchronisation, typically used for benchmarking purposes. unhinged frame rate, no brakes, we're so back πŸ”₯


πŸ’€ ISSUES πŸ’€

ok so this is the part where we have to be real with you bestie 😭

Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. like, please don't. I'm begging πŸ™ˆ

If you need to use primus with compositing and you see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help. here's the move:

PRIMUS_SYNC=1 primusrun ...

This makes primus display the previously rendered frame. Alternatively, with PRIMUS_SYNC=2 primus will display the latest rendered frame, trading frame rate for reduced visual latency. pick your fighter, bestie βš”οΈ


πŸ‘‘ AUTHOR πŸ‘‘

Primus was created by Alexander Monakov <amonakov@gmail.com>. iconic behaviour fr fr 🫢

This manual page was written by Vincent Cheng <Vincentc1208@gmail.com>, for the Debian project (and may be used by others). thank you for your service, legend πŸ’œ


and that's the whole page babes β€” primusrun, from the General Commands Manual, February 2013, page PRIMUSRUN(1) πŸŽ€ tysm for reading, go run something on your discrete card, mwah πŸ’‹