I recently bought an ASUS Strix 5700 XT, the hardware is great and with some tuning (-99 mV for the GPU at the highest clock frequency, +50 MHz for the GDDR6 clock freuqency) it works great but I can’t really game with it on Linux, if the game runs, but without tuning the settings the fan gets much too loud. ASUS chose a ridiculously high clock frequency for the GPU (much higher than sensible for this architecture and die), because of that the power consumption gets high and there is a lot of heat while adding negligible performance. I don’t know of any GUI-tool which supports the 5700 XT already and it is better anyway to be able to do it yourself.
I would like to do as much gaming on Linux as possible and I would like to learn how to tune all of this on Linux. As I see it these are essential tweaks for any graphics card: GPU clock frequency, memory clock frequency, voltages for both GPU and memory (less heat and more performance when you lower the voltage if the ‘silicon’ can handle it), the fan profile (depending on the model). It also is essential to set a FPS-target for many games. I haven’t found any good tutorial on it on this forum (or anywhere else). If a good tutorial doesn’t exist on this forum yet then I would be willing to write one once it has become clear to me how all of it works.
I looked up on the archwiki how to change the voltages and clock frequencies but what is being explained there does not seem to apply to the 5700 (XT). According to the Archwiki you should have the file “pp_od_clk_voltage” in “/sys/class/drm/card0/device”. That file does not exist on my system (Manjaro). These are the files that do exist.
aer_dev_correctable driver_override max_link_width pp_cur_state resource0
aer_dev_fatal drm mem_busy_percent pp_dpm_dcefclk resource0_wc
aer_dev_nonfatal enable mem_info_gtt_total pp_dpm_fclk resource2
ari_enabled fw_version mem_info_gtt_used pp_dpm_mclk resource2_wc
boot_vga gpu_busy_percent mem_info_vis_vram_total pp_dpm_pcie resource4
broken_parity_status graphics mem_info_vis_vram_used pp_dpm_sclk resource5
class hwmon mem_info_vram_total pp_dpm_socclk revision
config i2c-0 mem_info_vram_used pp_features rom
consistent_dma_mask_bits i2c-2 modalias pp_force_state subsystem
current_link_speed i2c-4 msi_bus pp_mclk_od subsystem_device
current_link_width i2c-6 msi_irqs pp_num_states subsystem_vendor
d3cold_allowed iommu numa_node pp_power_profile_mode uevent
device iommu_group pcie_bw pp_sclk_od vbios_version
dev_rescan irq pcie_replay_count pp_table vendor
devspec local_cpulist power remove
dma_mask_bits local_cpus power_dpm_force_performance_level reset
driver max_link_speed power_dpm_state resourc
As the Archwiki instructed I added the kernel boot parameter
amdgpu.ppfeaturemask=0xffffffff in the file /etc/default/grub , the file still doesn’t exist or doesn’t show up, the path ‘device’ contains a symlink to somewhere else. (/sys/devices/pic*?).