Skip to main content

While we don’t necessarily label Nitrux as a “gaming-centric” or “gaming-focused” distribution, that doesn’t mean it can’t be used for that purpose. So, continuing from the last tutorial, where we checked how to get games, we’ll look at extra tools to enhance the gaming experience with hardware information, real-time statistics, overclocking utilities, and goodies we’ve implemented and added to our distribution.

Difficulty: ★☆☆☆☆

📜 Table of Contents

  1. Hardware Information
  2. Performance Optimization
  3. Performance Statistics
    1. Using MangoHud in Steam (Flatpak)
    2. Using MangoHud in Heroic Games Launcher and Bottles (Flatpak)
  4. Overclocking Utilities
  5. Using Resolution Scaling Technologies in Nitrux
  6. Peripheral Management
    1. Razer
    2. Xbox
    3. Support for Additional Devices

Hardware Information

CPU-X is a system profiling (Information) and monitoring application (Resource usage). It can detect the Processor (CPU), Memory (RAM), and Chipset (Motherboard).

CPU-X (AppImage) 4.5.1.

Performance Optimization

Since Nitrux 2.9.0, we have included GameMode and the Plasma integration that will display in the system tray which processes are using GameMode.

GameMode is a daemon/lib combo for Linux that allows games to request a set of optimizations be temporarily applied to the host OS and a game process.

Currently, GameMode includes support for optimizations including:

  • CPU governor
  • I/O priority
  • Process niceness
  • Kernel scheduler (SCHED_ISO)
  • Screensaver inhibiting
  • GPU performance mode (NVIDIA and AMD), GPU overclocking (NVIDIA)
  • CPU core pinning or parking
  • Custom scripts

Disclaimer: We do not develop GameMode or the Plasma integration. Please create an issue at their respective bug tracker to report problems with this software.

In Nitrux 3.5.0, we’ve focused on optimizing performance and responsiveness by implementing advanced memory management tweaks.

  • Reduced memory compaction overhead. Reduce CPU overhead and improve overall system responsiveness, especially in memory-intensive applications, leading to more stable performance by avoiding sudden spikes in CPU usage caused by proactive compaction.
  • Improve performance in contended lock scenarios. By allowing more aggressive page locking, we improve performance in scenarios with contention for memory pages, which can occur in applications with high memory usage and multi-threaded environments.
  • Enable THP (Transparent Hugepages) for all memory locations. Improve performance for applications with considerable memory usage and access patterns that benefit from larger pages.
  • Disable memory page fragmentation. In workloads like gaming, this change can provide benefits such as reduced CPU overhead, improved system responsiveness, and more predictable performance.

Performance Statistics

MangoHud is a “Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load, and more.

  • 🔰 Information: Users can download MangoHud from Flathub; see Software Management.
  • 🔰 Information: Check MangoHud documentation for supported environment variables.
  • ⚠️ Important: MangoHud will not display statistics for AMD GPUs unless the PCI bus is added to the configuration, i.e., the bus where the GPU is can look like this 03:00.0. Use “lspci | grep VGA” to see this information and replace the PCI bus accordingly. This is not a bug or issue with Nitrux or caused by Nitrux.

MangoHUD.

Do the following for using MangoHud in software like Steam, Bottles, or HGL.

Using MangoHud in Steam (Flatpak)

  • Search for the keyword “runtime” in Steam and download all of them.
  • For each game, right-click the game title, then click “Properties,” in the section “General,” scroll down to “Launch Options,” and add the following options to enable MangoHud and GameMode; these parameters are all a single line.
    • Basic MangoHud parameters.

MANGOHUD=1 MANGOHUD_CONFIG=gamemode,preset=3 gamemoderun %command%

    • Basic MangoHud parameters for AMD GPUs, change the PCI bus address accordingly.

MANGOHUD=1 MANGOHUD_CONFIG=gamemode,pci_dev='0000\:03\:00.0',preset=3 gamemoderun %command%

Using MangoHud in Heroic Games Launcher and Bottles (Flatpak)

  • Enable MangoHud:
    • To use MangoHud, enable it on a per-game or per-bottle basis using the application settings.
      • Alternatively, add the following environment variables in their respective settings menus.
        • Variable name: MANGOHUD
        • Value: 1
        • Variable name: MANGOHUD_CONFIG
        • Value: gamemode,preset=3
          • For AMD GPUs include the PCI bus address: gamemode,pci_dev='0000\:03\:00.0',preset=3
  • Enable GameMode:
    • Check “Use GameMode” in the settings of individual games or the application’s global settings.
    • Check the toggle “Feral GameMode” in the settings of an individual bottle.

Disclaimer: We do not develop MangoHud. Please create an issue at their respective bug tracker to report problems with this software.

Overclocking Utilities

GreenWithEnvy is a “System utility designed to provide information, control the fans, and overclock your NVIDIA card.”

  • 🔰 Information: Users can download GreenWithEnvy from Flathub; see Software Management.
  • 🔰 Information: Check the Notes for the latest release of Nitrux to enable the Plasma X11 session, since GreenWithEnvy does not work in Wayland.

GreenWithEnvy allows overclocking of NVIDIA GPUs. However, it only works in X11.

CoreCtrl is a “Free and Open Source GNU/Linux application that allows you to control with ease your computer hardware using application profiles.

  • 🔰 Information: We have included CoreCtrl in Nitrux since 3.5.0. We strongly recommend selecting “Advanced” and choosing an appropriate maximum frequency for the GPU. Since the AMDGPU driver can overlock the GPU too much, resetting the GPU and crashing the graphical session or completely halting the computer. See this bug report at the Linux kernel bug tracker and this issue at the AMDGPU bug tracker. This is not a bug or problem with Nitrux or caused by Nitrux.

CoreCtrl allows the management of AMD hardware.

Disclaimer: We do not develop GreenWithEnvy or CoreCtrl. Please create an issue at their respective bug tracker to report problems with this software.

Using Resolution Scaling Technologies in Nitrux

Recent game titles include support for hardware-based scaling technologies such as AMD FidelityFX™ Super Resolution, NVIDIA Deep Learning Super Sample, or Intel® Xe Super Sampling (XeSS). Most games have settings in their in-game menus to toggle these features; however, for those that don’t, it’s possible to use some of these technologies by using environment variables available in compatibility layers like Proton-GE. Other game titles use internal scaling methods, i.e., resolution scaling sliders, largely dependent on the game engine which aren’t comparable to these solutions.

As mentioned, download Proton-GE, and refer to the previous tutorial on the steps to do this. Then, depending on the platform add the following environment variables.

For AMD FidelityFX™ Super Resolution:

  • To enable FSR 1.0 use the following environment variables: WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=1 WINE_FULLSCREEN_FSR_MODE=quality
    • 🔰 Information: Accepted values for FSR_MODE are ultra, quality, balanced, and performance; accepted values for FSR_STRENGTH range from 0-5, where the higher value means minimum sharpening but more performance. To use FSR, games must be launched in fullscreen, also, FSR can be used for non-AMD graphics cards. After enabling FSR, change the in-game resolution to be lower than the desktop.
  • Game titles provide FSR 2.x and FSR 3.0 as built-in features.

For NVIDIA Deep Learning Super Sample:

  • DXVK-NVAPI is on by default in Proton 9.0 on a per-game basis. Non-NVIDIA graphics cards can use DXVK-NVAPI. However, there’s little value to gain from doing this.
  • For games where it isn’t enabled add the following environment variable, PROTON_FORCE_NVAPI=1

For Intel® Xe Super Sampling (XeSS):

  • Game titles must provide XeSS support.

Peripheral Management

Razer

OpenRazer, the driver used by applications such as RazerGenie is included by default since Nitrux 3.4.1. OpenRazer is “a collection of Linux drivers for Razer devices – providing kernel drivers, DBus services, and Python bindings to interact with the DBus interface.

  • RazerGenie is a “Qt application for configuring your Razer devices under GNU/Linux. RazerGenie is using OpenRazer to provide control over Razer peripherals.”

RazerGenie allows the management of Razer peripherals.

Xbox

Since Nitrux 3.5.0, we include the xpadneo and xone drivers for Xbox One and Xbox One X|S accessories, which include support for wireless controllers. Previously, only wired controllers worked as we only relied on the HID driver in the kernel (xpad), this driver also supports Xbox 360 controllers.

  • xpadneo, an Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S).
  • xone, a Linux kernel driver for Xbox One and Xbox Series X|S accessories. It is a modern replacement for xpad, aiming to be compatible with Microsoft’s Game Input Protocol (GIP).
    • 🔰 Information: To use a wireless Xbox One dongle with this driver, first connect to the internet, then run the following command to download the required firmware, then plug the dongle and pair the controller.
sudo overlayroot-chroot

/usr/local/bin/xone-get-firmware.sh

sync

exit

Disclaimer: We do not develop OpenRazer, the xpadneo, or xone drivers. Please create an issue at their respective bug tracker to report problems with this software.

Support for Additional Devices

Additionally, Nitrux includes support for the following controllers by using udev rules, thanks to the work of Fabian Bornschein.

8Bitdo (2dc8)

  • 8Bitdo F30 P1
  • 8Bitdo F30 P2
  • 8Bitdo N30
  • 8Bitdo SF30
  • 8Bitdo SN30
  • 8Bitdo F30 Pro
  • 8Bitdo N30 Pro
  • 8Bitdo SF30 Pro
  • 8Bitdo SN30 Pro
  • 8BitDo SN30 Pro+; Bluetooth; USB
  • 8Bitdo F30 Arcade
  • 8Bitdo N30 Arcade
  • 8Bitdo ZERO
  • 8Bitdo Retro-Bit xRB8-64
  • 8BitDo Pro 2; Bluetooth; USB (2dc8:6003)
  • 8BitDo Pro 2 Wired; USB (2dc8:3106), (2dc8:3010) (Setup Instructions)
  • 8BitDo Ultimate Wired Controller for Xbox; USB (2dc8:2003)

Alpha Imaging Technology Corp. (114d)

  • VR Set (114d:8a12)

ASTRO Gaming (9886)

  • ASTRO Gaming C40 Controller; USB (9886:0025)

Betop (11c0)

  • Betop PS4 Fun Controller (11c0:4001)

Hori (0f0d)

  • Hori RAP4 (0f0d:008a)
  • Hori HORIPAD 4 FPS (0f0d:0055)
  • Hori HORIPAD 4 FPS Plus (0f0d:0066)
  • Hori HORIPAD S; USB (0f0d:00c1)
  • Hori Nintendo Switch HORIPAD Wired Controller; USB (0f0d:00c1)
  • Hori Pokkén Tournament DX Pro Pad for Nintendo Switch; USB (0f0d:0092)

HTC (0bb4)

  • Unknown (0bb4:2c87)
  • Unknown (0bb4:0306)
  • Unknown (0bb4:0309)
  • Unknown (0bb4:030a)
  • Unknown (0bb4:030b)
  • Unknown (0bb4:030c)
  • Unknown (0bb4:030e)
  • HTC VIVE Cosmos; USB (0bb4:030e)(057e:0315)(057e:0323)

Logitech (046d)

  • Logitech F310 Gamepad; USB (046d:c216)
  • Logitech F710 Wireless Gamepad; USB (046d:c21f) #EXPERIMENTAL

Mad Catz (0738)

  • Mad Catz Street Fighter V Arcade FightPad PRO (0738:8250)
  • Mad Catz Street Fighter V Arcade FightStick TE S+ (0738:8384)

Nacon (146b)

  • Nacon PS4 Revolution Pro Controller (146b:0d01)

Nintendo (057e)

  • Nintendo Switch Pro Controller; Bluetooth; USB (057e:2009)
  • Nintendo GameCube Controller / Adapter; USB (057e:0337)
  • Nintendo Switch Joy-Con Charging Grip (057e:200e)
  • Nintendo Switch Joy-Con (L); Bluetooth (057e:2006)
  • Nintendo Switch Joy-Con (R); Bluetooth (057e:2007)

NVIDIA (0955)

  • NVIDIA Shield Portable (2013 – NVIDIA_Controller_v01.01 – In-Home Streaming only) (0955:7203)
  • NVIDIA Shield Controller (2017 – NVIDIA_Controller_v01.04); Bluetooth (0955:7214)
  • NVIDIA Shield Controller (2015 – NVIDIA_Controller_v01.03); USB (0955:7210)

Performance Designed Products LLC [PDP] (0e6f)

  • PDP Afterglow Deluxe+ Wired Controller; USB (0e6f:0188)
  • PDP Nintendo Switch Faceoff Wired Pro Controller; USB (0e6f:0180)
  • PDP Wired Fight Pad Pro for Nintendo Switch; USB (0e6f:0185)

Personal Communication Systems, Inc. (0810)

  • Personal Communication Systems, Inc. Twin USB Gamepad; USB (0810:e301)

Pid.Codes (1209)

  • EdgeTX, OpenTX Generic [radio controller] Joystick; USB (1209:4f54)

PowerA (20d6)

  • PowerA Wired Controller for Nintendo Switch; USB (20d6:a711)
  • PowerA Wireless Controller for Nintendo Switch; Bluetooth (NA)
  • PowerA Zelda Wired Controller for Nintendo Switch; USB (20d6:a713)

Razer (1532)

  • Razer Raiju PS4 Controller (1532:1000)
  • Razer Panthera Arcade Stick (1532:0401)
  • Razer Raion PS4 Fightpad (1532:1100)

Sony (054c)

  • Sony PlayStation Strikepack; USB (054c:05c5)
  • Sony PlayStation DualShock 3; Bluetooth; USB + Motion Sensors (054c:0268)
  • Sony PlayStation DualShock 4; Bluetooth; USB (054c:05c4)
  • Sony PlayStation DualShock 4 Slim; Bluetooth; USB (054c:09cc)
  • Sony PlayStation DualShock 4 Wireless Adapter; USB (054c:0ba0)
  • Sony DualSense Wireless-Controller; Bluetooth; USB (054c:0ce6)
  • Sony DualSense Edge Wireless-Controller; Bluetooth; USB (054c:0df2)
  • PlayStation VR (054c:09af)

Valve (28de)

  • Valve USB devices (28de:*)
  • Valve Steam Controller (28de:*)
  • Valve HID devices; Bluetooth; USB (28de:*)
  • Unknown-VR (28de:1043)
  • Unknown-VR (28de:1142)
  • Unknown-VR (28de:2000)
  • Unknown-VR (28de:2010)
  • Unknown-VR (28de:2011)
  • Unknown-VR (28de:2012)
  • Unknown-VR (28de:2021)
  • Unknown-VR (28de:2022)
  • Unknown-VR (28de:2050)
  • Unknown-VR (28de:2101)
  • Unknown-VR (28de:2102)
  • Unknown-VR (28de:2150)
  • Unknown-VR (28de:2300)
  • Unknown-VR (28de:2301)

Zeroplus Technology Corporation (0c12)

  • Armor PS4 Armor 3 Pad; USB (0c12:0e10)
  • EMiO PS4 Elite Controller; USB (0c12:1cf6)
  • Hit Box Arcade HIT BOX PS4/PC version; USB (0c12:0ef6)
  • Nyko Xbox Controller; USB (0c12:8801)
  • Unknown-Brand Xbox Controller; USB (0c12:8802)
  • Unknown-Brand Xbox Controller; USB (0c12:8810)

That’s it; this concludes today’s tutorial.