LACT icon indicating copy to clipboard operation
LACT copied to clipboard

RX 6900XT - cannot change OC settings

Open MrWissenschaft opened this issue 3 years ago • 4 comments

Hello there!

When trying to edit OC settings, I only have power cap and Automatic/Lowest Clocks/Highest Clocks available to me.

I have the ppfeaturemask set as a boot parameter correctly, and have been using a manual overclock for some time now, wanted to try out your software but I'm running into this issue

Is it because lact-gui needs to be run as sudo? I have initiated lact-gui from root using su but the issue still persists.

Any help would be greatly appreciated, my specs are below :)

Thanks!

OS: Arch Linux x86_64 Kernel: 5.15.11-230-tkg-pds-llvm Shell: fish 3.3.1 Resolution: 2560x1440 WM: sway Theme: Adwaita [GTK2], dracula [GTK3] Icons: Adwaita [GTK2], Tela-circle-purple-dark [GTK3] Terminal: kitty CPU: AMD Ryzen 9 3900X (24) @ 3.800GHz GPU: AMD ATI Radeon RX 6800/6800 XT / 6900 XT Memory: 2316MiB / 32084MiB

EDIT: just in case, here is the output for "/sys/class/drm/card*/device/uevent"

MAJOR=226 MINOR=0 DEVNAME=dri/card0 DEVTYPE=drm_minor MAJOR=226 MINOR=0 DEVNAME=dri/card0 DEVTYPE=drm_minor MAJOR=226 MINOR=0 DEVNAME=dri/card0 DEVTYPE=drm_minor MAJOR=226 MINOR=0 DEVNAME=dri/card0 DEVTYPE=drm_minor DRIVER=amdgpu PCI_CLASS=30000 PCI_ID=1002:73BF PCI_SUBSYS_ID=148C:2408 PCI_SLOT_NAME=0000:2f:00.0 MODALIAS=pci:v00001002d000073BFsv0000148Csd00002408bc03sc00i00

EDITEDIT: lact-cli info shows GPU as blank, see below:

GPU Model: GPU Vendor: Advanced Micro Devices, Inc. [AMD/ATI] Driver in use: amdgpu VBIOS Version: 113-D41201-XT VRAM Size: 16368 Link Speed: 16.0 GT/s PCIe

However, lact-gui confirms it to be a Navi21 [Radeon RX 6800/6800 XT / 6900 XT] (it even confirms the brand of my GPU, Powercolor)

LAST EDIT I PROMISE: just to confirm journalctl shows no errors for lactd and lact-gui has no errors whatsoever when run from terminal

MrWissenschaft avatar Jan 07 '22 02:01 MrWissenschaft

Could you post the output of cat /sys/class/drm/card*/device/pp_od_clk_voltage ?

ilya-zlobintsev avatar Jan 07 '22 08:01 ilya-zlobintsev

Could you post the output of cat /sys/class/drm/card*/device/pp_od_clk_voltage ?

As requested!

cat /sys/class/drm/card*/device/pp_od_clk_voltage

OD_SCLK: 0: 500Mhz 1: 2499Mhz OD_MCLK: 0: 97Mhz 1: 1000MHz OD_VDDGFX_OFFSET: 0mV OD_RANGE: SCLK: 500Mhz 3000Mhz MCLK: 674Mhz 1075Mhz

MrWissenschaft avatar Jan 07 '22 22:01 MrWissenschaft

It looks like big navi GPUs use a different format for the overclocking table compared to earlier generations, which is currently not supported. I will probably have to do a major rewrite in order to support the different formats in a generic manner.

For now you can try CoreCtrl and see if that works for you instead.

ilya-zlobintsev avatar Jan 08 '22 09:01 ilya-zlobintsev

I won't use corectrl again, not that it's a bad bit of software but because it has to be running all the time, I much prefer your method of creating a daemon, very impressive stuff.

I will use the manual overlclock method for now but continue using your daemon for fan control, it works very well

Keep up the good work, and if you need any bits of info from my rig to help you with the rewrite, please let me know!

Thanks

Andrew

MrWissenschaft avatar Jan 09 '22 18:01 MrWissenschaft

@MrWissenschaft sorry for the very long delay, but the rewrite is now out and supports the new format. While I don't have a GPU to test it on, there are software tests using the table you provided, so it should work.

ilya-zlobintsev avatar Feb 25 '23 13:02 ilya-zlobintsev

strange I'm running a RX 6700XT and I still only have Highest, lowest and auto here the cat output for my card

OD_SCLK:
0: 500Mhz
1: 2725Mhz
OD_MCLK:
0: 97Mhz
1: 1000MHz
OD_VDDGFX_OFFSET:
0mV
OD_RANGE:
SCLK:     500Mhz       2800Mhz
MCLK:     674Mhz       1075Mhz

Vixea avatar Feb 25 '23 22:02 Vixea

strange I'm running a RX 6700XT and I still only have Highest, lowest and auto here the cat output for my card

OD_SCLK:
0: 500Mhz
1: 2725Mhz
OD_MCLK:
0: 97Mhz
1: 1000MHz
OD_VDDGFX_OFFSET:
0mV
OD_RANGE:
SCLK:     500Mhz       2800Mhz
MCLK:     674Mhz       1075Mhz

Could you run

RUST_LOG=debug lact gui

And post the logs?

ilya-zlobintsev avatar Feb 26 '23 06:02 ilya-zlobintsev

[paehyr@paehyr-ms7c02 ~]$ RUST_LOG=debug lact gui
2023-02-26T09:58:11.381254Z  INFO lact_client: connecting to service at "/var/run/lactd.sock"
2023-02-26T09:58:11.401051Z DEBUG lact_gui::app: GPU Selection changed
2023-02-26T09:58:11.434104Z DEBUG lact_gui::app: could not extract clocks info: Got error from daemon: Clocks table not available: parse error: parse error: Could not parse level number with value od_vddgfx_offset: invalid digit found in string at line 7 at line 1
2023-02-26T09:58:11.434132Z DEBUG lact_gui::app: Updated current GPU id

(lact:13318): Gtk-WARNING **: 03:58:17.205: GtkGizmo 0x5587613e2a00 (slider) reported min width -2, but sizes must be >= 0

(lact:13318): Gtk-WARNING **: 03:58:17.205: GtkGizmo 0x5587613e26c0 (slider) reported min height -2, but sizes must be >= 0

Vixea avatar Feb 26 '23 09:02 Vixea

[paehyr@paehyr-ms7c02 ~]$ RUST_LOG=debug lact gui
2023-02-26T09:58:11.381254Z  INFO lact_client: connecting to service at "/var/run/lactd.sock"
2023-02-26T09:58:11.401051Z DEBUG lact_gui::app: GPU Selection changed
2023-02-26T09:58:11.434104Z DEBUG lact_gui::app: could not extract clocks info: Got error from daemon: Clocks table not available: parse error: parse error: Could not parse level number with value od_vddgfx_offset: invalid digit found in string at line 7 at line 1
2023-02-26T09:58:11.434132Z DEBUG lact_gui::app: Updated current GPU id

(lact:13318): Gtk-WARNING **: 03:58:17.205: GtkGizmo 0x5587613e2a00 (slider) reported min width -2, but sizes must be >= 0

(lact:13318): Gtk-WARNING **: 03:58:17.205: GtkGizmo 0x5587613e26c0 (slider) reported min height -2, but sizes must be >= 0

Could you post /sys/class/drm/card0/device/pp_od_clk_voltage as a file attachment, as opposed to printing it out to console and copying it? It looks like there might be some invalid characters in there that get skipped when you cat it.

Edit: you might have to create an archive with zip -r pp_od_clk_voltage.zip /sys/class/drm/card0/device/pp_od_clk_voltage, as Github doesn't allow uploading files of unknown formats

ilya-zlobintsev avatar Feb 26 '23 10:02 ilya-zlobintsev

pp_od_clk_voltage.zip

This zip was extremely helpful, for some reason the clocks table file has null bytes around some lines, and they're not shown when posting as text. I've updated the parser to handle this.

Please try running the latest git version now (lact-git on Arch or package from this release for deb/rpm) and tell me if it fixes the problem.

ilya-zlobintsev avatar Feb 26 '23 11:02 ilya-zlobintsev

I have an RX6800 and I'm facing the same issue. I've tried lact-git-r303.72cd453-1 on ARCH.

my pp_od_clk_voltage shows next

OD_SCLK:
0: 500Mhz
1: 2314Mhz

OD_MCLK:
0: 97Mhz
1: 1000MHz
OD_VDDGFX_OFFSET:
0mV
OD_RANGE:
SCLK:     500Mhz       2600Mhz
MCLK:     674Mhz       1075Mhz

Also if I try to write changes to vram clock next error pops up

DEBUG lact_gui::app: applying thermal settings: ThermalsSettings { manual_fan_control: false, curve: Some({30: 0.0, 40: 0.2, 50: 0.35, 60: 0.5, 70: 0.75, 80: 1.0}) } 2023-02-26T11:44:30.226458Z WARN lact_gui::app: Could not apply settings

Caused by: 0: Could not set the maximum memory clock 1: Got error from daemon: Could not apply settings: Could not write clocks table: io error: Invalid argument (os error 22)

pp_od_clk_voltage.zip

neliavaal avatar Feb 26 '23 11:02 neliavaal

https://pastebin.com/qLnFCbgR new logs gui is also incorrect: gpu clock has nothing, gpu voltage also has nothing, VRAM looks like it would work but it doesn't apply see error in logs

Vixea avatar Feb 26 '23 15:02 Vixea

I've got access to an RX 6000 series GPU, and there are several problems with some weird behaviour from the driver's side which prevent tweaking from working. Hopefully I will be able to resolve them over the next few days.

ilya-zlobintsev avatar Feb 26 '23 20:02 ilya-zlobintsev

amazing!

Vixea avatar Feb 26 '23 20:02 Vixea

I just pushed some changes which I've tested to work on a 6900XT, please test again and tell me if it works on other models.

ilya-zlobintsev avatar Feb 27 '23 19:02 ilya-zlobintsev

Thanks for the fix! Sadly it doesn't fully solve my problem.

Now LACT correctly reports all the gpu related (voltage an clock) stuff but still refuses to allow OC\undervolt with the next error

Caused by: 0: Could not set the maximum core clock 1: Got error from daemon: Could not apply settings: not allowed: GPU does not report allowed OD ranges

I'm on 6.2.0-arch1-1 and rx 6800 with next mesa libs

lib32-mesa 22.3.6-1 mesa 23.0.0-1 mesa-demos 8.5.0-2 mesa-utils 8.5.0-2 mesa-vdpau 22.3.6-1

If any additional info is required - feel free to ask.

One again - thank you!

neliavaal avatar Feb 27 '23 21:02 neliavaal

hmm it works for me have you restarted the daemon?

Vixea avatar Feb 27 '23 23:02 Vixea

Thanks for the fix! Sadly it doesn't fully solve my problem.

Now LACT correctly reports all the gpu related (voltage an clock) stuff but still refuses to allow OC\undervolt with the next error

Caused by: 0: Could not set the maximum core clock 1: Got error from daemon: Could not apply settings: not allowed: GPU does not report allowed OD ranges

I'm on 6.2.0-arch1-1 and rx 6800 with next mesa libs

lib32-mesa 22.3.6-1 mesa 23.0.0-1 mesa-demos 8.5.0-2 mesa-utils 8.5.0-2 mesa-vdpau 22.3.6-1

If any additional info is required - feel free to ask.

One again - thank you!

That is weird, as local tests with the file you provided pass fine. Have you restarted the daemon after updating (sudo systemctl restart lactd)?

If so, please update again and post the output when running RUST_LOG=debug lact

ilya-zlobintsev avatar Feb 28 '23 06:02 ilya-zlobintsev

@ilya-zlobintsev I've restarted the daemon - it didn't help immediately. I've re-enabled the daemon and then restarted my pc. Now everything works perfect.

neliavaal avatar Feb 28 '23 08:02 neliavaal

Alright, I'm closing this as multiple people with RX 6000 series GPUs have confirmed it working.

ilya-zlobintsev avatar Feb 28 '23 08:02 ilya-zlobintsev