You are not logged in.

#1 2020-07-07 10:01:14

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

How can I make sure what capabilities my Intel GPU has?

I have a thinkpad x250 with an Intel i5-5200U processor that comes with HD Graphics 5500.

I would like to make sure what video codecs this GPU can accelarate.
I was hoping it was new enough to support HEVC decoding, but currently it does not do that. However, timewise it is new enough to support it. According to various articles (example) Intel porcessor of the 6th or 7th generation, and upward, should support this. My processor is 8th generation. According to this article it does support HEVC decoding.

What methods can I apply to make absolutely 100% sure what my GPU is capable of, regardless of operating system?
(even better: how can I make my ArchLinux decode HEVC hardware-accelarated on this laptop)

What I got so far:

pacman -Qs intel
local/intel-gmmlib 20.1.1-1
Intel Graphics Memory Management Library
local/intel-hybrid-codec-driver-gcc10 2.0.0.r169.edead0c-3
Libva support for partially hardware accelerated encode and decode on Haswell and newer
local/intel-media-driver 20.1.1-1
Intel Media Driver for VAAPI — Broadwell+ iGPUs
local/intel-media-sdk 20.1.1-1
API to access hardware-accelerated video on Intel Gen graphics hardware platforms
local/libcmrt 1.0.6-2
Intel C for Media RunTime GPU kernel manager
local/libmfx 20.1.1-1
Intel Media SDK dispatcher library
local/libva-intel-driver-hybrid-gcc10 2.4.0-1
VA-API implementation for Intel G45 and HD Graphics family
local/libva-utils 2.7.1-1
Intel VA-API Media Applications and Scripts for libva
local/tbb 2020.2-1
High level abstract threading library
local/xf86-video-intel 1:2.99.917+908+g7181c5a4-1 (xorg-drivers)
X.org Intel i810/i830/i915/945G/G965+ video drivers
LIBVA_DRIVER_NAME=i965 vainfo
vainfo: VA-API version: 1.8 (libva 2.7.1)
vainfo: Driver version: Intel i965 driver for Intel(R) Broadwell - 2.4.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
LIBVA_DRIVER_NAME=iHD vainfo
vainfo: VA-API version: 1.8 (libva 2.7.1)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileVP8Version0_3 : VAEntrypointVLD

The output differs slightly, but neither contains HEVC or x265 or H265.
Some tests with mpv confirm that x264 runs accelarated, but x265 does not.
I am currently using libva-intel-driver-hybrid-gcc10 and intel-hybrid-codec-driver-gcc10 from AUR, but I have also tried with the mainstream variant libva-intel-driver, the output varies in one or two other codecs but not with HEVC.
In any case, according to this the best driver for my GPU is intel-media-driver (iHD)?

Last edited by ondoho (2020-07-07 10:15:20)

Offline

#2 2020-07-07 10:41:21

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,751

Re: How can I make sure what capabilities my Intel GPU has?

Intel media driver should be best yes, but this is a Broadwell CPU I don't think they have HEVC regardless, see: https://github.com/intel/media-driver/# … g-features

However as for the question, being 100% sure regardless of operating system, I doubt that that's  possible. If HEVC is available in DXVA but not in any libraries on linux then there's not much you will be able to do about that.

From what I'm gathering it would only be partial anyway whatever that means in practice.

Last edited by V1del (2020-07-07 10:50:10)

Offline

#3 2020-07-08 08:41:34

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

Re: How can I make sure what capabilities my Intel GPU has?

V1del wrote:

Intel media driver should be best yes, but this is a Broadwell CPU I don't think they have HEVC regardless, see: https://github.com/intel/media-driver/# … g-features

This is specifically for the linux intel-media-driver, yes?
And the empty space where HEVC and Broadwell cross couldn't be clearer.
But this is in clear contrast to e.g. this article which states that "The video engine can now decode H.265 using both fixed function hardware as well as available GPU shaders".
So this is one of the cases where Linux is still behind in hardware support? That's sad, I did my due diligence researching before I bought the laptop but never considered this possibility.

Offline

#4 2020-07-08 14:01:18

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,751

Re: How can I make sure what capabilities my Intel GPU has?

I do believe that article might have a typo, most other references (... a few wikipedia pages and some intel docs fwiw) I find in relation to this only mention full support for h264 and then after release patches that enabled partial support for h265 even on windows (where I haven't been able to find a definition of partial) e.g.:

https://en.wikipedia.org/wiki/Intel_Qui … evelopment
https://en.wikipedia.org/wiki/Intel_Gra … eleration)
https://community.intel.com/t5/Graphics … 7?tstart=0

Offline

#5 2020-07-08 15:11:02

sabroad
Member
Registered: 2015-05-24
Posts: 242

Re: How can I make sure what capabilities my Intel GPU has?

ondoho wrote:

But this is in clear contrast to e.g. this article which states that "The video engine can now decode H.265 using both fixed function hardware as well as available GPU shaders".

Broadwell's support for h.265 decode is partial in that it is implemented by "utilizing both portions of their fixed function video decoder and executing decoding steps on their shaders". (Note the importance of wording.)

ondoho wrote:

So this is one of the cases where Linux is still behind in hardware support?

No, since "executing decoding steps on their shaders" is another way of saying it's implemented in software (albeit running on a GPU).

Last edited by sabroad (2020-07-08 15:28:58)


--
saint_abroad

Offline

#6 2020-07-09 09:45:19

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

Re: How can I make sure what capabilities my Intel GPU has?

sabroad, I thank you but I will have to take your word for it.
I wondered why the wording is so strange but I cannot derive any meaning from it.
So Windows users would have the same problem? What exactly are they promising there? Something concerning HEVC playback?

V1del, [this article](https://community.intel.com/t5/Graphics … 7?tstart=0) states

GPU accelerated decode of HEVC video file format including both 8-bit and 10-bit support. This will provide improved video playback capabilities on the platforms listed in the following table.

<span style="color: # 000000; font-...

Unfortunately it cuts off at "font-...", even with a vanilla browser setup...?

Thanks to both of you for looking into it.

I guess there's no point in hunting for some sort of better, updated intel GPU driver?

Last edited by ondoho (2020-07-09 09:46:57)

Offline

#7 2020-07-10 15:22:22

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,938

Re: How can I make sure what capabilities my Intel GPU has?

Well, the mesa iris driver is supposed to be better/much-more-modern then the old mesa 1915/ i965 driver. Have you tried running with the mesa Iris driver ?


Please post

$ vainfo
$ glxinfo -B # glxinfo comes with mesa-demos

outputs


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#8 2020-07-11 13:11:57

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

Re: How can I make sure what capabilities my Intel GPU has?

The output of 'vainfo' is still the same as in post #1, for both drivers.

The 'glxinfo' is identical for both drivers:

$> glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel (0x8086)
    Device: Mesa Intel(R) HD Graphics 5500 (BDW GT2) (0x1616)
    Version: 20.1.3
    Accelerated: yes
    Video memory: 3072MB
    Unified memory: yes
    Preferred profile: core (0x1)
    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 vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 5500 (BDW GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.1.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.1.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Offline

#9 2020-07-12 10:46:33

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

Re: How can I make sure what capabilities my Intel GPU has?

Lone_Wolf wrote:

Well, the mesa iris driver is supposed to be better/much-more-modern then the old mesa 1915/ i965 driver. Have you tried running with the mesa Iris driver ?

AFAIU, it is the default since mesa 20.0.
Anyhow, setting it explicitely does not affect the output of 'vainfo' or 'glxinfo -B'.

Offline

#10 2020-07-12 11:02:31

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,938

Re: How can I make sure what capabilities my Intel GPU has?

The reason for asking for vainfo output without any parameters is that I wanted to know which driver libva uses if you don't force one by running it with LIBVA_DRIVER_NAME prepended.

For clarity : you have not tried running with the older intel mesa driver but all tests were with mesa default IRIS ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#11 2020-07-12 11:41:03

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

Re: How can I make sure what capabilities my Intel GPU has?

Lone_Wolf wrote:

The reason for asking for vainfo output without any parameters is that I wanted to know which driver libva uses if you don't force one by running it with LIBVA_DRIVER_NAME prepended.

Oh sorry I didn't catch that.
It uses the iHD driver by default.

Lone_Wolf wrote:

For clarity : you have not tried running with the older intel mesa driver but all tests were with mesa default IRIS ?

I was unaware of MESA_LOADER_DRIVER_OVERRIDE until you pointed it out.
So unless mesa updated from 19 to 20 very recently, yes, I did not try running with the older intel mesa driver but all tests were with mesa default IRIS.

Is mesa relevant for video codecs?
Maybe I need to install more mesa packages?

$> pacman -Qs mesa
local/glu 9.0.1-2
Mesa OpenGL Utility library
local/mesa 20.1.3-1
An open-source implementation of the OpenGL specification
local/mesa-demos 8.4.0-4
Mesa demos and tools incl. glxinfo + glxgears

Offline

#12 2020-07-12 12:45:05

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,938

Re: How can I make sure what capabilities my Intel GPU has?

linux graphics system has multiple layers, [1] gives a good overview .

Looking at VA-API it should bypass OpenGL and not matter which driver mesa uses for OpenGL.
The important keyword here however is "should" .
Try forcing mesa to use the older implementation and see if that changes anything.


[1] https://www.reddit.com/r/archlinux/comm … m/djsc8at/


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#13 2020-07-17 11:15:21

ondoho
Member
Registered: 2013-04-30
Posts: 692
Website

Re: How can I make sure what capabilities my Intel GPU has?

^ I think we're beginning to turn in circles here.
But thanks for the reddit link, it confirms that for my Q,  VA-Api is important, and OpenGL isn't.

sabroad wrote:

Broadwell's support for h.265 decode is partial in that it is implemented by "utilizing both portions of their fixed function video decoder and executing decoding steps on their shaders". (Note the importance of wording.)
(...)
"executing decoding steps on their shaders" is another way of saying it's implemented in software (albeit running on a GPU).

This seems to explain it well enough and is also confirmed by 'top' output when playing a x265 video - It's higher than with a comparable x264, but not overly so.

Just strange that this "partial" decoding support doesn't show up in vainfo's output...

Offline

Board footer

Powered by FluxBB