| 18 Jan 2024 |
l0b0 | Just trying to get half-decent performance with my new PC. | 07:44:37 |
K900 | Uhh | 07:44:44 |
l0b0 | Getting 40 FPS in Baldur's Gate 3, which is atrocious. | 07:44:50 |
K900 | You should be getting better than half-decent out of Mesa | 07:44:55 |
K900 | What hardware is that on? | 07:45:01 |
l0b0 | Radeon RX 7700 XT, AMD Ryzen 5 7600, 32 GB DDR-5 | 07:46:03 |
K900 | That's definitely not the level of performance you should be getting | 07:46:39 |
K900 | Are you on nixos-unstable? | 07:46:42 |
l0b0 | Yep | 07:46:47 |
K900 | Which kernel version? | 07:46:52 |
l0b0 | 6.1.72 | 07:47:36 |
K900 | Yeah | 07:47:39 |
K900 | You need newer for those GPUs | 07:47:43 |
K900 | You're probably software rendering | 07:47:46 |
K900 | Try linuxPackages_latest | 07:47:52 |
l0b0 | Uh. How can I tell? | 07:47:59 |
K900 | eglinfo | grep vendor | 07:49:16 |
l0b0 | Oh, interesting:
amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-13)
amdgpu: amdgpu_device_initialize failed.
EGL vendor string: Mesa Project
| 07:49:45 |
K900 | Actually, eglinfo | grep renderer is easier to check | 07:54:02 |
K900 | Or even eglinfo | grep "core profile renderer" | 07:55:03 |
l0b0 | Looks like the latest kernel (6.7.0) isn't helping:
amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-13)
amdgpu: amdgpu_device_initialize failed.
| 08:02:21 |
K900 | dmesg | grep amdgpu? | 08:03:05 |
l0b0 | stage-1-init: [Thu Jan 18 08:00:20 UTC 2024] loading module amdgpu...
[drm] amdgpu kernel modesetting enabled.
amdgpu: vga_switcheroo: detected switching method \_SB_.PCI0.GP17.VGA_.ATPX handle
amdgpu: ATPX version 1, functions 0x00000000
amdgpu: Virtual CRAT table created for CPU
amdgpu: Topology: Add CPU node
amdgpu 0000:03:00.0: enabling device (0006 -> 0007)
amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT
amdgpu: ATOM BIOS: 113-EXT89849-F210w
amdgpu 0000:03:00.0: amdgpu: CP RS64 enable
amdgpu 0000:03:00.0: [drm:jpeg_v4_0_early_init [amdgpu]] JPEG decode is enabled in VM mode
amdgpu 0000:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
amdgpu 0000:03:00.0: amdgpu: MEM ECC is not presented.
amdgpu 0000:03:00.0: amdgpu: SRAM ECC is not presented.
amdgpu 0000:03:00.0: amdgpu: VRAM: 12272M 0x0000008000000000 - 0x00000082FEFFFFFF (12272M used)
amdgpu 0000:03:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
[drm] amdgpu: 12272M of VRAM memory ready
[drm] amdgpu: 15623M of GTT memory ready.
amdgpu 0000:03:00.0: amdgpu: Will use PSP to load VCN firmware
amdgpu 0000:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x0000003d, smu fw if version = 0x0000003f, smu fw program = 0, smu fw version = 0x00503b00 (80.59.0)
amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
amdgpu 0000:03:00.0: amdgpu: SMU is initialized successfully!
amdgpu 0000:03:00.0: [drm:jpeg_v4_0_hw_init [amdgpu]] JPEG decode initialized successfully.
kfd kfd: amdgpu: Allocated 3969056 bytes on gart
kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
amdgpu: Virtual CRAT table created for GPU
amdgpu: Topology: Add dGPU node [0x747e:0x1002]
kfd kfd: amdgpu: added device 1002:747e
amdgpu 0000:03:00.0: amdgpu: SE 3, SH per SE 2, CU per SH 10, active_cu_number 54
amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_1 uses VM inv eng 1 on hub 8
amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 4 on hub 8
amdgpu 0000:03:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 14 on hub 0
amdgpu 0000:03:00.0: amdgpu: Using BACO for runtime pm
[drm] Initialized amdgpu 3.56.0 20150101 for 0000:03:00.0 on minor 0
amdgpu 0000:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device
amdgpu 0000:17:00.0: enabling device (0006 -> 0007)
amdgpu 0000:17:00.0: amdgpu: Fetched VBIOS from VFCT
amdgpu: ATOM BIOS: 102-RAPHAEL-008
amdgpu 0000:17:00.0: vgaarb: deactivate vga console
amdgpu 0000:17:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
amdgpu 0000:17:00.0: amdgpu: VRAM: 512M 0x000000F400000000 - 0x000000F41FFFFFFF (512M used)
amdgpu 0000:17:00.0: amdgpu: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[drm] amdgpu: 512M of VRAM memory ready
[drm] amdgpu: 15623M of GTT memory ready.
amdgpu 0000:17:00.0: amdgpu: Will use PSP to load VCN firmware
amdgpu 0000:17:00.0: amdgpu: RAS: optional ras ta ucode is not available
amdgpu 0000:17:00.0: amdgpu: RAP: optional rap ta ucode is not available
amdgpu 0000:17:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
amdgpu 0000:17:00.0: amdgpu: SMU is initialized successfully!
kfd kfd: amdgpu: Allocated 3969056 bytes on gart
kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
amdgpu: Virtual CRAT table created for GPU
amdgpu: Topology: Add dGPU node [0x164e:0x1002]
kfd kfd: amdgpu: added device 1002:164e
amdgpu 0000:17:00.0: amdgpu: SE 1, SH per SE 1, CU per SH 2, active_cu_number 2
amdgpu 0000:17:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 11 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
amdgpu 0000:17:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
amdgpu 0000:17:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
amdgpu 0000:17:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
amdgpu 0000:17:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 8
[drm] Initialized amdgpu 3.56.0 20150101 for 0000:17:00.0 on minor 1
amdgpu 0000:17:00.0: [drm] Cannot find any crtc or sizes
snd_hda_intel 0000:17:00.1: bound 0000:17:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])```
| 08:04:48 |
K900 | What's the full output from eglinfo | grep "core profile renderer"? | 08:05:42 |
l0b0 | As above:
❯ eglinfo | grep "core profile renderer"
amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-13)
amdgpu: amdgpu_device_initialize failed.
| 08:06:51 |
K900 | That's weird | 08:07:27 |
K900 | Do you have hardware.enableRedistributableFirmware = true;? | 08:07:45 |
l0b0 | Yep:
nix-repl> config.hardware.enableRedistributableFirmware
true
| 08:08:12 |
K900 | Actually wait what | 08:09:01 |
K900 | -13 | 08:09:02 |