No longer able to write Graphics or Memory OC via command line on 396.24

Hello,

On Nvidia 396.24 I am no longer able to set a graphics or memory OC but am able to still read the attribute data from the command line. Attempting to do so results in:

nvidia-settings -a [GPU-0]/GPUGraphicsClockOffset[3]=100

ERROR: Error assigning value 100 to attribute 'GPUGraphicsClockOffset'
       (Ty-Arch:1[gpu:0]) as specified in assignment
       '[GPU-0]/GPUGraphicsClockOffset[3]=100' (Unknown Error).

This breaks my Java GUI OC Utility OC ability as it utilizes the command line for pulling and pushing attribute data. Setting other attributes(such as powermizer) works just fine. Is the command line OC attributes no longer supported?

Side question, is there any reason as to why voltage reading and offset control are not supported on Pascal in Linux but are supported in Windows via other GUI OC utilities like MSI Afterburner?

OS: Arch Linux
GPU: GTX 1080

Thanks.

See this:
https://devtalk.nvidia.com/default/topic/1031142/linux/-390-x-unable-to-modify-gpumemorytransferrateoffset-and-gpugraphicsclockoffset-via-nvidia-settings-/post/5248352/#5248352

I just swapped out my GTX 1080 with my old GTX 960 and no, that doesn’t seem to be the issue. Applying an OC fails not only via my app/command line but even Nvidia’s own GUI with my 960. The only way I can still apply an OC is if i’m using Pascal and use the all performance level attribute versions, which isn’t desirable.

Heck, even changing the voltage offset doesn’t even work.

So after some package update I am now able to OC via the command line again, but fan doesn’t work with the same “unknown” error. Anyone?

Fan control is often vendor specific, so did this work with an earlier driver and the same card?

Yep. Worked just fine until recently.

So looks like a driver bug, devs removing a bit too much when Fermi support was dropped. Just for the records,
Which driver version
Which coolbits settings
What command line to set the fan speed?

Driver version is same as title.

Coolbits is 32.

Fan speed command is an generated string via a StringBuilder based on the target(fan, gpu), the attribute, the targeted index, and the value(if setting a new value) based on user input from the application(input is a slider UI component):

[FAN-0]/GPUTargetFanSpeed=45

which worked fine before.

…and I found the issue for the fan speed specifically. The attribute only accepts a GPU as a target, not a fan. Thought that doesn’t explain why OC wasn’t working before.

TBH, I wonder why this was working before and I still wonder why this works now. Coolbits is a bitmask, 32=100000 which controls nothing according to the docs. See:
https://download.nvidia.com/XFree86/Linux-x86_64/384.98/README/xconfigoptions.html
about the bits and what they control.
It should be possible to control the targeted fan since you can also query the type of fan (GPUFanTarget) but it takes a colon [fan:0]/

Possible attributes:
GPUFanControlState
The current fan control state; the value of this attribute controls the availability of additional fan control attributes. Note that this attribute is unavailable unless fan control support has been enabled by setting the “Coolbits” X config option.

GPUTargetFanSpeed
Returns the GPU fan’s target speed.

GPUCurrentFanSpeed
Returns the GPU fan’s current speed.

GPUResetFanSpeed
Resets the GPU fan’s speed to its default.

GPUCurrentFanSpeedRPM
Returns the GPU fan’s tachometer-measured speed in rotations per minute (RPM).

GPUFanControlType
Returns how the GPU fan is controlled. ‘1’ means the fan can only be toggled on and off; ‘2’ means the fan has variable speed. ‘0’ means the fan is restricted and cannot be adjusted under end user control.

GPUFanTarget
Returns the objects the fan cools. ‘1’ means the GPU, ‘2’ means video memory, ‘4’ means the power supply, and ‘7’ means all of the above.