You are not logged in.
Hello, I hope that you are doing well.
So I wanted to squeeze a little bit more performance out of my graphics card, I decided to turn off rootless xorg (as overclocking isn't possible with it) and used nvidia-xconfig with --cool-bits=8, this enabled overclocking options in the nvidia-settings app.
I then tested different Core offsets in Unigine Heaven, and found 157mhz stable. For some reason, memory offset wasn't working. But I don't need that anyways.
I then used gamemode to run glxgears, and then changed the /etc/gamemode.ini file according to the offset required. It simply refused to apply the offset, even though it was able to change the performance profile from "Adaptive" to "Prefer Maximum Performance" (I changed back to Adaptive in settings, then re-ran glxgears w/ gamemode to make sure it is applying the profile change).
Output of "systemctl --user status gamemoded" while "gamemoderun glxgears" is running-
● gamemoded.service - gamemoded
Loaded: loaded (/usr/lib/systemd/user/gamemoded.service; disabled; preset: enabled)
Active: active (running) since Thu 2025-11-27 20:28:54 IST; 37min ago
Invocation: e48f3ad0b92c4f3184741c9deb649f8e
Main PID: 1303 (gamemoded)
Status: "GameMode is now active."
Tasks: 2 (limit: 4597)
Memory: 54.6M (peak: 69.5M)
CPU: 8.827s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/gamemoded.service
└─1303 /usr/bin/gamemoded
Nov 27 21:06:13 cosmos gamemoded[1303]: org.freedesktop.DBus.Error.ServiceUnknown
Nov 27 21:06:13 cosmos gamemoded[1303]: The name is not activatable
Nov 27 21:06:13 cosmos pkexec[9127]: pam_unix(polkit-1:session): session opened for user root(uid=0) by ak(uid=1000)
Nov 27 21:06:14 cosmos gamemoded[9135]: ERROR: Output didn't match expected format, couldn't discern highest perf level from nvidia-settings!
Nov 27 21:06:14 cosmos gamemoded[9135]: ERROR: Output:perf=0, nvclock=330, nvclockmin=330, nvclockmax=993, nvclockeditable=1, memclock=667, memclockmin=667, memclockmax=667, memclockeditable=1, memTransferRate=1>
Nov 27 21:06:14 cosmos gamemoded[9135]: ERROR: Failed to parse output for "[gpu:0]/GPUGraphicsClockOffset[-1]" output was ""!
Nov 27 21:06:14 cosmos gamemoded[1303]: ERROR: External process failed with exit code 1
Nov 27 21:06:14 cosmos gamemoded[1303]: ERROR: Output was:
Nov 27 21:06:14 cosmos gamemoded[1303]: ERROR: Failed to call gpuclockctl, could not get values!
Nov 27 21:06:14 cosmos pkexec[9146]: pam_unix(polkit-1:session): session opened for user root(uid=0) by ak(uid=1000)Here is my gamemode.ini-
[general]
; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance
reaper_freq=5
; The desired governor is used when entering GameMode instead of "performance"
desiredgov=performance
; The default governor is used when leaving GameMode instead of restoring the original value
;defaultgov=powersave
; The desired platform profile is used when entering GameMode instead of "performance"
desiredprof=performance
; The default platform profile is used when leaving GameMode instead of restoring the original value
;defaultgov=low-power
; The iGPU desired governor is used when the integrated GPU is under heavy load
igpu_desiredgov=powersave
; Threshold to use to decide when the integrated GPU is under heavy load.
; This is a ratio of iGPU Watts / CPU Watts which is used to determine when the
; integraged GPU is under heavy enough load to justify switching to
; igpu_desiredgov. Set this to -1 to disable all iGPU checking and always
; use desiredgov for games.
igpu_power_threshold=0.3
; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently
; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable
; with 4 or more CPU cores. "on" will always enable. Defaults to "off".
softrealtime=off
; GameMode can renice game processes. You can put any value between 0 and 20 here, the value
; will be negated and applied as a nice value (0 means no change). Defaults to 0.
; To use this feature, the user must be added to the gamemode group (and then rebooted):
; sudo usermod -aG gamemode $(whoami)
renice=10
; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value
; between 0 and 7 here (with 0 being highest priority), or one of the special values
; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority),
; currently, only the best-effort class is supported thus you cannot set it here
ioprio=0
; Sets whether gamemode will inhibit the screensaver when active
; Defaults to 1
inhibit_screensaver=1
; Sets whether gamemode will disable split lock mitigation when active
; Defaults to 1
disable_splitlock=1
[filter]
; If "whitelist" entry has a value(s)
; gamemode will reject anything not in the whitelist
;whitelist=RiseOfTheTombRaider
; Gamemode will always reject anything in the blacklist
;blacklist=HalfLife3
; glxgears
[gpu]
; Here Be Dragons!
; Warning: Use these settings at your own risk
; Any damage to hardware incurred due to this feature is your responsibility and yours alone
; It is also highly recommended you try these settings out first manually to find the sweet spots
; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks
apply_gpu_optimisations=accept-responsibility
; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/
gpu_device=0
; Nvidia specific settings
; Requires the coolbits extension activated in nvidia-xconfig
; This corresponds to the desired GPUPowerMizerMode
; "Adaptive"=0 "Prefer Maximum Performance"=1 and "Auto"=2
; See NV_CTRL_GPU_POWER_MIZER_MODE and friends in https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrl.h
nv_powermizer_mode=1
; These will modify the core and mem clocks of the highest perf state in the Nvidia PowerMizer
; They are measured as Mhz offsets from the baseline, 0 will reset values to default, -1 or unset will not modify values
nv_core_clock_mhz_offset=157
;nv_mem_clock_mhz_offset=0
; Whether the GPU supports per-profile editable options for core and memory clock offsets.
; NOTE: if thi is set to 0 (AllPerformanceLevels) then nv_powermizer_mode must be set to 0
;nv_per_profile_editable = 1
; AMD specific settings
; Requires a relatively up to date AMDGPU kernel module
; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring
; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures
; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now
;amd_performance_level=high
[cpu]
; Parking or Pinning can be enabled with either "yes", "true" or "1" and disabled with "no", "false" or "0".
; Either can also be set to a specific list of cores to park or pin, comma separated list where "-" denotes
; a range. E.g "park_cores=1,8-15" would park cores 1 and 8 to 15.
; The default is uncommented is to disable parking but enable pinning. If either is enabled the code will
; currently only properly autodetect Ryzen 7900x3d, 7950x3d and Intel CPU:s with E- and P-cores.
; For Core Parking, user must be added to the gamemode group (not required for Core Pinning):
; sudo usermod -aG gamemode $(whoami)
;park_cores=no
;pin_cores=yes
; AMD 3D V-Cache Performance Optimizer Driver settings
; These options control the cache mode for dual CCD X3D CPUs (7950x3d, 9950x3d, etc.)
; "frequency" mode prioritizes higher boost clocks, "cache" mode prioritizes 3D V-Cache performance
; Allows for dynamically shifting other processes onto a different CCD. E.g. amd_x3d_mode_default=cache may be
; preferred for some normal, non-game workloads that are better optimized for cache, but
; amd_x3d_mode_desired=frequency can shift everything but the game process to frequency CCD while GameMode is
; running, in conjunction with core pinning.
; Only works on systems with the AMD X3D mode driver (automatically detected)
; The desired mode is set when entering gamemode, default mode is restored when leaving
;amd_x3d_mode_desired=frequency
;amd_x3d_mode_default=cache
[supervisor]
; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for
; The whilelist and blacklist control which supervisor programs are allowed to make the above requests
;supervisor_whitelist=
;supervisor_blacklist=
; In case you want to allow a supervisor to take full control of gamemode, this option can be set
; This will only allow gamemode clients to be registered by using the above functions by a supervisor client
;require_supervisor=0
[custom]
; Custom scripts (executed using the shell) when gamemode starts and ends
;start=notify-send "GameMode started"
; /home/me/bin/stop_foldingathome.sh
;end=notify-send "GameMode ended"
; /home/me/bin/start_foldingathome.sh
; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time.
;script_timeout=10Output of "inxi -Fxxxz"
System:
Kernel: 6.17.9-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
clocksource: tsc
Desktop: i3 v: 4.24 with: polybar vt: 2 dm: N/A Distro: Arch Linux
Machine:
Type: Desktop Mobo: Gigabyte model: G31M-ES2L serial: <superuser required>
uuid: <superuser required> BIOS: Award v: FI date: 08/09/2010
CPU:
Info: quad core model: Intel Core2 Quad Q9550 bits: 64 type: MCP
smt: <unsupported> arch: Penryn rev: A cache: L1: 256 KiB L2: 12 MiB
Speed (MHz): avg: 3332 min/max: 2000/2834 cores: 1: 3332 2: 3332 3: 3332
4: 3332 bogomips: 26656
Flags-basic: ht lm nx pae sse sse2 sse3 sse4_1 ssse3
Graphics:
Device-1: NVIDIA GK107 [GeForce GT 740] driver: nvidia v: 470.256.02
arch: Kepler-2 pcie: speed: 2.5 GT/s lanes: 16 ports: active: none
off: HDMI-A-1 empty: DVI-I-1,VGA-1 bus-ID: 01:00.0 chip-ID: 10de:0fc8
class-ID: 0300
Display: x11 server: X.org v: 1.21.1.20 driver: X: loaded: nvidia
gpu: nvidia,nvidia-nvswitch display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-size: <missing: xdpyinfo>
Monitor-1: HDMI-A-1 mapped: HDMI-0 note: disabled model: LG (GoldStar) FHD
serial: <filter> res: mode: 1920x1080 hz: 100 scale: 100% (1) dpi: 102
size: 480x260mm (18.9x10.24") diag: 546mm (21.5") modes: max: 1920x1080
min: 640x480
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: kms_swrast surfaceless: drv: swrast x11: drv: nvidia
inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 470.256.02
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GT 740/PCIe/SSE2
API: Vulkan v: 1.4.328 layers: 2 surfaces: N/A device: 0
type: discrete-gpu driver: nvidia device-ID: 10de:0fc8
Info: Tools: api: eglinfo, glxinfo, vulkaninfo
gpu: nvidia-settings,nvidia-smi x11: xprop,xrandr
Audio:
Device-1: Intel NM10/ICH7 Family High Definition Audio
vendor: Gigabyte GA-D525TUD driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
chip-ID: 8086:27d8 class-ID: 0403
Device-2: NVIDIA GK107 HDMI Audio driver: snd_hda_intel v: kernel pcie:
speed: 2.5 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:0e1b class-ID: 0403
API: ALSA v: k6.17.9-zen1-1-zen status: kernel-api
Server-1: JACK v: 1.9.22 status: off
Server-2: PipeWire v: 1.4.9 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
Message: No PCI device data found.
Device-1: Ralink RT5370 Wireless Adapter driver: rt2800usb type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 2-6:3 chip-ID: 148f:5370
class-ID: 0000 serial: <filter>
IF: wlp0s29f7u6 state: up mac: <filter>
Drives:
Local Storage: total: 1.38 TiB used: 91.49 GiB (6.5%)
ID-1: /dev/sda vendor: A-Data model: SU800 size: 476.94 GiB
speed: <unknown> tech: SSD serial: <filter> fw-rev: 8B scheme: MBR
ID-2: /dev/sdb vendor: Toshiba model: DT01ACA100 size: 931.51 GiB
speed: <unknown> tech: HDD rpm: 7200 serial: <filter> fw-rev: A7C0
scheme: MBR
Partition:
ID-1: / size: 39.08 GiB used: 13.41 GiB (34.3%) fs: ext4 dev: /dev/sda1
ID-2: /home size: 195.8 GiB used: 78.07 GiB (39.9%) fs: ext4
dev: /dev/sda5
Swap:
ID-1: swap-1 type: partition size: 8 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/sda7
Sensors:
System Temperatures: cpu: 58.0 C mobo: N/A gpu: nvidia temp: 44 C
Fan Speeds (rpm): cpu: 2070 fan-2: 0 gpu: nvidia fan: 30%
Power: 12v: N/A 5v: 2.91 3.3v: N/A vbat: 3.17
Info:
Memory: total: 4 GiB available: 3.81 GiB used: 2.36 GiB (61.9%)
Processes: 184 Power: uptime: 42m states: freeze,mem,disk suspend: deep
wakeups: 0 hibernate: platform Init: systemd v: 258 default: graphical
Packages: pm: pacman pkgs: 956 Compilers: clang: 21.1.6 gcc: 15.2.1
Shell: Bash v: 5.3.3 running-in: alacritty inxi: 3.3.39My intention is to apply 157mhz Core offset, nothing else. I would be happy to know if this issue is fixable or can be worked around, I just want it to be convenient enough (my non-technical sister sometimes has to game on this system).
Any response appreciated!
Thanks a lot!
Last edited by LinuxLover471 (2025-11-29 12:56:51)
Offline
So I searched the internet for a bit, and found this Nvidia forums post.
It tells the correct attributes to change are "GPUMemoryTransferRateOffset" and "GPUGraphicsClockOffset".
I then used this command-
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[0]=155Which increased the max clock speed by 155mhz as expected! You can confirm this by comparing the value of "nvclockmax" to the stock max clock in the output of-
nvidia-settings -q all | grep GPUCurrentClockFreqsStringor simply
nvidia-settings -q all | grep nvclockmaxI don't exactly know what the syntax is, but I theorize that the "[0]" probably signifies the pstate, which you can find via this command-
nvidia-smi --query-gpu=pstate --format=csvI then tried changing the "nv_powermizer_mode=N" option and messing around with other settings to get this to work, but it doesn't work in gamemode.
For now, I am using a script in lutris to increase the clock pre-game and turning to to normal by setting the offset to 0 post-game.
The memory offset doesn't seem to work in either CLI or GUI.
Also I think I should report this to gamemode upstream?
EDIT= Made an issue on github.
Thank you!
LL
Last edited by LinuxLover471 (2025-12-05 09:05:53)
Offline