Intel Skylake GPUs support HEVC Main Profile decoding, but they do not fully support all Main 10 or advanced profiles such as Main 4:2:2 or 10-bit HDR variants.
On Thu Jan 09, 2025 at 07:12:25AM +0100, Jan Stary wrote: > This is current/amd64 (dmesg below). > The graphics (Skylake) supports HEVC decoding > > $ vainfo > Trying display: x11 > libva info: VA-API version 1.22.0 > libva info: Trying to open /usr/X11R6/lib/modules/dri/iHD_drv_video.so > libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so > libva info: Found init function __vaDriverInit_1_22 > libva info: va_openDriver() returns 0 > vainfo: VA-API version: 1.22 (libva 2.22.0) > vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.2.5 > (OpenBSD) > 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 > VAProfileVP8Version0_3 : VAEntrypointEncSlice > VAProfileHEVCMain : VAEntrypointVLD > VAProfileHEVCMain : VAEntrypointEncSlice > VAProfileHEVCMain : VAEntrypointFEI > > I am testing with the following file: > > hans@bzm:~$ ffprobe london.mp4 > ffprobe version 6.1.2 Copyright (c) 2007-2024 the FFmpeg developers > built with OpenBSD clang version 16.0.6 > configuration: --enable-shared --arch=amd64 --cc=cc --cxx=c++ > --enable-debug --disable-stripping --disable-indev=jack --disable-outdev=sdl2 > --disable-vulkan --enable-fontconfig --enable-frei0r --enable-gpl > --enable-ladspa --enable-libaom --enable-libass --enable-libdav1d > --enable-libfontconfig --enable-libfreetype --enable-libfribidi > --enable-libgsm --enable-libmp3lame --enable-libopus --enable-libspeex > --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx > --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid > --enable-libzimg --enable-nonfree --enable-openssl --enable-libvidstab > --extra-cflags='-I/usr/local/include -I/usr/X11R6/include' > --extra-libs='-L/usr/local/lib -L/usr/X11R6/lib' --extra-ldsoflags= > --mandir=/usr/local/man --objcc=/usr/bin/false --optflags='-O2 -pipe -g > -Wno-redundant-decls' > libavutil 58. 29.100 / 58. 29.100 > libavcodec 60. 31.102 / 60. 31.102 > libavformat 60. 16.100 / 60. 16.100 > libavdevice 60. 3.100 / 60. 3.100 > libavfilter 9. 12.100 / 9. 12.100 > libswscale 7. 5.100 / 7. 5.100 > libswresample 4. 12.100 / 4. 12.100 > libpostproc 57. 3.100 / 57. 3.100 > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'london.mp4': > Metadata: > major_brand : isom > minor_version : 1 > compatible_brands: isom > creation_time : 2016-09-06T12:19:58.000000Z > Duration: 00:59:58.84, start: 0.000000, bitrate: 2903 kb/s > Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668), > yuv420p10le(tv), 1920x1080, 2771 kb/s, 25 fps, 25 tbr, 25k tbn (default) > Metadata: > creation_time : 2016-09-06T11:53:57.000000Z > handler_name : hevc@GPAC0.6.1-rev0-g72d766c-master > vendor_id : [0][0][0][0] > Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, > stereo, fltp, 127 kb/s (default) > Metadata: > creation_time : 2016-09-06T11:00:53.000000Z > handler_name : English > vendor_id : [0][0][0][0] > Stream #0:2[0x3](eng): Subtitle: mov_text (tx3g / 0x67337874), 1920x1080, 0 > kb/s > Metadata: > creation_time : 2016-09-06T12:20:40.000000Z > handler_name : English > > > I am not entirely sure what "hevc (Main 10) (hvc1 / 0x31637668)" is, > but e.g. mpv says "hevc: No support for codec hevc profile 2." > > $ mpv london.mp4 > 0m (+) Video --vid=1 (*) (hevc 1920x1080 25.000fps) > 0m0m (+) Audio --aid=1 --alang=eng (*) (aac 2ch 48000Hz) > 0m0m (+) Subs --sid=1 --slang=eng (mov_text) > 0m0;31m[ffmpeg/video] hevc: No support for codec hevc profile 2. > 0m0;31m[ffmpeg/video] hevc: No support for codec hevc profile 2. > 0m0;31m[ffmpeg/video] hevc: Failed setup for format vaapi: hwaccel > initialisation returned error. > 0m0mAO: [sndio] 48000Hz stereo 2ch s16 > 0m0mVO: [gpu] 1920x1080 yuv420p10 > 0mAV:l00:00:01:/000:59:58:(0%)8A-V:)-0.0020m?25h0m1K > 0mExiting... (Quit) > > Can someone more video-savy please explain what exactly it is > that my Skylake (or the vaapi support of it) is missing? > > Reading > https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding_tiers_and_levels > I suppose I have support for the HEVC Main tier, not the High tier. > But what is the "profile 2" mpv complains about? > > While here, is there a way to tell if ffplay is using hardware decoding? > Possibly not on this file, but in general: mpv says so if it does. > > $ ffplay london.mp4 > ffplay version 6.1.2 Copyright (c) 2003-2024 the FFmpeg developers > built with OpenBSD clang version 16.0.6 > configuration: --enable-shared --arch=amd64 --cc=cc --cxx=c++ > --enable-debug --disable-stripping --disable-indev=jack --disable-outdev=sdl2 > --disable-vulkan --enable-fontconfig --enable-frei0r --enable-gpl > --enable-ladspa --enable-libaom --enable-libass --enable-libdav1d > --enable-libfontconfig --enable-libfreetype --enable-libfribidi > --enable-libgsm --enable-libmp3lame --enable-libopus --enable-libspeex > --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx > --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid > --enable-libzimg --enable-nonfree --enable-openssl --enable-libvidstab > --extra-cflags='-I/usr/local/include -I/usr/X11R6/include' > --extra-libs='-L/usr/local/lib -L/usr/X11R6/lib' --extra-ldsoflags= > --mandir=/usr/local/man --objcc=/usr/bin/false --optflags='-O2 -pipe -g > -Wno-redundant-decls' > libavutil 58. 29.100 / 58. 29.100 > libavcodec 60. 31.102 / 60. 31.102 > libavformat 60. 16.100 / 60. 16.100 > libavdevice 60. 3.100 / 60. 3.100 > libavfilter 9. 12.100 / 9. 12.100 > libswscale 7. 5.100 / 7. 5.100 > libswresample 4. 12.100 / 4. 12.100 > libpostproc 57. 3.100 / 57. 3.100 > Inputa#0, mov,mp4,m4a,3gp,3g2,mj2, fromv'london.mp4': 0B f=0/0 > Metadata: > major_brand : isom > minor_version : 1 > compatible_brands: isom > creation_time : 2016-09-06T12:19:58.000000Z > Duration: 00:59:58.84, start: 0.000000, bitrate: 2903 kb/s > Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668), > yuv420p10le(tv), 1920x1080, 2771 kb/s, 25 fps, 25 tbr, 25k tbn (default) > Metadata: > creation_time : 2016-09-06T11:53:57.000000Z > handler_name : hevc@GPAC0.6.1-rev0-g72d766c-master > vendor_id : [0][0][0][0] > Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, > stereo, fltp, 127 kb/s (default) > Metadata: > creation_time : 2016-09-06T11:00:53.000000Z > handler_name : English > vendor_id : [0][0][0][0] > Stream #0:2[0x3](eng): Subtitle: mov_text (tx3g / 0x67337874), 1920x1080, 0 > kb/s > Metadata: > creation_time : 2016-09-06T12:20:40.000000Z > handler_name : English > 2.24 A-V: -0.018 fd= 5 aq= 446KB vq=14965KB sq= 0B f=0/0 > > > Jan > > > OpenBSD 7.6-current (GENERIC.MP) #491: Sat Dec 28 12:03:05 MST 2024 > dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 12749877248 (12159MB) > avail mem = 12339843072 (11768MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xed1e0 (37 entries) > bios0: vendor AMI version "02.25" date 03/10/2022 > bios0: HP Pippin2 > acpi0 at bios0: ACPI 5.0 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP APIC FPDT FIDT MCFG HPET SSDT LPIT SSDT SSDT SSDT > SSDT DBGP DBG2 SSDT SSDT UEFI SSDT DMAR DBGP > acpi0: wakeup devices PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) PEGP(S4) > RP09(S4) PXSX(S4) RP10(S4) PXSX(S4) RP11(S4) PXSX(S4) RP12(S4) PXSX(S4) > RP13(S4) PXSX(S4) [...] > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz, 2194.89 MHz, 06-4e-03, patch > 000000f0 > cpu0: cpuid 1 > edx=bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> > > ecx=77fafbbf<SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND> > cpu0: cpuid 6 eax=27f7<SENSOR,ARAT> ecx=9<EFFFREQ> > cpu0: cpuid 7.0 > ebx=29c6fbf<FSGSBASE,TSC_ADJUST,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT> > edx=bc002e00<SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD> > cpu0: cpuid a vers=4, gp=4, gpwidth=48, ff=3, ffwidth=48 > cpu0: cpuid d.1 eax=f<XSAVEOPT,XSAVEC,XGETBV1,XSAVES> > cpu0: cpuid 80000001 edx=2c100800<NXE,PAGE1GB,RDTSCP,LONG> > ecx=121<LAHF,ABM,3DNOWP> > cpu0: cpuid 80000007 edx=100<ITSC> > cpu0: msr 10a=c04<RSBA,MISC_PKG_CT,ENERGY_FILT> > cpu0: MELTDOWN > cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB > 64b/line 4-way L2 cache, 3MB 64b/line 12-way L3 cache > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 24MHz > cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE > cpu1 at mainbus0: apid 2 (application processor) > cpu1: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz, 2194.89 MHz, 06-4e-03, patch > 000000f0 > cpu1: smt 0, core 1, package 0 > cpu2 at mainbus0: apid 1 (application processor) > cpu2: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz, 2194.89 MHz, 06-4e-03, patch > 000000f0 > cpu2: smt 1, core 0, package 0 > cpu3 at mainbus0: apid 3 (application processor) > cpu3: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz, 2194.89 MHz, 06-4e-03, patch > 000000f0 > cpu3: smt 1, core 1, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins > acpimcfg0 at acpi0 > acpimcfg0: addr 0xf0000000, bus 0-127 > acpihpet0 at acpi0: 23999999 Hz > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (PEG0) > acpiprt2 at acpi0: bus -1 (PEG1) > acpiprt3 at acpi0: bus -1 (PEG2) > acpiprt4 at acpi0: bus -1 (RP09) > acpiprt5 at acpi0: bus -1 (RP10) > acpiprt6 at acpi0: bus -1 (RP11) > acpiprt7 at acpi0: bus -1 (RP12) > acpiprt8 at acpi0: bus -1 (RP13) > acpiprt9 at acpi0: bus -1 (RP01) > acpiprt10 at acpi0: bus -1 (RP02) > acpiprt11 at acpi0: bus 1 (RP03) > acpiprt12 at acpi0: bus 2 (RP04) > acpiprt13 at acpi0: bus -1 (RP05) > acpiprt14 at acpi0: bus -1 (RP06) > acpiprt15 at acpi0: bus -1 (RP07) > acpiprt16 at acpi0: bus -1 (RP08) > acpiprt17 at acpi0: bus -1 (RP17) > acpiprt18 at acpi0: bus -1 (RP18) > acpiprt19 at acpi0: bus -1 (RP19) > acpiprt20 at acpi0: bus -1 (RP20) > acpiprt21 at acpi0: bus -1 (RP14) > acpiprt22 at acpi0: bus -1 (RP15) > acpiprt23 at acpi0: bus -1 (RP16) > acpiec0 at acpi0: not present > acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001 > acpicmos0 at acpi0 > acpibtn0 at acpi0: SLPB > intelpmc0 at acpi0: PEPD > state 0: 0x7f:1:2:0x00:0x0000000000000060 > counter: 0x7f:64:0:0x00:0x0000000000000632 > frequency: 0 > state 1: 0x7f:1:2:0x00:0x0000000000000060 > counter: 0x7f:64:0:0x00:0x0000000000000632 > frequency: 0 > acpibtn1 at acpi0: PWRB > "PNP0C14" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > acpicpu0 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpicpu1 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpicpu2 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpicpu3 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpipwrres0 at acpi0: PG00, resource for PEG0 > acpipwrres1 at acpi0: PG01, resource for PEG1 > acpipwrres2 at acpi0: PG02, resource for PEG2 > acpipwrres3 at acpi0: WRST > acpipwrres4 at acpi0: WRST > acpipwrres5 at acpi0: WRST > acpipwrres6 at acpi0: WRST > acpipwrres7 at acpi0: WRST > acpipwrres8 at acpi0: WRST > acpipwrres9 at acpi0: WRST > acpipwrres10 at acpi0: WRST > acpipwrres11 at acpi0: WRST > acpipwrres12 at acpi0: WRST > acpipwrres13 at acpi0: WRST > acpipwrres14 at acpi0: WRST > acpipwrres15 at acpi0: WRST > acpipwrres16 at acpi0: WRST > acpipwrres17 at acpi0: WRST > acpipwrres18 at acpi0: WRST > acpipwrres19 at acpi0: WRST > acpipwrres20 at acpi0: WRST > acpipwrres21 at acpi0: WRST > acpipwrres22 at acpi0: WRST > acpipwrres23 at acpi0: FN00, resource for FAN0 > acpipwrres24 at acpi0: FN01, resource for FAN1 > acpipwrres25 at acpi0: FN02, resource for FAN2 > acpipwrres26 at acpi0: FN03, resource for FAN3 > acpipwrres27 at acpi0: FN04, resource for FAN4 > acpitz0 at acpi0: critical temperature is 119 degC > acpitz1 at acpi0: critical temperature is 119 degC > acpivideo0 at acpi0: GFX0 > acpivout0 at acpivideo0: DD1F > cpu0: using VERW MDS workaround (except on vmm entry) > cpu0: Enhanced SpeedStep 2194 MHz: speeds: 2301, 2300, 2200, 2000, 1900, > 1800, 1600, 1500, 1300, 1200, 1100, 900, 800, 700, 500, 400 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "Intel Core 6G Host" rev 0x08 > inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 520" rev 0x07 > drm0 at inteldrm0 > inteldrm0: msi, SKYLAKE, gen 9 > "Intel Core GMM" rev 0x00 at pci0 dev 8 function 0 not configured > xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x21: msi, xHCI > 1.0 > usb0 at xhci0: USB revision 3.0 > uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 > addr 1 > "Intel 100 Series MEI" rev 0x21 at pci0 dev 22 function 0 not configured > ahci0 at pci0 dev 23 function 0 "Intel 100 Series AHCI" rev 0x21: msi, AHCI > 1.3.1 > ahci0: device on port 0 didn't come ready, TFD: 0x80<BSY> > ahci0: CLO did not complete > ahci0: port 0: 3.0Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 0 lun 0: <ATA, INTEL SSDSA2M040, 2CV1> > naa.50015179593bd675 > sd0: 38166MB, 512 bytes/sector, 78165360 sectors, thin > ppb0 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: msi > pci1 at ppb0 bus 1 > re0 at pci1 dev 0 function 0 "Realtek 8168" rev 0x10: RTL8168GU/8111GU > (0x5080), msi, address 7c:d3:0a:21:eb:f5 > rgephy0 at re0 phy 7: RTL8251, rev. 0 > ppb1 at pci0 dev 28 function 3 "Intel 100 Series PCIE" rev 0xf1: msi > pci2 at ppb1 bus 2 > "Realtek 8723BE" rev 0x00 at pci2 dev 0 function 0 not configured > pcib0 at pci0 dev 31 function 0 "Intel 100 Series LPC" rev 0x21 > "Intel 100 Series PMC" rev 0x21 at pci0 dev 31 function 2 not configured > azalia0 at pci0 dev 31 function 3 "Intel 100 Series HD Audio" rev 0x21: msi > azalia0: codecs: Realtek ALC221, Intel/0x2809, using Realtek ALC221 > audio0 at azalia0 > ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x21: apic 2 > int 16 > iic0 at ichiic0 > spdmem0 at iic0 addr 0x50: 8GB DDR4 SDRAM PC4-17000 SO-DIMM > spdmem1 at iic0 addr 0x52: 4GB DDR4 SDRAM PC4-17000 SO-DIMM > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT > uhidev0 at uhub0 port 4 configuration 1 interface 0 "vendor 0x173d product > 0x0004" rev 1.10/1.50 addr 2 > uhidev0: iclass 3/1 > ukbd0 at uhidev0: 8 variable keys, 6 key codes > wskbd1 at ukbd0 mux 1 > uhidev1 at uhub0 port 4 configuration 1 interface 1 "vendor 0x173d product > 0x0004" rev 1.10/1.50 addr 2 > uhidev1: iclass 3/0, 3 report ids > uhid0 at uhidev1 reportid 1: input=3, output=0, feature=0 > uhid1 at uhidev1 reportid 2: input=1, output=0, feature=0 > ucc0 at uhidev1 reportid 3: 4 usages, 3 keys, array > wskbd2 at ucc0 mux 1 > uhidev2 at uhub0 port 5 configuration 1 interface 0 "Logitech USB-PS/2 > Optical Mouse" rev 2.00/11.10 addr 3 > uhidev2: iclass 3/1 > ums0 at uhidev2: 3 buttons, Z dir > wsmouse0 at ums0 mux 0 > ugen0 at uhub0 port 6 "Realtek Bluetooth Radio" rev 2.10/2.00 addr 4 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > root on sd0a (921cf7198fa2abbd.a) swap on sd0b dump on sd0b > inteldrm0: 1680x1050, 32bpp > wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0 > wskbd1: connecting to wsdisplay0 > wskbd2: connecting to wsdisplay0 > wsdisplay0: screen 1-5 added (std, vt100 emulation) >