Hardware transcoding with QNAP models TVS-x73 and TVS-x63

Hi all,

Are there plans to support hardware transcoding on QNAP models TVS-x73 and TVS-x63?

Ian

There is no way of knowing what will happen until after Intel releases libva 2.0. When it is released, Engineering will evaluate further.

@ChuckPA said:
There is no way of knowing what will happen until after Intel releases libva 2.0. When it is released, Engineering will evaluate further.

Can you explain further?
Hardware transcoding for Intel GPU based QNAP devices is functional now.

Correct. The TVS-x63 and TVS-x73 are AMD based not Intel based. AMD chips do not have Intel GPUs

@ChuckPA said:
Correct. The TVS-x63 and TVS-x73 are AMD based not Intel based. AMD chips do not have Intel GPUs

So what are you saying?

That the i965_drv_video.so user space driver for Intel GPUs builds ok (from the libva-intel-driver package) but there are problems building radeonsi_drv_video.so (from the mesa-dri-drivers package).

The radeonsi_drv_video.so appears to be enough for vainfo to recognise the library entry points so I got the impression it was likely what’s needed.

Or am I mistaken?

Plex uses libvaapi for interface to the GPUs. Plex relies on the kernel having the i915 driver to provide the needed kernel driver which presents /dev/dri. As I understand it (I clearly might be wrong here), If you can access your radeon through libvaapi.so and /dev/dri, you will have hardware transcoding. Please do understand, the initial offering is focused on Intel QSV and not external GPU cards. This is what we’re hoping to have (formalized external card support) in the revision 2.0 release.

I’ve never understood why the i965 user-space driver is included. It might be for the nvidia chips
 This is pure speculation on my part so please take with a grain of salt.

@ChuckPA said:
Plex uses libvaapi for interface to the GPUs. Plex relies on the kernel having the i915 driver to provide the needed kernel driver which presents /dev/dri. As I understand it (I clearly might be wrong here), If you can access your radeon through libvaapi.so and /dev/dri, you will have hardware transcoding. Please do understand, the initial offering is focused on Intel QSV and not external GPU cards. This is what we’re hoping to have (formalized external card support) in the revision 2.0 release.

I’ve never understood why the i965 user-space driver is included. It might be for the nvidia chips
 This is pure speculation on my part so please take with a grain of salt.

I’m not clear on how the hardware transcoding stuff fits together either.
AFAICS vaapi with Radeon GPU also uses the /dev/dri/renderD128 device, also present on the QNAP Radeon based NAS devices.

The impression I have is that the user space shared library, for example i965_drv_video.so, provides the function call entry points for specific GPU hardware which the vaapi implementation needs to perform its task.

On an Intel GPU based device like my desktop vainfo (and ffmpeg) fails to initialize the hardware interface if i965_drv_video.so is not present and I see the same thing on my Radeon QNAP NAS under the LinuxStation app (providing Ubuntu 16.04 in my case) where it requires radeonsi_drv_video.so. So if the dri device is present and once the appropriate shared library is also present the vaapi interface initialization completes and vainfo reports the available vaapi function entry points. That implies vaapi is available and should be functional.

So these libraries are probably responsible for transforming the dri device (aka renderD128) specific stuff to something consumable by the vaapi sub system.

The whole point though, and what I was hoping to find out, has any investigation been done on this and what was found?
IOW the original question.

Engineering has not told us everything because library version 2.0 is coming.
If I do quote them “Intel QSV capable CPU, second generation or higher, on a host-native, 64 bit OS, PMS installation” that’s all they support at this time.

Taking from that:
The CPU must be Intel QSV capable . Anything else that may fall out is an unexpected bonus.
Different generations of Intel QSV have different capabilities. Third generation Intel (3xxx GPUs) is the practical functional minimum. The absolute minimum is SandyBridge (2xxx GPUs)

Hardware transcoding is only available in the 64 bit package.
Any discussion of AMD / Radeon is out of scope and not part of the initial hardware transcoding release.

Attempting to access hardware transcoding when operating in a containerized/abstracted environment is not supported. If it works, great. If it doesn’t, nothing can be done. This puts Container Station, Virtualization Station, and other QNAP abstractions/tools along with Docker and VMs (VMware / VirtualBox) in any environment as ‘unsupportable’ . If you’re running Ubuntu on your QNAP, you are in unsupported territory because it’s not the host OS. If you are running PMS natively under QTS 4.3.3 and using the 64 bit package (Required) with an Intel CPU, you will have hardware transcoding .
I own an i7-6700 based QNAP and run PMS natively on the host. I have hardware transcoding.

LOL, right, so the answer is “no, we haven’t investigated Radeon GPU support and we aren’t going to at the moment”.

I did not say that.

The entire ‘external GPU’ support task has to be tabled until after Intel released libvaapi 2.0 which was done only 2 days ago.

Now, add to that, for each GPU added, Engineering will need to develop mapping and possibly code for each GPUs unique chipset. Add to that somebody is going to have to setup a test bed and benchmark/test everything.

It’s that little thing called “Non-recurring Engineering” which is pure overhead and includes the upfront development costs (including many manhours).

It’s not a small undertaking given the huge amount of GPU flavors out there. If done piecemeal, someone is going to complain “Why did you do that one first?” It’s a no-win scenario. All or nothing.

Limiting to Intel Quick Sync Video (QSV) capability provided the widest possible coverage. For as tough was it was, it was ‘low hanging fruit’ compared to the others.

Now do you understand why it was done this way?

@ChuckPA said:
I did not say that.

The entire ‘external GPU’ support task has to be tabled until after Intel released libvaapi 2.0 which was done only 2 days ago.

Now, add to that, for each GPU added, Engineering will need to develop mapping and possibly code for each GPUs unique chipset. Add to that somebody is going to have to setup a test bed and benchmark/test everything.

It’s that little thing called “Non-recurring Engineering” which is pure overhead and includes the upfront development costs (including many manhours).

It’s not a small undertaking given the huge amount of GPU flavors out there. If done piecemeal, someone is going to complain “Why did you do that one first?” It’s a no-win scenario. All or nothing.

Limiting to Intel Quick Sync Video (QSV) capability provided the widest possible coverage. For as tough was it was, it was ‘low hanging fruit’ compared to the others.

Now do you understand why it was done this way?

Ok, so what I said might have sounded harsh and I do need to say I didn’t mean it that way.

I’m well aware of the need to define the bounds for implementations, I do that myself, and I’m aware of the effort that goes into development.

I’ve worked in computing for well over thirty years and in development for well over fifteen years so I’m no stranger to what you’ve described.

I’m certainly not complaining about this and I hope you’ll put forward a request to consider including this functionality in subsequent development.

The truth is I use my TVS-463 primarily for work related stuff, I have a TS-453 Pro for my Plex server and the hardware transcoding works very well indeed on it.

But, in time, the TVS-463 will be upgraded and the TS-453 Pro retired and I will be hoping to replace it with the TVS-463 for personal use.

Hopefully there will be progress on the NAS Radeon GPU hardware transcoding by the time that happens.

Btw, thanks for taking the effort to discuss this with me.

Ian

I have been in computers for 43 years now (since before most would call them computers).
I’ve been in R&D, Product Development, Customer Support (where I find myself again), Field Engineering, and Management. I’m ‘winding down’ so to speak.

There is no need for me to enter a request as the path forward was plotted before anyone even knew we were working on hardware transcoding and it does include that which you’ve requested. Plex doesn’t give roadmaps so it’s easy to misunderstand the direction things are headed in. I hope my words have clarified this for you without ‘giving a roadmap or timetable and expressly without making any commitments which are not mine to make’

I purchased the TVS-1282 i7-6700 for work as well (Plex). While I use it for most things Plex, it just so happens I can also enjoy it as my media server when I manage to get some down time and actually feel like watching something.

@ChuckPA said:
I have been in computers for 43 years now (since before most would call them computers).
I’ve been in R&D, Product Development, Customer Support (where I find myself again), Field Engineering, and Management. I’m ‘winding down’ so to speak.

Seems we are a bit similar (I started a bit late with a mature age education) although I did not do very well in management but perhaps that was the situation.

In any case it set the scene for the future.

There is no need for me to enter a request as the path forward was plotted before anyone even knew we were working on hardware transcoding and it does include that which you’ve requested. Plex doesn’t give roadmaps so it’s easy to misunderstand the direction things are headed in. I hope my words have clarified this for you without ‘giving a roadmap or timetable and expressly without making any commitments which are not mine to make’

Sure, the Plex process makes it next to impossible to give any sort of a timetable.
In my case it’s not as hard, OS releases have project schedules, deadlines, and release dates.

I purchased the TVS-1282 i7-6700 for work as well (Plex). While I use it for most things Plex, it just so happens I can also enjoy it as my media server when I manage to get some down time and actually feel like watching something.

That’s a nice piece of kit.
Perhaps I should consider something like that too, while I still have an income, :wink:

Ian

I’m sure Engineering and Management have their roadmap (well, I know they do) but they do keep it very close to the chest.

The biggest gate/roadblock we faced in all this was the fault in the Intel libvaapi code. A user (volunteer) found the solution Intel’s engineers couldn’t find. Once done, they’ve gone full throttle which brings us to today.

I have been involved in that effort for most of the year now. Nobody was happier than I when the roadblock was corrected. In the following months, Intel added all their backlogged work for all the processors plus the upcoming one. Not bad, huh?

As for the QNAP, it’s a NICE piece of hardware indeed. I’ve since added 1TB M.2 as the main volume (OS & apps), 512GB SSD cache for the HD array, and 2x 1TB 2.5" WD black for miscellaneous ‘stuff’. It’ll keep my office toasty warm over the winter. (ps: I had to save up for all it
 haha)
My Syno (DS1815+) now serves as backup storage. I spin it up every week or so to make the rsync backup (4x 1GbE LACP) >:)

@ChuckPA said:
I’m sure Engineering and Management have their roadmap (well, I know they do) but they do keep it very close to the chest.

The biggest gate/roadblock we faced in all this was the fault in the Intel libvaapi code. A user (volunteer) found the solution Intel’s engineers couldn’t find. Once done, they’ve gone full throttle which brings us to today.

I have been involved in that effort for most of the year now. Nobody was happier than I when the roadblock was corrected. In the following months, Intel added all their backlogged work for all the processors plus the upcoming one. Not bad, huh?

I have to say I have had trouble with Intel drivers, both Windows (more the wireless drivers) and Linux (more so than Windows, wireless drivers and dri, ie. HD audio passthrough on recent and to some extent older NUCs).

My confidence in Intel developers is not that good any more but most particularly with the Open Source developers.

Anyway, you get that 


@ChuckPA said:
As for the QNAP, it’s a NICE piece of hardware indeed. I’ve since added 1TB M.2 as the main volume (OS & apps), 512GB SSD cache for the HD array, and 2x 1TB 2.5" WD black for miscellaneous ‘stuff’. It’ll keep my office toasty warm over the winter. (ps: I had to save up for all it
 haha)
My Syno (DS1815+) now serves as backup storage. I spin it up every week or so to make the rsync backup (4x 1GbE LACP) >:)

Thanks, just what I wanted to hear, I don’t even have the option to save up, :wink:

It’s hard to find somewhere to buy the higher end NAS devices here in Western Australia 
 and, well, mail order for that type of purchase, probably not a good idea 


Buy from QNAP directly. I did.

@ChuckPA said:’

I purchased the TVS-1282 i7-6700 for work as well (Plex).

Awesome!!! Just the expert I’m looking for! When you have free time (joke), can you give some insight on if a Ceton InfinTV 6 PCIe could be installed in that NAS with Linux drivers and made functional with Plex DVR? Since we know Windows is out of the question with the lack of BDA support, maybe Linux is the answer???

Are you the same user who was asking about this card and “trying out” Linux ?

@ChuckPA said:
Are you the same user who was asking about this card and “trying out” Linux ?

Yes
 But I’m finding I have a lot to learn. So much I don’t understand.

Plus I’m a huge fan of QNAP and would rather work with an established platform.