pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Chat about Linux in general
Forum rules
Do not post support questions here. Before you post read the forum rules. Topics in this forum are automatically closed 6 months after creation.
Locked
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

A new upgrade to the inxi graphics API feature is in final testing stage.

To test/give feedback/find issues, install or update pinxi:

Code: Select all

# to update installed: 
pinxi -U

# to install:
cd /usr/local/bin && sudo wget -O pinxi smxi.org/pinxi && sudo chmod +x pinxi
This came about because I had been waiting for EGL tools, but missed that OpenGL 4.6 in ~2019 started shipping with eglinfo, which I'd been waiting for because OpenGL GLX is X only, and inxi depended on glxinfo completely for its API feature. I knew this was an issue because Wayland uses EGL, leaving GLX as a legacy that might be supported via Xwayland, but the slow creep of Wayland had made this one of the long term most pressing inxi issues.

A fortunate github issue requesting Vulkan supprt, which I had very little idea about, and wasn't interested in initially, led me to discover first, vulkaninfo, then a bit later, eglinfo, at which point I realized the time for EGL support had come, and might as well toss in Vulkan.

One positive result is that OpenGL report is now much more granular, though there may be some corner case failures there because it's trying to do far more than the old version did, and is working with EGL data as well. It also has new OpenGL data types, like GPU memory info, and also shows the display-ID if it did not find it using the tool tests for Display line.

to see your vulkan support, you need to install these packages:

Code: Select all

apt install vulkan-tools mesa-vulkan-drivers
glxinfo is in mesa-utils package, in Debian eglinfo is also in mesa-utils, and in ubuntu, it's in mesa-utils-extra. I"m not clear why ubuntu considers it an extra when egl is core, and eglinfo is a mesa utility.

If you want to read up:
https://en.wikipedia.org/wiki/Mesa_(computer_graphics)
https://www.mesa3d.org/
https://blogs.igalia.com/cmichael/2022/ ... adventure/
https://utcc.utoronto.ca/~cks/space/blo ... XAndOpenGL

The key takeaway, which I was not aware of, is that of course, GLX is not a thing on Wayland, so that had no future. Second, and this I did not know, the Mesa group has the goal of making Vulkan the core graphics API across platform, but given it's a much more difficult API to work with, that progress is slow, but it's also a much faster API since it does direct GPU hardware access. Since both EGL and Vulkan are relative newcomers, older drivers from what I can see do not work in terms of direct hardware rendering for Vulkan, and maybe not for EGL, not sure.

So the tentative plan is let GLX API fade slowly away, to be automatically replaced in inxi by EGL, then as Vulkan gets more dominant, to have Vulkan start appearing as an API.

For -G, currently all 3 will appear if their info tools are installed, and if X11, OpenGL will generate the familiar set of missing/ no data messages, and if Wayland, those will be for EGL.

To avoid excessive verbosity, Vulkan does not show for basic mode like -b, -v1 - -v 4.

I've been aware of this pressing issue for many years, but had just missed that eglinfo started shipping with OpenGL at version 4.6, and vulkan I had thought was some gaming only thing (the reason it's currently mostly only gaming is the drivers are very difficult to write from what I understand, or the API connections are hard to write, not sure, not because it's a gaming only thing, it's just that gaming wants that performance edge so they use the resources to support vulkan). But the long term plan of Mesa is for vulkan to be it, at least that's what they say.

Code: Select all

pinxi -G --vs
pinxi 3.3.29-25 (2023-09-13)
Graphics:
  Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] driver: radeon
    v: kernel
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9 driver: X:
    loaded: modesetting dri: r600 gpu: radeon resolution: 1: 1280x1024~60Hz
    2: 1280x1024~60Hz
  API: EGL v: 1.4,1.5 drivers: kms_swrast,r600,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.5 vendor: x.org mesa v: 22.3.6 renderer: AMD CEDAR (DRM
    2.50.0 / 6.4.3-1-liquorix-amd64 LLVM 15.0.6)
  API: Vulkan v: 1.3.250 drivers: llvmpipe surfaces: xcb,xlib
  
  pinxi -Gx
Graphics:
  Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine
    driver: radeon v: kernel arch: TeraScale-2 bus-ID: 0a:00.0 temp: 58.5 C
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9 driver: X:
    loaded: modesetting dri: r600 gpu: radeon resolution: 1: 1280x1024~60Hz
    2: 1280x1024~60Hz
  API: EGL v: 1.4,1.5 drivers: kms_swrast,r600,swrast platforms:
    active: gbm,x11,surfaceless,device inactive: wayland
  API: OpenGL v: 4.5 vendor: x.org mesa v: 22.3.6 glx-v: 1.4
    direct-render: yes renderer: AMD CEDAR (DRM 2.50.0 / 6.4.3-1-liquorix-amd64
    LLVM 15.0.6)
  API: Vulkan v: 1.3.250 drivers: llvmpipe surfaces: xcb,xlib devices: 1
  
  pinxi -Gxx
Graphics:
  Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine
    driver: radeon v: kernel arch: TeraScale-2 pcie: speed: 2.5 GT/s lanes: 16
    ports: active: DVI-I-1,VGA-1 empty: HDMI-A-1 bus-ID: 0a:00.0
    chip-ID: 1002:68f9 temp: 58.0 C
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9
    compositor: xfwm v: 4.18.0 driver: X: loaded: modesetting dri: r600
    gpu: radeon display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 2560x1024 s-dpi: 96
  Monitor-1: DVI-I-1 pos: primary,left model: Samsung SyncMaster
    res: 1280x1024 dpi: 96 diag: 433mm (17")
  Monitor-2: VGA-1 pos: right model: Dell 1908FP res: 1280x1024 dpi: 86
    diag: 482mm (19")
  API: EGL v: 1.5 platforms: device: 0 drv: r600 device: 1 drv: swrast gbm:
    egl: 1.4 drv: kms_swrast surfaceless: drv: r600 x11: drv: r600
    inactive: wayland
  API: OpenGL v: 4.5 vendor: x.org mesa v: 22.3.6 glx-v: 1.4 es-v: 3.1
    direct-render: yes renderer: AMD CEDAR (DRM 2.50.0 / 6.4.3-1-liquorix-amd64
    LLVM 15.0.6) device-ID: 1002:68f9
  API: Vulkan v: 1.3.250 surfaces: xcb,xlib device: 0 type: cpu
    driver: mesa llvmpipe device-ID: 10005:0000
    
    pinxi -Gxxx
Graphics:
  Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine
    driver: radeon v: kernel arch: TeraScale-2 pcie: speed: 2.5 GT/s lanes: 16
    ports: active: DVI-I-1,VGA-1 empty: HDMI-A-1 bus-ID: 0a:00.0
    chip-ID: 1002:68f9 class-ID: 0300 temp: 58.0 C
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9
    compositor: xfwm v: 4.18.0 driver: X: loaded: modesetting dri: r600
    gpu: radeon display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 2560x1024 s-dpi: 96 s-size: 677x270mm (26.65x10.63")
    s-diag: 729mm (28.7")
  Monitor-1: DVI-I-1 pos: primary,left model: Samsung SyncMaster
    serial: H9NX842662 res: 1280x1024 hz: 60 dpi: 96
    size: 338x270mm (13.31x10.63") diag: 433mm (17") modes: max: 1280x1024
    min: 720x400
  Monitor-2: VGA-1 pos: right model: Dell 1908FP serial: G434H87HRA2D
    res: 1280x1024 hz: 60 dpi: 86 size: 376x301mm (14.8x11.85")
    diag: 482mm (19") modes: max: 1280x1024 min: 720x400
  API: EGL v: 1.5 hw: drv: amd r600 platforms: device: 0 drv: r600 device: 1
    drv: swrast gbm: egl: 1.4 drv: kms_swrast surfaceless: drv: r600 x11:
    drv: r600 inactive: wayland
  API: OpenGL v: 4.5 vendor: x.org mesa v: 22.3.6 glx-v: 1.4 es-v: 3.1
    direct-render: yes renderer: AMD CEDAR (DRM 2.50.0 / 6.4.3-1-liquorix-amd64
    LLVM 15.0.6) device-ID: 1002:68f9
  API: Vulkan v: 1.3.250 layers: 3 surfaces: xcb,xlib device: 0 type: cpu
    driver: mesa llvmpipe device-ID: 10005:0000
    
    pinxi -Ga
Graphics:
  Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine
    driver: radeon v: kernel alternate: amdgpu arch: TeraScale-2 code: Evergreen
    process: TSMC 32-40nm built: 2009-15 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 2 speed: 5 GT/s ports: active: DVI-I-1,VGA-1
    empty: HDMI-A-1 bus-ID: 0a:00.0 chip-ID: 1002:68f9 class-ID: 0300
    temp: 59.0 C
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9
    compositor: xfwm v: 4.18.0 driver: X: loaded: modesetting dri: r600
    gpu: radeon display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 2560x1024 s-dpi: 96 s-size: 677x270mm (26.65x10.63")
    s-diag: 729mm (28.7")
  Monitor-1: DVI-I-1 pos: primary,left model: Samsung SyncMaster
    serial: H9NX842662 built: 2004 res: 1280x1024 hz: 60 dpi: 96 gamma: 1.2
    size: 338x270mm (13.31x10.63") diag: 433mm (17") ratio: 5:4 modes:
    max: 1280x1024 min: 720x400
  Monitor-2: VGA-1 pos: right model: Dell 1908FP serial: G434H87HRA2D
    built: 2008 res: 1280x1024 hz: 60 dpi: 86 gamma: 1.4
    size: 376x301mm (14.8x11.85") diag: 482mm (19") ratio: 5:4 modes:
    max: 1280x1024 min: 720x400
  API: EGL v: 1.5 hw: drv: amd r600 platforms: device: 0 drv: r600 device: 1
    drv: swrast gbm: egl: 1.4 drv: kms_swrast surfaceless: drv: r600 x11:
    drv: r600 inactive: wayland
  API: OpenGL v: 4.5 vendor: x.org mesa v: 22.3.6 glx-v: 1.4 es-v: 3.1
    direct-render: yes renderer: AMD CEDAR (DRM 2.50.0 / 6.4.3-1-liquorix-amd64
    LLVM 15.0.6) device-ID: 1002:68f9 memory: 1000 MiB unified: no
  API: Vulkan v: 1.3.250 layers: 3 device: 0 type: cpu name: llvmpipe (LLVM
    15.0.6 256 bits) driver: mesa llvmpipe v: 22.3.6 (LLVM 15.0.6)
    device-ID: 10005:0000 surfaces: xcb,xlib
    
    pinxi -bz
System:
  Kernel: 6.4.3-1-liquorix-amd64 arch: x86_64 bits: 64 Desktop: Xfce v: 4.18.1
    Distro: Debian GNU/Linux trixie/sid
Machine:
  Type: Desktop System: Gigabyte product: X470 AORUS ULTRA GAMING v: N/A
    serial: <superuser required>
  Mobo: Gigabyte model: X470 AORUS ULTRA GAMING-CF
    serial: <superuser required> BIOS: American Megatrends LLC. v: F62d
    date: 10/13/2021
CPU:
  Info: 6-core AMD Ryzen 5 2600 [MT MCP] speed (MHz): avg: 1833
    min/max: 1550/3400
Graphics:
  Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] driver: radeon
    v: kernel
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9 driver: X:
    loaded: modesetting dri: r600 gpu: radeon resolution: 1: 1280x1024~60Hz
    2: 1280x1024~60Hz
  API: OpenGL v: 4.5 vendor: x.org mesa v: 22.3.6 renderer: AMD CEDAR (DRM
    2.50.0 / 6.4.3-1-liquorix-amd64 LLVM 15.0.6)
Network:
  Device-1: Intel I211 Gigabit Network driver: igb
  Device-2: Ralink MT7601U Wireless Adapter driver: mt7601u type: USB
Drives:
  Local Storage: total: 3.58 TiB used: 2.1 TiB (58.6%)
Info:
  Processes: 498 Uptime: 2d 23h 53m Memory: total: N/A available: 31.27 GiB
  used: 10.37 GiB (33.2%) Shell: Bash pinxi: 3.3.29-25
One of the advantages I found with EGL and Vulkan is that they supply at least some data in console, out of Display,, and in some cases, with some drivers (it appears to be maybe drivers, not sure), EGL actually supplies OpenGL data out of X. Not on my system, I think r600 AMD are too legacy, but on this, via SSH system:

Code: Select all

pinxi -Gazy
Graphics:
  Device-1: ASPEED Graphics Family vendor: Super Micro driver: ast v: kernel
    ports: active: VGA-1 empty: none bus-ID: 12:00.0 chip-ID: 1a03:2000
    class-ID: 0300
  Display: server: X.org v: 1.21.1.8 with: Xwayland v: 23.1.1 driver: X:
    loaded: modesetting,radeon unloaded: fbdev,vesa dri: radeonsi gpu: ast
    tty: 106x40
  Monitor-1: VGA-1 model: AOC Q27P1B serial: <filter> built: 2020
    res: 1920x1080 dpi: 82 gamma: 1.2 size: 597x336mm (23.5x13.23")
    diag: 685mm (27") ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 platforms: device: 0 drv: swrast gbm: drv: kms_swrast
    surfaceless: drv: swrast inactive: wayland,x11
  API: OpenGL v: 4.5 vendor: mesa v: 23.0.3 note: console (EGL sourced)
    renderer: llvmpipe (LLVM 15.0.7 256 bits)
    
    # or this remote server which oddly is running X at least in theory:
   pinxi -Gazy
Graphics:
  Device-1: ASPEED Graphics Family vendor: Super Micro driver: ast v: kernel
    ports: active: VGA-1 empty: none bus-ID: 06:00.0 chip-ID: 1a03:2000
    class-ID: 0300
  Display: server: X.org v: 1.21.1.4 driver: gpu: ast tty: 106x40
  Monitor-1: VGA-1 size-res: N/A in console modes: max: 1024x768 min: 640x480
  API: EGL v: N/A platforms: active: N/A inactive: gbm,wayland,x11,device
  API: OpenGL Message: GL data unavailable in console. Try -G --display 
Anyway, to me, this is getting too verbose, but I couldn't figure out any clean way to both show the requested API data, to support the growing, slowly, Wayland via EGL, and not show it, so except for basic output modes like -b, inxi is just showing everything it finds if it thinks it's relevant.

In the last case, for example, because the people who set up the server made a bit of an error and installed X.org, inxi assumes glxinfo is unable to create output because its in console, and EGL noted all the available surfaces are inactive (it calls it 'failed' but from what I can see, it's more accurate to say inactive, since it can't be active due to some factor or other, driver issue, not in Display, it varies..

An aside re Wayland vs X.org
You may have noticed how incredibly long the transition to Wayland has been, to me, that's at least in part due to a fundamental error Wayland devs made when creating the protocol, which was to not require consistent debugger/data collectors from all wayland compositors, instead leaving that to each one, to do as they felt like, or not do, making overall wayland support extremely problematic in terms of debugging.

For example, I still am not aware of any CLI Enlightenment, Gnome, KDE wayland data tools. Weston, the reference wayland compostior, has one, and wl-roots, the sway originated library that drives many if not most of the other compositors out there, have good data, relatively speaking.

I mention this because as of yet, there are no replacements for xrandr, xdpyinfo that I am aware of for wayland compositors, leaving these things to each individual implementations, which basically makes support essentially impossible.

For the historically minded, I did not know this, but learned it a while back, X.org is actually the reference X protocol server, but unlike wayland compositors, where weston is the reference, but nobody uses it to speak of, the reference conveniently in the case of x11 protocol, also became the default server, making debugging and support much easier.

this makes any type of debugging a real pain, inxi for example has to have parsers for wl-roots, weston, and I think one other compositor to collect data and show it, and objectively, this means that probably only 5$% of wayland systems are supported fully by inxi.

So EGL was at least one step to help correct at least this one area, though EGL does not really offer information that is that interesting, more to just see what drivers and EGL versions are running on each EGL 'platform'.
Last edited by LockBot on Fri Mar 15, 2024 10:00 pm, edited 3 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

I guess I won't post on Mint for new features testing anymore, which is fine. This is not a 'chat about linux' topic. It's a technical development issue, where I'm attempting to give Mint users and developers early access to new features which may impact their users.

Anyway, it was worth a try, given how involved Mint was with inxi/pinxi development in the past.
User avatar
SMG
Level 25
Level 25
Posts: 32007
Joined: Sun Jul 26, 2020 6:15 pm
Location: USA

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by SMG »

h2-1 wrote: Sat Sep 16, 2023 2:16 pmIt's a technical development issue, where I'm attempting to give Mint users and developers early access to new features which may impact their users.
That is why it was moved out of Software & Applications which is the forum for soliciting help with specific problems one is having with applications running on Linux Mint. From a forums standpoint, the topic is probably in the area between Programming & Development and Chat about Linux.

I have not yet had a chance to go through the entire post, but hopefully others will also have interest in this. I've seen mention of downloading vulkan tools both in the Gaming forum and the Graphics Cards & Monitors forum so I know there is current interest in it. (I don't game so I can't really speak to how they are using it.)
Image
A woman typing on a laptop with LM20.3 Cinnamon.
User avatar
SMG
Level 25
Level 25
Posts: 32007
Joined: Sun Jul 26, 2020 6:15 pm
Location: USA

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by SMG »

h2-1 wrote: Fri Sep 15, 2023 3:07 pm

Code: Select all

# to install:
cd /usr/local/bin && wget -O pinxi smxi.org/pinxi && chmod +x pinxi
I'm getting

Code: Select all

pinxi: Permission denied
Is there something in addition to what is listed that I need to do?
Image
A woman typing on a laptop with LM20.3 Cinnamon.
t42
Level 11
Level 11
Posts: 3747
Joined: Mon Jan 20, 2014 6:48 pm

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by t42 »

SMG wrote: Sat Sep 16, 2023 10:23 pm pinxi: Permission denied
It is simpler for one-liner to run from root terminal. In LM 21.1:

Code: Select all

~$ sudo -i
        
# cd /usr/local/bin && wget -O pinxi smxi.org/pinxi && chmod +x pinxi
--2023-09-17 09:24:38--  http://smxi.org/pinxi
Resolving smxi.org (smxi.org)... 216.92.30.83
Connecting to smxi.org (smxi.org)|216.92.30.83|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://smxi.org/pinxi [following]
--2023-09-17 09:24:38--  https://smxi.org/pinxi
Connecting to smxi.org (smxi.org)|216.92.30.83|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/smxi/inxi/raw/inxi-perl/pinxi [following]
--2023-09-17 09:24:39--  https://github.com/smxi/inxi/raw/inxi-perl/pinxi
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/smxi/inxi/inxi-perl/pinxi [following]
--2023-09-17 09:24:40--  https://raw.githubusercontent.com/smxi/inxi/inxi-perl/pinxi
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.111.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1260921 (1,2M) [text/plain]
Saving to: ‘pinxi’

pinxi                                                      100%[========================================================================================================================================>]   1,20M   113KB/s    in 11s     

2023-09-17 09:24:52 (117 KB/s) - ‘pinxi’ saved [1260921/1260921]

# exit
logout

~$ pinxi 
CPU: 6-core AMD Ryzen 5 5600G with Radeon Graphics (-MT MCP-)
speed/min/max: 2467/1400/4464 MHz Kernel: 6.2.11-060211-generic x86_64 Up: 3m
Mem: 1.74/30.71 GiB (5.7%) Storage: 2.27 TiB (5.6% used) Procs: 349
Shell: Bash pinxi: 3.3.29-25
-=t42=-
User avatar
SMG
Level 25
Level 25
Posts: 32007
Joined: Sun Jul 26, 2020 6:15 pm
Location: USA

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by SMG »

t42 wrote: Sun Sep 17, 2023 3:31 amIt is simpler for one-liner to run from root terminal. In LM 21.1:
Thank you.
I had thought of using sudo last night, but in my I-should-have-been-in-bed-already state my brain wasn't immediately seeing why and I didn't want to just blindly add sudo to it. The light of day brings the obvious to mind.
Image
A woman typing on a laptop with LM20.3 Cinnamon.
User avatar
SMG
Level 25
Level 25
Posts: 32007
Joined: Sun Jul 26, 2020 6:15 pm
Location: USA

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by SMG »

h2-1 wrote: Fri Sep 15, 2023 3:07 pmto see your vulkan support, you need to install these packages:

Code: Select all

apt install vulkan-tools mesa-vulkan-drivers
elginfo and glxinfo are in mesa-utils package.
I'm currently running LM20.3 (based on Ubuntu 20.04). Both mesa-vulkan-drivers and mesa-utils are part of the Linux Mint installation.

I decided to run the same commands you did before installing vulkan-tools just to see the difference. However, I didn't get any EGL data. I received: EGL Message: EGL data requires eglinfo. Check --recommends.

Code: Select all

   pinxi -G --vs
pinxi 3.3.29-25 (2023-09-13)
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6
    renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
  API: EGL Message: EGL data requires eglinfo. Check --recommends.

    pinxi -Gx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 bus-ID: 00:02.0
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
  API: EGL Message: EGL data requires eglinfo. Check --recommends.

   pinxi -Gxx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 ports:
    active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
    VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0106
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 res: 1366x768 dpi: 118
    diag: 336mm (13.2")
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
  
   pinxi -Gxxx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 ports:
    active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
    VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 res: 1366x768 hz: 60 dpi: 118
    size: 293x164mm (11.54x6.46") diag: 336mm (13.2") modes: 1366x768
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106
  API: EGL Message: EGL data requires eglinfo. Check --recommends.

   pinxi -Ga
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 code: Sandybridge
    process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2,
    DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 built: 2009 res: 1366x768
    hz: 60 dpi: 118 gamma: 1.2 size: 293x164mm (11.54x6.46") diag: 336mm (13.2")
    ratio: 16:9 modes: 1366x768
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106 memory: 1.46 GiB unified: yes
  API: EGL Message: EGL data requires eglinfo. Check --recommends.

   pinxi -bz
System:
  Kernel: 5.4.0-162-generic arch: x86_64 bits: 64 Desktop: Cinnamon v: 5.2.7
    Distro: Linux Mint 20.3 Una
Machine:
  Type: Laptop System: Hewlett-Packard product: HP 6360t v: A0000007
    serial: <superuser required>
  Mobo: Hewlett-Packard model: 177C v: KBC Version 97.40
    serial: <superuser required> BIOS: Hewlett-Packard v: 68SCE Ver. F.03
    date: 04/27/2011
Battery:
  ID-1: BAT0 charge: 64.2 Wh (97.6%) condition: 65.8/65.8 Wh (100.0%)
CPU:
  Info: dual core Intel Celeron B810 [MCP] speed (MHz): avg: 813
    min/max: 800/1600
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6
    renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
Network:
  Device-1: Intel 82579V Gigabit Network driver: e1000e
  Device-2: Broadcom BCM43224 802.11a/b/g/n driver: wl
Drives:
  Local Storage: total: 111.79 GiB used: 27.29 GiB (24.4%)
Info:
  Processes: 246 Uptime: 11d 3h 42m Memory: total: 4 GiB available: 3.76 GiB
  used: 2.81 GiB (74.8%) Shell: Bash pinxi: 3.3.29-25

pinxi -Gazy
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 code: Sandybridge
    process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2,
    DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 built: 2009 res: 1366x768
    hz: 60 dpi: 118 gamma: 1.2 size: 293x164mm (11.54x6.46") diag: 336mm (13.2")
    ratio: 16:9 modes: 1366x768
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106 memory: 1.46 GiB unified: yes
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
I added vulkan-tools and that added vulkan to my output, but no EGL info. Here is just the first one because I decided to go in search of EGL.

Code: Select all

pinxi -G --vs
pinxi 3.3.29-25 (2023-09-13)
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6
    renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
  API: Vulkan v: 1.2.131 drivers: N/A surfaces: xcb,xlib
  API: EGL Message: EGL data requires eglinfo. Check --recommends.

I ran pinxi --recommends and it indicated eglinfo was missing and indicated it should be in mesa-utils. :? I have version 8.4.0-1build1 of mesa-utils installed.

Code: Select all

pinxi --recommends
pinxi will now begin checking for the programs it needs to operate.

Check pinxi --help or the man page (man pinxi) to see what options are 
available. 
------------------------------------------------------------------------------
Test: core tools:

Perl version:  5.030000
Current shell: Bash 5.0.17
Default shell: bash
sh links to: /usr/bin/dash
Package manager: apt
------------------------------------------------------------------------------
Test: required system directories:

/proc: ........................................................... Present
/sys: ............................................................ Present

All required system directories are present
------------------------------------------------------------------------------
Test: recommended system programs:

Note: IPMI sensors are generally only found on servers. To access that data, 
you only need one of the ipmi items. 

blockdev: --admin -p/-P (filesystem blocksize).................... Present
bt-adapter: -E bluetooth data (if no hciconfig, btmgmt)........... Present
btmgmt: -E bluetooth data (if no hciconfig)....................... Present
dig: -i wlan IP................................................... Present
dmidecode: -M if no sys machine data; -m.......................... Present
doas: -Dx hddtemp-user; -o file-user (alt for sudo)............... Missing
fdisk: -D partition scheme (fallback)............................. Present
file: -o unmounted file system (if no lsblk)...................... Present
fruid_print: -M machine data, Elbrus only......................... Missing
hciconfig: -E bluetooth data (deprecated, good report)............ Present
hddtemp: -Dx show hdd temp, if no drivetemp module................ Present
ifconfig: -i ip LAN (deprecated).................................. Present
ip: -i ip LAN..................................................... Present
ipmitool: -s IPMI sensors (servers)............................... Missing
ipmi-sensors: -s IPMI sensors (servers)........................... Missing
lsblk: -L LUKS/bcache; -o unmounted file system (best option)..... Present
lsusb: -A usb audio; -J (optional); -N usb networking............. Present
lvs: -L LVM data.................................................. Present
mdadm: -Ra advanced mdraid data................................... Missing
modinfo: Ax; -Nx module version................................... Present
runlevel: -I fallback to Perl..................................... Present
sensors: -s sensors output (optional, /sys supplies most)......... Present
smartctl: -Da advanced data....................................... Missing
strings: -I sysvinit version...................................... Present
sudo: -Dx hddtemp-user; -o file-user (try doas!).................. Present
tree: --debugger 20,21 /sys tree.................................. Missing
upower: -sx attached device battery info.......................... Present
uptime: -I uptime................................................. Present

The following recommended system programs are missing:
doas
 apt: doas
fruid_print
 apt: N/A
ipmitool
 apt: ipmitool
ipmi-sensors
 apt: freeipmi-tools
mdadm
 apt: mdadm
smartctl
 apt: smartmontools
tree
 apt: tree
------------------------------------------------------------------------------
Test: recommended display information programs:

eglinfo: -G X11/Wayland EGL info.................................. Missing
glxinfo: -G X11 GLX info.......................................... Present
vulkaninfo: -G Vulkan API info.................................... Present
wmctrl: -S active window manager (fallback)....................... Present
xdpyinfo: -G (X) Screen resolution, dpi; -Ga Screen size.......... Present
xprop: -S (X) desktop data........................................ Present
xdriinfo: -G (X) DRI driver (if missing, fallback to Xorg log).... Present
xrandr: -G (X) monitors(s) resolution; -Ga monitor data........... Present

The following recommended display information programs are missing:
eglinfo
 apt: mesa-utils
------------------------------------------------------------------------------
Test: recommended downloader programs (You only need one of these):

Perl HTTP::Tiny is the default downloader tool if IO::Socket::SSL is present. 
See --help --alt 40-44 options for how to override default downloader(s) in 
case of issues. 

If dig is installed, it is the default for WAN IP data. Strongly recommended. 
Dig is fast and accurate. 

curl: -i (if no dig); -w,-W; -U................................... Present
dig: -i wlan IP................................................... Present
wget: -i (if no dig); -w,-W; -U................................... Present

All recommended downloader programs are present
------------------------------------------------------------------------------
Test: recommended kernel modules:

GPU modules are only needed if applicable. NVMe drives do not need drivetemp 
but other types do. 

To load a module: modprobe <module-name> - To permanently load add to 
/etc/modules or /etc/modules-load.d/modules.conf (check your system paths for 
exact file/directory names). 

amdgpu: -s, -G AMD GPU sensor data (newer GPUs)................... Missing
drivetemp: -Dx drive temperature (kernel >= 5.6).................. Missing
nouveau: -s, -G Nvidia GPU sensor data (if using free driver)..... Missing
radeon: -s, -G AMD GPU sensor data (older GPUs)................... Missing

The following recommended kernel modules are missing:
amdgpu
drivetemp
nouveau
radeon
------------------------------------------------------------------------------
Test: recommended Perl modules (Optional):

None of these are strictly required, but if you have them all, you can 
eliminate some recommended non Perl programs from the install. 

HTTP::Tiny and IO::Socket::SSL must both be present to use as a downloader 
option. For json export Cpanel::JSON::XS is preferred over JSON::XS, but 
JSON::PP is in core modules. To run --debug 20-22 File::Copy, File::Find, and 
File::Spec::Functions must be present (most distros have these in Core 
Modules). 

File::Copy: --debug 20-22 - required for debugger................. Present
File::Find: --debug 20-22 - required for debugger................. Present
File::Spec::Functions: --debug 20-22 - required for debugger...... Present
HTTP::Tiny: -U; -w,-W; -i (if dig not installed).................. Present
IO::Socket::SSL: -U; -w,-W; -i (if dig not installed)............. Present
Time::HiRes: -C cpu sleep (not required); --debug timers.......... Present
JSON::PP: -G wayland, --output json (in CoreModules, slower)...... Present
Cpanel::JSON::XS: -G wayland, --output json (faster).............. Present
JSON::XS: -G wayland, --output json (legacy)...................... Missing
XML::Dumper: --output xml - Crude and raw......................... Missing
Net::FTP: --debug 21,22........................................... Present

The following recommended Perl modules are missing:
JSON::XS
 apt: libjson-xs-perl
XML::Dumper
 apt: libxml-dumper-perl
------------------------------------------------------------------------------
Test: recommended directories:

/dev: -l,-u,-o,-p,-P,-D disk partition data....................... Present
/dev/disk/by-id: -D serial numbers................................ Present
/dev/disk/by-label: -l,-o,-p,-P partition labels.................. Missing
/dev/disk/by-path: -D extra data.................................. Present
/dev/disk/by-uuid: -u,-o,-p,-P partition uuid..................... Present
/sys/class/dmi/id: -M system, motherboard, bios................... Present
/sys/class/hwmon: -s sensor data (fallback if no lm-sensors)...... Present

The following recommended directories are missing:
/dev/disk/by-label
------------------------------------------------------------------------------
Test: recommended files:

Note that not all of these are used by every system, so if one is missing it's 
usually not a big deal. 

/etc/lsb-release: -S distro version data (older version).......... Present
/etc/os-release: -S distro version data (newer version)........... Present
/proc/asound/cards: -A sound card data............................ Present
/proc/asound/version: -A ALSA data................................ Present
/proc/cpuinfo: -C cpu data........................................ Present
/proc/mdstat: -R mdraid data (if you use dm-raid)................. Present
/proc/meminfo: -I,-tm, -m memory data............................. Present
/proc/modules: -G module data (sometimes)......................... Present
/proc/mounts: -P,-p partition advanced data....................... Present
/proc/scsi/scsi: -D Advanced hard disk data (used rarely)......... Present
/var/log/Xorg.0.log: -G graphics driver load status............... Present

All recommended files are present
------------------------------------------------------------------------------
Ok, all done with the checks. Have a nice day.
Checking jammy (instead of focal) on the mesa-utils link I just provided I noticed its description and listing are different so apparently the packaging changed between Ubuntu 20.04 and 22.04.

I went checking Synaptic Package Manager and noticed there is mesa-utils-extra package listed. Description is "Miscellaneous Mesa utilies (opengles, egl)" and "This package provides several basic utilities built from Mesa, including es2gears, es2_info and es2tri".

When I searched on it, I found Package mesa-utils-extra which appears to indicate what is "extra" in my focal/Ubuntu 20.04 version is now included in "mesa-utils" for jammy/Ubuntu 22.04.

I installed mesa-utils-extra and the EGL message disappeared.

Code: Select all

pinxi -G --vs
pinxi 3.3.29-25 (2023-09-13)
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: EGL v: 1.4 drivers: N/A platforms: gbm,x11
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6
    renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
  API: Vulkan v: 1.2.131 drivers: N/A surfaces: xcb,xlib
  
   pinxi -Gx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 bus-ID: 00:02.0
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: EGL v: 1.4 drivers: N/A platforms: active: gbm,x11
    inactive: wayland,device
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
  API: Vulkan v: 1.2.131 drivers: N/A surfaces: xcb,xlib devices: 1
  
    pinxi -Gxx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 ports:
    active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
    VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0106
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 res: 1366x768 dpi: 118
    diag: 336mm (13.2")
  API: EGL v: 1.4 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106
  API: Vulkan v: 1.2.131 surfaces: xcb,xlib device: 0 type: cpu driver: N/A
    device-ID: 10005:0000
    
    pinxi -Gxxx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 ports:
    active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
    VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 res: 1366x768 hz: 60 dpi: 118
    size: 293x164mm (11.54x6.46") diag: 336mm (13.2") modes: 1366x768
  API: EGL v: 1.4 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106
  API: Vulkan v: 1.2.131 layers: 3 surfaces: xcb,xlib device: 0 type: cpu
    driver: N/A device-ID: 10005:0000
    
    pinxi -Ga
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 code: Sandybridge
    process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2,
    DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 built: 2009 res: 1366x768
    hz: 60 dpi: 118 gamma: 1.2 size: 293x164mm (11.54x6.46") diag: 336mm (13.2")
    ratio: 16:9 modes: 1366x768
  API: EGL v: 1.4 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106 memory: 1.46 GiB unified: yes
  API: Vulkan v: 1.2.131 layers: 3 device: 0 type: cpu name: llvmpipe (LLVM
    12.0.0 128 bits) driver: N/A device-ID: 10005:0000 surfaces: xcb,xlib
    
    pinxi -bz
System:
  Kernel: 5.4.0-162-generic arch: x86_64 bits: 64 Desktop: Cinnamon v: 5.2.7
    Distro: Linux Mint 20.3 Una
Machine:
  Type: Laptop System: Hewlett-Packard product: HP 6360t v: A0000007
    serial: <superuser required>
  Mobo: Hewlett-Packard model: 177C v: KBC Version 97.40
    serial: <superuser required> BIOS: Hewlett-Packard v: 68SCE Ver. F.03
    date: 04/27/2011
Battery:
  ID-1: BAT0 charge: 64.2 Wh (97.6%) condition: 65.8/65.8 Wh (100.0%)
CPU:
  Info: dual core Intel Celeron B810 [MCP] speed (MHz): avg: 798
    min/max: 800/1600
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915
    resolution: 1366x768~60Hz
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6
    renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1)
Network:
  Device-1: Intel 82579V Gigabit Network driver: e1000e
  Device-2: Broadcom BCM43224 802.11a/b/g/n driver: wl
Drives:
  Local Storage: total: 111.79 GiB used: 27.29 GiB (24.4%)
Info:
  Processes: 255 Uptime: 11d 9h 13m Memory: total: 4 GiB available: 3.76 GiB
  used: 3.08 GiB (81.8%) Shell: Bash pinxi: 3.3.29-25
  
  pinxi -Gazy
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 code: Sandybridge
    process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2,
    DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.20.13 with: Xwayland driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: i965 gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 built: 2009 res: 1366x768
    hz: 60 dpi: 118 gamma: 1.2 size: 293x164mm (11.54x6.46") diag: 336mm (13.2")
    ratio: 16:9 modes: 1366x768
  API: EGL v: 1.4 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 compat-v: 3.0 vendor: intel mesa v: 21.2.6 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa DRI Intel HD Graphics 2000 (SNB
    GT1) device-ID: 8086:0106 memory: 1.46 GiB unified: yes
  API: Vulkan v: 1.2.131 layers: 3 device: 0 type: cpu name: llvmpipe (LLVM
    12.0.0 128 bits) driver: N/A device-ID: 10005:0000 surfaces: xcb,xlib
I don't know if you needed all those outputs, but I ran them so I posted them. I believe the dri changed for my GPU between focal and jammy so I plan to test this data on a live session of LM21.2 and see how it compares. If that might be helpful/of interest, let me know and I will post it.

Hopefully, someone with newer hardware will post their information.

I would also be interested to see how Optimus-style dual-GPUs show up. While the current inxi does have a field for GPU, only some computers list both GPUs in the output. I have not yet seen a pattern to know specifically why it happens, but it happens even though renderers for both GPUs are loaded when we check Xorg log. Usually, if the computer is a desktop then both the onboard and discrete will list in the GPU field. If it is a laptop in On-demand mode (where both renderers are loaded), it might or might not have both listed.
Image
A woman typing on a laptop with LM20.3 Cinnamon.
t42
Level 11
Level 11
Posts: 3747
Joined: Mon Jan 20, 2014 6:48 pm

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by t42 »

Here are Graphics and Audio sections from -v8 on LM21.1 with latest inxi and pinxi:

Code: Select all

pinxi: 3.3.29-25

Graphics:
  Device-1: AMD Cezanne vendor: Gigabyte 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: HDMI-A-1
    empty: none bus-ID: 09:00.0 chip-ID: 1002:1638 class-ID: 0300 temp: 34.0 C
  Display: x11 server: X.Org v: 1.21.1.4 with: Xwayland v: 22.1.1 driver: X:
    loaded: amdgpu unloaded: fbdev,modesetting,vesa dri: radeonsi gpu: amdgpu
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: HDMI-A-1 mapped: HDMI-A-0 model: EIZO NANAO EV2450
    serial: <filter> built: 2018 res: 1920x1080 hz: 60 dpi: 92 gamma: 1.2
    chroma: red: x: 0.655 y: 0.333 green: x: 0.322 y: 0.612 blue: x: 0.153
    y: 0.059 white: x: 0.314 y: 0.329 size: 528x297mm (20.79x11.69")
    diag: 606mm (23.9") ratio: 16:9 modes: 1920x1080, 1680x1050, 1600x900,
    1280x1024, 1440x900, 1280x800, 1280x720, 1024x768, 800x600, 720x576,
    720x480, 640x480, 720x400
  API: EGL v: 1.5 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 4.6 vendor: amd mesa v: 23.0.4-0ubuntu1~22.04.1 glx-v: 1.4
    es-v: 3.2 direct-render: yes renderer: RENOIR (renoir LLVM 15.0.7 DRM 3.49
    6.2.11-060211-generic) device-ID: 1002:1638 memory: 500 MiB unified: no
  API: Vulkan v: 1.3.204 layers: 3 device: 0 type: integrated-gpu
    name: AMD (RADV RENOIR) driver: mesa radv v: 23.0.4-0ubuntu1~22.04.1
    device-ID: 1002:1638 surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe
    (LLVM 15.0.7 256 bits) driver: mesa llvmpipe v: 23.0.4-0ubuntu1~22.04.1
    (LLVM 15.0.7) device-ID: 10005:0000 surfaces: xcb,xlib
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio 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: 09:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-2: AMD Family 17h HD Audio vendor: Gigabyte 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: 09:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.2.11-060211-generic status: kernel-api
    tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 0.3.48 status: n/a (root, process)
    tools: pw-cat,pw-cli
  Server-2: PulseAudio v: 15.99.1 status: active (root, process)
    tools: pacat,pactl

Code: Select all

inxi: 3.3.29

Graphics:
  Device-1: AMD Cezanne vendor: Gigabyte 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: HDMI-A-1
    empty: none bus-ID: 09:00.0 chip-ID: 1002:1638 class-ID: 0300 temp: 34.0 C
  Display: x11 server: X.Org v: 1.21.1.4 with: Xwayland v: 22.1.1 driver: X:
    loaded: amdgpu unloaded: fbdev,modesetting,vesa dri: radeonsi gpu: amdgpu
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: HDMI-A-1 mapped: HDMI-A-0 model: EIZO NANAO EV2450
    serial: <filter> built: 2018 res: 1920x1080 hz: 60 dpi: 92 gamma: 1.2
    chroma: red: x: 0.655 y: 0.333 green: x: 0.322 y: 0.612 blue: x: 0.153
    y: 0.059 white: x: 0.314 y: 0.329 size: 528x297mm (20.79x11.69")
    diag: 606mm (23.9") ratio: 16:9 modes: 1920x1080, 1680x1050, 1600x900,
    1280x1024, 1440x900, 1280x800, 1280x720, 1024x768, 800x600, 720x576,
    720x480, 640x480, 720x400
  API: OpenGL v: 4.6 Mesa 23.0.4-0ubuntu1~22.04.1 renderer: RENOIR (renoir
    LLVM 15.0.7 DRM 3.49 6.2.11-060211-generic) direct-render: Yes
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio 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: 09:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-2: AMD Family 17h HD Audio vendor: Gigabyte 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: 09:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.2.11-060211-generic status: kernel-api
    tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 0.3.48 status: n/a (root, process)
    tools: pw-cat,pw-cli
  Server-2: PulseAudio v: 15.99.1 status: active (root, process)
    tools: pacat,pactl

Code: Select all

uname -rv
6.2.11-060211-generic #202304140713-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 14 08:18:00 UTC
-=t42=-
User avatar
SMG
Level 25
Level 25
Posts: 32007
Joined: Sun Jul 26, 2020 6:15 pm
Location: USA

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by SMG »

I'm running a live session of LM21.1 MATE and updated what I thought would be the necessary graphics packages. This version comes with mesa-utils and mesa-utils-bin installed so the EGL information showed without needing to add more packages. While mesa-vulkan-drivers is installed, I needed to add vulkan-tools to get the Vulkan information.

As I suspected, the dri did change between LM20.3 and LM21.1. Also EGL and Vulkan data also changed and some former "N/A" fields now had values likely due to the newer packages in the LM21.1 install. Here is the output on the same laptop as the previous data I posted.

Code: Select all

pinxi -G -vs
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915
    resolution: 1366x768~60Hz
  API: EGL v: 1.5 drivers: N/A platforms: gbm,x11
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1
    renderer: Mesa Intel HD Graphics 2000 (SNB GT1)
  API: Vulkan v: 1.3.204 drivers: llvmpipe surfaces: xcb,xlib
Sensors:
  System Temperatures: cpu: 58.0 C mobo: N/A
  Fan Speeds (rpm): N/A

    pinxi -Gx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 bus-ID: 00:02.0
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915
    resolution: 1366x768~60Hz
  API: EGL v: 1.5 drivers: N/A platforms: active: gbm,x11
    inactive: wayland,device
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel HD Graphics 2000 (SNB
    GT1)
  API: Vulkan v: 1.3.204 drivers: llvmpipe surfaces: xcb,xlib devices: 1
  
    pinxi -Gxx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 ports:
    active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
    VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0106
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1
    compositor: marco v: 1.26.0 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 res: 1366x768 dpi: 118
    diag: 336mm (13.2")
  API: EGL v: 1.5 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1
    glx-v: 1.4 es-v: 3.0 direct-render: yes renderer: Mesa Intel HD Graphics
    2000 (SNB GT1) device-ID: 8086:0106
  API: Vulkan v: 1.3.204 surfaces: xcb,xlib device: 0 type: cpu
    driver: mesa llvmpipe device-ID: 10005:0000
    
    pinxi -Gxxx
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 ports:
    active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
    VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1
    compositor: marco v: 1.26.0 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 res: 1366x768 hz: 60 dpi: 118
    size: 293x164mm (11.54x6.46") diag: 336mm (13.2") modes: 1366x768
  API: EGL v: 1.5 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1
    glx-v: 1.4 es-v: 3.0 direct-render: yes renderer: Mesa Intel HD Graphics
    2000 (SNB GT1) device-ID: 8086:0106
  API: Vulkan v: 1.3.204 layers: 3 surfaces: xcb,xlib device: 0 type: cpu
    driver: mesa llvmpipe device-ID: 10005:0000
    
    pinxi -Ga
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 code: Sandybridge
    process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2,
    DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1
    compositor: marco v: 1.26.0 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 built: 2009 res: 1366x768
    hz: 60 dpi: 118 gamma: 1.2 size: 293x164mm (11.54x6.46") diag: 336mm (13.2")
    ratio: 16:9 modes: 1366x768
  API: EGL v: 1.5 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1
    glx-v: 1.4 es-v: 3.0 direct-render: yes renderer: Mesa Intel HD Graphics
    2000 (SNB GT1) device-ID: 8086:0106 memory: 1.46 GiB unified: yes
  API: Vulkan v: 1.3.204 layers: 3 device: 0 type: cpu name: llvmpipe (LLVM
    15.0.7 128 bits) driver: mesa llvmpipe v: 23.0.4-0ubuntu1~22.04.1 (LLVM
    15.0.7) device-ID: 10005:0000 surfaces: xcb,xlib

   inxi -bz
System:
  Kernel: 5.15.0-56-generic arch: x86_64 bits: 64 Desktop: MATE v: 1.26.0
    Distro: Linux Mint 21.1 Vera
Machine:
  Type: Laptop System: Hewlett-Packard product: HP 6360t v: A0000007
    serial: <superuser required>
  Mobo: Hewlett-Packard model: 177C v: KBC Version 97.40
    serial: <superuser required> BIOS: Hewlett-Packard v: 68SCE Ver. F.03
    date: 04/27/2011
Battery:
  ID-1: BAT0 charge: 64.0 Wh (97.3%) condition: 65.8/65.8 Wh (100.0%)
CPU:
  Info: dual core Intel Celeron B810 [MCP] speed (MHz): avg: 884
    min/max: 800/1600
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915
    resolution: 1366x768~60Hz
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1
    renderer: Mesa Intel HD Graphics 2000 (SNB GT1)
Network:
  Device-1: Intel 82579V Gigabit Network driver: e1000e
  Device-2: Broadcom BCM43224 802.11a/b/g/n driver: bcma-pci-bridge
Drives:
  Local Storage: total: 140.7 GiB used: 3.5 MiB (0.0%)
Info:
  Processes: 204 Uptime: 1h 8m Memory: total: 4 GiB available: 3.77 GiB
  used: 3.16 GiB (84.0%) Shell: Bash pinxi: 3.3.29-27
  
     inxi -Gazy
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-6 code: Sandybridge
    process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2,
    DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0106 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1
    compositor: marco v: 1.26.0 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
    s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: Chi Mei Opto 0x1330 built: 2009 res: 1366x768
    hz: 60 dpi: 118 gamma: 1.2 size: 293x164mm (11.54x6.46") diag: 336mm (13.2")
    ratio: 16:9 modes: 1366x768
  API: EGL v: 1.5 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
  API: OpenGL v: 3.3 vendor: intel mesa v: 23.0.4-0ubuntu1~22.04.1 glx-v: 1.4
    es-v: 3.0 direct-render: yes renderer: Mesa Intel HD Graphics 2000 (SNB GT1)
    device-ID: 8086:0106 memory: 1.46 GiB unified: yes
  API: Vulkan v: 1.3.204 layers: 3 device: 0 type: cpu name: llvmpipe (LLVM
    15.0.7 128 bits) driver: mesa llvmpipe v: 23.0.4-0ubuntu1~22.04.1 (LLVM
    15.0.7) device-ID: 10005:0000 surfaces: xcb,xlib
Image
A woman typing on a laptop with LM20.3 Cinnamon.
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

I've been having issues with distros changing the packages for egl in particular, so I've had to do the --recommends list for egl and glx a few times. I'd assumed that the Ubuntu and Debian packages were the same, so I didn't check Ubuntu package names.

On Debian testing:

Code: Select all

dpkg -S /usr/bin/eglinfo
mesa-utils: /usr/bin/eglinfo
I've updated eglinfo in --recommends: apt: mesa-utils (Ubuntu: mesa-utils-extra)

Generally I assume Debian and Ubuntu use the same package names, but apparently not in this case. If someone is bored, they can check the apt listed package names to make sure they are right for Ubuntu derived distros.

Sorry I forgot to note sudo/su - for pinxi install to /usr/local/bin, I forget that not everyone knows the permissions required there.

Code: Select all

cd /usr/local/bin && sudo wget -O pinxi smxi.org/pinxi && sudo chmod +x pinxi
One of the features of this API upgrade is for the first time, particularly with vulkan, you can map the device ID to the device in the Device-x: lines, this has never been possible before.

Note also that as of OpenGL 4.6, this mapping is also available from OpenGL, the device IDs show with -Gxx or higher. So you can see which device is driving your X.org display. Wayland does not offer much yet, and as of yet, inxi has no wayland compositor data tools for gnome-shell, kwin_wayland, and anything derived from those. Those are the compositors those desktops use for wayland, I don't know about Mate, Cinnamon, etc. I know xfce in 4.19 development branch is slowly working on wayland compositor (maybe using wl-roots as the main wayland compositor library).

SMG:

Code: Select all

API: EGL v: 1.5 platforms: gbm: drv: N/A x11: drv: N/A
    inactive: wayland,device
I believe though not certain that this basically means the driver is too old for EGL data, you'll see the same with vulkan, except there in most cases you will see llvmpipe as the software rendering driver, which means, it's running using cpu, not gpu, rendering. I think it's rendering, I might have the wrong word.

vulkan-tools is one of the only package names that seems to be the same cross distro, I think that's because it's very new, and everyone got it at the same basic time in distros. It owns vulkaninfo.

I won't pretend to fully or even partly understand EGL, I kind of understand vulkan since it's just a lower level interface to gpus, leading to much faster graphics, which is why it is used I think mainly by gaming companies now.

I'm not however clear on why EGL shows no drivers when the system is amdgpu, and has the vulkan radv driver, which is reasonably current, so clearly the gpu is not too old for EGL, so I am not understanding something about EGL, which is not surprising.

My radeon AMDs for example show the r600 driver, which I think is not vulkan compatible, it's too old, which is why mine shows llvmpipe as the only driver for that device, which is the cpu.

Thanks for the feedback, I'll update the package install with the right egl package.
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

Re what shows with 2 or more gpus, say intel and amd, I have that data because a tester had such a system.

For OpenGL: it shows the device driving it, I was not sure if there is any case where opengl shows data for more than 1 device, the code partially supports doing that, but I have not seen any such data sample in the wild.

For EGL: it runs by platforms, and the platforms: device: 0, device: 1, etc, map to the physical hardware, and usually once to the cpu, aka, software rendering. So on a say, nvidia amd or nvidia intel system, you should see 3 devices, 2 the hardware, and 1 the cpu software based llvmpipe. Technically the devices all come under platform Device, then it is reported per detected device. Other platforms are x11, wayland, which are fairly obvious, and the software ones. What made this confusing is I got at least one data sample where platforms x11 and wayland were both active, I don't know how that works, maybe it's wayland compositor with xwayland running as well, I really don't know.

For Vulkan: it runs by devices, and it's the same, if your hardware vulkan driver supports the device, you will see the hardware listed, if not, you will see only the cpu software based one.

As far as I can tell, this is the most useful information I could get out of all that data, vulkaninfo can be 3-5000 lines long, egl info is basically very repetitive, it's mostly the same data per platform, with blocks of data per platform, most of which is not useful for inxi purposes. egl was the hardest to do because its data is hard to parse and turn into something inxi can use. vulkaninfo is very hard to parse because the output format is not consistent, and I found variants that broken indentations etc, so that was tricky, but the way vulkaninfo works is clear, it's just a report on each device vulkan has available.
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

One other detail, while I dug in a bit to these things, I'm still not clear on what this stuff all is, for example, EGL platform surfaceless I don't fully understand, and my old assumption was that GBM was EGL, but GBM is just an EGL platform, that was a misunderstanding that was in all the egl messages inxi showed, that's also been corrected. I had simply not seen eglinfo output so I didn't know what was what when I made my initial guesses a few years back.

I think gbm was at least partially a platform used in earlier wayland, but now it seems like wayland is the platform n its own, but I don't fully understand this stuff, graphics is confusing.
User avatar
SMG
Level 25
Level 25
Posts: 32007
Joined: Sun Jul 26, 2020 6:15 pm
Location: USA

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by SMG »

h2-1 wrote: Tue Sep 19, 2023 9:25 pm I've been having issues with distros changing the packages for egl in particular, so I've had to do the --recommends list for egl and glx a few times. I'd assumed that the Ubuntu and Debian packages were the same, so I didn't check Ubuntu package names.

On Debian testing:

Code: Select all

dpkg -S /usr/bin/eglinfo
mesa-utils: /usr/bin/eglinfo
I've updated eglinfo in --recommends: apt: mesa-utils (Ubuntu: mesa-utils-extra)

Generally I assume Debian and Ubuntu use the same package names, but apparently not in this case. If someone is bored, they can check the apt listed package names to make sure they are right for Ubuntu derived distros.
Just a clarification that it differs based on the Ubuntu version. In Ubuntu 20.04 focal it is in mesa-utils-extra. In Ubuntu 22.04 jammy it is in mesa-utils just like Debian.
h2-1 wrote: Tue Sep 19, 2023 9:25 pmNote also that as of OpenGL 4.6, this mapping is also available from OpenGL, the device IDs show with -Gxx or higher. So you can see which device is driving your X.org display.
That will definitely be helpful with dual-GPU computers.
h2-1 wrote: Tue Sep 19, 2023 9:25 pmWayland does not offer much yet, and as of yet, inxi has no wayland compositor data tools for gnome-shell, kwin_wayland, and anything derived from those. Those are the compositors those desktops use for wayland, I don't know about Mate, Cinnamon, etc. I know xfce in 4.19 development branch is slowly working on wayland compositor (maybe using wl-roots as the main wayland compositor library).
Linux Mint DE's are still X Server only at the present time.

Linux Mint team develops Cinnamon DE and has started some preliminary work to see what it would take to use Wayland. The Wayland protocol has compositors handling some of what X Server did so it is a change. Additionally, some changes to individual apps will also be needed to run on Wayland so there is lots of work necessary for a transition. From what I understand, Wayland mainly just handles the buffer so it is (intentionally) doing less than X Server does.
h2-1 wrote: Tue Sep 19, 2023 9:25 pmI'm not however clear on why EGL shows no drivers when the system is amdgpu, and has the vulkan radv driver, which is reasonably current, so clearly the gpu is not too old for EGL, so I am not understanding something about EGL, which is not surprising.
This Kronos.org EGL info gives me the impression there may not be drivers, but this is all new to me so I may not be understanding it either.
h2-1 wrote: Tue Sep 19, 2023 9:39 pm Re what shows with 2 or more gpus, say intel and amd, I have that data because a tester had such a system.
Thanks for the detailed info in this post.
h2-1 wrote: Tue Sep 19, 2023 9:46 pm I had simply not seen eglinfo output so I didn't know what was what when I made my initial guesses a few years back.
I just ran eglinfo in a terminal and I saw data spew across the terminal. :shock:

According to this:
Mesa GBM (Generic Buffer Manager) basically provides a EGL native window type (just like Wayland and X11), so one could obtain a real EGL surface and create render target buffers. With that then, GL can be used to render into these buffers, which will be shown to the display by queuing a page flip via KMS/DRM API.
Image
A woman typing on a laptop with LM20.3 Cinnamon.
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

SMG, thanks for the extra info.

Since it not within the scope of --recommends to show when distros change the package names, I changed (Ubuntu: mesa-utils-extra) to (or: mesa-utils-extra)

Many distros seem to be having trouble settling on what egl is and how to package it. fedora/opensuse/redhat have all been changing these names, leading to the internet not knowing which is which when you search it.

The amount of output eglinfo generates is nothing compared to the amount of output vulkaninfo generates. inxi works to minimize that, and if you run pinxi -Ga --dbg 56 you can see the data pinxi is actually using to search through for the data, and if you run pinxi -Ga --dbg 56,57 you can also see the data structures pinxi has built for each API.

At some point I may read a bit more on EGL, but for some reason, the resource that should be best, similar to kernel and kernel feature docs, in terms of documenting the stuff always reads as if it were written by people who forget that you need to start at the basics when documenting, but instead, mesa/wayland/etc seem to start at the point where you already know the core concepts. This makes getting wayland and any other info really problematic for some one like me, who actually does not want to learn how to do the programming just to get a good working overview. The kernel docs are the polar opposite, usually when I find the one I need, and read it, I understand the feature, in all ways I need to. I think that is because there is real money behind the linux kernel, and people need to understand the features completely, so documentation is a high priority.

Believe me, lol, when I got the initiial github issue asking for vulkan API data, I didn't know what vulkan was, and when the guy showed me output from vulkaninfo, my first reaction was, there are thousands of lines of output, what exactly do you want to see? He was unable to answer that, so I had to figure it out, then parse it down to a useable amount after figuring out what matters and what is purely technical stuff of no interest to pinxi. Most of my initial dev work was focused around the glxinfo, eglinfo, and vulkaninfo parsers, that's why they have such verbose debuggers, I had to try to figure out what all those lines of output actually are, and which matter, and which don't.

I had been completely unaware that glxinfo had added several extremely useful data structures, as noted, it was released in opengl 4.6, and I don't follow this stuff unless I need to to develop features, so I didn't realize I could get much more info from glxinfo than ever before, those were actually the last features to this upgrade I added, after stabilizing egl and vulkan, I was able to finally revisit glx data, which is one of the oldest remaining bits of logic in inxi, or was, it's fully rewritten now.

ES is another one,, but that one is really more for Embedded Systems, it's a minimal set of GL, I think EGL, but maybe OpenGL, I forget. But that's why the OpenGL line now shows es-v: at a certain verbosity level.

I have been spared having to desperately catch up to wayland by wayland's abysmal design and launch, which has roughly extended the time inxi, and most other projects, have to adapt to wayland, but this was a big one for that eventual change.

I would suggest, with pain, that distros etc bite the bullet and start really looking at wayland as the near future, because it is, though x.org is not going anywhere for a long time.
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

This is now released, inxi 3.3.30 is out the door. Note the change to codeberg.org/smxi/inxi code repositories, but they are still mirrored to github for a while longer.
rickNS
Level 9
Level 9
Posts: 2981
Joined: Tue Jan 25, 2011 11:59 pm

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by rickNS »

Don't know what happened to my post, must have forgot to hit submit. Anyway.

I also think more are interested, but just have not read or digested this yet.

I noticed that there was no man page, but lots of info with, pinxi -h.
Last edited by SMG on Tue Sep 26, 2023 3:12 pm, edited 1 time in total.
Reason: Edited to comply with forum rules.
Mint 20.0, and 21.0 MATE on Thinkpads, 3 X T420, T450, T470, and X200
User avatar
AndyMH
Level 21
Level 21
Posts: 13759
Joined: Fri Mar 04, 2016 5:23 pm
Location: Wiltshire

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by AndyMH »

rickNS wrote: Tue Sep 26, 2023 2:51 pm I also think more are interested, but just have not read or digested this yet.
Agreed given that the inxi output is the first thing we ask for when trying to resolve issues. I must have missed this topic when it was initially posted.
Thinkcentre M720Q - LM21.3 cinnamon, 4 x T430 - LM21.3 cinnamon, Homebrew desktop i5-8400+GTX1080 Cinnamon 19.0
h2-1
Level 4
Level 4
Posts: 293
Joined: Sat Oct 16, 2010 4:02 pm
Contact:

Re: pinxi/inxi -G/graphics API upgrade: EGL, GLX, Vulkan

Post by h2-1 »

pinxi man is installed like so:

Code: Select all

sudo pinxi -U --man
The man page is optional, this was by request from some users who did not want a default install of man with a pinxi update, which made sense, so that's how pinxi updates work. One of the fairly natural things that happens is that the earliest testers who speak up first, and are reasonably rational, tend to get their features or requests handled as the feature is built, so that's always the best time to engage with the process. Later testing is more to just confirm that the stuff is all working, and try to find corner case failures or exceptions.

It's hard to explain what features do without at least minimally explaining what they do, thus the somewhat verbose --help, and the very verbose man. I use FreeBSD help and man as the shining example of how not to do it, and stuff like OpenBSD man of how to do it well, the OpenBSD idea is that the man page has everything you need to know, so you don't have to use the web to find the answer. FreeBSD has the strange idea that no information should be given by -h at all if it can be helped, and man should have no more information than a reasonable help would show.

But particularly for -a items, the stuff really can't be understood completely in many cases without explaining it, and some of this stuff is very arcane, to put it mildly.

Re interest levels, I can only do so much to try to alert people, testers, distros, about new features, it either registers or it doesn't, I can't spend infinite time on distro forum posting, so I tend to now post where I think that feature will get the most response. I also tend to only post early beta stage development on slackware forums now, just because they seem very good at finding my mistakes, logic errors, and bad assumptions, and once it's passed their review, I'll sometimes ask for testers or comments elsewhere.

But it's a time suck, so I tend to do it only relative to the general feedback level I get from that source. In general I'd rather rely only on IRC testing or codeberg issue reports/requests etc, but at certain points, with complex features, they have to get tested by a wide range of systems. There's also a more subtle issue that some distros tend to attract users that basically run the same or very similar hardware, so testing by them is not of great value since I've probably already debugged that hardware since it's standard.

Anyway, this one seems well received, so I'll watch it for a while to see, EGL and Vulkan data are weird, I don't think most people understand what it is, I certainly barely do, but honestly all the display stuff is like that, not well documented, hard to understand, and hard to root out the relevant docs for if you can find them at all. To me it looks like most freedesktop.org or mesa docs are written for people coding those projects, not for people trying to learn what the stuff actually is. To me, xiph.org does a much better job explaining the arcana of digital audio.

But I don't often dive too deeply into the display part of the system, it's all software once you get past the raw gpu or apu (in cpu block), and really software is not easy to handle, and takes way too much code, and has way too many variants, all of which do roughly the same thing, make some gui windows on your screen, run your mouse, and accept keyboard input.

Re missing this topic, moving it to linux chat, which would be the very last place I'd look for it, basically ended the thread for all practical purposes, so I don't blame anyone for missing it. It's software, not chat, and it's a core thing used by Mint, but this is their choice as a mod, though unfortunately that choice is not predictable since I initially posted it in the very same forum I posted my last thread like this for testers. But I would expect almost no results in this particular forum.

I view the issue of getting testers easily and without headache as maybe the biggest unhandled issue for inxi's future, it's actually becoming a fairly serious problem. But things change, people change, distros change, and my time is finite so I am just trying to go along with the changes as they happen, and adapt. That's one reason I moved to codeberg for source repo, it's a permanent fix or attempt to fix a problem I've always had using github, and it's a problem I don't want to have anymore. which is why users can now only file issues on codeberg, not github.
Locked

Return to “Chat about Linux”