[Solved] Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

Graphical Environments, Managers, Multimedia & Desktop questions.
Post Reply
Message
Author
pileofstraw
Posts: 11
Joined: 2023-09-19 12:11
Has thanked: 1 time

[Solved] Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#1 Post by pileofstraw »

I am politely hoping for a sanity check on what I am missing to achieve the following goals:

- Run Debian Bookworm on an Asus NUC 14 Pro, with Core 3 100U CPU and Raptor Lake-P graphics (although lspci reports Raptor Lake-U)
- Run Wayland via Sway
- Achieve evidence of hardware acceleration via intel_gpu_top or any other means

The reason I'm trying to stay with Bookworm is due to a series of other customizations, involving an old release of Puppet, the desire for a specific older version of Chromium, but suffice to say that I just want to rule out Bookworm before setting up this entire system as Trixie.

Based on Intel's supported hardware table here: Intel Supported Hardware
and the results of lspci:

Code: Select all

00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-U [Intel Graphics]  [8086:a7ad]  (rev 04)
I should be able to support this GPU with a kernel newer than 6.7.
I've added the bookworm-backports repo (main contrib non-free non-free-firmware) and updated to a backport kernel:

Code: Select all

apt install -t bookworm-backports linux-image-amd64 linux-headers-amd64 firmware-linux-nonfree
After that I'm running 6.11.10+bpo-amd64.

At this point I can install intel-gpu-tools and run intel_gpu_top while Chromium is open and rendering video, but I see zero indication of hardware acceleration activity.

Code: Select all

intel-gpu-top: 8086:a7ad @ /dev/dri/card0 -    0/   0 MHz; 100% RC6
    0.00/ 4.96 W;       28 irqs/s

         ENGINES     BUSY                                       MI_SEMA MI_WAIT
       Render/3D    0.00% |                                   |      0%      0%
         Blitter    0.00% |                                   |      0%      0%
           Video    0.00% |                                   |      0%      0%
    VideoEnhance    0.00% |                                   |      0%      0%

   PID              NAME   Render/3D     Blitter       Video    VideoEnhance
     1           systemd |           ||           ||           ||           |
   891              sway |           ||           ||           ||           |
  1012          chromium |           ||           ||           ||           |
vainfo gives confusing results that I have not been able to reconcile unfortunately:

Code: Select all

:/# vainfo
error: can't connect to X server!
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Chromium seems to be happily rendering video but based on intel_gpu_top it is not hardware accelerating anything.

Unfortunately intel-media-va-driver-non-free has nothing available in bookworm-backports so I can't update that.

Forgive me, but is there anything else I can try to get this GPU working properly in Bookworm?
Last edited by pileofstraw on 2025-01-15 03:46, edited 1 time in total.

User avatar
wizard10000
Global Moderator
Global Moderator
Posts: 1315
Joined: 2019-04-16 23:15
Location: southeastern us
Has thanked: 134 times
Been thanked: 235 times

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#2 Post by wizard10000 »

When you added the kernel from backports did you also install the mesa stack from backports?

If not,

Code: Select all

apt install -t bookworm-backports mesa-va-drivers
Hope this helps -
we see things not as they are, but as we are.
-- anais nin

pileofstraw
Posts: 11
Joined: 2023-09-19 12:11
Has thanked: 1 time

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#3 Post by pileofstraw »

I did not, but I have now, and it slightly changes the results from intel_gpu_top:

Code: Select all

intel-gpu-top: 8086:a7ad @ /dev/dri/card0 -   57/ 497 MHz;  55% RC6
    0.18/ 5.69 W;       98 irqs/s

          ENGINE     BUSY                                       MI_SEMA MI_WAIT
     Render/3D/0    3.41% |█▎                                 |      0%      0%
       Blitter/0    0.00% |                                   |      0%      0%
         Video/0    0.00% |                                   |      0%      0%
  VideoEnhance/0    0.00% |                                   |      0%      0%

   PID              NAME   Render/3D     Blitter       Video    VideoEnhance
  1019          chromium |▌          ||           ||           ||           |
     1           systemd |           ||           ||           ||           |
   888              sway |           ||           ||           ||           |


I can now see clock speed at the top being (I assume) properly recorded, and I am getting actual results on the Render/3D line.

However still no activity at all for Video, which I believe is the indicator of hardware decode.

User avatar
wizard10000
Global Moderator
Global Moderator
Posts: 1315
Joined: 2019-04-16 23:15
Location: southeastern us
Has thanked: 134 times
Been thanked: 235 times

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#4 Post by wizard10000 »

Were you playing a video when you ran intel_gpu_top? On my machine video shows zero unless I'm actually playing a video.

edit: Also, unless you're sure hardware acceleration works in your browser you might want to play a video in vlc or mpv.
we see things not as they are, but as we are.
-- anais nin

pileofstraw
Posts: 11
Joined: 2023-09-19 12:11
Has thanked: 1 time

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#5 Post by pileofstraw »

Amusingly VLC seems to have its own problem in Bookworm: https://www.debian.org/releases/stable/ ... c-ffmpeg-5

Code: Select all

5.2.3. Limited hardware-accelerated video encoding/decoding support in VLC

The VLC video player supports hardware-accelerated video decoding and encoding via VA-API and VDPAU. However, VLC's support for VA-API is tightly related to the version of FFmpeg. Because FFmpeg was upgraded to the 5.x branch, VLC's VA-API support has been disabled. Users of GPUs with native VA-API support (e.g., Intel and AMD GPUs) may experience high CPU usage during video playback and encoding.

Users of GPUs offering native VDPAU support (e.g., NVIDIA with non-free drivers) are not affected by this issue.

Support for VA-API and VDPAU can be checked with vainfo and vdpauinfo (each provided in a Debian package of the same name). 
So I don't think Bookworm can run hardware-accelerated VA-API VLC for this test.

Running mpv --hwdec=auto file.mov I can see the video play, it looks perfect, the last two lines of the mpv output are:

Code: Select all

V0: [gpu] 1440x1080 => 1920x1080 yuv420p
 V: 00:00:23 / 00:00:23 (100%)
I see no video errors in the output.
However, running intel_gpu_top simultaneously (via an SSH session) it is still only showing activity in Render/3D and nothing in Video.

I also tried Firefox running a youtube video and the same thing, no Video activity in intel_gpu_top.

User avatar
wizard10000
Global Moderator
Global Moderator
Posts: 1315
Joined: 2019-04-16 23:15
Location: southeastern us
Has thanked: 134 times
Been thanked: 235 times

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#6 Post by wizard10000 »

I had no issues with vlc but was running it in Sid, wasn't aware of Bookworm's issue. You might want to run vainfo - VAEntrypointVLD means that your card can decode this format, VAEntrypointEncSliceLP means that you can encode to this format. Mine looks like this -

Code: Select all

vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
we see things not as they are, but as we are.
-- anais nin

pileofstraw
Posts: 11
Joined: 2023-09-19 12:11
Has thanked: 1 time

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#7 Post by pileofstraw »

Code: Select all

:/# vainfo
error: can't connect to X server!
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
I cannot figure out why it would be reporting the iHD error.

User avatar
wizard10000
Global Moderator
Global Moderator
Posts: 1315
Joined: 2019-04-16 23:15
Location: southeastern us
Has thanked: 134 times
Been thanked: 235 times

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#8 Post by wizard10000 »

Yeah, you did run vainfo already but I didn't read OP a second time. Sorry about that -

Debian didn't backport intel-media-va-driver so Bookworm's driver is about a year older than your video chipset is - and Trixie's build won't run on Bookworm because it needs a newer version of libc6 than Bookworm provides. I'm thinking this might be your issue.

If you're set on running Bookworm you could backport intel-media-va-driver or intel-media-va-driver-non-free; instructions are here - https://wiki.debian.org/SimpleBackportCreation

Trixie *should* work but it looks like making this work in Bookworm might require backporting a newer driver :)
we see things not as they are, but as we are.
-- anais nin

pileofstraw
Posts: 11
Joined: 2023-09-19 12:11
Has thanked: 1 time

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#9 Post by pileofstraw »

I'm fascinated by that private backport creation process, thanks for that, but I think I might be out of luck.

Creating a backport of the intel-media-va-driver-non-free proceeds well until I get an unmet dependency of libigdgmm-dev (Intel Graphics Memory Management Library), the version on Bookworm is too old.

So starting over and creating a backport of libigdgmm-dev, the dependencies it requires will basically put me on Trixie. It updates gcc, udev, all sorts of core systems.
I think at that point I have created a franken debian situation and I should probably stop.

I guess the last question is, would I encounter the exact same problem, trying to compile this intel driver from the current github master? I imagine it would still require intel's GMM library of such a version that I would be messing with my whole system.

How frustrating; the readme for intel's driver that is present on Bookworm Stable explicitly says it works with Raptor Lake, but I guess somehow not in my case.

Thanks very much for all your help.

User avatar
wizard10000
Global Moderator
Global Moderator
Posts: 1315
Joined: 2019-04-16 23:15
Location: southeastern us
Has thanked: 134 times
Been thanked: 235 times

Re: Intel Core 3 100U (8086:A7AD) hardware acceleration in Bookworm

#10 Post by wizard10000 »

I'd imagine you'd probably have to backport a few things if you built from github as well :(

If you decide to do Trixie you could probably get a vintage build of chromium from https://snapshot.debian.org - not sure whether puppet will work on Trixie and since it's closed-source backporting that probably isn't happening. I guess you could run it in a container but I've actively resisted learning anything about docker so I'm not gonna be much help there.

What you want is possible, it just looks like it's gonna take a bit of work.

cheers -
we see things not as they are, but as we are.
-- anais nin

Post Reply