From 7af83b1d6ed62d9413b10cbedfbcd5b566a807b9 Mon Sep 17 00:00:00 2001 From: Farhan Hakim D Date: May 15 2025 04:15:06 +0000 Subject: [PATCH 1/2] Add GPU overclocking section --- diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 69c60ea..633b348 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -9,6 +9,7 @@ ** xref:controllers.adoc[Controllers] ** xref:monitoring.adoc[Monitoring Tools] ** xref:gamescope.adoc[Gamescope] +** xref:gpu-overclocking.adoc[GPU Overclocking] * xref:game-development.adoc[Game Development] * xref:community.adoc[Gaming Community] * xref:game-links.adoc[Gaming Links] diff --git a/modules/ROOT/pages/gpu-overclocking.adoc b/modules/ROOT/pages/gpu-overclocking.adoc new file mode 100644 index 0000000..114df8b --- /dev/null +++ b/modules/ROOT/pages/gpu-overclocking.adoc @@ -0,0 +1,168 @@ + += GPU Overclocking + +== Introduction == +Overclocking has been a common practice among advanced users seeking to maximize the performance of their hardware. In the context of gaming, GPU overclocking is typically used to achieve higher frame rates, smoother gameplay, and improved performance in graphically intensive applications. Technically, GPU overclocking involves increasing the core and memory clock speeds of the graphics card beyond the manufacturer's default settings to enhance rendering capabilities and throughput. + +[WARNING] +-- +Overclocking your GPU can void manufacturer warranties, reduce hardware lifespan, and may cause system instability or permanent hardware damage. Proceed with caution and at your own risk. +This guide assumes you have a fundamental understanding of hardware overclocking and is intended for users who have experience overclocking on Windows and are transitioning to Fedora Linux. +-- + +== Overclocking Guide == + +=== AMD === +The AMD GPU driver is built into the Linux kernel and comes preinstalled with every Fedora installation. However, advanced features such as clock and voltage adjustment are disabled by default. +To enable these features, you need to add the following kernel parameter: `amdgpu.ppfeaturemask=0xffffffff` +This setting unlocks access to performance tuning capabilities such as manual clock and voltage adjustments. +Use the following command to add the kernel parameter. + +[source,bash] +---- +sudo grubby --update-kernel=ALL --args='amdgpu.ppfeaturemask=0xffffffff' +---- + +To revert back and disable overclocking capabilities, you can use the following command. +[source,bash] +---- +sudo grubby --update-kernel=ALL --remove-args='amdgpu.ppfeaturemask=0xffffffff' +---- + +==== Overclocking Tools ==== + +Graphical tools for overclocking allow users to easily configure voltage and clock settings, fan curves as well as monitor temperature and power draw. +Below are several recommended tools to help you get started with GPU overclocking: + +1. CoreCtrl - https://gitlab.com/corectrl/corectrl +2. LACT - https://github.com/ilya-zlobintsev/LACT + +This guide will use *LACT* as the primary example for demonstrating the basic overclocking procedure. + +NOTE: Regardless of the tool you choose, it is strongly recommended to read the official documentation to familiarize yourself with its features. This will help in diagnosing any issues that may occur during the overclocking process. + +===== LACT Installation ===== + +[NOTE] +==== +The installation steps below require you to enable a third-party COPR repository. +==== + +Below is a basic rundown of the steps required to install LACT: + +-- + +1. Enable the COPR repository by running the following command in your terminal: ++ +[source,bash] +---- +sudo dnf copr enable ilyaz/LACT +---- + +2. Refresh the repository and update packages if necessary: ++ +[source,bash] +---- +sudo dnf update +---- + +3. Install LACT: ++ +[source,bash] +---- +sudo dnf install lact +---- + +4. Enable the LACT service using `systemctl`: ++ +[source,bash] +---- +sudo systemctl enable --now lactd +---- + +5. Launch LACT from your application menu or launcher. + +-- + +===== Basic Usage ===== + +Overclocking principles in Fedora (and any other Linux distribution) are the same as on Windows using AMD Adrenalin Software. The basic idea of adjusting clocks, power limits, and voltages applies here as well. + +The only difference that might be new for first-time users is the AMDGPU performance levels and AMDGPU power profiles. Below is a basic explanation of AMD performance levels and power profiles, along with what they are used for. + +*Performance Levels* + +[cols="1,1"] +|=== +|Performance Level |Description + +|Auto +|The AMDGPU driver dynamically selects the optimal power profile based on load and power budget. + +|low +|AMDGPU will force the GPU and memory clocks to stay at the lowest possible power state. + +|high +|AMDGPU will force the GPU core and memory clocks to run at the highest available power state. + +|manual +|User can choose which power profile to use and apply it to the GPU's power management. Power profile details are listed in the table below. +|=== + +*Power Profiles* + +[cols="1,1"] +|=== +|Power Profile |Description + +|BOOTUP_DEFAULT +|The default AMDGPU driver power parameter. + +|3D_FULLSCREEN +|Power profile optimized for full 3D applications such as games. + +|POWER_SAVINGS +|AMDGPU will try to use the lowest possible power state to save power whenever possible. + +|COMPUTE +|Power profile optimized for compute workloads such as OpenCL and ROCm (e.g., local LLM inference). + +|MANUAL +|User can manually adjust power profile parameters (for advanced users). +|=== + +===== Usage Example ===== + +Once LACT is installed and running, you can begin adjusting clock speeds, voltages, and applying power profiles. This section covers the basic steps to perform a safe and effective overclock using LACT. + +NOTE: Always increase clocks and voltages gradually, and test for system stability after each change. Overclocking too aggressively can cause crashes or hardware damage. + +-- +1. Launch LACT from your application launcher. + +2. On the main screen, you will see your GPU listed along with real-time stats such as temperature, clocks, voltage, and power draw. + +3. Navigate to the *OC* section. This is where you can adjust the following parameters: ++ +- `Maximum GPU Clock (MHz)`: Maximum targeted GPU core clock speed in MHz +- `Maximum GPU Voltage (mV)`: Maximum GPU core voltage in milivolt +- `Maximum VRAM Clock (MHz)`: Maximum GPU Memory clock speed in MHz + +4. Start by increasing the GPU clock by a small increment (e.g., +25 MHz) and apply the settings. Do the same with the memory clock if needed. + +5. Apply the changes by clicking the *Apply* button. The new values will take effect immediately. + +6. Monitor your system for stability by running a game or benchmark. If the system is stable, you can try increasing the clocks slightly more. If it crashes or shows artifacts, dial back the settings. + +7. Optionally, go to the *Power Profile* section and set the profile to `3D_FULLSCREEN` for gaming, or `COMPUTE` if you're doing compute-heavy workloads. + +8. Once you find stable settings, you can save them as a profile in LACT for easy reuse. + +-- + +NOTE: LACT applies settings only when the daemon (`lactd`) is running. To persist settings across reboots, make sure the service is enabled and your profile is saved. + +TIP: You can use tools like `Unigine Superposition` or `Unigine Heaven`, or ingame benchmark to test performance and stability after applying overclock settings. You can use `mangohud` as detailed xref:monitoring.adoc[here]. + + +// TODO Need contributor for Nvidia section. From 903636695715303a0993d15903aff6d2b94534c2 Mon Sep 17 00:00:00 2001 From: Farhan Hakim D Date: May 15 2025 07:07:23 +0000 Subject: [PATCH 2/2] Spelling, grammar correction and rephrase wording. --- diff --git a/modules/ROOT/pages/gamescope.adoc b/modules/ROOT/pages/gamescope.adoc index bc65e7d..f99cc19 100644 --- a/modules/ROOT/pages/gamescope.adoc +++ b/modules/ROOT/pages/gamescope.adoc @@ -1,29 +1,32 @@ - = Gamescope == Introduction == -Gamescope is an compositor (micro-compositor) by Valve that runs nested and isolated from the OS desktop compositors. This allow gaming specific tweaks and features to be implemented regardless of desktop environment support. It also used by default in Valve's Steam Deck. +Gamescope is a compositor (specifically, a micro-compositor) developed by Valve that runs nested and isolated from the system’s desktop compositor. This allows for gaming-specific tweaks and features to be applied regardless of desktop environment support. Gamescope is also used by default on Valve's Steam Deck. === Features === -Here are some of the well know features of gamescope tailored for gaming. -* Resolution spoof to set or force a game to run at specific resolution and/or ratio (eg. 4:3 screen ratio stretch) -* Upscalling patch regardless of game support, either AMD FSR or Nvidia Image Scalling (NIS) can be use. -* Reshade support -* HDR support -* Frame limiter (useful for games that does not have built in frame limiter) +Here are some of the well-known features of Gamescope tailored for gaming: + +* Resolution spoofing to force a game to run at a specific resolution and/or aspect ratio (e.g. 4:3 screen ratio stretch) +* Upscaling support regardless of native game support, including AMD FSR or NVIDIA Image Scaling (NIS) +* ReShade support +* HDR rendering support +* Frame limiter (useful for games without a built-in frame limiter) == Installation == -Gamescope package should included during steam installation as detailed xref:proton.adoc[here] and does not need further configuration. -If the package is not installed, you can install it manually using the following command. +The Gamescope package is typically included during Steam installation as detailed xref:proton.adoc[here] and does not usually require further configuration. + +If Gamescope is not installed, you can install it manually with the following command: + [source,bash] ---- sudo dnf install gamescope ---- -For flatpak installation, use the following command. +For Flatpak-based setups, install it using: + [source,bash] ---- flatpak install gamescope @@ -31,72 +34,81 @@ flatpak install gamescope === Requirements === -In order to use gamescope without issues, ensure that the following requirements are met based on your GPU: +To use Gamescope without issues, ensure the following requirements are met based on your GPU: -* AMD: Mesa 20.3 and above -* Intel: Mesa 21.2 and above -* Nvidia: Proprietary drivers 515.43.04 or above / Nvidia Open Kernel drivers +* AMD: Mesa 20.3 or newer +* Intel: Mesa 21.2 or newer +* NVIDIA: Proprietary drivers 515.43.04 or newer, or NVIDIA Open Kernel Module drivers [IMPORTANT] -- -For fairly recent nvidia GPU user, most user reported better performance and experience when using the Nvidia Open Kernel Module drivers. -You can try to install the Kernel Open Driver using the following command. +For users with recent NVIDIA GPUs, many have reported better performance and stability when using the NVIDIA Open Kernel Module drivers. + +You can try installing the open driver using the following commands: + [source,bash] ---- sudo dnf install rpmfusion-nonfree-release-tainted sudo dnf swap akmod-nvidia akmod-nvidia-open ---- -Nvidia users will also need to set `nvidia_drm.modeset=1` in their system's kernel parameters for gamescope to work properly. This can be done using the following command. + +NVIDIA users will also need to set the following kernel parameter for Gamescope to function properly: + [source,bash] ---- sudo grubby --update-kernel=ALL --args='nvidia-drm.modeset=1' ---- -- -// TODO Farhan: Need someone with nvidia hardware to verify as I only have AMD hardware. +// TODO Farhan: Need someone with NVIDIA hardware to verify as I only have AMD hardware. == Usage == -In order to run your games using gamescope, you will need to attach `gamescope` as the game launch option. Below is the example of launch option when using steam with no gamescope options. +To run games with Gamescope, you need to prepend `gamescope` to the game’s launch command. For example, when launching from Steam: + ---- gamescope -- %command% ---- -To see the full list of options applicable for gamescope, run the following in your terminal. +To see the full list of available options, run the following in your terminal: + [source,bash] ---- gamescope --help ---- -Below is a few example of common options used to launch games. +Here are a few commonly used launch options: -* Run a game with a 1920x1080 resolution fixed at 60hz refresh rate. +* Run a game at 1920x1080 resolution fixed at 60Hz refresh rate: + ---- gamescope -W 1920 -H 1080 -r 60 -- %command% ---- -+ -* Run a game with with FSR upscalling from 720p to 1440p + +* Run a game with FSR upscaling from 720p to 1440p: + ---- -gamescope -h 720p -H 1440 -F fsr -- %command% +gamescope -h 720 -H 1440 -F fsr -- %command% ---- -NOTE: gamescope support both FSR and Nvidia Image Scalling (NIS) upscalling method, you can switch from `-F fsr` to `-F nis` if you want to use NIS as your upscaller. -+ -* Enable HDR rendering in supported games and displays + +[NOTE] +==== +Gamescope supports both AMD FSR and NVIDIA Image Scaling (NIS). You can switch `-F fsr` to `-F nis` if you prefer to use NIS as the upscaler. +==== + +* Enable HDR rendering (requires compatible game and display): + ---- gamescope --hdr-enabled -- %command% ---- -+ -* Enable gamescope variable refresh rate (VRR) for supported displays + +* Enable variable refresh rate (VRR) on supported displays: + ---- gamescope --adaptive-sync -- %command% ---- - [TIP] -- -You can combine multiple options based on your use case, it is recommended to read the options and its uses using the command `gamescope --help` on your terminal. +You can combine multiple options depending on your use case. It's recommended to read the available options and their usage by running `gamescope --help` in your terminal. -- diff --git a/modules/ROOT/pages/monitoring.adoc b/modules/ROOT/pages/monitoring.adoc index c2fcbfc..5e36380 100644 --- a/modules/ROOT/pages/monitoring.adoc +++ b/modules/ROOT/pages/monitoring.adoc @@ -1,89 +1,98 @@ = Performance Monitoring - == MANGOHUD == === Introduction === image::mangohud.png[800, 600] -MangoHUD is a highly customizable overlay for openGL and vulkan applications to monitor vital hardware information such as temperature, power draw and frequencies to name a few. This can be useful to keep an eye on hardware performance during gameplay as well as diagnostics tool to determine bottleneck. +MangoHUD is a highly customizable overlay for OpenGL and Vulkan applications that displays real-time hardware information such as temperatures, power draw, clock speeds, and more. This makes it useful for monitoring system performance during gameplay and for diagnosing potential hardware bottlenecks. === Installation === ==== Command Line Installation ==== -MangoHUD is already in fedora repository and you can install mangoHUD with the following command using your favourite terminal. Detailed steps are as follows: +MangoHUD is available in the Fedora repositories. You can install it using your favorite terminal with the following steps: -1. Run the following command using your terminal of choice. +1. Run the following command: + [source,bash] ---- sudo dnf install mangohud ---- -2. Key in your password (characters will not show when you type and that is normal) and press enter. -3. A prompt will ask for your confirmation on the install package list information as well as the total install size. You should see both `mangohud i686` and `mangohud x86_64` listed. -4. key in `Y` and press `Enter` and wait for the installation to finish. -5. You're done! MangoHUD is installed and ready for configuration. +2. Enter your password when prompted (note: no characters will be shown as you type). +3. Review the list of packages to be installed. You should see both `mangohud.i686` and `mangohud.x86_64`. +4. Type `Y` and press `Enter` to confirm. +5. Wait for the installation to complete — and you're done! MangoHUD is ready to use. ==== Graphical Install ==== -MangoHUD is searchable in your fedora graphical package manager such as Gnome Software and KDE Discover. -// TODO: Create a detailed step by step guide for MangoHUD installation using Gnome Software and KDE Discover. +MangoHUD can also be found in Fedora's graphical package managers such as GNOME Software and KDE Discover. + +// TODO: Create a detailed step-by-step guide for MangoHUD installation using GNOME Software and KDE Discover. + +[NOTE] +==== +When searching for MangoHUD in a graphical package manager, you may see two versions: -NOTE: You will see two seperate version of mangoHUD when searching for it in the Graphical Package Manager, "Fedora (Linux)" as well as "Flatpak". To summarize the difference between both version, Fedora (Linux) version will install mangoHUD system wide (but not Flatpak application) while Flatpak version will only be able to be use on Flatpak applications. +* **Fedora (Linux)**: Installs MangoHUD system-wide, but does not support Flatpak apps. +* **Flatpak**: Works only with Flatpak applications. +Install the one that matches your use case — or both if you want full compatibility. +==== ===== KDE Discover ===== image::mangohud_discover.png[width=100%] -On Fedora KDE Edition, you can open Discover and search for MangoHUD to install. Note that they will be two entries for MangoHUD, one for system install and another for Flatpak install. Install both if you're planning on using MangoHUD on both system install and flatpak applications. +On Fedora KDE Edition, open Discover and search for MangoHUD. You’ll see both a system version and a Flatpak version. Install both if you want MangoHUD support for system and Flatpak applications. === Using MangoHUD === -==== Keyboard commands ==== +==== Keyboard Commands ==== -Common keyboard combo to control MangoHUD ingame are as follows: +Here are some default keyboard combos to control MangoHUD while in-game: [cols="1,1"] |=== -|Key Combo |Control +|Key Combo |Function -|R-SHIFT+F12 +|R-SHIFT + F12 |Toggle overlay -|R-SHIFT+F12 +|R-SHIFT + F11 |Change overlay position -|R-SHIFT+F10 +|R-SHIFT + F10 |Toggle preset -|L-SHIFT+F2 +|L-SHIFT + F2 |Toggle logging -|L-SHIFT+F4 +|L-SHIFT + F4 |Reload configuration -|=== +|=== ==== Testing ==== -You can test your MangoHUD installation by running glxgears, which should be pre-installed in fedora. Run the following command on your terminal. +To confirm MangoHUD is working, you can test it with `glxgears` (usually preinstalled on Fedora). Run: [source,bash] ---- mangohud glxgears ---- +You should see a performance overlay at the top of the window. + ==== Steam ==== -To use MangoHUD ingame, you will need to add `mangohud` to your game launch options as detailed below: +To enable MangoHUD in your Steam games: -1. Right click on the game that you want to enable MangoHUD overlay and click on "properties" +1. Right-click the game in your Steam library and select *Properties*. + image::steam_game_properties.png[width=100%] + -2. Under launch options, add the following line, +2. Under *Launch Options*, enter the following: + image::steam_mangohud.png[800, 600] + @@ -91,14 +100,16 @@ image::steam_mangohud.png[800, 600] mangohud %command% ---- + -3. Click apply and launch the game. +3. Close the properties window and launch the game. - -NOTE: By default MangoHUD overlay will not be enabled ingame, you will need to press the default key combo to enable it. The default combo key is `R-SHIFT + F12` to toggle the overlay. +[NOTE] +==== +MangoHUD does not automatically show up. Use the default key combo `R-SHIFT + F12` to toggle the overlay in-game. +==== [TIP] -- -If you are using `gamemode` to run you games in steam, you can chain the launch option together. Here's an example of launch option to use if using MangoHUD with gamemode +If you're using `gamemode` in Steam, you can combine launch options like this: ---- mangohud gamemoderun %command% ---- @@ -108,37 +119,38 @@ mangohud gamemoderun %command% ==== Graphical Configuration Tool ==== -You can configure and customize your MangoHUD overlay by using goverlay. It provides a graphical way to customize the look of the MangoHUD overlay with preview, you can even change the keyboard combo key if the defaults is not to your preference. -Goverlay is included in fedora repository, so you can directly search the package using your Graphical Package Manager (Gnome Software, KDE Discover), or you can install goverlay using the terminal using the following command. +You can customize MangoHUD’s overlay using *GOverlay*, a graphical front-end for MangoHUD. It allows you to preview and tweak the layout, enable/disable metrics, and change keyboard shortcuts. + +GOverlay is available in the Fedora repository. You can search the package using your graphical package manager such as Gnome Software or KDE Discover and install it from there, or if you prefer using the terminal, install it with this command: [source,bash] ---- -sudo dnf install goverlay +sudo dnf install goverlay -y ---- -Then find "Goverlay" in your application launcher to start customizing MangoHUD overlay to your liking. +Then, launch "GOverlay" from your application menu to start customizing MangoHUD to your preference. ==== Config Files ==== -By default, MangoHUD will use a preset configuration out of the box. To customize the file manually, you can create a configuration file per user under your `~/.config` folder. -Create the file using the following command +By default, MangoHUD uses a preset configuration. For custom settings, create a config file under your user’s home directory: [source,bash] ---- -mkdir ~/.config/MangoHud +mkdir -p ~/.config/MangoHud touch ~/.config/MangoHud/MangoHud.conf ---- -You can then edit the file using you preferred text editor, for example +Then edit the file with your preferred text editor: [source,bash] ---- vi ~/.config/MangoHud/MangoHud.conf ---- -You can refer to the example configuration to get you started located here. +You can reference the example configuration located at: + ---- /usr/share/doc/mangohud/MangoHud.conf.example ---- - +This file includes various examples of toggles and values to help you fine-tune your overlay.