Intermediate Understanding of Intel Video Drivers

According to Zorin's Settings -> About: I have the following:

12th Gen Intel® Core™ i5-1235U × 12
Mesa Intel® Graphics (ADL GT2)
:~$ lspci -nn | grep -Ei "3d|display|vga"
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:46a8] (rev 0c)
10000:e0:06.2 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #2 [8086:463d] (rev 04)
:~$ sudo lshw -C display
:   
  *-display                 
       description: VGA compatible controller
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       logical name: /dev/fb0
       version: 0c
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=i915 latency=0 mode=1920x1080 resolution=1920,1080 visual=truecolor xres=1920 yres=1080
       resources: iomemory:600-5ff iomemory:400-3ff irq:162 memory:6002000000-6002ffffff memory:4000000000-400fffffff ioport:4000(size=64) memory:c0000-dffff memory:4010000000-4016ffffff memory:4020000000-40ffffffff

When I read about different drivers, such as:

-Intel media driver - iHD
-Intel vaapi driver - i965

What is the difference between a vaapi driver and a media driver?

I have always been too embarrassed to ask: With modern Intel iGPU drivers, there is only one actual driver, correct? What commands and tools does one use to poke around such?
I get a bit overwhelmed understanding if I have the best driver installed/activated for my iGPU. What are the best ways to check if hw acceleration is supported? The "Intel Iris Xe" driver, iHD, is not included in the kernel, right?

mesa-utils
...people talk about a MESA driver, but isn't it a graphics library?

vainfo:

:~$ vainfo --all
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
vainfo: Supported config attributes per profile/entrypoint pair
....much more (truncated)

mesa, i915, iHD -what does it all mean?

VA-API is Video Acceleration - API.
It offloads processing tasks to the GPU and provides hardware-accelerated video decoding and encoding.
It is the older driver with...
Intel iHD being the later driver that does the same, with more codec support. It is generally 6th gen and up with VA-API being 5th gen and below.

It is.
That is the i915 driver.

While OpenGL or Vulkan are graphics libraries, Mesa is an API that supplies those libraries rather than being a library itself. It supplies OpenGL, Vulkan and other API's.
Mesa enables hardware-accelerated graphics rendering and compute functionality. It is used for Intel, AMD and Nvidia, though primarily Intel.

I definitely recommend the proprietary Nvidia drivers for older systems.

More info: https://www.reddit.com/r/LinuxActionShow/comments/1foev2/how_to_see_if_vdpau_is_working/

You can safely keep them and I recommend doing so in case they are needed.

Sie können sie sicher aufbewahren und ich empfehle dies für den Fall, dass sie benötigt werden.

Thank you for the help. I wish that I had asked these questions 10 years ago :face_holding_back_tears:

  1. mesa is the api for graphics libraries. Is it the only one used for Intels? Is the need for it detected and "installed" during an installation on an Intel PC pretty much for all Linux distros? My understanding is that intel-media-driver or intel-media-driver-next are Intel's proprietary packages. Is that so? Are they replacements for mesa?
  2. i915 vs iHD - iHD is not a part or subsection of i915? - My limited understanding is that i915 is the main kernel driver for Linux. Is iHD part of i915? One explanation of iHD called it "iHD (aka Intel Media Driver)", which made me think it was the Intel proprietary driver. If the below matrix is correct, iHD is not a driver -it is a video acceleration api?
iGPU:

    | Arch                                         | KMD     | DRI (Mesa)  | Vulkan (Mesa)  | VA         |
    | -------------------------------------------- | ------- | ----------- | -------------- | ---------- |
    | <  Broadwater (Gen4)                         | i915    | i915        | N/A            | N/A        |
    | >= Broadwater (Gen4), < Westmere             | i915    | i915        | N/A            | i965       |
    | >= Westmere (Gen5), < Haswell                | i915    | crocus      | N/A            | i965       |
    | >= Haswell (Gen7), < Broadwell               | i915    | crocus      | hasvk          | i965       |
    | == Broadwell (Gen8)                          | i915    | iris/crocus | anv/hasvk      | iHD        |
    | >= Skylake (Gen9), < Tiger Lake              | i915    | iris        | anv            | iHD        |
    | >= Tiger Lake (Xe/Gen12), < Lunar Lake (Xe2) | i915/xe | iris        | anv            | iHD/libvpl |
    | >= Lunar Lake (Xe2)                          | xe      | iris        | anv            | iHD/libvpl |

If that matrix is correct, my iGPU, Iris XE, is capable of using i915 or xe as a driver. I assume that xe is experimental? Is it open source?

:~$ lspci -k | grep -EA3 'VGA|3D|Display'
0000:00:02.0 VGA compatible controller: Intel Corporation Device 46a8 (rev 0c)
	DeviceName: Intel HD Graphics
	Subsystem: Dell Device 0b81
	Kernel driver in use: i915

When I run (elevated):
ls /usr/lib64/dri/

...it turns out there is no such folder. Where does Zorin have those files?

reference:
https://www.cpu-world.com/CPUs/Core_i5/Intel-Core%20i5%20i5-1235U.html

I think that might be at: /usr/lib/x86_64-linux-gnu.

Generally, on Gnu-Linux, Mesa is the Open Source implementation of OpenGL and Vulkan.

Yes. I would not word this as 'detected and installed' - It is a part of the Linux Kernel. This covers a broad range of needs.

The Media-Driver packages are open source. These packages compliment Mesa in that they provide video decoding/encoding (VA-API) Video Acceleration support. They work alongside Mesa.
These are newer packages for newer hardware. Media-driver replaces the former vaapi Intel driver, but not Mesa.

Correct, Media-driver depends on i915, but it is not a subsection of i915. i915 is Intels main Kernel Driver.
iHD is a user space driver that provides encoding or decoding support for video acceleration on the hardware.

It is correct and you did a really good job of disseminating confusing information in order to reach a conclusion. I see you have experienced the internet. :stuck_out_tongue:

Both are correct. XE is experimental, intended to replace i915 and it is open source.
The newer Intel Arc graphics rely on XE, not i915, which is why many Zorin OS or GnuLinux users initially had trouble with Intel Arc. I believe (I could be wrong) that the 6.2 kernel included XE, which resolved a llot of those issues with Zorin OS surpassed that kernel as included.

I appreciate the patient explanations :smiling_face_with_three_hearts:

1 Like

Wow, I really butchered the quotes on that...
I just fixed them...