Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cpu-x show warning: Your GPU user mode driver is unknown for vendor AMD: 4.6 (Compatibility Profile) Mesa 24.3.4-arch1.1 #367

Open
realyukii opened this issue Feb 15, 2025 · 7 comments

Comments

@realyukii
Copy link

realyukii commented Feb 15, 2025

I check loaded kernel module and it show amdgpu and nvidia:

$  lspci -v -nn -d ::03xx
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106M [GeForce RTX 4070 Max-Q / Mobile] [10de:2860] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Device [1043:23bd]
        Physical Slot: 0
        Flags: bus master, fast devsel, latency 0, IRQ 50, IOMMU group 15
        Memory at dc000000 (32-bit, non-prefetchable) [size=16M]
        Memory at 7c00000000 (64-bit, prefetchable) [size=8G]
        Memory at 7e00000000 (64-bit, prefetchable) [size=32M]
        I/O ports at f000 [size=128]
        Expansion ROM at dd000000 [virtual] [disabled] [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia

66:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c1) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Device [1043:23bd]
        Flags: bus master, fast devsel, latency 0, IRQ 43, IOMMU group 20
        Memory at 7e10000000 (64-bit, prefetchable) [size=256M]
        Memory at dd200000 (64-bit, prefetchable) [size=2M]
        I/O ports at d000 [size=256]
        Memory at dd700000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

but why cpu-x print warning about Mesa despite the in-use kernel driver is amdgpu or nvidia? I think I simply don't understand how the whole process work together?

@realyukii
Copy link
Author

I think I kind of get it from deepseek's responses:

The amdgpu (/lib/modules/6.13.2-arch1-1/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko.zst) driver and Mesa's libgallium-24.3.4-arch1.1.so are complementary components in the Linux graphics stack for AMD GPUs. Here's their relationship:

1. amdgpu (Kernel Driver)

  • Role: A kernel-space driver that directly manages AMD GPU hardware (e.g., memory, power, display output, compute units).
  • Function: Handles low-level communication with the GPU, memory management, and hardware abstraction for the kernel.
  • Location: Part of the Linux kernel (loaded as amdgpu kernel module).

2. Mesa's Gallium Library (User-Space Driver)

  • Role: A user-space library (part of Mesa) that implements graphics APIs like OpenGL, Vulkan, and OpenCL.
  • Function:
    • Gallium3D: A framework within Mesa that simplifies driver development. The libgallium shared object (.so) contains the Gallium driver for AMD GPUs (e.g., radeonsi for OpenGL, radv for Vulkan).
    • Translates API Calls: Converts OpenGL/Vulkan commands into GPU-specific instructions (using the amdgpu kernel driver via libdrm).
  • Versioning: The filename libgallium-24.3.4-arch1.1.so indicates:
    • Mesa version 24.3.4.
    • Custom Arch Linux packaging (arch1.1).

3. Interaction Between Them

  • Applications (e.g., games, compositors) use Mesa's Gallium driver (libgallium) to render graphics.
  • Mesa sends hardware commands to the amdgpu kernel driver via libdrm (Direct Rendering Manager), which acts as a bridge between user-space and the kernel.
  • amdgpu executes these commands on the GPU hardware.

Summary

  • amdgpu: Manages the GPU at the kernel level.
  • Mesa/libgallium: Implements high-level graphics APIs and relies on amdgpu (via libdrm) to issue GPU commands.
  • Together: They form the open-source graphics stack for AMD GPUs on Linux, enabling applications to use OpenGL/Vulkan while abstracting hardware details.

Example Workflow

  1. Application → OpenGL call → Mesa (libgallium) → Gallium driver → libdrm → amdgpu kernel driver → GPU hardware.

and I think I should change my question: if mesa is unknown or unrecognized by cpu-x, what is an example for user mode driver considered 'known' for AMD vendor?

@TheTumultuousUnicornOfDarkness
Copy link
Owner

I am not sure to understand your issue without any CPU-X output.
Please run the cpu-x --issue-fmt (or ./CPU-X-vx.y.z-aaa.AppImage --issue-fmt for AppImage) as root and attach both /tmp/cpu-x.log and /tmp/cpu-x-daemon.log files here.

@realyukii
Copy link
Author

actually it's not an issue, it's more like a question, I'm sorry if this is not a appropriate place to ask

@TheTumultuousUnicornOfDarkness
Copy link
Owner

Thanks for the logs, it seems there is a bug for me.
So you have an AMD Ryzen 9 7940HS CPU with a Radeon 780M iGPU, using Mesa as user-mode driver (UMD) and amdgpu as kernel driver.
But you have also a NVIDIA GeForce RTX 4070 using the proprietary driver, and it does not report an user-mode driver for this one.

Maybe it is a stupid question, but do you have installed drivers for your GeForce RTX 4070?

@realyukii
Copy link
Author

realyukii commented Feb 17, 2025

it seems there is a bug for me.

is the log: 'Your GPU user mode driver is unknown for vendor AMD: 4.6 (Compatibility Profile) Mesa 24.3.4-arch1.1' a bug?

Maybe it is a stupid question, but do you have installed drivers for your GeForce RTX 4070?

Err.. I'm not sure, how do I check if I have user mode driver for nvidia? does vulkan counted as one of them?

@realyukii
Copy link
Author

after checking on the Internet about UMD for nvidia proprietary driver, I guess I have installed it:

$ find / -iname "*libGLX_nvidia*" 2>/dev/null
/usr/lib/libGLX_nvidia.so.0
/usr/lib/libGLX_nvidia.so.570.86.16
/usr/lib/libGLX_nvidia.so
$ pacman -Qo /usr/lib/libGLX_nvidia.so.0
/usr/lib/libGLX_nvidia.so.0 is owned by nvidia-utils 570.86.16-2

But you have also a NVIDIA GeForce RTX 4070 using the proprietary driver, and it does not report an user-mode driver for this one.

and yeah the cpu-x shows empty/blank in the UMD version:

Image

@TheTumultuousUnicornOfDarkness
Copy link
Owner

it seems there is a bug for me.

is the log: 'Your GPU user mode driver is unknown for vendor AMD: 4.6 (Compatibility Profile) Mesa 24.3.4-arch1.1' a bug?

It depends:

  • if UMD is not installed, the warning is purely informative and intended for user
  • if UMD is installed, the warning shows CPU-X is not able to detect it, so it may be a bug somewhere, but I need to investigate

after checking on the Internet about UMD for nvidia proprietary driver, I guess I have installed it

Indeed.

But you have also a NVIDIA GeForce RTX 4070 using the proprietary driver, and it does not report an user-mode driver for this one.

and yeah the cpu-x shows empty/blank in the UMD version:

FYI you don't need to provide a screenshot since everything is present in cpu-x.log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants