Jump to content

HA Transcoding failing when Tone Mapping is on


Recommended Posts

gcorgnet
Posted

Hi,

I'm trying to set up a new Emby Server on my Hades Canyon NUC(with GPU RX VEGA M GL 4GB HBM2).
I'm running this on Proxmox, in a Ubuntu based LXC. (I have done something similar with a different NUC and had things running all good)

I've managed to share the GPU with my LXC on Proxmox and was able to see the HW Transcoding options on Emby
image.png.f7901c4de9186cccc931f102c285613a.png

Now, HA transcoding works fine unless I try to watch a 10 bit movie, at which point it looks like it reverts back to SW transcoding.

These are the options I have for HW Tone Mapping
image.png.30539c22d95c2022ebfe31a3f21cad1c.png

 

If I set it to Disable, HW Transcoding works but the color are all faded (aka not Tone mapped, which I would have expected)
IF I set it to Extra-T - OpenCL, the transcoding reverts to SW and the colors are fine.

I was wondering if anyone was able to suggest things to try. I'm not sure if the issue is with the AMD drivers or something else.
On my other Emby Server, I have another option for Tone Mapping ("VAAPI HW Tone Mapping"). Should I be able to see this as well here?

Thanks
 

 

hardware_detection-63873684452 (1).txt embyserver (3).txt ffmpeg-transcode-7316dfb2-aafa-425e-a706-9cbe70fd593f_1.txt ffmpeg-transcode-3cb0460b-b62e-43dc-aea7-c735060c77eb_1.txt

gcorgnet
Posted

These is what I see in Diagnostics if I have Tone Mapping on
image.png.22ab34094dd3732437aa1b0536beb241.png

 

And this is with HW Tone Mapping Disabled

image.png.2bfa2b79ad6aba014fa58d06f7823a6c.png

gcorgnet
Posted

Reading more into the logs files, it looks like the problem might be coming from OpenCL

05:04:04.757 Stream mapping:
05:04:04.757   Stream #0:0 (hevc) -> scale_vaapi:default (graph 0)
05:04:04.757   hwmap:default (graph 0) -> Stream #0:0 (h264_vaapi)
05:04:04.757   Stream #0:1 -> #0:1 (truehd (native) -> mp3 (libmp3lame))
05:04:04.757 Press [q] to stop, [?] for help
05:04:04.827 [AVHWDeviceContext @ 0x3639e240] Failed to get number of OpenCL platforms: -1001.
05:04:04.827 [hwmap@f2 @ 0x361fde80] Failed to created derived device context: -19.
05:04:04.827 [hwmap@f2 @ 0x361fde80] Failed to configure output pad on hwmap@f2
05:04:04.828 Error reinitializing filters!
05:04:04.828 Failed to inject frame into filter network: No such device
05:04:04.828 Error while processing the decoded data for stream #0:0
05:04:04.830 Conversion failed!
05:04:04.830 EXIT

That's as far as I've been able to go.

Here's the output of calling `clinfo`
 

root@emby:/etc/OpenCL/vendors# clinfo --list
Platform #0: Clover
 `-- Device #0: AMD Radeon RX Vega M GL Graphics (radeonsi, vegam, ACO, DRM 3.57, 6.8.12-7-pve)
Platform #1: rusticl
root@emby:/etc/OpenCL/vendors# 

Still trawling around in search of a fix.

 

Questions:

- SHould I be expecting to see "VAAPI HW Tone Mapping" under VAAPI ToneMapping methods?
- Anyone has a suggestion on what could be wrong with my OpenCL?

Thanks

gcorgnet
Posted

Just following up on my issue: OpenCL Tone mapping not working on AMD GPU.

Runing the default ffmpeg and runing the one shipped with Emby give me different results.
I noticed that the version of the libva dependencies were all different, with the ones shipping with Emby being seemingly older (see attached screenshot)
Could this be the reason why it fails?

image.png.0dcaa0161a53134715f336415d6b761e.png

 

I've also confirmed today that Jellyfin (running on the same Proxmox node, on the same hardware) was able to HW transcode and tonemap the same file so I know it's possible and any help would be appreciated.

I note that according to their documentation, they use Vulkan for AMD. Could this be related?

I would appreciate any response or suggestion on this as I'm getting quite lost.
Thanks

  • 2 weeks later...
KarlDag
Posted (edited)

Hey!  I'm no expert, but this weekend I built an unRaid server and migrated my emby server to it.  I have an AMD GPU, and to my surprise HW tone mapping does seem to work with OpenCL.  I use docker, and changed from the linux server image to the official emby image after reading some posts on here for another issue.

 

I'm not sure what you need or I can help, but if I can provide you with info, I'd be glad to.  Also, please, how do you get to this diagnostics window?  Thanks

Edited by KarlDag
gcorgnet
Posted

Thanks Karl.
That is great!
I guess first question would be what are you saying under Tone Mapping in the Emby Settings (see below)
image.png.3c9d80905d7aa1725c09816828c0ceb9.png

 

As for the diagnostics window, first you need to install the `Diagnostics Plugin` and then you need to go to `User Sessions` under "Manage Emby Server"
image.png.70fb17c8e9f061f8385c05ca7d7614ce.png

 

Hope that helps

Posted

Hi, has this helped with your issue?

gcorgnet
Posted

Thanks for checking, no it has not. 

I'm not on docker, and I'm on a proxmox LXC (Ubuntu), btw

Still unsure of what I can do but have proven that Jellyfin does let me HW tone map with the same set up

awkimball
Posted

Same issue here on emby beta 4.9.0.38 but I am running an Intel ARC A310 GPU, passed into an LXC container on proxmox. HW Transcoding works fine as long tone mapping is not needed, but when tone mapping is needed, CLInfo fails to detect the platform: 

09:38:41.512 [AVHWDeviceContext @ 0x26ec7300] Failed to get number of OpenCL platforms: -1001.

09:38:41.512 [hwmap@f3 @ 0x26c22400] Failed to created derived device context: -19.

09:38:41.512 [hwmap@f3 @ 0x26c22400] Failed to configure output pad on hwmap@f3

I can confirm that if I install intel-opencl-icd and clinfo, it correctly shows the platform, but emby-clinfo shows 0 platforms.

I noticed that emby-clinfo is using the Khronos loader instead of the intel one, so I followed the instructions in their GitHub readme to register the icd manually

echo "/opt/emby-server/extra/lib/libigdrcl.so" > /etc/OpenCL/vendors/emby.icd

but that didn't help.

 

I spent a lot of time installing the newest intel drivers into this LXC container only to finally realize that emby packages its own drivers with it, so at least I don't have to mess around with that any more!

  • Like 1
yocker
Posted

Intel Arc is a mess in general. Even if you get tone mapping to magically work you can expect very dull colors almost like if tone mapping wasn't working to start with.
I ended up swapping my Arc card out for an old Nvidia card i have lying around.

gcorgnet
Posted

Yeah, not an option for me as I'm running a NUC. (Just my luck I had to pick the only NUC with an AMD GPU 😞 )

awkimball
Posted
3 hours ago, awkimball said:

Same issue here on emby beta 4.9.0.38 but I am running an Intel ARC A310 GPU, passed into an LXC container on proxmox. HW Transcoding works fine as long tone mapping is not needed, but when tone mapping is needed, CLInfo fails to detect the platform: 

09:38:41.512 [AVHWDeviceContext @ 0x26ec7300] Failed to get number of OpenCL platforms: -1001.

09:38:41.512 [hwmap@f3 @ 0x26c22400] Failed to created derived device context: -19.

09:38:41.512 [hwmap@f3 @ 0x26c22400] Failed to configure output pad on hwmap@f3

I can confirm that if I install intel-opencl-icd and clinfo, it correctly shows the platform, but emby-clinfo shows 0 platforms.

I noticed that emby-clinfo is using the Khronos loader instead of the intel one, so I followed the instructions in their GitHub readme to register the icd manually

echo "/opt/emby-server/extra/lib/libigdrcl.so" > /etc/OpenCL/vendors/emby.icd

but that didn't help.

 

I spent a lot of time installing the newest intel drivers into this LXC container only to finally realize that emby packages its own drivers with it, so at least I don't have to mess around with that any more!

Actually ended up finding a workaround in this comment on another post. Long story short, I added these two lines to the emby-server.service file:

Environment="NEOReadDebugKeys=1"

Environment="OverrideGpuAddressSpace=48"

and now HW tone mapping works fine with OpenCL/QuickSync. Looking for more information on what exactly OverrideGpuAddressSpace=48 does, however

 

gcorgnet
Posted

Yep, I had seen this on another post and tried it but (quite predictably) didn't help my case, given my GPU is quite different.

  • 1 month later...
Posted

For those on the beta, can you please try 4.9.0.43? Thanks !

gcorgnet
Posted

Thanks for the shout.
I've just installed 4.9.0.43 to give this a try and no dice...

 

05:45:50.532 Press [q] to stop, [?] for help
05:45:50.630 [AVHWDeviceContext @ 0x1e87c00] Failed to get number of OpenCL platforms: -1001.
05:45:50.630 [hwmap@f2 @ 0x1e88b00] Failed to created derived device context: -19.
05:45:50.630 [hwmap@f2 @ 0x1e88b00] Failed to configure output pad on hwmap@f2
05:45:50.630 Error reinitializing filters!
05:45:50.630 Failed to inject frame into filter network: No such device
05:45:50.630 Error while processing the decoded data for stream #0:0
05:45:50.634 Conversion failed!
05:45:50.634 EXIT

 

embyserver (5).txt ffmpeg-transcode-2bacd604-6b65-4e61-b923-bda8cc7e990d_1.txt hardware_detection-63879601548.txt

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...