PACKAGERS! inxi repos are moved to https://codeberg.org/smxi/inxi

The repos will mirror to github for a short amount of time, until after 3.3.30
is released, then I am probably going to do some big changes in the structure of
the inxi repo. Make sure to update your packaging tools and scripts for this
change.

--------------------------------------------------------------------------------

Finally, a huge upgrade for Wayland future proofing, and other futures that are
maybe coming, by adding EGL API, and Vulkan for good measure. This should handle
wayland finally, that's been a stub forever, but finally realized eglinfo was a
thing, and that vulkan as well could be a contender to replace OpenGL, at least
that's what Mesa says on their site, and they should know.

This handles one of the longest standing weak points of inxi graphics, being
completely X11-centric, even though wayland support exists fairly extensively,
but this glxinfo dependent feature was a niggling annoyance, now it's fairly
ambivalent about which api tool you throw at it, the hardest is to give the
right message for no data, or incomplete data. Note that eglinfo supplies at
least software rendering out of X11 or Wayland, so we can now get some API data
in console, including if supported, OpenGL data. Not all of it, but some of it.

Also since now all the docs are split and granular, with the Graphics API
upgrades, added data sample files from glxinfo, eglinfo, vulkaninfo, and vainfo
for good measure, just to have some of the latter. This is one of the first time
all the data used to develope a feature, docs for that feature, and the feature
itself, are being shared and released at the same time.

--------------------------------------------------------------------------------
SPECIAL THANKS:

1a. GRAPHICS: API: Arch user Chrome30 on github for requesting vulkan data, and
providing the initial datasamples that made it possible to think about this new
API feature.

1b. CheckRecommends: Display packages: mrmazda, a frequent helper, checked and
updated OpenSUSE and Fedora vulkan/egl/glx API tool package names. Those have
been a bit fluid and many of the names I had were not right.

--------------------------------------------------------------------------------
KNOWN ISSUES:

1a. GRAPHICS: nothing is perfect, for sudo/root the detections fail for OpenGL
API messages, but fallbacks will make it a bit nicer than it was, with some
data, instead of none as before.

1b. GRAPHICS: API: I'm assuming that the greatest EGL version number found is
the actual version, and lower versions are what that platform supports. This is
an assumption, not a known fact, but finding this stuff clearly documented tends
towards near impossibility, or takes forever to determine, so that's the
assumption that is being used. Correct via issue and clear explanation with
links to resources if this is incorrect.

--------------------------------------------------------------------------------
BUGS:

1. Nothing to speak of.

--------------------------------------------------------------------------------
FIXES:

1. PARTITIONS: had wekafs as a zfs type fs, it's not, it's more like NAS, cloud.
Added to distributed list, and removed from zfs|btrfs|hammer list. I know, I
know, will it ever matter? Probably not. But just in case, wouldn't want your
local machine to report with petabytes of storage now would we!

2. CheckRecommends: corrected some Fedora, SUSE package names.

--------------------------------------------------------------------------------
ENHANCEMENTS:

1a. SYSTEM: DistroData: added Bodhi id method, /etc/bodhi/info file which is
similar to /etc/lsb_release, updated system base detection as well. System base
comes from /etc/os-release.

1b. SYSTEM: DistroData: Added Nitrux system base (debian). Why they try hide
this is beyond me. Maybe because they are not using a real PM, and don't include
apt, who knows.

2a. GRAPHICS: new nvidia gpu ids.

2b. Graphics: EGL API data:
* Shows eglinfo missing if appropriate, no data messages if appropriate.
* -G shows EGL version(s), drivers, active platforms.
* -Gx adds active/inactive platforms as sub items of platforms.
* -Gxx shows platforms by platform, with egl version, driver. EGL version only
shows if there were more than 1 detected, otherwise it shows with EGL v:
* -Gxxx shows hw based on driver, if found, like vulkan.

To avoid excess verbosity, does not show renderer OpenGL name per platform
because it would be way too long and repetetive. And besides, that would show
in OpenGL anyway, more or less, unless there are two different GPUs, which is a
case that is not fully handled.

2c. GRAPHICS: OpenGL data:
* If glxinfo not present, or with null output due to root/no display, and if
eglinfo available, and has OpenGL items, will populate most of OpenGL API with
data, except for Direct Rendering and GLX version. Shows appropriate messages
indicating it's EGL sourced for console, root, no data, or glxinfo missing.
* -Gx adds GLX version, if detected.
* -Gxx add: ES version, if detected; device-ID, if available. Also adds
display-ID, if Display-ID was not found in the Display line (which probably
means that xdpyinfo or xrandr were not installed). Does not always show since it
already appeared in Display line if it was discovered.
* -Ga adds device memory, and unified memory status (yes/no).

2d. GRAPHICS: Vulkan API data:
* Shows appropriate messages if vulkaninfo present, but no data found.
* -G shows Vulkan version, drivers, and surfaces.
* -Gx device counts.
* -Gxx adds device by id, type, driver report.
* -Gxxx adds layer count; adds device hardware vendor, based on mesa driver. Not
for nvidia driver, since that is self evident. Goes away with -Ga if device name
exists.
* -Ga adds full device report, including per device names, ids, drivers, driver
versions, surfaces.

3. UPDATE: Because the smxi.org server no longer accepts TSL 1.1 based HTTP
requests, added for extreme legacy systems a new update option, -U 4, which
uses direct FTP download from smxi.org ftp server. If system set to default to
perl downloader HTTP::Tiny it switches to using a non perl downloader
automatically, like wget or curl.

4. CPU: Microarch: got early zen5 possible IDs. Both Intel/AMD may have rough
ID working well before they ship in public. CPU stuff has slowed down a lot,
the 4,3n nodes are not easy, obviously.

5. DRIVES: Many more drive vendors and drive IDs.

6. RAM: More RAM vendors. Note that it's not unusual for a Drive vendor to also
make RAM, and vice versa.

--------------------------------------------------------------------------------
CHANGES:

1a. GRAPHICS: For API, show OpenGL mesa-v: x.x.x separate from main API v:
string. Also only shows the actual API version with v: now, like v: 4.5. Also
shows vendor: nvidia v: 340.23 for nvidia, without mesa. Falls back for
unhandled cases or syntaxes to the whole version string for v:.

1b. GRAPHICS: For OpenGL, shows compat-v: always if present, that was a mistake
not to show it unless -Gx, since otherwise you'd think you are running a
different version. Not a common situation, but on legacy hardware, can happen.

--------------------------------------------------------------------------------
DOCUMENTATION:

1a. DOCS: docs/inxi-cpu.txt - reorganized into more coherent sections, like with
like, etc. Added better top Sections navigation since there is so much data.

1b. DOCS: docs/inxi-resources.txt - moved last code tricks to
docs/tips-tricks.txt.

1c. DOCS: new docs/ files inxi-battery.txt, inxi-debuggers.txt,
inxi-devices.txt, inxi-kernel.txt, inxi-machine.txt, inxi-network.txt,
inxi-raid-logical.txt, inxi-start-client.txt, inxi-tty.txt, inxi-weather.

These new files cleaned out docs/inxi-data.txt and docs/inxi-resources.txt,
which are now merely placeholder files, and have no data in them beyond pointers
to the actual data files.

1d. DOCS: docs/inxi-custom-recommends.txt updated for SUSE/Fedora packag name
fixes and new eglinfo and vulkaninfo items.

2a. DATA: moved more data from non public data to shared. Refactored directories
to be better organized, and to follow the overall inxi data structures better.

2b. DATA: added many more eglinfo, glxinfo, vulkaninfo to data/graphics. Also
added some clinfo, vainfo just in case decide to support those APIs.

3a. MAN/OPTIONS: updated for new graphics API features, new verbsity features,
etc.

3b. MAN/OPTIONS: added -U arguments for man, for some reason I'd left those out.
Also removed options references to -U 1, 2, because those should never be used,
if those versions of inxi even exist, they are ancient. Added -U 4 option, and
explanation of when/why to use it.

--------------------------------------------------------------------------------
CODE:

1a. FAKE DATA: updated paths for fake data to reflect data reorganization.

1b. FAKE DATA: Added --fake egl,glx,vulkan for GRAPHICS API.

2. GRAPHICS: Fully refactored opengl_output, moved to gl_data/opengl_output.
Added egl_data, egl_output, and vulkan_data, vulkan_output, and some other
tools.

3. UPDATE: if downloader is set to 'perl', aka, Tiny::HTTP, and -U 4 is used,
which is a direct FTP download of the inxi/pinxi files, tiny is disabled, and
the next available downloader (wget/curl/fetch) is used instead.

4. DEBUGGER: added clinfo, eglinfo, es2_info, vainfo, vdpauinfo, vulkaninfo.
This commit is contained in:
Harald Hope 2023-09-25 15:11:51 -07:00
parent 8fd8708bd3
commit cb15f8d88a
3 changed files with 1654 additions and 430 deletions

1744
inxi

File diff suppressed because it is too large Load diff

129
inxi.1
View file

@ -15,7 +15,7 @@
.\" with this program; if not, write to the Free Software Foundation, Inc., .\" with this program; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. .\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
.\" .\"
.TH INXI 1 "2023\-09\-17" "inxi" "inxi manual" .TH INXI 1 "2023\-09\-25" "inxi" "inxi manual"
.SH NAME .SH NAME
inxi \- Command line system information script for console and IRC inxi \- Command line system information script for console and IRC
@ -357,10 +357,11 @@ If protocol is not detected, shows:
Adds \fBwith: Xwayland v:...\fR if xwayland server is installed, regardless of Adds \fBwith: Xwayland v:...\fR if xwayland server is installed, regardless of
protocol. protocol.
Also shows screen resolution(s) (per monitor/X screen). Shows graphics API used, Also shows screen resolution(s) (per monitor/X screen). Shows graphics API
like OpenGL. For X.org: OpenGL renderer, OpenGL core profile version/OpenGL information (if available). EGL: EGL version, drivers, acdtive platforms;
version; for VESA: data (for Xvesa); for Wayland: GBM/EGL data (not OpenGL: renderer, OpenGL core profile version/OpenGL version (if core/compat
implemented). versions different, shows that as well); Vulkan: Vulkan version, drivers,
surfaces;VESA: data (for Xvesa).
Compositor information will show if detected using \fB\-xx\fR option or always Compositor information will show if detected using \fB\-xx\fR option or always
if detected and Wayland since the compositor is the server with Wayland. if detected and Wayland since the compositor is the server with Wayland.
@ -840,14 +841,36 @@ Note \- Maintainer may have disabled this function.
If inxi \fB\-h\fR has no listing for \fB\-U\fR then it's disabled. If inxi \fB\-h\fR has no listing for \fB\-U\fR then it's disabled.
Auto\-update script. Note: if you installed as root, you must be root to Auto\-update inxi or pinxi. Note: if you installed as root, you must be root to
update, otherwise user is fine. Also installs / updates this man page to: update, otherwise user is fine. Also installs / updates current man page to:
\fB/usr/local/share/man/man1\fR (if \fB/usr/local/share/man/\fR exists \fB/usr/local/share/man/man1\fR (if \fB/usr/local/share/man/\fR exists
AND there is no inxi man page in \fB/usr/share/man/man1\fR, otherwise it AND there is no inxi man page in \fB/usr/share/man/man1\fR, otherwise it
goes to \fB/usr/share/man/man1\fR). This requires that you be root to write goes to \fB/usr/share/man/man1\fR). This requires that you be root to write
to that directory. See \fB\-\-man\fR or \fB\-\-no\-man\fR to force or disable to that directory. See \fB\-\-man\fR or \fB\-\-no\-man\fR to force or disable
man install. man install.
\fB\-U\fR accepts the following options (inxi and pinxi):
No arg \- Get from main git branch.
3 \- Get the dev server (smxi.org) version. Be aware that pinxi when taken from
here can be very unstable during active development! The inxi version is the
stable master branch version. Also useful to update if you have SSL issues and
\fB\-\-no\-ssl\fR works.
4 \- Get the dev server (smxi.org) FTP version (same as 3 version). Use if SSL
issues and \fB\-\-no\-ssl\fR doesn't work. For very old systems with SSL 1, you
will probably need to use this option, which bypasses HTTP downloading, and uses
straight FTP to get the file from smxi.org server.
[http|https|ftp] \- Get a version of $self_name from your own server. Use the
full download path, e.g.
\fB\inxi -U ^https://myserver.com/inxi\fR
For failed downloads, use the debug option \fB\-\-dbg 1\fR in addition to get
more verbose failure reports.
.TP .TP
.B \-\-usb\fR .B \-\-usb\fR
.br .br
@ -1371,13 +1394,17 @@ HCI ID.
\- Adds (if available and/or relevant) \fBvendor:\fR item, which shows \- Adds (if available and/or relevant) \fBvendor:\fR item, which shows
specific vendor [product] information. specific vendor [product] information.
\- \fBX.org:\fR Adds direct rendering status.
\- \fBX.org:\fR Adds (for single GPU, nvidia driver) screen number that GPU is \- \fBX.org:\fR Adds (for single GPU, nvidia driver) screen number that GPU is
running on. running on.
\- Adds device temperature for each discrete device (Linux only). \- Adds device temperature for each discrete device (Linux only).
\- For EGL, adds active/inactive platform report.
\- For OpenGL (\fBX.org\fR only) adds direct render status, GLX version.
\- For Vulkan, adds device count.
.TP .TP
.B \-x \-i\fR .B \-x \-i\fR
\- Adds IP v6 additional scope data, like Global, Site, Temporary for \- Adds IP v6 additional scope data, like Global, Site, Temporary for
@ -1653,11 +1680,15 @@ grid of monitors that the \fBXorg\fR \fBScreen\fR is composed of.
real monitor size, not the Xorg full Screen diagonal size, which can be quite real monitor size, not the Xorg full Screen diagonal size, which can be quite
different. different.
\- For free drivers, adds OpenGL compatibility version number if available. For \- For EGL, shows platform by specific platforms, with driver and egl version if
nonfree drivers, the core version and compatibility versions are usually the different from the main one.
same. Example:
\fBv: 3.3 Mesa 11.2.0 compat\-v: 3.0\fR \- For OpenGL, adds ES version (\fBes\-v\fR) if available. If the Display line
did not find an X11 display ID, the ID (e.g. \fB:0.0\fR) will show here instead.
\- For OpenGL, Vulkan, adds \fBdevice-\ID\fR, if available.
\- For Vulkan, adds per Device ID report (type, driver, device\-ID).
.TP .TP
.B \-xx \-I\fR .B \-xx \-I\fR
@ -1847,6 +1878,12 @@ right.
\- \fBWayland:\fR Adds to Monitors \fBscale:\fR (if detected). \- \fBWayland:\fR Adds to Monitors \fBscale:\fR (if detected).
\- For EGL, shows hardware based driver(s) (\fBhw:\fR), with the related
hardware, like AMD or Intel.
\- For Vulkan, adds layer count, per device driver hardware vendor (not
displayed if device name is present with \fB\-a\fR).
.TP .TP
.B \-xxx \-I\fR .B \-xxx \-I\fR
\- For \fBUptime:\fR adds \fBwakeups:\fR to show how many times the machine \- For \fBUptime:\fR adds \fBwakeups:\fR to show how many times the machine
@ -2218,36 +2255,50 @@ shown).
\- Adds to Monitors \fBbuilt:\fR, \fBgamma:\fR, \fBratio:\fR (if found). \- Adds to Monitors \fBbuilt:\fR, \fBgamma:\fR, \fBratio:\fR (if found).
\- Adds to OpenGL device memory and unified status, if present.
\- Adds to Vulkan full device report, with full device names, ids, drivers,
driver versions, surfaces.
X.org sample (with both \fBxdpyinfo\fR and \fBxrandr\fR data available): X.org sample (with both \fBxdpyinfo\fR and \fBxrandr\fR data available):
.nf .nf
\fBinxi \-aGz \fBinxi \-aGz
Graphics: Graphics:
Device\-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine Device\-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series]
driver: radeon v: kernel alternate: amdgpu arch: TeraScale\-2 vendor: XFX Pine driver: radeon v: kernel alternate: amdgpu
code: Evergreen process: TSMC 32\-40nm built: 2009\-15 pcie: gen: 1 arch: TeraScale\-2 code: Evergreen process: TSMC 32\-40nm
speed: 2.5 GT/s lanes: 16 link\-max: gen: 2 speed: 5 GT/s ports: built: 2009\-15 pcie: gen: 1 speed: 2.5 GT/s lanes: 16 link\-max:
active: DVI\-I\-1,VGA\-1 empty: HDMI\-A\-1 bus\-ID: 0a:00.0 gen: 2 speed: 5 GT/s ports: active: DVI\-I\-1,VGA\-1 empty: HDMI\-A\-1
chip\-ID: 1002:68f9 class\-ID: 0300 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.3 with: Xwayland v: 22.1.0 Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9
compositor: xfwm v: 4.16.1 driver: X: loaded: modesetting dri: r600 compositor: xfwm v: 4.18.0 driver: X: loaded: modesetting dri: r600
gpu: radeon display\-ID: :0.0 screens: 1 gpu: radeon display\-ID: :0.0 screens: 1
Screen\-1: 0 s-res: 2560x1024 s-dpi: 96 s\-size: 677x270mm (26.65x10.63") Screen\-1: 0 s\-res: 2560x1024 s\-dpi: 96
s\-diag: 729mm (28.7") s\-size: 677x270mm (26.65x10.63") s\-diag: 729mm (28.7")
Monitor\-1: DVI\-I\-1 pos: primary,left model: Samsung SyncMaster Monitor\-1: DVI\-I\-1 pos: primary,left model: Samsung SyncMaster
serial: <filter> built: 2004 res: 1280x1024 hz: 60 dpi: 96 gamma: 1.2 serial: H9NX842662 built: 2004 res: 1280x1024 hz: 60 dpi: 96
size: 338x270mm (13.31x10.63") diag: 433mm (17") ratio: 5:4 modes: gamma: 1.2 size: 338x270mm (13.31x10.63") diag: 433mm (17")
max: 1280x1024 min: 720x400 ratio: 5:4 modes: max: 1280x1024 min: 720x400
Monitor\-2: VGA\-1 pos: right model: Dell 1908FP serial: <filter> Monitor\-2: VGA\-1 pos: right model: Dell 1908FP
built: 2008 res: 1280x1024 hz: 60 dpi: 86 gamma: 1.4 serial: G434H87HRA2D built: 2008 res: 1280x1024 hz: 60 dpi: 86
size: 376x301mm (14.8x11.85") diag: 482mm (19") ratio: 5:4 modes: gamma: 1.4 size: 376x301mm (14.8x11.85") diag: 482mm (19")
max: 1280x1024 min: 720x400 ratio: 5:4 modes: max: 1280x1024 min: 720x400
API: OpenGL renderer: AMD CEDAR (DRM 2.50.0 / 5.16.0-11.1\-liquorix-amd64 LLVM API: EGL v: 1.5 hw: drv: amd r600 platforms: device: 0 drv: r600
12.0.1) v: 3.3 Mesa 21.2.6 compat\-v: 3.1 direct-render: Yes device: 1 drv: swrast gbm: egl: 1.4 drv: kms_swrast surfaceless:
....\fR 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\fR
.fi .fi
Wayland sample, with Sway/swaymsg: Wayland sample, with Sway/swaymsg:
.nf .nf
\fBinxi \-aGz \fB
inxi \-aGz
Graphics: Graphics:
Device\-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine Device\-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine
driver: radeon v: kernel alternate: amdgpu arch: TeraScale 2 driver: radeon v: kernel alternate: amdgpu arch: TeraScale 2
@ -2255,7 +2306,7 @@ Graphics:
gen: 2 speed: 5 GT/s ports: active: DVI\-I\-1,VGA\-1 empty: HDMI\-A\-1 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 bus\-ID: 0a:00.0 chip\-ID: 1002:68f9 class\-ID: 0300
Display: wayland server: Xwayland v: 21.1.4 compositor: sway v: 1.6.1 Display: wayland server: Xwayland v: 21.1.4 compositor: sway v: 1.6.1
driver: gpu: radeon d\-rect: 2560x1024 driver: dri: r600 gpu: radeon d\-rect: 2560x1024
Monitor-1: DVI\-I\-1 pos: right model: SyncMaster serial: <filter> Monitor-1: DVI\-I\-1 pos: right model: SyncMaster serial: <filter>
built: 2004 res: 1280x1024 hz: 60 dpi: 96 gamma: 1.2 built: 2004 res: 1280x1024 hz: 60 dpi: 96 gamma: 1.2
size: 340x270mm (13.4x10.6") diag: 434mm (17.1") ratio: 5:4 modes: size: 340x270mm (13.4x10.6") diag: 434mm (17.1") ratio: 5:4 modes:
@ -2264,8 +2315,12 @@ Graphics:
res: 1280x1024 hz: 60 gamma: 1.4 dpi: 86 gamma: 1.4 res: 1280x1024 hz: 60 gamma: 1.4 dpi: 86 gamma: 1.4
size: 380x300mm (15.0x11.8") diag: 484mm (19.1") ratio: 5:4 modes: size: 380x300mm (15.0x11.8") diag: 484mm (19.1") ratio: 5:4 modes:
max: 1280x1024 min: 720x400 max: 1280x1024 min: 720x400
API: GBM/EGL API: OpenGL v: 4.6 compat\-v: 4.5 vendor: x.org mesa v: 22.3.6
Message: Wayland GBM/EGL data currently not available. glx\-v: 1.4 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: EGL v: 1.5 hw: drv: amd r600 platforms: device: 0
drv: r600 device: 1 drv: swrast surfaceless: drv: r600 wayland:
drv: r600 inactive: gbm,x11
.fi .fi
.TP .TP

View file

@ -1,24 +1,209 @@
================================================================================ ================================================================================
Version: 3.3.29 Version: 3.3.30
Patch: 01 Patch: 00
Date: 2023-09-17 Date: 2023-09-25
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
RELEASE NOTES: RELEASE NOTES:
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Packagers: Please update your build tools to build from: PACKAGERS! inxi repos are moved to https://codeberg.org/smxi/inxi
https://codeberg.org/smxi/inxi The repos will mirror to github for a short amount of time, until after 3.3.30
is released, then I am probably going to do some big changes in the structure of
the inxi repo. Make sure to update your packaging tools and scripts for this
change.
repos. Codeberg will mirror to github until after 3.3.30 is released, after that --------------------------------------------------------------------------------
there will be more fundamental repo changes, but nothing that should impact inxi
packagers. But no attempt will be made to mirror those changes to github when
they are made because it takes too much work.
This is a transitional patch version, the only change is altering the self Finally, a huge upgrade for Wayland future proofing, and other futures that are
updater URLs to codeberg.org from github.com. Mainly so that the master branch maybe coming, by adding EGL API, and Vulkan for good measure. This should handle
will give the correct URLs until 3.3.30 is released, which will be in a few wayland finally, that's been a stub forever, but finally realized eglinfo was a
weeks. thing, and that vulkan as well could be a contender to replace OpenGL, at least
that's what Mesa says on their site, and they should know.
This handles one of the longest standing weak points of inxi graphics, being
completely X11-centric, even though wayland support exists fairly extensively,
but this glxinfo dependent feature was a niggling annoyance, now it's fairly
ambivalent about which api tool you throw at it, the hardest is to give the
right message for no data, or incomplete data. Note that eglinfo supplies at
least software rendering out of X11 or Wayland, so we can now get some API data
in console, including if supported, OpenGL data. Not all of it, but some of it.
Also since now all the docs are split and granular, with the Graphics API
upgrades, added data sample files from glxinfo, eglinfo, vulkaninfo, and vainfo
for good measure, just to have some of the latter. This is one of the first time
all the data used to develope a feature, docs for that feature, and the feature
itself, are being shared and released at the same time.
--------------------------------------------------------------------------------
SPECIAL THANKS:
1a. GRAPHICS: API: Arch user Chrome30 on github for requesting vulkan data, and
providing the initial datasamples that made it possible to think about this new
API feature.
1b. CheckRecommends: Display packages: mrmazda, a frequent helper, checked and
updated OpenSUSE and Fedora vulkan/egl/glx API tool package names. Those have
been a bit fluid and many of the names I had were not right.
--------------------------------------------------------------------------------
KNOWN ISSUES:
1a. GRAPHICS: nothing is perfect, for sudo/root the detections fail for OpenGL
API messages, but fallbacks will make it a bit nicer than it was, with some
data, instead of none as before.
1b. GRAPHICS: API: I'm assuming that the greatest EGL version number found is
the actual version, and lower versions are what that platform supports. This is
an assumption, not a known fact, but finding this stuff clearly documented tends
towards near impossibility, or takes forever to determine, so that's the
assumption that is being used. Correct via issue and clear explanation with
links to resources if this is incorrect.
--------------------------------------------------------------------------------
BUGS:
1. Nothing to speak of.
--------------------------------------------------------------------------------
FIXES:
1. PARTITIONS: had wekafs as a zfs type fs, it's not, it's more like NAS, cloud.
Added to distributed list, and removed from zfs|btrfs|hammer list. I know, I
know, will it ever matter? Probably not. But just in case, wouldn't want your
local machine to report with petabytes of storage now would we!
2. CheckRecommends: corrected some Fedora, SUSE package names.
--------------------------------------------------------------------------------
ENHANCEMENTS:
1a. SYSTEM: DistroData: added Bodhi id method, /etc/bodhi/info file which is
similar to /etc/lsb_release, updated system base detection as well. System base
comes from /etc/os-release.
1b. SYSTEM: DistroData: Added Nitrux system base (debian). Why they try hide
this is beyond me. Maybe because they are not using a real PM, and don't include
apt, who knows.
2a. GRAPHICS: new nvidia gpu ids.
2b. Graphics: EGL API data:
* Shows eglinfo missing if appropriate, no data messages if appropriate.
* -G shows EGL version(s), drivers, active platforms.
* -Gx adds active/inactive platforms as sub items of platforms.
* -Gxx shows platforms by platform, with egl version, driver. EGL version only
shows if there were more than 1 detected, otherwise it shows with EGL v:
* -Gxxx shows hw based on driver, if found, like vulkan.
To avoid excess verbosity, does not show renderer OpenGL name per platform
because it would be way too long and repetetive. And besides, that would show
in OpenGL anyway, more or less, unless there are two different GPUs, which is a
case that is not fully handled.
2c. GRAPHICS: OpenGL data:
* If glxinfo not present, or with null output due to root/no display, and if
eglinfo available, and has OpenGL items, will populate most of OpenGL API with
data, except for Direct Rendering and GLX version. Shows appropriate messages
indicating it's EGL sourced for console, root, no data, or glxinfo missing.
* -Gx adds GLX version, if detected.
* -Gxx add: ES version, if detected; device-ID, if available. Also adds
display-ID, if Display-ID was not found in the Display line (which probably
means that xdpyinfo or xrandr were not installed). Does not always show since it
already appeared in Display line if it was discovered.
* -Ga adds device memory, and unified memory status (yes/no).
2d. GRAPHICS: Vulkan API data:
* Shows appropriate messages if vulkaninfo present, but no data found.
* -G shows Vulkan version, drivers, and surfaces.
* -Gx device counts.
* -Gxx adds device by id, type, driver report.
* -Gxxx adds layer count; adds device hardware vendor, based on mesa driver. Not
for nvidia driver, since that is self evident. Goes away with -Ga if device name
exists.
* -Ga adds full device report, including per device names, ids, drivers, driver
versions, surfaces.
3. UPDATE: Because the smxi.org server no longer accepts TSL 1.1 based HTTP
requests, added for extreme legacy systems a new update option, -U 4, which
uses direct FTP download from smxi.org ftp server. If system set to default to
perl downloader HTTP::Tiny it switches to using a non perl downloader
automatically, like wget or curl.
4. CPU: Microarch: got early zen5 possible IDs. Both Intel/AMD may have rough
ID working well before they ship in public. CPU stuff has slowed down a lot,
the 4,3n nodes are not easy, obviously.
5. DRIVES: Many more drive vendors and drive IDs.
6. RAM: More RAM vendors. Note that it's not unusual for a Drive vendor to also
make RAM, and vice versa.
--------------------------------------------------------------------------------
CHANGES:
1a. GRAPHICS: For API, show OpenGL mesa-v: x.x.x separate from main API v:
string. Also only shows the actual API version with v: now, like v: 4.5. Also
shows vendor: nvidia v: 340.23 for nvidia, without mesa. Falls back for
unhandled cases or syntaxes to the whole version string for v:.
1b. GRAPHICS: For OpenGL, shows compat-v: always if present, that was a mistake
not to show it unless -Gx, since otherwise you'd think you are running a
different version. Not a common situation, but on legacy hardware, can happen.
--------------------------------------------------------------------------------
DOCUMENTATION:
1a. DOCS: docs/inxi-cpu.txt - reorganized into more coherent sections, like with
like, etc. Added better top Sections navigation since there is so much data.
1b. DOCS: docs/inxi-resources.txt - moved last code tricks to
docs/tips-tricks.txt.
1c. DOCS: new docs/ files inxi-battery.txt, inxi-debuggers.txt,
inxi-devices.txt, inxi-kernel.txt, inxi-machine.txt, inxi-network.txt,
inxi-raid-logical.txt, inxi-start-client.txt, inxi-tty.txt, inxi-weather.
These new files cleaned out docs/inxi-data.txt and docs/inxi-resources.txt,
which are now merely placeholder files, and have no data in them beyond pointers
to the actual data files.
1d. DOCS: docs/inxi-custom-recommends.txt updated for SUSE/Fedora packag name
fixes and new eglinfo and vulkaninfo items.
2a. DATA: moved more data from non public data to shared. Refactored directories
to be better organized, and to follow the overall inxi data structures better.
2b. DATA: added many more eglinfo, glxinfo, vulkaninfo to data/graphics. Also
added some clinfo, vainfo just in case decide to support those APIs.
3a. MAN/OPTIONS: updated for new graphics API features, new verbsity features,
etc.
3b. MAN/OPTIONS: added -U arguments for man, for some reason I'd left those out.
Also removed options references to -U 1, 2, because those should never be used,
if those versions of inxi even exist, they are ancient. Added -U 4 option, and
explanation of when/why to use it.
--------------------------------------------------------------------------------
CODE:
1a. FAKE DATA: updated paths for fake data to reflect data reorganization.
1b. FAKE DATA: Added --fake egl,glx,vulkan for GRAPHICS API.
2. GRAPHICS: Fully refactored opengl_output, moved to gl_data/opengl_output.
Added egl_data, egl_output, and vulkan_data, vulkan_output, and some other
tools.
3. UPDATE: if downloader is set to 'perl', aka, Tiny::HTTP, and -U 4 is used,
which is a direct FTP download of the inxi/pinxi files, tiny is disabled, and
the next available downloader (wget/curl/fetch) is used instead.
4. DEBUGGER: added clinfo, eglinfo, es2_info, vainfo, vdpauinfo, vulkaninfo.
--------------------------------------------------------------------------------
-- Harald Hope - Mon, 25 Sep 2023 15:03:45 -0700
================================================================================ ================================================================================
Version: 3.3.29 Version: 3.3.29