mirror of
https://codeberg.org/smxi/pinxi.git
synced 2024-09-28 15:20:29 +02:00
inxi-graphics updates, added debugger for switcherooctl
This commit is contained in:
parent
4f5f59915a
commit
49bd5ebe40
2 changed files with 185 additions and 0 deletions
|
@ -71,6 +71,7 @@ MONITOR DATA
|
|||
wayland_data()
|
||||
GRAPHICS HARDWARE
|
||||
CARD RAM
|
||||
DISPLAY CLASS
|
||||
|
||||
================================================================================
|
||||
DISPLAY API
|
||||
|
@ -3993,6 +3994,189 @@ ip/hd-display-transmitter-controller
|
|||
/usr/lib/xorg-server/Xorg.wrap: Only console users are allowed to run the X server
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863891
|
||||
|
||||
========================================
|
||||
DISPLAY CLASS
|
||||
----------------------------------------
|
||||
|
||||
Resource:
|
||||
https://www.dmtf.org/sites/default/files/standards/documents/DSP1075_1.0.0.pdf
|
||||
https://ics.uci.edu/~harris/ics216/pci/PCI_22.pdf
|
||||
|
||||
https://stackoverflow.com/questions/41658094/what-is-the-difference-between-
|
||||
display-controller-and-vga-compatible-controller
|
||||
|
||||
"* VGA compatible controller, Intel integrated GPU: Controls the display monitor &
|
||||
the HDMI port.
|
||||
|
||||
* Display controller AMD discrete GPU: This PCI connected device can be used to
|
||||
render specific things, like games, or some other apps. This is known as
|
||||
"Hardware Acceleration" with GPU. This probably cannot drive the monitor
|
||||
display, I guess because no such physical connections exist from it which can
|
||||
control the display / HDMI. Desktop GPUs have their on video output ports."
|
||||
|
||||
The primary PCI class is: 03h: Display Controller.
|
||||
|
||||
There are 4 classes. It is not easy to understand or find docs on what these
|
||||
really are.
|
||||
|
||||
----------------------------------------
|
||||
MUXED/MUXLESS - ports, no port for renderer
|
||||
----------------------------------------
|
||||
|
||||
----------------------------------------
|
||||
https://www.kernel.org/doc/html/v4.20/gpu/vga-switcheroo.html
|
||||
|
||||
vga_switcheroo is the Linux subsystem for laptop hybrid graphics. These come in
|
||||
two flavors:
|
||||
|
||||
muxed: Dual GPUs with a multiplexer chip to switch outputs between GPUs.
|
||||
muxless: Dual GPUs but only one of them is connected to outputs. The other one
|
||||
is merely used to offload rendering, its results are copied over PCIe into the
|
||||
framebuffer. On Linux this is supported with DRI PRIME. Hybrid graphics started
|
||||
to appear in the late Naughties and were initially all muxed. Newer laptops
|
||||
moved to a muxless architecture for cost reasons. A notable exception is the
|
||||
MacBook Pro which continues to use a mux. Muxes come with varying capabilities:
|
||||
Some switch only the panel, others can also switch external displays. Some
|
||||
switch all display pins at once while others can switch just the DDC lines. (To
|
||||
allow EDID probing for the inactive GPU.) Also, muxes are often used to cut
|
||||
power to the discrete GPU while it is not used.
|
||||
|
||||
/sys/kernel/debug/vgaswitcheroo/switch
|
||||
Values:
|
||||
* OFF: Power off the device not in use.
|
||||
* ON: Power on the device not in use.
|
||||
* IGD: Switch to the integrated graphics device. Power on the integrated GPU if
|
||||
necessary, power off the discrete GPU. Prerequisite is that no user space
|
||||
processes (e.g. Xorg, alsactl) have opened device files of the GPUs or the audio
|
||||
client. If the switch fails, the user may invoke lsof(8) or fuser(1) on
|
||||
/dev/dri/ and /dev/snd/controlC1 to identify processes blocking the switch.
|
||||
* DIS: Switch to the discrete graphics device.
|
||||
* DIGD: Delayed switch to the integrated graphics device. This will perform the
|
||||
switch once the last user space process has closed the device files of the GPUs
|
||||
and the audio client.
|
||||
* DDIS: Delayed switch to the discrete graphics device.
|
||||
* MIGD: Mux-only switch to the integrated graphics device. Does not remap
|
||||
console or change the power state of either gpu. If the integrated GPU is
|
||||
currently off, the screen will turn black. If it is on, the screen will show
|
||||
whatever happens to be in VRAM. Either way, the user has to blindly enter the
|
||||
command to switch back.
|
||||
* MDIS: Mux-only switch to the discrete graphics device.
|
||||
|
||||
----------------------------------------
|
||||
Mrmazda found this in his systems, two, 1 with discrete nvidia, both with intel
|
||||
igpu:
|
||||
|
||||
# pinxi -Gaz --vs --zl --hostname
|
||||
pinxi 3.3.28-18 (2023-08-08)
|
||||
Graphics:
|
||||
Device-1: Intel 82865G Integrated Graphics vendor: Dell driver: i915
|
||||
v: kernel arch: Gen-2 process: Intel 130nm built: 2002-03 ports:
|
||||
active: none empty: VGA-2 bus-ID: 00:02.0 chip-ID: 8086:2572
|
||||
class-ID: 0380
|
||||
Device-2: NVIDIA NV5 [Riva TNT2 Model 64 / Pro] driver: nouveau v: kernel
|
||||
non-free: series: 71.86.xx status: legacy (EOL) last: release: 71.86.15
|
||||
kernel: 2.6.38 xorg: 1.7 arch: Fahrenheit code: NVx
|
||||
process: TSMC 220-350nm built: 1998-2000 ports: active: VGA-1 empty: none
|
||||
bus-ID: 01:08.0 chip-ID: 10de:002d class-ID: 0300
|
||||
|
||||
# pinxi -Gaz --vs --zl --hostname
|
||||
pinxi 3.3.30-07 (2023-10-18)
|
||||
Graphics:
|
||||
Device-1: Intel 82865G Integrated Graphics vendor: Dell driver: i915
|
||||
v: kernel arch: Gen-2 process: Intel 130nm built: 2002-03 ports:
|
||||
active: VGA-1 empty: none bus-ID: 00:02.0 chip-ID: 8086:2572
|
||||
class-ID: 0300
|
||||
|
||||
They're originally twin Dell GX270 PCs, but one remains Intel onboard only,
|
||||
while the other has added an AGP NV. The Intel's ID is 380 when coupled with NV
|
||||
card. Both above are from booting Tumbleweed, but pinxi run a year ago. Now in
|
||||
TW and in Debian, the onboard doesn't show in pinxi when the NV is present:
|
||||
|
||||
# pinxi -Gaz --vs --zl --hostname # Bullseye
|
||||
pinxi 3.3.34-04 (2024-05-06)
|
||||
Graphics:
|
||||
Device-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel non-free:
|
||||
series: 173.14.xx status: legacy (EOL~2013-12-xx) last: release: 173.14.39
|
||||
kernel: 3.12 xorg: 1.15 arch: Rankine code: NV3x process: 130-150nm
|
||||
built: 2003-2005 ports: active: DVI-I-1,VGA-1 empty: TV-1 bus-ID: 01:00.0
|
||||
chip-ID: 10de:0322 class-ID: 0300
|
||||
Display: x11 server: X.Org v: 1.20.11 compositor: Twin v: 3.0 driver: X:
|
||||
|
||||
# pinxi -Ga --vs
|
||||
pinxi 3.3.35-02 (2024-08-03)
|
||||
Graphics:
|
||||
Device-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel non-free:
|
||||
series: 173.14.xx status: legacy (EOL~2013-12-xx) last: release: 173.14.39
|
||||
kernel: 3.12 xorg: 1.15 arch: Rankine code: NV3x process: 130-150nm
|
||||
built: 2003-2005 ports: active: DVI-I-1,VGA-1 empty: TV-1 bus-ID: 01:00.0
|
||||
chip-ID: 10de:0322 class-ID: 0300
|
||||
Display: x11 server: X.Org v: 21.1.12 compositor: kwin driver: X:
|
||||
|
||||
----------------------------------------
|
||||
0300: VGA Compatible Controller
|
||||
----------------------------------------
|
||||
|
||||
This is what most normal video cards show as. It has nothing to do with VGA
|
||||
ports phyically, I believe HDMI, DisplayPort, etc, without VGA ports, will show
|
||||
as this class. This is basically the default.
|
||||
|
||||
Unknown if machine learning gpus show as this, but I suspect they do.
|
||||
|
||||
----------------------------------------
|
||||
0301: XGA Controller
|
||||
----------------------------------------
|
||||
|
||||
https://en.wikipedia.org/wiki/Extended_Graphics_Array#:~:text=The%20eXtended%
|
||||
20Graphics%20Array%20(usually,successor%20to%20the%208514%2FA.
|
||||
|
||||
The eXtended Graphics Array (usually called XGA) is a graphics card manufactured
|
||||
by IBM and introduced for the IBM PS/2 line of personal computers in 1990 as a
|
||||
successor to the 8514/A.
|
||||
|
||||
Have not seen one of these in the wild, but it is probably an enhanced version
|
||||
of VGA controllers. Probably obsolete?
|
||||
|
||||
|
||||
----------------------------------------
|
||||
0302: 3D Controller
|
||||
----------------------------------------
|
||||
|
||||
So far seen only in Intel + Nvidia Optimus laptops. Assumption is the Nvidia
|
||||
gpu does not have a discreet port, but runs through the Intel, but that's not
|
||||
a fact, just a guess.
|
||||
|
||||
https://lore.kernel.org/lkml/c2cdc3ca-20de-0133-b198-1118fcea7902@loongson.cn/
|
||||
Sub-Class 02h is for controllers that have hardware support for 3D
|
||||
operations and are not VGA compatible.
|
||||
|
||||
----------------------------------------
|
||||
0380: Other Display Controller
|
||||
----------------------------------------
|
||||
|
||||
https://www.reddit.com/r/Amd/comments/12pmc67/
|
||||
amd_dgpu_igpu_any_benefits_or_features/
|
||||
|
||||
This is a catchall bucket. On laptops with amd igpu and dgpu, integrated and
|
||||
discrete, that is, an APU and a standalone, that thread suggests that those
|
||||
machines have a port for each controller.
|
||||
|
||||
Seen igpu and second as 0380 so it's not clear what it means.
|
||||
|
||||
https://lore.kernel.org/lkml/20230613030151.216625-3-15330273260@189.cn/
|
||||
https://lore.kernel.org/lkml/f08b6a76-6c90-b59b-ff43-c779ef759d09@loongson.cn/
|
||||
|
||||
>>> For an example, nvidia render only GPU typically has 0x0380.
|
||||
|
||||
>> PCI_CLASS_DISPLAY_3D and PCI_CLASS_DISPLAY_OTHER are used to annotate
|
||||
>> the render-only GPU.
|
||||
|
||||
>> Nowadays, the 'VGA devices' here is stand for the Graphics card
|
||||
>>
|
||||
>> which is capable of display something on the screen.
|
||||
|
||||
----------------------------------------
|
||||
|
||||
----------------------------------------
|
||||
================================================================================
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
1
pinxi
1
pinxi
|
@ -2018,6 +2018,7 @@ sub display_data {
|
|||
['swaymsg','-t get_tree'],
|
||||
['swaymsg','-t get_workspaces -p'],
|
||||
['swaymsg','-t get_workspaces -r'],
|
||||
['switcherooctl','list'],
|
||||
['twin','--version'], # TDE
|
||||
['vainfo',''],
|
||||
['vdpauinfo',''],
|
||||
|
|
Loading…
Reference in a new issue