iinthesky73 4 Posted January 16, 2019 Share Posted January 16, 2019 Hi.. The upgrade sped a lot of things up. The performance upgrades are noticeable! However, i have noticed that with Hardware Acceleration on either Auto or with Advanced, Emby is NOT using my GPU anymore. Prior to the upgrade, when a video required transcoding I can see clearly using HWiNFO the GPU clocks immediate kicked up and the system CPU remained stable. Now, when I fire up that same videos that are transcoded while playing I see the system CPU jump to 90%+ and the GPU sits there doing nothing. It appears Emby is either not seeing my GPU any longer or the perhaps it's the changes in the libraries available.. I'm not sure at this point. Previously I used the 'experimental' AMD library... that is no longer an option. I presently have an AMD Sapphire RX 570 8GB GPU in the system. Can someone help me understand what's going on after the update? Thanks! 1 Link to comment Share on other sites More sharing options...
Luke 36999 Posted January 16, 2019 Share Posted January 16, 2019 Hi there, can you please attach the emby server log, and the hardware detect log? thanks ! @@softworkz Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 16, 2019 Author Share Posted January 16, 2019 (edited) Ok sure.. Looks like, from the detection log, it is not seeing the AMD GPU -- or its throwing some sort of error EmyServerLog.txt HardwareDetectLog.txt Edited January 16, 2019 by iinthesky73 Link to comment Share on other sites More sharing options...
Luke 36999 Posted January 16, 2019 Share Posted January 16, 2019 Thanks, can you also attach an ffmpeg log example of a transcoding session? Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 16, 2019 Author Share Posted January 16, 2019 Sure.. attached below.. It's worth noting of course with mpeg encoding (mp4 - 1080p) where there is no transcoding, defaulting to direct play.. system cpu is not disturbed much.. plays perfectly fine. Same behavior as before. With anything .avi or of lesser quality when transcoding kicks. I guess that's obvious at this point but I just wanted to be sure that is unchanged. ffmpegTranscodeLog.txt Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 16, 2019 Author Share Posted January 16, 2019 I have several AMD GPUs -- different Manuf. brands -- that I can try also. I doubt it would make a difference. That wouldn't make a lot of sense. It worked before the update. But just throwing that out there. Link to comment Share on other sites More sharing options...
nicox 2 Posted January 16, 2019 Share Posted January 16, 2019 Do you have a emby premiere account ? Correct me if I'm wrong, but I've read somewhere that now with version 4.0.0+ you need it to use hardware acceleration. Link to comment Share on other sites More sharing options...
cchsieh 8 Posted January 16, 2019 Share Posted January 16, 2019 I have Lifetime Emby Premiere and I do have the same problem. Link to comment Share on other sites More sharing options...
aballim 0 Posted January 16, 2019 Share Posted January 16, 2019 Do you have a emby premiere account ? Correct me if I'm wrong, but I've read somewhere that now with version 4.0.0+ you need it to use hardware acceleration. It's now a premiere option? Well that sucks. Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 16, 2019 Author Share Posted January 16, 2019 (edited) Do you have a emby premiere account ? Correct me if I'm wrong, but I've read somewhere that now with version 4.0.0+ you need it to use hardware acceleration. Yes I also have the lifetime premiere. Edited January 16, 2019 by iinthesky73 Link to comment Share on other sites More sharing options...
Luke 36999 Posted January 16, 2019 Share Posted January 16, 2019 @@softworkz will review your log files as soon as he's on. We'll get you squared away. Thanks. 2 Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 16, 2019 Share Posted January 16, 2019 @@iinthesky73 It seems you have connected your monitor to the onboard graphics instead of the GPU. That's why the AMD GPU is not detected. But why not use the Intel QuickSync acceleration? This might even be more powerful than using the AMD. Just give it a try. Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 16, 2019 Author Share Posted January 16, 2019 (edited) @@iinthesky73 It seems you have connected your monitor to the onboard graphics instead of the GPU. That's why the AMD GPU is not detected. But why not use the Intel QuickSync acceleration? This might even be more powerful than using the AMD. Just give it a try. Hi.. I don't have any monitor connected to that server at all. And no, there is absolutely no way that it's possible that any acceleration would work better utilizing my system's cpu alone vs. the GPU. It worked and the GPU was recognized and used in the previous version w/ the "experimental' AMD libraries. i don't think this is the answer. As I stated originally.. the quicksync works great but ONE stream shoots my CPU to 90%+ utilization. If i fire up another stream or two, this cpu isn't going to handle that well. That's the whole point for the GPU! The Quicksync is another layer and it works great but I want it to work as it did before, interfacing with the GPU. Edited January 16, 2019 by iinthesky73 Link to comment Share on other sites More sharing options...
Luke 36999 Posted January 16, 2019 Share Posted January 16, 2019 He means the onboard quicksync, not CPU. Can you at least try it? Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 16, 2019 Share Posted January 16, 2019 Hi.. I don't have any monitor connected to that server at all. And no, there is absolutely no way that it's possible that any acceleration would work better utilizing my system's cpu alone vs. the GPU. It worked and the GPU was recognized and used in the previous version w/ the "experimental' AMD libraries. i don't think this is the answer. As I stated originally.. the quicksync works great but ONE stream shoots my CPU to 90%+ utilization. If i fire up another stream or two, this cpu isn't going to handle that well. That's the whole point for the GPU! The Quicksync is another layer and it works great but I want it to work as it did before, interfacing with the GPU. In the ffmpeg log it was using CPU/software encoding, not QuickSync. QuickSync is not using CPU. It is using a dedicated ASIC which is integrated in the CPU but does not require CPU processing. In the previous version, things weren't handled as explicit as they are done now. You could have selected "AMF" and it could still have used DXVA acceleration utilizing the Intel graphics. Link to comment Share on other sites More sharing options...
Luke 36999 Posted January 16, 2019 Share Posted January 16, 2019 That's right, i forgot about that. Before, you'd select AMD, but it would actually use DXVA decoding instead. So we haven't taken that away. You can still use that if you want. Does that clear things up? Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 16, 2019 Share Posted January 16, 2019 For the AMD GPU to be detected you need to have a monitor connected to it and you need to run Emby from a local session, then you will get the AMF encoder and additional DXVA decoders for AMD. In a future update, we will have DX11VA (successor to DXVA2). This will allow you to use AMD decoding without having a monitor connected to it. (but the AMF encoder will still need a monitor) Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 16, 2019 Share Posted January 16, 2019 So - we're on the way to enable full headless operation for all hw accelerations, but it's a step-by-step process. 2 Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 16, 2019 Author Share Posted January 16, 2019 (edited) For the AMD GPU to be detected you need to have a monitor connected to it and you need to run Emby from a local session, then you will get the AMF encoder and additional DXVA decoders for AMD. In a future update, we will have DX11VA (successor to DXVA2). This will allow you to use AMD decoding without having a monitor connected to it. (but the AMF encoder will still need a monitor) Got it.. ok then I will give this a shot. I have a spare monitor i can connect to it. Hopefully the full headless operation you mentioned will be done soon. As to the quicksync using an ASIC -- I didn't realize there was an ASIC for decoding in the CPU. All I know is when I fire up a video that required transcoding of any kind the cpu utilization spiked to near 100%. I had everything available enabled in respect to the transcoding options. I'll try the things that were recommended above and poke around in the BIOS to see what difference it makes if any and report back if anything useful happens. Until then, the optimal setup for me (and probably a lot of other folks) is no monitor no keyboard standalone with everything recognized. Edited January 16, 2019 by iinthesky73 Link to comment Share on other sites More sharing options...
Q-Droid 634 Posted January 16, 2019 Share Posted January 16, 2019 So - we're on the way to enable full headless operation for all hw accelerations, but it's a step-by-step process. About headless operation for HW accel is this a dedicated GPU limitation? iGPUs do work in headless mode now, right? Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 16, 2019 Share Posted January 16, 2019 Got it.. ok then I will give this a shot. I have a spare monitor i can connect to it. Hopefully the full headless operation you mentioned will be done soon. As to the quicksync using an ASIC -- I didn't realize there was an ASIC for decoding in the CPU. All I know is when I fire up a video that required transcoding of any kind the cpu utilization spiked to near 100%. I had everything available enabled in respect to the transcoding options. I'll try the things that were recommended above and poke around in the BIOS to see what difference it makes if any and report back if anything useful happens. When you see "libx264' as encoder in the ffmpeg command line, then it's software encoding done by the CPU. When you see 'h264_qsv' as encoder in the ffmpeg command line, then it's QuickSync (the ASIC I mentioned). BTW, the integrated graphics in Intel CPUs is also something separate from the actual CPU and not using CPU resources. Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 16, 2019 Share Posted January 16, 2019 About headless operation for HW accel is this a dedicated GPU limitation? iGPUs do work in headless mode now, right? No - and No. It's primarily a software issue. The typical use case is displaying video on the screen and this requires an OS specific API providing a context for this. The easiest way for manufacturers was to build this around DirectX on Windows and DX9 is not able to provide such a context without having an actual DirectX-capable display available in the session where the application is running. Then came DirectX 11 which removed this requirement, but that's not been too long ago and it simply takes a while until all components in the chain (manufacturer drivers >> hw acceleration apis >> ffmpeg implementation >> Emby ) are updated to take advantage of this opportunity. An Exception for this is Nvidia, their API is following a different route and as such, Nvidia hardware is always usable in headless mode. The DXVA2-successor 'DX11VA' will be available soon to be used from Emby. For integrated GPUs, it's sometimes a hardware problem that comes on top of the above: Some mainboards completely switch off the onboard graphics when there's no monitor connected on startup. In those cases, either check bios settings or use a dummy monitor plug to have it enabled on startup. Link to comment Share on other sites More sharing options...
Q-Droid 634 Posted January 17, 2019 Share Posted January 17, 2019 No - and No. It's primarily a software issue. The typical use case is displaying video on the screen and this requires an OS specific API providing a context for this. The easiest way for manufacturers was to build this around DirectX on Windows and DX9 is not able to provide such a context without having an actual DirectX-capable display available in the session where the application is running. Then came DirectX 11 which removed this requirement, but that's not been too long ago and it simply takes a while until all components in the chain (manufacturer drivers >> hw acceleration apis >> ffmpeg implementation >> Emby ) are updated to take advantage of this opportunity. An Exception for this is Nvidia, their API is following a different route and as such, Nvidia hardware is always usable in headless mode. The DXVA2-successor 'DX11VA' will be available soon to be used from Emby. For integrated GPUs, it's sometimes a hardware problem that comes on top of the above: Some mainboards completely switch off the onboard graphics when there's no monitor connected on startup. In those cases, either check bios settings or use a dummy monitor plug to have it enabled on startup. Thanks for the thorough response. Link to comment Share on other sites More sharing options...
iinthesky73 4 Posted January 17, 2019 Author Share Posted January 17, 2019 When you see "libx264' as encoder in the ffmpeg command line, then it's software encoding done by the CPU. When you see 'h264_qsv' as encoder in the ffmpeg command line, then it's QuickSync (the ASIC I mentioned). BTW, the integrated graphics in Intel CPUs is also something separate from the actual CPU and not using CPU resources. OK I did a little bit of experimentation. I connected a monitor to the GPU and I disabled the onboard display adapter and now emby recognizes my GPU. Just to clear up any potential confusion.. the gpu isn't 'integrated' per se. It's a card. Anyhow, Emby is now seeing the GPU and the transcoding all point to the card (presumably). This is what I see: MPEG-2 DXVA2 Radeon RX 570 Series - MPEG-2 H.264 (AVC) DXVA2 Radeon RX 570 Series - H.264 (AVC) H.265 (HEVC) DXVA2 Radeon RX 570 Series - H.265 (HEVC) VC-1 DXVA2 Radeon RX 570 Series - VC-1 HOWEVER... the same problem persists. When Emby streams something that needs to be transcoded, it seems to ignore these settings and goes right back to using software (libx264 Software Encoder) and the CPU.. My RX570 sits there idle. So something is still not right here. I've attached all the logs and some snapshot pics of what happens. The image named IdleState.jpg is with nothing playing. The image named TranscodingState.jpg is Emby while transcoding a stream The image named DirectPlay.jpg is Emby streaming direct 1080p, no trans. I also attached a pic of the Transcoding configuration page LOGS:EmyServerLog.txt HardwareDetectLog.txt ffmpegTranscodeLog2.txt ffmpegTranscodeLog1.txt Link to comment Share on other sites More sharing options...
softworkz 3325 Posted January 17, 2019 Share Posted January 17, 2019 Do you have Emby Premiere? HW accelerated transcoding requires an Emby Premiere subscription now. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now