LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 06-16-2023, 08:49 AM   #46
ctrlaltca
Member
 
Registered: May 2019
Location: Italy
Distribution: Slackware
Posts: 333

Rep: Reputation: 389Reputation: 389Reputation: 389Reputation: 389

As of today, in order to get it working in -current (shipping libva-2.18) I had to update the slackbuilds for intel-gmmlib-22.3.5 and intel-media-23.1.6, as older version would only support libva-2.17
Unfortunately an additional patch is required for it to compile with gcc 13: https://patch-diff.githubusercontent...ull/1648.patch
 
1 members found this post helpful.
Old 06-16-2023, 03:04 PM   #47
Aeterna
Senior Member
 
Registered: Aug 2017
Location: Terra Mater
Distribution: VM Host: Slackware-current, VM Guests: Artix, Venom, antiX, Gentoo, FreeBSD, OpenBSD, OpenIndiana
Posts: 1,011

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by ctrlaltca View Post
As of today, in order to get it working in -current (shipping libva-2.18) I had to update the slackbuilds for intel-gmmlib-22.3.5 and intel-media-23.1.6, as older version would only support libva-2.17
Unfortunately an additional patch is required for it to compile with gcc 13: https://patch-diff.githubusercontent...ull/1648.patch
Thank you ctrlaltca.
I wanted to update first page accordingly but it is not possible anymore. I hope that intel video users on Slackware current will see your post.

new version of intel-gmmlib is available. It does not require patching for gcc 13.1
https://github.com/intel/gmmlib/rele...-gmmlib-22.3.7

Last edited by Aeterna; 06-16-2023 at 07:09 PM.
 
Old 10-05-2023, 08:39 PM   #48
lancsuk
Member
 
Registered: Jul 2019
Location: Burnley / UK
Distribution: Slackware current
Posts: 226

Rep: Reputation: 204Reputation: 204Reputation: 204
MINI PC NUC , TigerLake-LP GT2 (i7-1185G7) / Iris Xe Graphics
Slackware Stable 15.0 / Xfce

lspci

Code:
00:02.0 VGA compatible controller: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] (rev 01) (prog-if 00 [VGA controller])
	Flags: bus master, fast devsel, latency 0, IRQ 168, IOMMU group 1
	Memory at 601c000000 (64-bit, non-prefetchable) [size=16M]
	Memory at 4000000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 5000 [size=64]
	Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
	Capabilities: [d0] Power Management version 2
	Capabilities: [100] Process Address Space ID (PASID)
	Capabilities: [200] Address Translation Service (ATS)
	Capabilities: [300] Page Request Interface (PRI)
	Capabilities: [320] Single Root I/O Virtualization (SR-IOV)
	Kernel driver in use: i915
	Kernel modules: i915


Code:
libva:		        2.19.0
libva-utils:		2.19.0
intel-gmmlib:		22.3.12
intel-media-driver:	23.2.4

/etc/modprobe.d/i915.conf

Code:
options i915 enable_guc=0
options i915 enable_fbc=1
changed os wide

Code:
export LIBVA_DRIVER_NAME=iHD
export VDPAU_DRIVER=va_gl
export VAAPI_MPEG4_ENABLED=true
vainfo

Code:
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.19 (libva 2.19.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.2.4 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain               :	VAEntrypointEncSliceLP
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointEncSliceLP
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile1            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileVP9Profile3            :	VAEntrypointVLD
      VAProfileHEVCMain12             :	VAEntrypointVLD
      VAProfileHEVCMain12             :	VAEntrypointEncSlice
      VAProfileHEVCMain422_10         :	VAEntrypointVLD
      VAProfileHEVCMain422_10         :	VAEntrypointEncSlice
      VAProfileHEVCMain422_12         :	VAEntrypointVLD
      VAProfileHEVCMain422_12         :	VAEntrypointEncSlice
      VAProfileHEVCMain444            :	VAEntrypointVLD
      VAProfileHEVCMain444            :	VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         :	VAEntrypointVLD
      VAProfileHEVCMain444_10         :	VAEntrypointEncSliceLP
      VAProfileHEVCMain444_12         :	VAEntrypointVLD
      VAProfileHEVCSccMain            :	VAEntrypointVLD
      VAProfileHEVCSccMain            :	VAEntrypointEncSliceLP
      VAProfileHEVCSccMain10          :	VAEntrypointVLD
      VAProfileHEVCSccMain10          :	VAEntrypointEncSliceLP
      VAProfileHEVCSccMain444         :	VAEntrypointVLD
      VAProfileHEVCSccMain444         :	VAEntrypointEncSliceLP
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileHEVCSccMain444_10      :	VAEntrypointVLD
      VAProfileHEVCSccMain444_10      :	VAEntrypointEncSliceLP
vdpauinfo

Code:
display: :0.0   screen: 0
API version: 1
Information string: OpenGL/VAAPI backend for VDPAU

Video surface:

name   width height types
-------------------------------------------
420     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
422     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
444     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
420_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
422_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
444_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16
....

glxinfo | grep "direct rendering"

Code:
direct rendering: Yes
glxinfo | grep "profile version"

Code:
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.5
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.3.5
eglinfo | grep version

Code:
EGL API version: 1.5
EGL version string: 1.5
EGL API version: 1.5
EGL version string: 1.5

Chrome

Code:
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Disabled
Direct Rendering Display Compositor: Disabled
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated
Raw Draw: Disabled
Skia Graphite: Disabled
Video Decode: Hardware accelerated
Video Encode: Software only. Hardware acceleration disabled
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
WebGPU: Disabled
intel_gpu_top = worked
 
1 members found this post helpful.
Old 10-13-2023, 07:39 PM   #49
Aeterna
Senior Member
 
Registered: Aug 2017
Location: Terra Mater
Distribution: VM Host: Slackware-current, VM Guests: Artix, Venom, antiX, Gentoo, FreeBSD, OpenBSD, OpenIndiana
Posts: 1,011

Original Poster
Rep: Reputation: Disabled
for chromium to use hardware acceleration one needs to install enchanced-h264ify extension (in addition to the settings listed above)

Installing extensions is a bit cumbersome but possible:

Go to the Chrome Web Store (https://chrome.google.com/webstore/category/extensions).
Search for the extension you want to download e.g. enhanced-h264ify

https://chrome.google.com/webstore/d...anced-h264ify/omkfmpieigblcllmkgbflkikinpkodlk
extension ID value: omkfmpieigblcllmkgbflkikinpkodlk

Access the browser's menu. It should be in the top right.
Click About Chromium and copy chrome version e.g. 117.0.5938.149

from file template:
https://clients2.google.com/service/...3&prodversion=[VERSION]&x=id%3D[EXTENSION_ID]%26installsource%3Dondemand%26uc

replace xxxxxxxx with extension id value
e.g. for enhanced-h264ify
now in chromium address bar enter:
https://clients2.google.com/service/...3&prodversion=117.0.5938.149&x=id%3Domkfmpieigblcllmkgbflkikinpkodlk%26installsource%3Dondemand%26uc
confirm installation

now enhanced-h264ify is installed so everybody can enjoy 4K video in chromium

extension ID value and chromium version will change in the future of course

Last edited by Aeterna; 10-13-2023 at 07:41 PM.
 
2 members found this post helpful.
Old 12-06-2023, 04:59 AM   #50
zeebra
Senior Member
 
Registered: Dec 2011
Distribution: Slackware
Posts: 1,834
Blog Entries: 17

Rep: Reputation: 642Reputation: 642Reputation: 642Reputation: 642Reputation: 642Reputation: 642
So, I've been fixing a new installation of Slackware on an old computer, and I'm onto this topic myself now. Anyways, I've been trying to get hardware acceleration for Firefox, since the machine is old and the performance in this case makes quite alot of difference.
Anyways, there are a few factors to consider. Some of these things depend on the Firefox version, but with newer version of Firefox you no longer need to disable sandboxed media, va-api is no longer blocked by RDD (fixed around version 96 of Firefox).

So, I was dabbling around with these things, and got quite far with cpufreq, wayland and enabling hardware acceleration for Firefox. Previously I couldn't play 1080p video at 60fps without feeling like I was in an airport, now it's possible. Most 3d rendering is offloaded to hardware (as oppose to software), which has really helped this situation. This older machine now plays 1080p video at 60fps in relative peace and quiet.

That however was not the case in Wayland when using xwayland as the compositor.. The performance was midway there, or something to that like. So I'd also recommend if you are using Wayland to make sure to use Wayland and not xwayland as the compositor.
Code:
export MOZ_ENABLE_WAYLAND=1
That made everything else I had done until that point fall into place. Your compositor situation can be checked in Firefox under "about:support".


Well, in any case, I did not fully reach the place I intended to reach with Firefox. My intel_gpu_top tells me rendering 3d is working fine, but my video says 0%, so it's not used. I still need to figure out a few things to complete this setup, but I suspect this situation has both to do with the card not supporting video acceleration that I use in Firefox (of the relevant it only supports h264), and the fact that I'm running an older version of Firefox (albeit under Linux MAC), so the Firefox sandbox is probably blocking video acceleration, like described in this thread. So I still have some issues to iron out before I get this setup fully working, so I'm looking at this thread again. I think this thread will be very useful for that.

Anyways, from my experience already, it really does seem worth the time and effort to enable hardware acceleration, especially for Firefox, as the performance is MUCH better (especially noticable on an older computer).

However, since I was previously dabbling around with GPU passthrough, I have all the facilities set up correctly for Intel GPU parameters. But I do wonder why these things would be necessary for regular hardware acceleration. I'm talking about enable_guc and enable_fbc. These are not normally things I would like to enable (outside of having to do so for GPU passthrough). So what exactly is the reason for that in this thread? Where did it come from and what purpose does it serve in regards to hardware acceleration?

Ooh, and also, it seems my machine is using the i965 driver as oppose to the iHD, although since it is HD4000, it actually should be using iHD and not i965 from what I figure. Not sure why it does that.

Last edited by zeebra; 12-06-2023 at 05:03 AM.
 
Old 12-06-2023, 06:52 AM   #51
Aeterna
Senior Member
 
Registered: Aug 2017
Location: Terra Mater
Distribution: VM Host: Slackware-current, VM Guests: Artix, Venom, antiX, Gentoo, FreeBSD, OpenBSD, OpenIndiana
Posts: 1,011

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by zeebra View Post
So, I've been fixing a new installation of Slackware on an old computer, and I'm onto this topic myself now. Anyways, I've been trying to get hardware acceleration for Firefox, since the machine is old and the performance in this case makes quite alot of difference.
Anyways, there are a few factors to consider. Some of these things depend on the Firefox version, but with newer version of Firefox you no longer need to disable sandboxed media, va-api is no longer blocked by RDD (fixed around version 96 of Firefox).

So, I was dabbling around with these things, and got quite far with cpufreq, wayland and enabling hardware acceleration for Firefox. Previously I couldn't play 1080p video at 60fps without feeling like I was in an airport, now it's possible. Most 3d rendering is offloaded to hardware (as oppose to software), which has really helped this situation. This older machine now plays 1080p video at 60fps in relative peace and quiet.

That however was not the case in Wayland when using xwayland as the compositor.. The performance was midway there, or something to that like. So I'd also recommend if you are using Wayland to make sure to use Wayland and not xwayland as the compositor.
Code:
export MOZ_ENABLE_WAYLAND=1
That made everything else I had done until that point fall into place. Your compositor situation can be checked in Firefox under "about:support".


Well, in any case, I did not fully reach the place I intended to reach with Firefox. My intel_gpu_top tells me rendering 3d is working fine, but my video says 0%, so it's not used. I still need to figure out a few things to complete this setup, but I suspect this situation has both to do with the card not supporting video acceleration that I use in Firefox (of the relevant it only supports h264), and the fact that I'm running an older version of Firefox (albeit under Linux MAC), so the Firefox sandbox is probably blocking video acceleration, like described in this thread. So I still have some issues to iron out before I get this setup fully working, so I'm looking at this thread again. I think this thread will be very useful for that.

Anyways, from my experience already, it really does seem worth the time and effort to enable hardware acceleration, especially for Firefox, as the performance is MUCH better (especially noticable on an older computer).

However, since I was previously dabbling around with GPU passthrough, I have all the facilities set up correctly for Intel GPU parameters. But I do wonder why these things would be necessary for regular hardware acceleration. I'm talking about enable_guc and enable_fbc. These are not normally things I would like to enable (outside of having to do so for GPU passthrough). So what exactly is the reason for that in this thread? Where did it come from and what purpose does it serve in regards to hardware acceleration?

Ooh, and also, it seems my machine is using the i965 driver as oppose to the iHD, although since it is HD4000, it actually should be using iHD and not i965 from what I figure. Not sure why it does that.
I think that the main reason is here:
https://wiki.archlinux.org/title/Intel_graphics
Quote:
Starting with Gen9 (Skylake and onwards), Intel GPUs include a Graphics micro (μ) Controller (GuC) which provides the following functionality [6][dead link 2023-09-16 ⓘ]:

Offloading some media decoding functionality from the CPU to the HEVC/H.265 micro (µ) Controller (HuC). Only applicable if using intel-media-driver for hardware video acceleration. Introduced with Gen9.
Using the GuC for scheduling, context submission, and power management. Introduced with Alder Lake-P (Mobile), within Gen12.

To use this functionality, the GuC firmware must be loaded
Enabling GUC and HUC works for TigerLake and later. Explained in the first post in this thread.
 
Old 12-06-2023, 08:09 AM   #52
zeebra
Senior Member
 
Registered: Dec 2011
Distribution: Slackware
Posts: 1,834
Blog Entries: 17

Rep: Reputation: 642Reputation: 642Reputation: 642Reputation: 642Reputation: 642Reputation: 642
Quote:
Originally Posted by Aeterna View Post
I think that the main reason is here:
https://wiki.archlinux.org/title/Intel_graphics

Enabling GUC and HUC works for TigerLake and later. Explained in the first post in this thread.
Yeah, I never could remember or figure out the Intel codenames and generation stuff, but the old computer is Ivybridge, so it's clearly much too old for most of the video hardware decoding stuff (except h264). I think if I was to compare before and after, before hardware acceleration, the 3d set of things would be around 10%, while after enabling hardware acceleration, it would be around 40%, and when changing from xwayland to wayland it would be at 80%+.

Obviously the test case scenario was not entirely scientific, but combining the factors and using the same test case, it was clear that hardware acceleration was pushed to the 3d part of the situation, and even more so with Wayland than Xwayaland. This all resulted in a gradually lower CPU need when playing the same video (1080p at 60fps). So from my understanding it works (so far) as it should, and from my understanding and what you tell me, that might be about the maximum extent of it with that old computer model.

Anyways, although in theory I could test on a newer computer, that one runs a/in a virtual machine, so it can't really play much video at all, unless I use GPU passthrough to the virtual machine.

But hey, happy days, that's why I have the older machine, to play internet video from, and it had troubles doing so at 1080p@60fps before (even 30fps), but now does it perfectly well. I'll still be looking into those about:config parameters for the old machine, because I don't feel web browsing is optimized, it still kind of coughs at rendering websites.. Not that I use it for that often, but it would be nice to do so without too much trouble.
 
1 members found this post helpful.
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Hardware Acceleration - your system is currently running without video hardware acceleration Dunnyman Linux - Software 3 11-18-2020 02:43 PM
Render Acceleration on integrated intel video nyshtyak Linux - Hardware 2 11-10-2008 05:21 PM
Xorg 2D hardware acceleration for Intel 865G video card michal017 Linux - Software 9 01-16-2006 01:51 AM
Enabling Hardware Acceleration Support for Intel 82865 Integrated VGA saqib Linux - Hardware 1 09-20-2004 05:15 AM
Audigy Sound card and enabling 3D acceleration for GeoForce3 ti 500 heavyarmor4ever Linux - Newbie 1 01-03-2003 09:27 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 02:01 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration