Lurkki14/tuxclocker

Custom fan profile doesn't apply to second GPU even when setting it to a static speed works. 2x Nvidia 980 Ti, 440x driver.

bernharl opened this issue · 7 comments

I have properly activated the "Coolbits 12" option and confirmed that I can control the fans of both my GPUs. The problem arises when I set the fan mode of my second GPU to "custom", it seems to only apply the Driver defined option even though the UI says it is set to custom and I have pressed apply. Setting the fan to a static speed works fine on both GPUs and the custom fan profile works on my first GPU.

I am on Manjaro, running the newest tuxclocker-git version from the AUR (https://aur.archlinux.org/packages/tuxclocker-git/).

My theory is that the program doesn't understand that the profile is meant for the second GPU and that there needs to be an option for this somewhere when creating profiles. I could be completely wrong though.

Can you paste what gets written into the settings when you try to apply custom mode to both GPU's? The file should be located at ~/.config/tuxclocker.conf

cat ~/.config/tuxclocker.conf
[%General]
currentProfile=New Profile
latestUUID=GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be

[New%20Profile]
GPU-95eefd2b-c023-227f-0261-233251b0629d\fanControlMode=0
GPU-95eefd2b-c023-227f-0261-233251b0629d\memoryClockOffset=0
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\1\xpoints=20
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\1\ypoints=19
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\2\xpoints=40
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\2\ypoints=40
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\3\xpoints=50
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\3\ypoints=50
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\4\xpoints=60
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\4\ypoints=65
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\5\xpoints=65
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\5\ypoints=70
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\6\xpoints=70
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\6\ypoints=75
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\7\xpoints=75
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\7\ypoints=89
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\8\xpoints=80
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\8\ypoints=100
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\curvepoints\size=8
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\fanControlMode=2
GPU-a49fbb14-8f2d-9da2-5bd9-f1b5e98175be\memoryClockOffset=0
isProfile=true

I see where the problem is, the settings are only saved and loaded for the currently selected GPU, but since the code regarding this is horrible and I'm working on a rewrite anyway, I may not have the motivation to try to fix it.

So the problem arises when saving and loading settings, not when applying? Would that mean I could somehow manually edit the config file to solve the problem in a hacky way?

If not, could you tell me where in the code this is handled so that I may try to have a look at it myself?

What is the progress status on the rewrite? Obviously you're doing all this for free, so feel no pressure.

It also applies the settings only for the current GPU, so editing the config manually won't do anything. The relevant parts are https://github.com/Lurkki14/tuxclocker/blob/master/mainwindow.cpp#L709 and https://github.com/Lurkki14/tuxclocker/blob/master/mainwindow.cpp#L844. Regarding on the rewrite, most functionality is there, but the UI isn't ready.

This use case should work now in the cpplib branch, though it's still buggy and undocumented. Contact me somewhere if you need help to get it running.

Has been implemented in 1.0