How can I confirm my new graphics card is installed correctly?

Hi,
I have installed a graphics card (AMD RX 6400 4GB) into my PC that has integrated graphics (Ryzen 3 4350GE ) - this is my first time iinstalling a graphics card.

I am not sure if my system is using the right driver to take advantage of the new card.

I’m expecting that the new card will now take over from the built-in graphics.

I’m going to use the PC for Steam in the living room.

In Steam “Sys Info” Vram says 512MB & not 4GB. So this got me wondering if i am using the right driver or if the new card is properly enabled.

TV HDMI cable is connected to the RX6400 & the display is working fine. I will only use 1 display, so the motherboard HDMI output wont be used from now on, unless the card breaks or something.

Software is up-to-date. This is a fresh install of Manjaro Gnome from latest ISO.

Steam app, system info:

Video Card:
Driver: AMD AMD Radeon Graphics (renoir, LLVM 16.0.6, DRM 3.54, 6.6.8-2-MANJARO)
Driver Version: 4.6 (Compatibility Profile) Mesa 23.1.9-manjaro1.1
OpenGL Version: 4.6
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 59 Hz
VendorID: 0x1002
DeviceID: 0x1636
Revision Not Detected
Number of Monitors: 1
Number of Logical Video Cards: 2
Primary Display Resolution: 1920 x 1080
Desktop Resolution: 1920 x 1080
Primary Display Size: 35.04" x 19.69" (40.16" diag), 89.0cm x 50.0cm (102.0cm diag)
Primary VRAM: 512 MB

I took the following steps to investigate why steam says 512MB instead of the expected 4GB, but im not sure what to conclude because its my first time using a graphics card; maybe it’s normal? maybe i need to disable the built in driver?

glxinfo | grep OpenGL
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon Graphics (renoir, LLVM 16.0.6, DRM 3.54, 6.6.8-2-MANJARO)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.1.9-manjaro1.1
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.1.9-manjaro1.1
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.1.9-manjaro1.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

sudo lshw -C display
  *-display                 
       description: VGA compatible controller
       product: Navi 24 [Radeon RX 6400/6500 XT/6500M]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: /dev/fb0
       version: c7
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=amdgpu latency=0 mode=3840x2160 resolution=3840,2160 visual=truecolor xres=3840 yres=2160
       resources: iomemory:1010-100f iomemory:1000-fff irq:41 memory:10100000000-101ffffffff memory:10080000000-100801fffff ioport:3000(size=256) memory:fc700000-fc7fffff memory:fc820000-fc83ffff
  *-display
       description: VGA compatible controller
       product: Renoir [Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series)]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:08:00.0
       version: da
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix vga_controller bus_master cap_list
       configuration: driver=amdgpu latency=0
       resources: iomemory:1000-fff iomemory:1000-fff irq:24 memory:10030000000-1003fffffff memory:10040000000-100401fffff ioport:1000(size=256) memory:fc300000-fc37ffff


lspci | grep -i VGA
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 24 [Radeon RX 6400/6500 XT/6500M] (rev c7)
08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series)] (rev da)


lspci -v -s 03:00.0
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 24 [Radeon RX 6400/6500 XT/6500M] (rev c7) (prog-if 00 [VGA controller])
	Subsystem: Sapphire Technology Limited Navi 24 [Radeon RX 6400/6500 XT/6500M]
	Flags: bus master, fast devsel, latency 0, IRQ 41, IOMMU group 0
	Memory at 10100000000 (64-bit, prefetchable) [size=4G]
	Memory at 10080000000 (64-bit, prefetchable) [size=2M]
	I/O ports at 3000 [size=256]
	Memory at fc700000 (32-bit, non-prefetchable) [size=1M]
	Expansion ROM at fc820000 [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

It looks like you’re already using the best driver for your card. You can see more information at the Arch amdgpu Wiki page, but as far as I can tell, it seems to be installed as expected.

I did a quick search regarding changing the vram amount, but found nothing that wasn’t Windows-centric. I’m guessing there should be a way to change it in Gnome, but unfortunately, I don’t use it.

All I can do is wish you luck. Cheers.

1 Like

OK, thanks. At least I know the driver is correct. So I can dig into the vram question next.
It could just be a steam thing.

It’s possible that Steam only requires (up to) 512MB of vram, for normal operation. There’s no sense in using all available if it’s not needed. There are applications that will likely set whatever may be needed for a specific use case. See what you can find on the topic, anyway. Cheers.

This steam community post suggests that steam only shows the primary GPU & not to worry.

That seems consistent. I’d tend to not worry about it. :wink:
This comment seems to state it clearly:

Forget what Steam says, honestly IDK why people waste their time looking at that.

My observation so far is that all games are running at 30fps no matter what quality.
So for example Supertux is 30fps & Elite Dangerous is also 30fps on either Ultra or Low.
This suggests something is wrong to me, but I’m still looking.

I’m not noticing any improvement over the built-in graphics yet.

I suggest you look in your bios and make sure the internal graphics is disabled and the external graphics is enabled. Also make sure your hdmi cable is connected to the graphics card.

Thanks. I just checked bios but I couldn’t find such an option. Ill double-check.

I went into bios because I realised Manjro Grub does not display when using the rx6400 hdni.
When I use the integrated HDMI grub menu shows correctly.

You may not have both but a disable internal should be there. May be in advanced options if you have such a thing.

Ill check carefully,
I am a bit worried though, since at the moment I can only view bios or grub when connecting HDMI to the internal HDMI. When I use the rx6400 it goes direct into manjaro with no video output before the manjaro login.
If I disable onboard graphics I may be stuck…?

You should still be able to reboot and change the bios back.

General system info:

inxi -Fazy

If you really have 2 gpus …

Then by default it should use the iGPU.
PRIME will call the dGPU.

test:

glxinfo | grep 'renderer string'
DRI_PRIME=1 glxinfo | grep 'renderer string'

PS

This is only existent on a minority of BIOS. And is only desirable by some.
Most people like to user their hybrid systems … hybrid style.
That is … to use the less-power-hungry iGPU most of the time.

The ‘renderer string’ shows the 2 gpu, Prime is the new graphics card.

inxi -Fazy

System:
  Kernel: 6.6.8-2-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc available: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.6-x86_64
    root=UUID=bcf8332f-ea01-4718-b0f0-429647cff2ca rw quiet splash apparmor=1
    security=apparmor udev.log_priority=3
  Desktop: GNOME v: 45.2 tk: GTK v: 3.24.39 wm: gnome-shell dm: GDM v: 45.0.1
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop System: HP product: HP ProDesk 405 G6 Small Form Factor PC
    v: SBKPF serial: <superuser required> Chassis: type: 3
    serial: <superuser required>
  Mobo: HP model: 872D v: KBC Version 09.08.23 serial: <superuser required>
    UEFI: HP v: S15 Ver. 02.14.00 date: 09/22/2023
CPU:
  Info: model: AMD Ryzen 3 PRO 4350G with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 2 gen: 3 level: v3 note: check built: 2020-22
    process: TSMC n7 (7nm) family: 0x17 (23) model-id: 0x60 (96) stepping: 1
    microcode: 0x8600109
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 2 MiB desc: 4x512 KiB L3: 4 MiB
    desc: 1x4 MiB
  Speed (MHz): avg: 1048 high: 2996 min/max: 400/4105 scaling:
    driver: amd-pstate-epp governor: powersave cores: 1: 2996 2: 400 3: 400
    4: 400 5: 400 6: 400 7: 2994 8: 400 bogomips: 60710
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed mitigation: untrained return thunk; SMT enabled with STIBP
    protection
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, STIBP:
    always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Navi 24 [Radeon RX 6400/6500 XT/6500M] vendor: Sapphire
    driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
    built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports:
    active: HDMI-A-1 empty: DP-1 bus-ID: 03:00.0 chip-ID: 1002:743f
    class-ID: 0300
  Device-2: AMD Renoir [Radeon RX Vega 6 ] vendor: Hewlett-Packard
    driver: amdgpu v: kernel arch: GCN-5 code: Vega process: GF 14nm
    built: 2017-20 pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s ports: active: none empty: DP-2,DP-3,DP-4 bus-ID: 08:00.0
    chip-ID: 1002:1636 class-ID: 0300 temp: 43.0 C
  Display: wayland server: X.org v: 1.21.1.10 with: Xwayland v: 23.2.3
    compositor: gnome-shell driver: gpu: amdgpu display-ID: 0
  Monitor-1: HDMI-A-1 model: Samsung serial: <filter> built: 2017
    res: 3840x2160 dpi: 110 gamma: 1.2 size: 1872x1053mm (73.7x41.46")
    diag: 1021mm (40.2") ratio: 16:9 modes: max: 3840x2160 min: 720x400
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: radeonsi device: 2 drv: swrast surfaceless: drv: radeonsi
    wayland: drv: radeonsi x11: drv: radeonsi inactive: gbm
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 23.1.9-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon Graphics (renoir LLVM
    16.0.6 DRM 3.54 6.6.8-2-MANJARO) device-ID: 1002:1636 memory: 500 MiB
    unified: no display-ID: :0.0
Audio:
  Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
    gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab28
    class-ID: 0403
  Device-2: AMD Renoir Radeon High Definition Audio vendor: Hewlett-Packard
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 08:00.1 chip-ID: 1002:1637
    class-ID: 0403
  Device-3: AMD Family 17h/19h HD Audio vendor: Hewlett-Packard
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 08:00.6 chip-ID: 1022:15e3
    class-ID: 0403
  API: ALSA v: k6.6.8-2-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Hewlett-Packard driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 link-max: gen: 2 speed: 5 GT/s port: 2200 bus-ID: 06:00.1
    chip-ID: 10ec:8168 class-ID: 0200
  IF: enp6s0f1 state: down mac: <filter>
  Device-2: TP-Link TL-WN823N v2/v3 [Realtek RTL8192EU] driver: rtl8xxxu
    type: USB rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 4-1:2
    chip-ID: 2357:0109 class-ID: 0000 serial: <filter>
  IF: wlp8s0f3u1 state: up mac: <filter>
Bluetooth:
  Device-1: Broadcom Corp Bluetooth V3.0 USB Device driver: btusb v: 0.8
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 2-4.1:3
    chip-ID: 21ee:1100 class-ID: fe01 serial: <filter>
  Report: rfkill ID: hci1 rfk-id: 1 state: up address: see --recommends
  Device-2: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
    v: 0.8 type: USB rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 6-2:3
    chip-ID: 0a12:0001 class-ID: e001
  Report: ID: hci0 rfk-id: 0 state: up address: N/A
Drives:
  Local Storage: total: 1.14 TiB used: 98.66 GiB (8.4%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital model: PC SN730
    SDBPNTY-256G-1006 size: 238.47 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: HPS2 temp: 49.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Crucial model: CT1000BX500SSD1
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 030 scheme: MBR
Partition:
  ID-1: / raw-size: 78.27 GiB size: 76.49 GiB (97.72%) used: 18.89 GiB (24.7%)
    fs: ext4 dev: /dev/nvme0n1p6 maj-min: 259:6
  ID-2: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%)
    used: 183.6 MiB (71.7%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 49.6 C mobo: N/A
  Fan Speeds (rpm): N/A
  GPU: device: amdgpu temp: 43.0 C device: amdgpu temp: 55.0 C mem: 54.0 C
    fan: 2468 watts: 2.00
Info:
  Processes: 323 Uptime: 1m wakeups: 0 Memory: total: 16 GiB note: est.
  available: 14.93 GiB used: 3.46 GiB (23.2%) Init: systemd v: 254
  default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
  Packages: pm: pacman pkgs: 1366 libs: 462 tools: gnome-software,pamac
  pm: flatpak pkgs: 0 Shell: Zsh v: 5.9 running-in: gnome-terminal inxi: 3.3.31


glxinfo | grep 'renderer string'
OpenGL renderer string: AMD Radeon Graphics (renoir, LLVM 16.0.6, DRM 3.54, 6.6.8-2-MANJARO)

DRI_PRIME=1 glxinfo | grep 'renderer string'
OpenGL renderer string: AMD Radeon RX 6400 (navi24, LLVM 16.0.6, DRM 3.54, 6.6.8-2-MANJARO)

So everything looks right.

When you want to use the beefier dGPU call it with DRI_PRIME=1

Special case for steam … dont launch steam itself with prime.

Instead edit each game launch options to be (assuming no other options):

DRI_PRIME=1 %command%

PS.

You have no SWAP. When you reach the limits of your physical RAM the system will lock up.
You have many options for SWAP, but I generally suggest zram these days.
Continuing the discussion from Awful performance since install:

1 Like

Great. Glad its correct so far.

Still confused why I cant see grub when HDMI is connected to dGPU.

&, I’m wondering,… Can’t I just go for a plug & play with this?
I was hoping to connect the HDMI, auto-login to manjaro, launch steam in big-picture & basically use like a console. So id rather just use dGPU all the time by default.

Becuase the dGPU is not initialized until PRIME is used.

You can get around this a few ways including reverse prime or switching the dGPU to primary. See all about it here:
https://wiki.archlinux.org/title/PRIME

Then the ‘dGPU as primary’ may be a workable option for you.
But the absolute best … if you just want to ignore the iGPU entirely … would be a BIOS option to disable the lesser card. This option is not always available though.

1 Like

Perfect, thank you.
Ill check into the PRIME link.

In my BIOS disable iGPU is not an option. On the HP forums they say its automatic, but of course its Win focused there.

I am a bit stuck with this to be honest.

I ran a couple of Steam games using DRI_PRIME=1 %command% but I noticed they still ran at 30fps & there’s no noticeable improvement over the iGPU.

The rx6400 is showing 512mb vram in Phoronix Test Suite

GRAPHICS:               Sapphire AMD Radeon RX 6400/6500 XT/6500M 512MB
    BAR1 / Visible vRAM:  512 MB                                            
    OpenGL:               4.6 Mesa 23.1.9-manjaro1.1 (LLVM 16.0.6 DRM 3.54) 
    Monitor:              SAMSUNG                                           
    Screen:               1920x1080

I remember BIOS had a vram setting for either 256 or 512, but that was using the iGPU.
But since I can’t currently view bios or grub with the dGPU I cant check if that’s different when hdmi is connected to dGPU.

Next I looked at Reverse PRIME.

xrandr --listproviders
Providers: number : 0
glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon Graphics (renoir, LLVM 16.0.6, DRM 3.54, 6.6.8-2-MANJARO)
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon RX 6400 (navi24, LLVM 16.0.6, DRM 3.54, 6.6.8-2-MANJARO)

Providers is Zero? Ahh ~ It seems xrandr doesn’t work with Wayland & the suggestion is “its automatic so use DRI_PRIME=1 %command%” - which is back to the top.

Discrete card as Primary also uses xorg/xrandr, so I’m not sure that applies. I could try it, but all the examples on that page are for intel & nvidia, & I’m guessing I need to specify driver, identifier, device etc in the file - is it just “amd”? its beyond me at this point.

Im currently checking to see if Grub has some graphics option to use the dGPU…

The ‘its automatic’ is from a thread 8 years old where they are simply attempting to configure PRIME and when the providers needed to be defined manually most of the time … now they usually dont, regardless of X or wayland.

Which is true … you didnt need anything extra for PRIME to work … its working already.

As to wayland configuration. I couldnt say.
If the examples are using Xorg configuration files … then it would seem thats your option.

But back to the main scenario … do you have KMS properly configured? It might help some things.
https://wiki.archlinux.org/title/Kernel_mode_setting

(amdgpu in modules and kms in hooks of mkinitcpio.conf)