Apologies for breaking the thread, I thought I had _copied_
Pierre's mail to my notes, and then I edited my note on microcode
to include the TLAs for Broadwell etc so that I could understand the
intel release notes next time, and deleted the copy.  But what I'd
actually done was Save the mail, so I'm now posting the original
from the archive.  Sorry about that, blame it on too much
williewaught [1.]

And thanks for finding these explanations of the TLAs.

Pierre wrote:

> Hi,
> 
> While investigating the bug in libva-2.6.0, I realized that there was a new
> vaapi driver for intel GEN8+ graphics: iHD_drv_video.so
> 
> The source is at https://github.com/intel/media-driver.
> 
> If anybody with the appropriate hardware wants to try...
> Personally, I am at 4th gen intel (Haswell), so I cannot test.
> Note that it also requires the gmmlib graphics memory management library:
> https://github.com/intel/gmmlib.
> 
> Note that libva-2.6.0 has a bug (https://github.com/intel/libva/issues/355)
> which prevents using the i965 driver if the iHD driver is also installed. I
> have provided a patch to fix this issue
> (https://github.com/intel/libva/issues/356), but I cannot test for lack of
> hardware! So if anybody has a recent intel CPU (
>     BDW (Broadwell)
>     SKL (Skylake)
>     BXT (Broxton) / APL (Apollo Lake)
>     KBLx (KBL/Kaby Lake; CFL/Coffe Lake; WHL/Whiskey Lake; CML/Comet Lake;
> AML/Amber Lake)
>     ICL (Ice Lake)
>     JSL (Jasper Lake)/EHL (Elkhart Lake)
>     TGL (Tiger Lake)
> )
> please try it, thanks

I _do_ have a low-end skylake (i3 6100), but I don't think I'll have
time to look at this in January, and probably not in February.  But
nevertheless, some comments.

First, GEN8+ is not the same as 8nnn CPUs (Kaby Lake etc).
Broadwell is 5nnn, Skylake are 6nnn (or 7nnn for some, but maybe
those lack integrated graphics).  I think it means the 8th and later
generations of intel integrated graphics.

Oddly, the link to the media-driver looks correct, but 404s when I
click on it from the archive.  But looking at the README there are
two types of build: Full Feature and Free Kernel.  I don't grok the
explanation of the differences, but I see that Arch have a build
which looks straightforward, ditto intel-gmmlib.

Importantly, HuC firmware is needed for several of the encoders,
this is currently disabled by default in released kernels (I believe
there is an attempt to get it enabled by default in 5.5 or perhaps
5.6).  The kernel docs apparently explain how to enable it on
current kernels, but I would be very wary of doing that until it
arrives in a released kernel, because there have been so many
problems.  Back in July phoronix reported it would be loaded by
default in IceLake (Gen 11).  In particular,
https://wiki.archlinux.org/index.php/Intel_graphics#Enable_GuC_/_HuC_firmware_loading
says that loading GuC/HuC firmware can cause freezing, e.g. when
resuming from hibernation.  But the bottom of that page says it is
out of date: Reason: GuC submission has been completely disabled in
the kernel, due to it reducing performance and causing bugs. Setting
enable_guc=3 has no effect.

Yes, that is GuC not HuC, but it doesn't give me a lot of
confidence.  Once a release kernel enables HuC on 5nnn and 6nnn CPUs
with integrated graphics, things ought to be fine.  But meanwhile, I
would class it as "here might be dragons".

Hmm, found the phoronix article I was thinking of,
https://www.phoronix.com/scan.php?page=news_item&px=Intel-GuC-HuC-Auto-Enable-Again
With a link to the patch.  On this AMD machine I've got kernel 5.4.5
source, the patch has NOT been applied there:

> diff --git a/drivers/gpu/drm/i915/i915_params.h  
>> b/drivers/gpu/drm/i915/i915_params.h
>> index d29ade3b7de6..5736c55694fe 100644
>> --- a/drivers/gpu/drm/i915/i915_params.h
>> +++ b/drivers/gpu/drm/i915/i915_params.h
>> @@ -54,7 +54,7 @@ struct drm_printer;
>>         param(int, disable_power_well, -1) \
>>         param(int, enable_ips, 1) \
>>         param(int, invert_brightness, 0) \
>> -       param(int, enable_guc, 0) \
>> +       param(int, enable_guc, -1) \
>>         param(int, guc_log_level, -1) \
>>         param(char *, guc_firmware_path, NULL) \
>>         param(char *, huc_firmware_path, NULL) \

(also a comment that GuC is only used for HuC authentication).

I've also got 5.5-rc4 source, and again this has NOT been applied.

ĸen

1. https://www.dsl.ac.uk/entry/snd/williewaught
-- 
The Laird o’Phelps spent Hogmanay declaring he was sober,
Counted his feet to prove the fact and found he had one foot over.
                          -- Louis MacNeice, Bagpipe Music
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to