Sapphire Pulse RX 5700 XT power consumption
Submitted by Robert
Assigned to Default DRI bug account
Link to original bug (#111482)
Description
Hi!
I'm mainly referring to this thread in Archlinux forum: https://bbs.archlinux.org/viewtopic.php?id=247667
I have a Sapphire Pulse RX 5700 XT and with the help of the thread above I managed to get it working. The card is not using the AMD reference implementation so it's one of the newer vendor custom design cards.
I currently have installed this software stack:
- local/linux-amd-staging-drm-next-git 5.4.857545.b4d857ded1c5-1 (which is basically this one https://cgit.freedesktop.org/~agd5f/linux/tag/?h=drm-next-5.4-2019-08-23 as I modified PKGBUILD accordingly)
- aur/llvm-minimal-git 10.0.0_r324774.c310e5a7ab6-1
- aur/mesa-git 19.2.0_devel.114565.b2839193987-1
- firmware 2019-08-21 from https://people.freedesktop.org/~agd5f/r … de/navi10/
- core/amd-ucode 20190815.07b925b-1
Everything regarding power consumption is perfect as long as I stay in console. I've also Kernel Mode Setting (KMS) enabled. Executing "sensors" command I get this output ATM (it varies a little bit of course but basically stays around this values):
"""
Adapter: PCI adapter
vddgfx: +0.72 V
fan1: 168 RPM (min = 0 RPM, max = 4950 RPM)
edge: +42.0°C (crit = +118.0°C, hyst = +0.0°C)
(emerg = +80000.0°C)
junction: +43.0°C (crit = +80000.0°C, hyst = +0.0°C)
(emerg = +80000.0°C)
mem: +50.0°C (crit = +80000.0°C, hyst = +0.0°C)
(emerg = +80000.0°C)
power1: 8.00 W (cap = 180.00 W)
"""
So according to this output the card uses 8 W in idle mode which is what I'm expecting (also no card fans are spinning which is great). Now if I start KDE Plasma 5 with OpenGL 3.1 backend this changes:
"""
amdgpu-pci-0c00
Adapter: PCI adapter
vddgfx: +0.72 V
fan1: 530 RPM (min = 0 RPM, max = 3200 RPM)
edge: +51.0°C (crit = +118.0°C, hyst = -273.1°C)
(emerg = +99.0°C)
junction: +53.0°C (crit = +99.0°C, hyst = -273.1°C)
(emerg = +99.0°C)
mem: +62.0°C (crit = +99.0°C, hyst = -273.1°C)
(emerg = +99.0°C)
power1: 32.00 W (cap = 180.00 W)
asus-isa-0000
Adapter: ISA adapter
cpu_fan: 0 RPM
"""
Now I have a power consumption around 32 W just by launching KDE Plasma. I didn't start anything else. Having a look at my power meter it's even more then 32 W which "sensors" is reporting (more like 40 W).
Another user in the thread mentioned above reported that for him the power consumption stays at 8 W even when KDE is running. There is only one difference: He has a card with the AMD reference design and I've a custom design card from Sapphire. So I can only suspect that there is some difference in the power play implementation. My card also has two different BIOSes and I tried both but there is no difference regarding power consumption. The monitor is connected via DisplayPort if this is of any interest. And here is my "dmesg" output (grepped for "amdgpu"):
[ 1.266205] [drm] amdgpu kernel modesetting enabled.
[ 1.266320] amdgpu 0000:0c:00.0: remove_conflicting_pci_framebuffers: bar 0: 0xe0000000 -> 0xefffffff
[ 1.266320] amdgpu 0000:0c:00.0: remove_conflicting_pci_framebuffers: bar 2: 0xf0000000 -> 0xf01fffff
[ 1.266321] amdgpu 0000:0c:00.0: remove_conflicting_pci_framebuffers: bar 5: 0xf6c00000 -> 0xf6c7ffff
[ 1.266322] fb0: switching to amdgpudrmfb from EFI VGA
[ 1.266374] amdgpu 0000:0c:00.0: vgaarb: deactivate vga console
[ 1.291100] amdgpu 0000:0c:00.0: No more image in the PCI ROM
[ 1.291132] amdgpu 0000:0c:00.0: VRAM: 8176M 0x0000008000000000 - 0x00000081FEFFFFFF (8176M used)
[ 1.291133] amdgpu 0000:0c:00.0: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[ 1.291191] [drm] amdgpu: 8176M of VRAM memory ready
[ 1.291192] [drm] amdgpu: 8176M of GTT memory ready.
[ 2.031317] amdgpu: [powerplay] SMU is initialized successfully!
[ 2.196969] fbcon: amdgpudrmfb (fb0) is primary device
[ 2.302436] amdgpu 0000:0c:00.0: fb0: amdgpudrmfb frame buffer device
[ 2.316727] amdgpu 0000:0c:00.0: ring 0(gfx_0.0.0) uses VM inv eng 4 on hub 0
[ 2.316728] amdgpu 0000:0c:00.0: ring 1(gfx_0.1.0) uses VM inv eng 5 on hub 0
[ 2.316728] amdgpu 0000:0c:00.0: ring 2(comp_1.0.0) uses VM inv eng 6 on hub 0
[ 2.316729] amdgpu 0000:0c:00.0: ring 3(comp_1.1.0) uses VM inv eng 7 on hub 0
[ 2.316729] amdgpu 0000:0c:00.0: ring 4(comp_1.2.0) uses VM inv eng 8 on hub 0
[ 2.316730] amdgpu 0000:0c:00.0: ring 5(comp_1.3.0) uses VM inv eng 9 on hub 0
[ 2.316731] amdgpu 0000:0c:00.0: ring 6(comp_1.0.1) uses VM inv eng 10 on hub 0
[ 2.316731] amdgpu 0000:0c:00.0: ring 7(comp_1.1.1) uses VM inv eng 11 on hub 0
[ 2.316732] amdgpu 0000:0c:00.0: ring 8(comp_1.2.1) uses VM inv eng 12 on hub 0
[ 2.316733] amdgpu 0000:0c:00.0: ring 9(comp_1.3.1) uses VM inv eng 13 on hub 0
[ 2.316733] amdgpu 0000:0c:00.0: ring 10(kiq_2.1.0) uses VM inv eng 14 on hub 0
[ 2.316734] amdgpu 0000:0c:00.0: ring 11(sdma0) uses VM inv eng 15 on hub 0
[ 2.316735] amdgpu 0000:0c:00.0: ring 12(sdma1) uses VM inv eng 16 on hub 0
[ 2.316735] amdgpu 0000:0c:00.0: ring 13(vcn_dec) uses VM inv eng 4 on hub 1
[ 2.316736] amdgpu 0000:0c:00.0: ring 14(vcn_enc0) uses VM inv eng 5 on hub 1
[ 2.316737] amdgpu 0000:0c:00.0: ring 15(vcn_enc1) uses VM inv eng 6 on hub 1
[ 2.316737] amdgpu 0000:0c:00.0: ring 16(vcn_jpeg) uses VM inv eng 7 on hub 1
[ 2.316923] [drm] Initialized amdgpu 3.34.0 20150101 for 0000:0c:00.0 on minor 0
[28830.279521] amdgpu 0000:0c:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
So if someone can give me any hint regarding a possible solution or something to try out I would be very thankful :-) Power isn't that cheap in Germany ;-)