View previous topic :: View next topic |
Author |
Message |
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 6:24 am Post subject: hardware acceleration not working[solved] |
|
|
Hi everyone
I can't seem to get hardware acceleration to work in most my applications, I see the following in my vivaldi broswer vivaldi://gpu page:
Code: | Canvas: Software only, hardware acceleration unavailable
Canvas out-of-process rasterization: Disabled
Direct Rendering Display Compositor: Disabled
Compositing: Software only. Hardware acceleration disabled
Multiple Raster Threads: Enabled
OpenGL: Disabled
Rasterization: Software only. Hardware acceleration disabled
Raw Draw: Disabled
Video Decode: Software only. Hardware acceleration disabled
Video Encode: Software only. Hardware acceleration disabled
Vulkan: Disabled
WebGL: Software only, hardware acceleration unavailable
WebGL2: Software only, hardware acceleration unavailable
WebGPU: Disabled |
while glinfo says:
Code: | adel@t14 ~ $ glxinfo | grep -i render
direct rendering: Yes
adel@t14 ~ $ glxinfo | grep -i opengl
OpenGL vendor string: Mesa |
I have the following intel GPU card
Code: | 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller (rev 0c) |
for which I have configured the intel driver as a module which is loading fine, the firmware however is not loading, I'm wondering if this is the reason:
kernel config:
https://pastebin.com/0s8sRZW9
firmware error:
Code: | adel@t14 ~ $ dmesg | grep -i firmw
[ 0.347661] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 1.141031] Loading firmware: i915/adlp_dmc_ver2_16.bin
[ 1.141042] i915 0000:00:02.0: Direct firmware load for i915/adlp_dmc_ver2_16.bin failed with error -2
[ 1.141044] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/adlp_dmc_ver2_16.bin. Disabling runtime power management.
[ 1.141046] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 1.156482] Loading firmware: i915/adlp_guc_70.bin
[ 1.156490] Loading firmware: i915/adlp_guc_70.1.1.bin
[ 1.156496] Loading firmware: i915/adlp_guc_69.0.3.bin
[ 1.156501] i915 0000:00:02.0: GuC firmware i915/adlp_guc_70.bin: fetch failed with error -2
[ 1.156505] i915 0000:00:02.0: [drm] GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 1.240788] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.bin version 0.0.0 |
Last edited by Adel Ahmed on Sun Jul 16, 2023 12:26 pm; edited 1 time in total |
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Wed Jul 12, 2023 7:06 am Post subject: |
|
|
Someone else may have had the same issue you are having and can help you better than I can. I had a totally unrelated firmware error recently and filed a bug upstream which was fixed in a subsequent release of linux-firmware.
This article is over a year old, but touches on some of the firmware loading process for your particular hardware, the "firmware requirements around the GuC micro-controller" and the failed to fetch firmware with error 2.
https://www.phoronix.com/news/GuC-Firmware-ADL-P-Linux-5.19
I am curious what version of linux-firmware is installed on your system and what use flags:
Code: | equery uses linux-firmware |
Also, can you verify that the files /usr/lib/firmware/i915/adlp_guc_70.bin and /usr/lib/firmware/i915/adlp_dmc_ver2_16.bin exist on your system? |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 7:19 am Post subject: |
|
|
the files exist but under a different directory:
Code: | t14 ~ # equery uses linux-firmware
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for sys-kernel/linux-firmware-20230515:
U I
+ + compress-xz : Compress firmware using xz (app-arch/xz-utils) before installation
- - compress-zstd : Compress firmware using zstd (app-arch/zstd) before installation
- - initramfs : Create and install initramfs for early microcode loading in /boot (only AMD for now)
+ + redistributable : Install also non-free (but redistributable) firmware files
- - savedconfig : Allows individual selection of firmware files
t14 ~ # ls -l /usr/lib/firmware/i915/adlp_guc_70.bin
ls: cannot access '/usr/lib/firmware/i915/adlp_guc_70.bin': No such file or directory
t14 ~ # locate adlp_guc_70.bin
/lib/firmware/i915/adlp_guc_70.bin.xz
t14 ~ # ls -l /usr/lib/firmware/i915/adlp_dmc_ver2_16.bin
ls: cannot access '/usr/lib/firmware/i915/adlp_dmc_ver2_16.bin': No such file or directory
t14 ~ # locate adlp_dmc_ver2_16.bin
/lib/firmware/i915/adlp_dmc_ver2_16.bin.xz |
|
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Wed Jul 12, 2023 8:20 am Post subject: |
|
|
That might be expected, I use systemd (merged usr.) |
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Wed Jul 12, 2023 8:32 am Post subject: |
|
|
Until someone else weighs in, I can only suggest, for troubleshooting purposes, to try a newer, unstable kernel version in the 6.2. 6.3 or 6.4 series to see if you can replicate the issue. Try it with the binary kernel of the same series (6.1) to see if it is a kernel configuration issue which might be unlikely as I see from your other posts that firmware is loading correctly for the wifi. You could also try the unstable version of linux-firmware or downgrade to the previous stable version 20230404 to see if the issue persists. If all else fails, you could file a bug either upstream at kernel.org or here at gentoo for linux-firmware. Some might see this as an extreme measure, but there is also the option to rename or move your current firmware directory and download and extract the latest linux-firmware from kernel archives and copy it to /lib/firmware to see if the issue persists. The i915 team is very responsive and active in kernel development and will probably address the issue if it is a bug.
As I said, someone here may have had the same issue with the same hardware and may already have a working solution. I wish you luck.
Edit: To clarify, I meant that you could always move or rename the /lib/firmware/i915 directory, then copy the files from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 to /lib/firmware/i915 to see if the problem persists with the latest versions of the relevant firmware files. |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 9:49 am Post subject: |
|
|
I've tried the simpler of those solution which was to use the unstable sys-kernel/linux-firmware-20230625 but it failed with the same error
I will try and see which fo the other solutions I can apply before I open a bug report |
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Wed Jul 12, 2023 9:59 am Post subject: |
|
|
Also maybe see what happens when you use a Live Linux iso from one of the main distros . . . if you don't get any firmware feedback with dmesg there (which is possible) check to see if hardware acceleration/graphics appear to be functioning normally.
If all else fails and you file a bug report upstream, you could disable the compression use flag on the firmware and reinstall. It probably won't make any difference but may simplify things if the firmware in /lib/firmware is uncompressed while troubleshooting the bug. |
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 11:57 am Post subject: |
|
|
I've followed the steps in the wiki, and just to be cautious I've added this command line arguments to the kernel in grub.cfg:
I've tried downloading the files from the git:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
but that did not work either
I've tried building the firmware into the kernel and making the intel driver built in but I get the same error. |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 2:23 pm Post subject: |
|
|
I've tried kernel 6.4 as well, but the same error shows up unortunately |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2510
|
Posted: Wed Jul 12, 2023 3:14 pm Post subject: |
|
|
Adel Ahmed wrote: | the files exist but under a different directory:
Code: | t14 ~ # equery uses linux-firmware
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for sys-kernel/linux-firmware-20230515:
U I
+ + compress-xz : Compress firmware using xz (app-arch/xz-utils) before installation
- - compress-zstd : Compress firmware using zstd (app-arch/zstd) before installation
- - initramfs : Create and install initramfs for early microcode loading in /boot (only AMD for now)
+ + redistributable : Install also non-free (but redistributable) firmware files
- - savedconfig : Allows individual selection of firmware files
t14 ~ # ls -l /usr/lib/firmware/i915/adlp_guc_70.bin
ls: cannot access '/usr/lib/firmware/i915/adlp_guc_70.bin': No such file or directory
t14 ~ # locate adlp_guc_70.bin
/lib/firmware/i915/adlp_guc_70.bin.xz
t14 ~ # ls -l /usr/lib/firmware/i915/adlp_dmc_ver2_16.bin
ls: cannot access '/usr/lib/firmware/i915/adlp_dmc_ver2_16.bin': No such file or directory
t14 ~ # locate adlp_dmc_ver2_16.bin
/lib/firmware/i915/adlp_dmc_ver2_16.bin.xz |
|
It is the correct location for a merged usr system, however it's compressed. Although you have enabled the necessary option in the kernel, I'd try disabling compress-xz on linux-firmware.
//EDIT: /usr/lib has never been (for as long as my memory goes) the correct location for firmware files.
Also this might be the root cause of your other issues with your dGPU.
Best Regards,
Georgi |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 5:26 pm Post subject: |
|
|
My other gpu issues are not for this device
I tried removing the xompression but it didn't make any difference |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Wed Jul 12, 2023 6:07 pm Post subject: |
|
|
update:
changing kernel version from 6.1.38 to 6.4.2 has shown soem promise, the guc firmware is being loaded now, the dmc version is still not
Code: | [ 0.343513] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 1.129665] Loading firmware: i915/adlp_dmc.bin
[ 1.129673] i915 0000:00:02.0: Direct firmware load for i915/adlp_dmc.bin failed with error -2
[ 1.142413] Loading firmware: i915/adlp_guc_70.bin
[ 1.142469] Loading firmware: i915/tgl_huc.bin
[ 62.584442] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/adlp_dmc.bin. Disabling runtime power management.
[ 62.584448] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 62.584459] i915 0000:00:02.0: [drm] *ERROR* GT0: HuC firmware i915/tgl_huc.bin: fetch failed -ETIMEDOUT
[ 62.584461] i915 0000:00:02.0: [drm] GT0: HuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 62.586928] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.5.1 |
|
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Wed Jul 12, 2023 6:11 pm Post subject: |
|
|
If you have time, try with the sys-kernel/gentoo-kernel-bin to rule out any kernel configuration problems. And then at this point you should file a bug at Kernel.org Bugzilla for i915 linux-firmware. The problem persists on latest stable kernel (6.4) and long-term kernel (6.1). Your firmware is present in /lib/firmware. The problem persists with multiple versions of linux-firmware. The problem persists with or without firmware compression. Make sure to detail all of that in your bug report as well as the dmesg output with firmware failed to fetch output you provided here. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2510
|
Posted: Thu Jul 13, 2023 5:18 am Post subject: |
|
|
Now that I reviewed the thread again, I realized I have to do a few restarts until ungoogled-chromium picks HW acceleration. It also affects the chromium build from the main tree. Vivaldi is chromium, so it's very likely the same issue. This behavior appeared somewhere around Linux kernel 6.0.8 and it's not necessarily kernel related as when I noticed it, I was indeed trying new kernels, but reverting to 6.0.8 didn't solve it in a consistent manner. Since then I would try a few system restarts until I see if it's able to pick hw acceleration and would not restart my laptop until it's necessary, I'd only put it to sleep.
Also, 6.4 kernels have big issues and I don't think they are suitable even for a desktop. At least not yet. I'm currently using 6.1.31 and testing 6.1.38 both of which seem to work equally bad in this regard and equally well otherwise.
Best Regards,
Georgi |
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Thu Jul 13, 2023 5:40 am Post subject: |
|
|
The 6.2, 6.3, and 6.4 kernels work fine for my hardware and setup on 3 machines. I guess everyone's mileage will vary. If you have older hardware that works with the 6.1 kernel series without tons of out of tree drivers, that's great. As to whether or not it is suitable for a desktop I can only say it is working fine here. Arch Linux and variants use the latest kernels. But I respect your opinion.
The OP's firmware failing to load will definitely result in hardware acceleration and power management being disabled. If using a full on desktop environment, it would likely lead to using fallback llvmpipe, which is extremely slow. I think this particular firmware issue would affect more than the browser. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2510
|
Posted: Thu Jul 13, 2023 6:11 am Post subject: |
|
|
rab0171610 wrote: | The 6.2, 6.3, and 6.4 kernels work fine for my hardware and setup on 3 machines. I guess everyone's mileage will vary. If you have older hardware that works with the 6.1 kernel series without tons of out of tree drivers, that's great. As to whether or not it is suitable for a desktop I can only say it is working fine here. Arch Linux and variants use the latest kernels. But I respect your opinion.
The OP's firmware failing to load will definitely result in hardware acceleration and power management being disabled. If using a full on desktop environment, it would likely lead to using fallback llvmpipe, which is extremely slow. I think this particular firmware issue would affect more than the browser. |
Officially there are big issues with 6.4, that's not my opinion. I just don't remember where I read it as it does not concern me. The claim that new hardware requires 6.4 however is just an opinion and at best isolated case.
Best Regards,
Georgi |
|
Back to top |
|
|
rab0171610 Guru
Joined: 24 Dec 2022 Posts: 441
|
Posted: Thu Jul 13, 2023 6:15 am Post subject: |
|
|
Everyone has different levels of reading comprehension skills. |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Thu Jul 13, 2023 7:03 am Post subject: |
|
|
let's all use whatever kernel version that works for us and leave it at that .
i have some updates, I have tried the binary kernel and it can load the huc & guc firmware, but not the DMC firmware:
Code: | [ 4.606382] Loading firmware: i915/adlp_dmc_ver2_16.bin
[ 4.607644] i915 0000:00:02.0: [drm] *ERROR* DMC firmware has wrong CSS header length (1097158924 bytes)
[ 4.607648] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/adlp_dmc_ver2_16.bin. Disabling runtime power management.
[ 4.607651] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 4.655215] Loading firmware: i915/adlp_guc_70.bin
[ 4.655904] Loading firmware: i915/tgl_huc.bin
[ 4.699487] Loading firmware: iwlwifi-so-a0-gf-a0.pnvm
[ 4.814666] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.bin version 70.5.1
[ 4.814671] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3 |
this must mean that the firmware loading issue at least for the huc and guc are originating from either my kernel cofnig or the fact that I do not use an initramfs. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2510
|
Posted: Thu Jul 13, 2023 7:53 am Post subject: |
|
|
Adel Ahmed wrote: |
this must mean that the firmware loading issue at least for ... or the fact that I do not use an initramfs. |
That should not be the case as firmware can be loaded later as it is the case with my config. My iGPU is AMD, but still firmware loading should be kernel and not vendor dependent.
The fact that sometimes hw accel works and sometime doesn't, leads me to believe this is a race condition. Please have several attempts, try different things like hot restart, cold start, restart from other kernel and see if you're able to get it to where it picks hw acceleration. You can emerge google-chrome as the issue is evident there too, just to double check.
And one more thing, I remember there being an issue with Intel firmware for some of the 5.x development releases which might have resurfaced. I haven't been able to describe the problem in good enough terms for Google to pick useful results, but it might very well be already reported.
BTW now that you mentioned the distribution kernel, I haven't tried it, let's see how it goes.
UPDATE: it looks like I have no such problems with the binary kernel. You can also try a kernel for which you haven't installed the nvidia binary driver.
Best Regards,
Georgi |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Thu Jul 13, 2023 8:26 am Post subject: |
|
|
I do not have the nvidia binary on this laptop, thee other thread was for another laptop
I will experiment with restarts and see what we ccan do |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1555
|
Posted: Sun Jul 16, 2023 12:26 pm Post subject: |
|
|
I have restarted a few times while running the same kernel config(for 6.4.2 not kernel-bin) and I see the firmware is being loaded just fine:
Code: | t14 ~ # dmesg | grep -i firm
[ 0.342644] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 1.897866] psmouse serio1: trackpoint: Elan TrackPoint firmware: 0x00, buttons: 3/3
[ 2.313007] Loading firmware: regulatory.db
[ 2.314034] Loading firmware: regulatory.db.p7s
[ 2.337303] Loading firmware: iwlwifi-so-a0-gf-a0-78.ucode
[ 2.341257] Loading firmware: iwl-debug-yoyo.bin
[ 2.358973] Loading firmware: i915/adlp_dmc.bin
[ 2.361948] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.19)
[ 2.373296] Loading firmware: i915/adlp_guc_70.bin
[ 2.373358] Loading firmware: i915/tgl_huc.bin
[ 2.376164] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.5.1
[ 2.376167] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[ 62.583421] iwlwifi 0000:00:14.3: loaded firmware version 78.3bfdc55f.0 so-a0-gf-a0-78.ucode op_mode iwlmvm
[ 62.800726] Loading firmware: iwlwifi-so-a0-gf-a0.pnvm
t14 ~ # uname -a
Linux t14 6.4.2-gentoo #6 SMP PREEMPT_DYNAMIC Sun Jul 16 15:11:12 EEST 2023 x86_64 12th Gen Intel(R) Core(TM) i7-1270P GenuineIntel GNU/Linux |
I cannot tell what had caaused this, I will try to look for it later but for now I'll be happy with my hardware acceleration
thanks everyone |
|
Back to top |
|
|
yerknows n00b
Joined: 05 Nov 2024 Posts: 1
|
Posted: Tue Nov 05, 2024 9:09 pm Post subject: An ammendment from a reader who solved shortly after. |
|
|
This is one of those posts that gets left in case someone else searches this dmesg output and experiences the same confusion.
In my case, how I got to:
Code: | [drm] *ERROR* DMC firmware has wrong CSS header length (1097158924 bytes) |
was by having attempted to manually download the firmware based on running wget vs. the URL indicated in the dmesg output, after having searched /lib/firmware/i915/icl_dmc_ver1_09.bin and finding it hadn't been included in linux-firmware for whatever reason. I build pretty out of tree - so - I see some strange problems that are all me learning through making mistakes and don't reach out directly for support.
Anyway, the icl_dmc_ver1_09.bin file wasn't there, and so then I used wget to download it from what I had taken to be a canonical solution to the URL, the .bin file at the end of the repo path.
So the dmesg output had gone from -2 (ENOENT, right?) to this "wrong CSS," message.
It turns out that the server on that path was building a web-document that looks like hexdump output instead of initiating a GET of the .bin file directly. That is what had caused my experience of the "wrong CSS," message.
Clicking the "plain" link on the kernel.org repository downloaded the actual .bin file rather than the formatted introspection of it.
Thanks for the posts. Just in case someone else does the same thing, its silly, but that's what had happened in my case.
[Moderator edit: changed wrong [code] tags to preserve output layout. -- pietinger] |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5221 Location: Bavaria
|
Posted: Tue Nov 05, 2024 9:55 pm Post subject: |
|
|
yerknows,
Welcome to Gentoo Forums!
Maybe do a "emerge --sync" and update linux-firmware. (there was an update before some days) =>
Code: | /lib/firmware/i915 # ll icl_dmc*
-rw-r--r-- 1 root root 25716 30. Okt 15:07 icl_dmc_ver1_07.bin
-rw-r--r-- 1 root root 25952 30. Okt 15:07 icl_dmc_ver1_09.bin |
_________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
|