cancel
Showing results for 
Search instead for 
Did you mean: 

Graphics Cards

lichleech
Adept I

linux: ryzen + 6600xt: can't get discrete GPU to be used

Hi,

I just bought a Radeon RX 6600 XT and am quite excited to give it a spin. Sadly, I can't seem to use it.
On my system I have the two GPUs, however, despite both being recognized, I can't use the discrete GPU.

 

$ lsb_release -a
LSB Version:    n/a
Distributor ID: openSUSE
Description:    openSUSE Leap 15.3
Release:        15.3
Codename:       n/a


$ uname -srvpi
Linux 5.16.0-lp153.2.g487d6b3-default #1 SMP PREEMPT Mon Jan 10 07:30:39 UTC 2022 (487d6b3) x86_64 x86_64

 

 

It's recognized

 

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x47; cap: 0x0 (); crtcs: 5; outputs: 4; associated providers: 0; name: AMD Radeon RX 6600 XT @ pci:0000:03:00.0

$ sudo lspci -nnk | grep -A3 VGA
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] [1002:73ff] (rev c1)
        Subsystem: XFX Limited Device [1eae:6501]
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

 


glxinfo ignores it though. Without DRI_PRIME

 

$ glxinfo | grep -i opengl
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.0.1, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.2.4
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 20.2.4
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.2.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

 


With DRI_PRIME

 

$ DRI_PRIME=1 glxinfo | grep -i opengl
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.0.1, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.2.4
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 20.2.4
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.2.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

 


I tried forcing Xorg to use the dGPU, but no dice

 

$ cat /etc/X11/xorg.conf.d/50-device.conf
# Having multiple "Device" sections is known to be problematic. Make
# sure you don't have in use another one laying around e.g. in another
# xorg.conf.d file or even a generic xorg.conf file. More details can
# be found in https://bugs.freedesktop.org/show_bug.cgi?id=32430.
#
Section "Device"
Identifier "Default Device"

Driver "amdgpu"

## Required magic for radeon/radeonhd drivers; output name
## (here: "DVI-0") can be figured out via 'xrandr -q'
#Option "monitor-DVI-0" "Default Monitor"

EndSection

 

 

Anything I run, "radeontop" `shows usage at 0%.

Anybody have any clues as to why DRI_PRIME isn't work?

1 Solution
lichleech
Adept I

OK, I finally figured it out! You need a kernel > 5.11, the new firmware, and the x11 libs to use the new firmware!

These instructions have been tested with OpenSuse Leap 15.3!

Here's a script

set -x

function add_and_use_repo(){
repo_name="$2"
repo_url="$1"

# Add repo with higher priority than update repos
# and retrieve list of package together with other metadata
sudo zypper addrepo --priority 80 --refresh "$repo_url" "$repo_name"

# Update old packages to use packages from the repo
sudo zypper update --allow-vendor-change --repo "$repo_name"

}

# Get and use newer kernel
add_and_use_repo https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/ Kernel:stable:Backport

# Get and use newer X11
# X11 is the display server that programs communicate with to draw stuff on the screen
# It's the one that does the selection of the graphics card
# It needs the new drivers and firmware
add_and_use_repo https://download.opensuse.org/repositories/X11:/XOrg/openSUSE_Leap_15.3/ X11:XOrg


# Install the firmware, libs and drivers
sudo zypper install xf86-video-amdgpu libdrm_amdgpu1-32bit libdrm_amdgpu1 kernel-firmware-amdgpu

echo "You should restart"

Once you've restarted, if all wen well, you should've booted into your desktop normally.

To check if your card is working compare the output of the following commands

$ glxinfo | grep -i opengl                                                                                                            
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 6600 XT (DIMGREY_CAVEFISH, DRM 3.44.0, 5.16.0-lp153.2.g487d6b3-default, LLVM 11.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.4
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 21.3.4
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 21.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
$ sudo lspci -nnk | grep -A3 VGA                                                                                                     


 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] [1002:73ff] (
rev c1)
       Subsystem: XFX Limited Device [1eae:6501]
       Kernel driver in use: amdgpu
       Kernel modules: amdgpu

 $ xrandr --listproviders                                                                                                              
Providers: number : 1
Provider 0: id: 0x57; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 5; outputs: 4; associated providers
: 0; name: AMD Radeon RX 6600 XT @ pci:0000:03:00.0

 I can't remember how I cobbled all of this together, but a lot searching was involved. Thanks to the unnamed heroes in this story.

Good luck to everybody else. I hope these instructions helped you!

View solution in original post

0 Likes
1 Reply
lichleech
Adept I

OK, I finally figured it out! You need a kernel > 5.11, the new firmware, and the x11 libs to use the new firmware!

These instructions have been tested with OpenSuse Leap 15.3!

Here's a script

set -x

function add_and_use_repo(){
repo_name="$2"
repo_url="$1"

# Add repo with higher priority than update repos
# and retrieve list of package together with other metadata
sudo zypper addrepo --priority 80 --refresh "$repo_url" "$repo_name"

# Update old packages to use packages from the repo
sudo zypper update --allow-vendor-change --repo "$repo_name"

}

# Get and use newer kernel
add_and_use_repo https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/ Kernel:stable:Backport

# Get and use newer X11
# X11 is the display server that programs communicate with to draw stuff on the screen
# It's the one that does the selection of the graphics card
# It needs the new drivers and firmware
add_and_use_repo https://download.opensuse.org/repositories/X11:/XOrg/openSUSE_Leap_15.3/ X11:XOrg


# Install the firmware, libs and drivers
sudo zypper install xf86-video-amdgpu libdrm_amdgpu1-32bit libdrm_amdgpu1 kernel-firmware-amdgpu

echo "You should restart"

Once you've restarted, if all wen well, you should've booted into your desktop normally.

To check if your card is working compare the output of the following commands

$ glxinfo | grep -i opengl                                                                                                            
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 6600 XT (DIMGREY_CAVEFISH, DRM 3.44.0, 5.16.0-lp153.2.g487d6b3-default, LLVM 11.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.4
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 21.3.4
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 21.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
$ sudo lspci -nnk | grep -A3 VGA                                                                                                     


 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] [1002:73ff] (
rev c1)
       Subsystem: XFX Limited Device [1eae:6501]
       Kernel driver in use: amdgpu
       Kernel modules: amdgpu

 $ xrandr --listproviders                                                                                                              
Providers: number : 1
Provider 0: id: 0x57; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 5; outputs: 4; associated providers
: 0; name: AMD Radeon RX 6600 XT @ pci:0000:03:00.0

 I can't remember how I cobbled all of this together, but a lot searching was involved. Thanks to the unnamed heroes in this story.

Good luck to everybody else. I hope these instructions helped you!

0 Likes