Jump to content

4K UHD HDR HEVC 10-bit playback with GT 1030


prankmunky13
Go to solution Solved by prankmunky13,

Recommended Posts

prankmunky13

I just bought a LG B7 OLED so I upgrade my HTPC (Win 10, i3-3225 ivy bridge, 8GB DDR3 RAM) with a 2GB GT1030 card which is supposed to support HEVC 10-bit decoding to play 4K HDR content on my new panel. It seemed like the optimal solution since upgrading the mobo, cpu and memory would cost a bunch more.

 

Unfortunately, I'm struggling to get smooth playback of 4K HDR 10-bit HEVC in EMBY. All the video files I've tried are at 24fps. I've tried all the hardware acceleration modes and "Auto (Copy Back)" seems to work the best but it is still super choppy. I'm also not using madVR as I can't seem to get it to correctly produce HDR at the moment. Interestingly, the MPV test version of theatre (https://emby.media/community/index.php?/topic/46763-theater-mpv-test/page-1) works way better than the current EMBY theater release but I'm still getting quite a few dropped frames. I notice that my GPU use goes up to 100% regardless of the hardware acceleration mode or theater version, so at least I know its trying to use the hardware decoder.

 

The funny thing is that when I play the same files in MPC-BE using just the default settings (Enhanced Video Renderer [Custom Presenter]), I get crisp smooth playback at only 35% GPU usage without any dropped frames that appears to be in full HDR. I say appears to be HDR because my TV doesn't auto flip over to HDR mode like it does when playing these files off of a USB stick that is directly plugged into it. However, the colour reproduction seems identical as far as I can tell. I'm not sure how MPC-BE decodes HDR but I assume its perceptual quantization similar to how MPV handles HDR as Doofus pointed out in another thread (https://emby.media/community/index.php?/topic/53211-emby-theatre-support-for-evc/page-7).The files also play smoothly in MPC-HC at default settings but the colors are all washed out and the HDR is clearly not active. 

 

Is my setup just too slow to run 4K HDR in EMBY? The fact that I get beautiful perfectly smooth playback in MPC-BE makes me think not but maybe there is some quality sacrifice there that I am not yet noticing. I suppose I can just setup MPC-BE as an external player but its less of a seamless environment. 

 

Any thoughts on how I troubleshoot this? Are there other threads I should look at?

 

Thanks in advance!

 

 

 

 

 

Link to comment
Share on other sites

prankmunky13

Okay, I'll put up both the EMBY theater and MPC-BE stats (crtl +j) when I get home tonight. I was under the impression that the server logs aren't useful for theater playback issues but I can post those too. 

Link to comment
Share on other sites

Guest asrequested

Yeah, mpv supports just about everything, so the server will just let it do all the work. I don't need the stats from MPC. I think I know what is happening, but I need to see the stats to confirm it.

Link to comment
Share on other sites

Jdiesel

I have the same GPU in my HTPC.

 

I found with the mpv test build I only got smooth playback when I had all playback settings set to Auto with the exception of hardware acceleration which was set to Copy Back. If I changed any of the scaling settings to anything other than auto I got dropped frames.

 

I ended up switching back to MPC-HC and madVR as an external player because it allowed me to use better scalers for non-4K content through profiles, passed HDR metadata to my display, resulted is smoother motion compared mpv, playback of 3D MVC videos, and used less GPU resources.

 

I attempted to play around with a custom mpv.conf and setup profiles but I wasn't able to replicate the quality of MPC-HC. Despite what anyone says MPC-HC/BE and madVR is the best playback option out there, no questions. The internal mpv player should be fine for the large majority of users though.

  • Like 1
Link to comment
Share on other sites

prankmunky13

Sorry about that, thought I left it on auto copyback when I was stopped monkeying around with the setup earlier today... apparently not. Correct stats attached. On a positive note I found some of my 4K 10-bit HEVC HDR that plays without almost any dropped frames but it still utilizes around 70% of my GPU unlike what I'm seeing in MPC-BE. 

post-169390-0-59887900-1521073960_thumb.png

Link to comment
Share on other sites

Guest asrequested

Ok, so it isn't what I first thought. It might have something to do with electron/window management. To rule that out, I'm attaching a pre-configured mpv standalone. Just unzip it anywhere, double click on the mpv.exe and drag your movie onto it. While playing, you can pull up the stats by pressing shift+i

Edited by Doofus
Link to comment
Share on other sites

prankmunky13

Well the MPV standalone also runs my GPU upto around ~80% too but playback is smooth without any dropped frames (stats attached). One thing I do notice, is that although both are clearly outputting the HDR, the picture in the standalone player is a lot brighter (probably too bright) compared to what I see in EMBY theatre. Maybe that's just a configuration difference.

post-169390-0-10730400-1521130980_thumb.png

Link to comment
Share on other sites

Guest asrequested

Ok, so that's good. That means it has to do with it's implementation in theater. I believe that Luke is still tweaking that, so maybe his final build will show improvement in your playback. Your GPU will be used more, because it's applying PQ, and not just decoding. The brightness in the standalone is accurate, as it doesn't have to deal window transparency, like it does in theater.

  • Like 1
Link to comment
Share on other sites

prankmunky13

Thanks for your help Doofus! Hopefully the final build will sort that out. I guess since I calibrated my TV based on what I'm seeing in EMBY, thats why the standalone looked a bit to bright.

 

On a side note, any idea why the GPU usage in MPC-BE is so low for the same videos (~30%)? I'm just using the default settings and the HDR appears to displayed correctly too. 

Link to comment
Share on other sites

Guest asrequested

If you're using Windows 10, it can show you what the GPU is doing. Such as decoding, processing etc. You could look at that and compare. My guess is that MPC is sending the HDR metadata directly to the tv, and not processing it.

Link to comment
Share on other sites

prankmunky13

It's not in front of me right now but from what I recall the 3D rendering is what made up the bulk of the difference, while the video decode was roughly the same. I don't believe MPC is sending the HDR metadata to the TV because my TV doesn't flip into HDR mode when the video starts, as it does when using madVR or playing the file right off a USB drive plugged in to the TV. Perhaps the MPC HDR transfer function is more efficient. I'll have to do some research into what they use. 

Link to comment
Share on other sites

Guest asrequested

You've peaked my curiosity. I'll have to give it a whirl. I've never tried MPC-BE. And mpv has has removed 3D support.

Edited by Doofus
Link to comment
Share on other sites

prankmunky13

Just to be clear, I wasn't playing 3D content. But for some reason, the GPU breakdown in Win 10 shows that is where the bulk of the difference lies between MPV and MPC.

Link to comment
Share on other sites

prankmunky13

I mean that the Win 10 GPU view breakdowns GPU usage into categories like: 3D, Copy, Video Decode, Video Encode and others (see attached). I don't think that 3D category has anything to do with Direct 3D. From the MSDN blog (https://blogs.msdn.microsoft.com/directx/2017/07/21/gpus-in-the-task-manager/):

 

"A GPU engine represents an independent unit of silicon on the GPU that can be scheduled and can operate in parallel with one another. For example, a copy engine may be used to transfer data around while a 3D engine is used for 3D rendering. While the 3D engine can also be used to move data around, simple data transfers can be offloaded to the copy engine, allowing the 3D engine to work on more complex tasks, improving overall performance. In this case both the copy engine and the 3D engine would operate in parallel."

 

So it seems, that although the 3D category typically shows the amount of GPU dedicated to 3D rendering, it also shows GPU usage for other complicated tasks (like doing the HDR transforms?).

post-169390-0-72451900-1521140390_thumb.png

Link to comment
Share on other sites

Guest asrequested

Is that when using the standalone or Theater. Theater UI also uses HWA, where the standalone, doesn't. Also, with copyback your system memory is used, so the data will be used, differently. I have a feeling that MPC is using D3D11. If you want to test that in the standalone, go into the portable_config folder, open the mpv.conf file, and change hwdec to hwdec=d3d11va

Link to comment
Share on other sites

prankmunky13

I'm at work now, so that was actually just a generic screenshot from the web. I'll explore the GPU usage breakdown in each setting when I get home. However, I can see that MPC-BE is using the DXVA2 native decoder (attached screenshot). I'm guessing since it isn't doing copy back to RAM its more efficient. I'll try that in MPV instead (hwdec=dxva2) and see if I get comparable GPU usage.

post-169390-0-28314300-1521143107_thumb.png

Link to comment
Share on other sites

prankmunky13

Okay so here we go...

 

Using MPV through Emby Theatre:

 

dxva2-copy - some dropped frames; 90% GPU utilization (90% 3D and 15% video decode); 1.6 of 2GB GPU RAM used; 20% CPU utilization

d3d11va - a lot of dropped frame; 95% GPU utilization (65% 3D and 100% video decode); 1.5 of 2GB GPU RAM used; 20% CPU utilization

d3d11va-copy - a lot of dropped frame; 90% GPU utilization (90% 3D and 90% video decode); 1.8 of 2GB GPU RAM used; 20% CPU utilization

 

Using MPV standalone:

 

dxva2 - few or no dropped frames; 30% GPU utilization (30% 3D and 25% video decode); 1.5 of 2GB GPU RAM used; 15% CPU utilization

dxva2-copy - few or no dropped frames; 80% GPU utilization (80% 3D and 10% video decode); 1.2 of 2GB GPU RAM used; 20% CPU utilization

d3d11va - few or no dropped frame; 25% GPU utilization (20% 3D and 25% video decode); 1.7 of 2GB GPU RAM used; 10% CPU utilization

d3d11va-copy - few dropped frame; 90% GPU utilization (90% 3D and 15% video decode); 1.7 of 2GB GPU RAM used; 20% CPU utilization

 

Using MPC-BE:

 

dxva2 - few or no dropped frames; 30% GPU utilization (30% 3D and 15% video decode); 1.4 of 2GB GPU RAM used; 15% CPU utilization

 

I don't see a way to set dxva2 native in EMBY Theatre so I couldn't test that. Nor do I know how to change the hardware decoder in MPC-BE when using Enhanced Video Renderer (custom presenter).

 

The one thing that jumps out at me is that using d3d11va in EMBY theatre really pushes the GPU usage (especially video decode) compared to the standalone version of MPV. Wonder why there is such a massive difference. I also see that DXVA2-copy was a little less resource hungry in the standalone... maybe enough so to get me smooth playback.

 

 

 

Link to comment
Share on other sites

prankmunky13

Well, I hope he sees this then. Fingers crossed for getting similar performance to the MPV standalone in the final EMBY Theatre build!

Link to comment
Share on other sites

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...