Linux Intel HD 530 GPU support for HEVC on Ubuntu 22.04 LTS
#1
I’m trying to figure out if the Intel HD 530 GPU actually supports hardware acceleration when playing HEVC video. As a test I’m playing both the Astra and SES UHD demo channels on Astra 28.2. In both cases hardware acceleration is reported Inactive. It’s fine for H264 and MPEG channels. My desktop is a HP 400 G3 SFF with integrated Intel HD530 GPU (Skylake 9th Generation processor) if I’m not mistaken.
Reply
#2
(2023-02-18, 02:24)petediscrete Wrote: I’m trying to figure out if the Intel HD 530 GPU actually supports hardware acceleration when playing HEVC video. As a test I’m playing both the Astra and SES UHD demo channels on Astra 28.2. In both cases hardware acceleration is reported Inactive. It’s fine for H264 and MPEG channels. My desktop is a HP 400 G3 SFF with integrated Intel HD530 GPU (Skylake 9th Generation processor) if I’m not mistaken.

I think the Astra UHD stuff is HEVC 10-bit, but Skylake only has acceleration for HEVC 8-bit, so 10-bit stuff is delegated to CPU decode?
Reply
#3
this claims it does, but the 530 graphics being Intel "HD" graphics (not UHD) makes me question it - https://en.wikichip.org/wiki/intel/hd_graphics/530

the actual manufacturer does not advertise it in the specs - https://support.hp.com/us-en/document/c04884992#AbT6
Quote:Full AVC/VC1/MPEG2 HW Decode
Reply
#4
It’s been a rollercoaster ride trying to determine a solution. Kodi on LE on a RockPro64 using the Mali chipset does it no problem but trying to get a definitive answer using the Intel HD530 GPU has thrown up so many different possible solutions.

What I think I’ve learnt is that HEVC 10 bit is not supported and if the demo UHD channels are indeed in 10 bit I’m dead in the water. Yes it will decode them via software but it’s hammering the CPU and it shows with occasional pixelation and tearing.

I’m assuming that with the Ubuntu installation and selecting the 3rd party drivers installation option that I should have the latest Intel drivers installed. I really don’t know where to go from here.
Reply
#5
(2023-02-18, 02:37)jepsizofye Wrote: this claims it does, but the 530 graphics being Intel "HD" graphics (not UHD) makes me question it - https://en.wikichip.org/wiki/intel/hd_graphics/530

the actual manufacturer does not advertise it in the specs - https://support.hp.com/us-en/document/c04884992#AbT6
Quote:Full AVC/VC1/MPEG2 HW Decode

Funny thing but when I had Windows 10 running on this desktop it did manage to use hardware acceleration via DVXA2 on those UHD demo channels albeit a little unpredictable I’m convinced there’s an updated Intel driver for Linux that could be used here but I just can’t seem to find an answer. I’ve already ready read through those links you referenced but thanks anyway.
Reply
#6
HD530 should do HEVC 10bit as per that first listing (main 10), but it won't do h264 10bit, which is for example commonly found in lots of anime videos. So double-check the format details of the video.

If things work in LibreELEC, it should also work in Ubuntu. Mind you, I had to use an earlier version of Ubuntu at first (20.04 vs 22.04), to get my UHD605 graphics working properly. So perhaps 23.04 isn't the best solution..? (I prefer sticking to the LTS releases anyway) Creating a bootable usb stick with Ubuntu is easily done.
Reply
#7
thats an awesome point Klojum made on a nice stable LTS slightly older version of the operating system

perhaps a "bleeding edge" (pre-release, not scheduled until april) operating system on a computer from 2015 isnt the best option

heres a link for making a live usb - https://ubuntu.com/tutorials/create-a-us...-on-ubuntu

ive been trying to read up on some stuff regarding this but without your exact machine to try things out on im flying blind and it wont help you at all
Reply
#8
Rather than going down a rabbit hole I’m using Ubuntu 22.04 LTS here. The age of the desktop PC is irrelevant other than the Skylake chipset is supposed to support HEVC.

Yes it’s 2015 vintage but I can only go by what Intel state that their GPU supports HEVC. I’ve searched the net high and low and still haven’t discovered a definitive answer.
Reply
#9
(2023-02-18, 05:48)petediscrete Wrote: ... The age of the desktop PC is irrelevant ...
highly disagree since theres no way to know when something gets EOL'd, in a new operating system or otherwise, firmware could have been abandoned and not compatible with a new kernel

but carry on, i didnt mean to offend, i will not answer any further
Reply
#10
(2023-02-18, 05:54)jepsizofye Wrote:
(2023-02-18, 05:48)petediscrete Wrote: ... The age of the desktop PC is irrelevant ...
highly disagree since theres no way to know when something gets EOL'd, in a new operating system or otherwise, firmware could have been abandoned and not compatible with a new kernel

but carry on, i didnt mean to offend, i will not answer any further

The fact that Intel stated that the HD 530 supports HEVC is enough to ask why it appears in this case it doesn’t. That’s why I said the age of the PC is irrelevant.

It appears from all the searches I’ve made so far there is no definitive answer to this question.

Ironically I live quite close to the factory who manufactured the Skylake chip.

I really do invite anyone who has something to add to my dilemma. I can assure you I dismiss nothing.
Reply
#11
I've done a bit more digging

The table here :  https://github.com/intel/media-driver#de...g-features confirms that the core video decode in SKL (Skylake) is 8-bit only for HEVC - so the regular video decode path in SKL decoders using Intel QSV etc. only supports 8-bit HEVC decoding.

More discussion here - https://github.com/rigaya/QSVEnc/issues/...-888683824

What complicates things is that I think Skylake was the era - in Windows at least(?) - of the 'Intel Hybrid Decoder' where there were Windows drivers that used other parts of the GPU other than the QSV sub-system (I think) to assist with some acceleration of other codecs (like HEVC 10-bit) decoding, however this is separate to the core QSV decoding support (and may not be present at all in Linux, or not used as it's a non-standard approach using a combination of CPU and GPU compute/shader stuff? - rather than GPU decode)?

The Astra 28.2 UHD Demo service video is definitely HEVC Main 10 (though SDR not HDR) - here's the ffmpeg and Media Info output when I feed them a transport stream from the service just now using TV Headend.

  Program 1
    Metadata:
      service_name    : Astra UHD Demo
      service_provider: SES ASTRA
  Stream #0:0[0xd2]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn
  Stream #0:1[0xdc](und): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 192 kb/s
  Stream #0:2[0xf00]: Unknown: none ([5][0][0][0] / 0x0005)
  Stream #0:3[0xf01]: Unknown: none ([5][0][0][0] / 0x0005)
  Stream #0:4[0xf02]: Unknown: none ([5][0][0][0] / 0x0005)
  Stream #0:5[0xf03]: Unknown: none ([5][0][0][0] / 0x0005)
  Stream #0:6[0xf04]: Unknown: none ([5][0][0][0] / 0x0005)

Video
ID                                       : 256 (0x100)
Menu ID                                  : 1 (0x1)
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main [email protected]@main
Codec ID                                 : 36
Duration                                 : 18 s 900 ms
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 50.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Writing library                          : ATEME Titan File 3.8.2 (4.8.2.0)   
Reply
#12
just run "vainfo" to see the supported profiles for hardware decoding
Reply
#13
If it's properly accelerated there shouldn't be a problem, but this is a 50fps video. What happens with a 23/24/30 fps 4K video?

My experience is that Intel's Linux video drivers aren't up to par with their Windows' counterpart. Youtube videos start stuttering sooner at higher resolutions/framerates in Ubuntu/Linux than when running Windows 11. Displaying 1440p@60 in Youtube (vp9) can already be a challenge in Firefox.
Reply
#14
(2023-02-18, 13:06)wsnipex Wrote: just run "vainfo" to see the supported profiles for hardware decoding

That was one of the first things I did and it confirmed that it does support hardware acceleration in this case. I made sure I did quite a bit researching before I presented my case here.

I’m certainly no expert on this subject but during my search I seem to recall Intel had a driver to resolve this issue but it was quite recent and maybe it’s not available in the 22.04 LTS repository. Again this is just speculation.

As I mentioned, in Windows 10 hardware acceleration was supported on this machine so at least I know the GPU is capable of it.
Reply
#15
(2023-02-18, 15:32)petediscrete Wrote:
(2023-02-18, 13:06)wsnipex Wrote: just run "vainfo" to see the supported profiles for hardware decoding

That was one of the first things I did and it confirmed that it does support hardware acceleration in this case. I made sure I did quite a bit researching before I presented my case here.
Did it detail the bit depth of the video that had support i.e. did it explicitly state 10-bit HEVC hardware acceleration was supported ?  Intel's GitHub for Linux drivers I linked to above only lists 8-bit HEVC decode as being supported by SKL, and lists no support for 10-bit.  (10-bit HEVC decode is listed as coming a generation later than Skylake with Skylake HEVC support as 8-bit only)

The Astra UHD stuff is clearly 10-bit.
Quote:As I mentioned, in Windows 10 hardware acceleration was supported on this machine so at least I know the GPU is capable of it.
Yes - but as I've mentioned some Windows accelerated decode was implemented not in a conventional video decoder (i.e. not as other video was hardware accelerated) - but instead the drivers offloaded some compute to the GPU, whilst the CPU did some (the so-called 'Hybrid' approach), rather than passing the compressed video to be decoded entirely in hardware in the GPU. ISTR that hybrid drivers weren't developed for Linux and were Windows only.
Reply

Logout Mark Read Team Forum Stats Members Help
Intel HD 530 GPU support for HEVC on Ubuntu 22.04 LTS0