Linux Packaging - Developer's Sandbox - HDR tonemapping packaging support

Here’s my output from the most recent script:

# Plex Media Server installation configuration info:  Thu Mar 11 03:34:39 PM EST 2021
Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=1
HaveOverride=0
OverrideFile=""
PlexUser="plex"
PlexGroup="plex"
VideoGroup="render"
AppSuppDir="/var/lib/plexmediaserver/Library/Application Support"
PlexTempDir="/tmp"
LangEncoding="en_US.UTF-8"
ExistingVersion=0
HaveHardware=1
HaveTranscoderPref=0
NeedUser=1
NeedGroup=1
NeedVideo=1
Verbose=1
Running=1
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=0
HaveIntelXeon=0
Havei915=1
HaveNvidia=0
CPUSKU=8300
NeedBeignet=0
NeedIntelCompute=0
HaveIntelOpenCLICD=0
HaveIntelIgc=0
HaveIntelOcloc=0
HaveIntelZeroGPU=0
HaveIntelCompute=0
HaveBeignetIcd=0
HaveOpenCL=0
HaveBeignet=0
Platform="STK1AW32SC"
Processor="Intel(R) Atom(TM) x5-Z8300  CPU @ 1.44GHz"
Distro="Ubuntu 20.10"
Kernel="Linux computestick 5.8.0-44-generic #50-Ubuntu SMP Tue Feb 9 06:29:41 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux"
Memory="1896 837 141"

Run natively on Ubuntu 20.10 desktop; system has Beignet and Intel OpenCL ICDs installed.

@pshanew

Ok, that’s working as I expect it too now:

  1. It’s identifying as SKU (not the poorly named QSVClas)
  2. It knows, from the info obtained:
    a. Sees the i915
    b. Not an Intel Core processor or selected Xeon - No Quick Sync Video
  3. Doesn’t look for anything else.

Now, what eeds vetting out. Does that machine actually perform tonemapping in hardware ?

It is only an atom. Can you tonemap 40 Mbps video?

You’re really making my life difficult, aren’t you? :stuck_out_tongue:

This appears to be missing beignet/opencl on my end too. VMWare/Debian

Plex Media Server installation configuration info: Thu 11 Mar 2021 02:49:15 PM CST

Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=""
PlexUser=“plex”
PlexGroup=“plex”
VideoGroup=“render”
AppSuppDir="/var/lib/plexmediaserver/Library/Application Support"
PlexTempDir="/transcode"
LangEncoding=“en_US.UTF-8”
ExistingVersion=12200
HaveHardware=1
HaveTranscoderPref=1
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=1
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=0
HaveIntelXeon=1
Havei915=0
HaveNvidia=0
QSVClass=
NeedBeignet=0
NeedIntelCompute=0
HaveIntelOpenCLICD=0
HaveLibIGC=0
HaveOcloc=0
HaveZeroIntelGPU=0
HaveBeignet=0
HaveOpenCL=0
HaveDependencies=0
HaveIntelCompute=0
Platform=“VMware Virtual Platform”
Processor=“Intel® Xeon® CPU E5-2680 v2 @ 2.80GHz”
Distro=“Debian GNU/Linux bullseye/sid”
Kernel=“Linux plex-verse 5.10.0-3-amd64 #1 SMP Debian 5.10.13-1 (2021-02-06) x86_64 GNU/Linux”
Memory=“16030 4422 227”

dpkg -l | grep opencl
ii  beignet-opencl-icd:amd64        1.3.2-8                        amd64        OpenCL library for Intel ix-3xxx/4xxx GPUs
ii  ocl-icd-libopencl1:amd64        2.2.14-2                       amd64        Generic OpenCL ICD Loader

@shrtstck

thank you but VMs usually change just enough “stuff” so as not to believe them.

VMware ESXi is one thing, VMWare Workstation hides it all.
What you report there matches my VM and is expected.

It’s not passing through what we need.

1 Like

Made a quick edit to clarify something I overlooked wrt Beignet/OpenCL but if you need me to recheck/redo anything lmk!

@shrtstck

It did as I expected.

HaveIntel=1
HaveIntelCore=0
HaveIntelXeon=1

The E5-2680 , according to this page, has no QSV.

Here is the V4

Therefore, it’s not on my list to add IntelCompute (hardware) or Beignet (hw).

Is this incorrect ?

1 Like

Still appears correct for my NUC10i7FNH.

# Plex Media Server installation configuration info:  Thu 11 Mar 2021 03:01:00 PM CST
Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=""
PlexUser="plex"
PlexGroup="plex"
VideoGroup="render"
AppSuppDir="/var/lib/plexmediaserver/Library/Application Support"
PlexTempDir="/tmp"
LangEncoding="en_US.UTF-8"
ExistingVersion=12200
HaveHardware=1
HaveTranscoderPref=0
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=0
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=1
HaveIntelXeon=0
Havei915=1
HaveNvidia=0
CPUSKU=10710
NeedBeignet=0
NeedIntelCompute=1
HaveIntelOpenCLICD=1
HaveIntelIgc=1
HaveIntelOcloc=1
HaveIntelZeroGPU=1
HaveIntelCompute=1
HaveBeignetIcd=1
HaveOpenCL=1
HaveBeignet=1
Platform="NUC10i7FNH"
Processor="Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz"
Distro="Ubuntu 20.04.2 LTS"
Kernel="Linux nuc 5.8.0-44-generic #50~20.04.1-Ubuntu SMP Wed Feb 10 21:07:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux"
Memory="31828 6839 2058"

ah got it, was misreading on my end - good to go!

@riiviin

As I read your variable output:

  1. You have Beignet installed
  2. You have Intel Compute Runtime installed
  3. Your CPU needs Intel Compute Runtime

That said, you should be running with HW transcoding and HDR tone mapping?

Yes, hardware transcoding started working on 4K HDR HEVC source files after I installed the six Intel compute packages.

Excellent! Thank you!.

One done, 50,000,000,000 to go :smiley:

I have 4 packages listed. You installed 6?

The 4 intel compue + the two beignet ?

I am referring to the six listed here: Release 21.09.19150 · intel/compute-runtime · GitHub

There are 4 DEB files listed here.

These?

or this list ?

cd neo
wget https://github.com/intel/compute-runtime/releases/download/21.09.19150/intel-gmmlib_20.3.2_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.6410/intel-igc-core_1.0.6410_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.6410/intel-igc-opencl_1.0.6410_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.09.19150/intel-opencl_21.09.19150_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.09.19150/intel-ocloc_21.09.19150_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.09.19150/intel-level-zero-gpu_1.0.19150_amd64.deb

The second list of six.

@riiviin

If you were to remove the IGC , would it still function?

I’m sorry to ask but don’t have a cometlake here to play with.

I’m not understanding the difference. Their discussions in the threads don’t clarify either.

I seriously doubt it. I downloaded a 4K 10-bit HDR 10 sample and it choked hard; though I’m not sure what got it. This CPU only supports decoding up to HEVC 8-bit in hardware, so that could have been the bottleneck.

Regarding QSV support, you’ve provided that link a couple of times now. To be clear, I’m not claiming that this was marketed as supporting QSV. However, it very clearly does support the hardware accelerated video decoding/encoding features of QSV. The technical product specification of the Intel Compute Stick STK1AW32SC makes that clear (section 1.7.1.1):

https://www.intel.com/content/dam/support/us/en/documents/boardsandkits/computestick/STK1AW32SC_STK1A32SC_TechProdSpec.pdf

And Plex Media Server definitely sees and utilizes that hardware, when asked to:

image

I only use this little guy as a DVR right now, and only have 480i mpeg2video content on it. However, it works well decoding 1080p H.264 in hardware (as well as encoding to 1080p H.264). Ostensibly, it supports decoding 8-bit HEVC as well, though I’ve not tested that.

All that to say, agreed, you script appears to correctly identify the features available on this system.

@pshanew

Now that makes more sense. HEVC SDR (bt709 colorspace).
The only thing it does is HW transcoding. Got it.

In that case, the reporting is correct.

You have to install it in the order listed.

intel-igc-opencl depends on intel-igc-core

intel-opencl, intel-ocloc, and intel-level-zero depend on intel-igc-opencl

@riiviin

Back to the transcoder team I go.

I need more clarification as they told me I only needed the 4 packages.

V3 version:

jkalchik@ceres:/tmp> tar xvf fQuBJgtoCSKvJpMIVfUfxZKI00S.tar
./preinst
jkalchik@ceres:/tmp> sudo ./preinst
[sudo] password for root:
PlexMediaServer install: Pre-installation Validation.
PlexMediaServer install:
PlexMediaServer install: Configuration information discovered:
PlexMediaServer install: Installation Type: Update
PlexMediaServer install: Process Control: systemd
PlexMediaServer install: Plex User: plex
PlexMediaServer install: Plex Group: plex
PlexMediaServer install: Video Group: video
PlexMediaServer install: Metadata Dir: /var/lib/plexmediaserver/Library/Application Support
PlexMediaServer install: Temp Directory: /tmp
PlexMediaServer install: Lang Encoding: en_US.UTF-8
PlexMediaServer install: Intel QSV Hardware: Not found
PlexMediaServer install: Nvidia GPU card: Found
PlexMediaServer install:
PlexMediaServer install: Pre-installation Validation complete.
jkalchik@ceres:/tmp> cat /tmp/plexinstaller.log

Plex Media Server installation configuration info: Thu Mar 11 17:14:46 CST 2021

Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=""
PlexUser=“plex”
PlexGroup=“plex”
VideoGroup=“video”
AppSuppDir="/var/lib/plexmediaserver/Library/Application Support"
PlexTempDir="/tmp"
LangEncoding=“en_US.UTF-8”
ExistingVersion=0
HaveHardware=1
HaveTranscoderPref=0
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=1
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=1
HaveIntelXeon=0
Havei915=0
HaveNvidia=1
CPUSKU=
NeedBeignet=0
NeedIntelCompute=0
HaveIntelOpenCLICD=0
HaveIntelIgc=0
HaveIntelOcloc=0
HaveIntelZeroGPU=0
HaveIntelCompute=0
HaveBeignetIcd=0
HaveOpenCL=0
HaveBeignet=0
Platform=“System Product Name”
Processor=“Intel® Core™ i9-10900F CPU @ 2.80GHz”
Distro=“openSUSE Leap 15.2”
Kernel=“Linux ceres 5.3.18-lp152.66-default #1 SMP Tue Mar 2 13:18:19 UTC 2021 (73933a3) x86_64 x86_64 x86_64 GNU/Linux”
Memory=“31923 1088 261”