Jump to content

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


prankmunky13
Go to solution Solved by prankmunky13,

Recommended Posts

Guest asrequested

Yeah, it's better than it used to be. In earlier versions, with certain cable configurations, I would get 1000s of dropped frames. So it's improving, but has a fair way to go before it's a solid player. I get various glitches. I should probably do a true beta test and document all of the errors, but many of them are intermittent. I just put it down to general instability, and wait for the various components to mature and find synergy.

Link to comment
Share on other sites

Guest asrequested

Just for comparison, here are my results using D3D11 in mpv standalone and Theater. I should mention that I'm using the first test build where MadVR had been removed (as it's still the best version)

 

MPV standalone

 

5aad6970d84a0_Snapshot_498.jpg

 

Theater

 

5aad69c61ced8_Snapshot_499.jpg

Link to comment
Share on other sites

prankmunky13

Interesting. Benchmarks suggest that the GT1030 should perform twice as well as a Intel HD 630. In the standalone version of MPV this seems to be true, as my GPU utilization is lower than yours. However, no matter what I do in EMBY Theatre running d3d11 causes my Video Decode to hit 100% and results in choppy playback. You obviously don't have that issue with the Intel chip. Of course this could totally depend on the content we are playing oo. The numbers aren't really comparable unless we are playing the same video files.  

Edited by prankmunky13
Link to comment
Share on other sites

Guest asrequested

I was playing an HDR file, so it was also processing, that. Here's what it looks like with a 4K SDR

 

mpv standalone

 

5aaec9f23be84_Snapshot_501.jpg

Edited by Doofus
Link to comment
Share on other sites

prankmunky13

For clarity, all my test above were done with 4K HDR (10bit) 24fps videos so the HDR processing is taken into account. But I do notice that different 4K HDR media can strain the gpu differently. For instance, something like Blade Runner 2049 which is in letterbox plays at lower bitrate and uses less GPU than an episode of Blue Planet II which uses the full screen. Videos at higher fps, would also drain more resources, etc. So we would need to be playing the exact same media to make any meaningful comparisons.

 

Regardless, I'm still really curious why there is such a disparity in the Video Decode percentage (from 25% to 100%) when using d3d11 in standalone vs. EMBY MPV for my NVIDIA GPU but almost no change for your Intel GPU (26% to 22%). Does anyone else with an NVIDIA GPU have similar issues?

Link to comment
Share on other sites

Jdiesel

The extra usage is like attributed to the ET UI (electron). Try opening up ET and just let it idle and see what the GPU 3D usage is. When you are watching a video ET is still running in the background and running an overlay over the mpv window.

Link to comment
Share on other sites

Guest asrequested

Theater open and a bunch of other software, too. My CPU is at 17% because it's running encryption.

 

5aaf2ad34ec53_Snapshot_509.jpg

Edited by Doofus
Link to comment
Share on other sites

prankmunky13

Yup, my resource utilization looks more or less the same with Theatre idling and a bunch of other apps open: 6% CPU and 5% GPU (5% 3D and 0% Video Decode). So my video Decode jumping to 100% when I start a 4K HDR media using d3d11 file has nothing to do with electron. Thus it must have something to with the way MPV has been configured in EMBY since it only hits 25% in the MPV standalone. 

Link to comment
Share on other sites

Guest asrequested

Electron is in use when playing. It will have some involvement because it's responsible for the window overlay.

Edited by Doofus
Link to comment
Share on other sites

prankmunky13

Okay so an alternate explanation is that the electron overlay is terribly inefficient when using d3d11 compared to dxva2 on my NVIDIA GPU. I only hit 15% video decode using DXVA2-copy in EMBY theatre, which is similar to what I get in MPV standalone. Whereas I'm getting 100% video decode using d3d11 in EMBY and only 25% in MPV standalone. 

Link to comment
Share on other sites

Guest asrequested

It could be. The 3D rendering is what takes the biggest hit. I'm wondering if that process is being inhibited, in some way?

Link to comment
Share on other sites

Guest asrequested

You can try using DXVA2 in theater, if you want. You just need to make an mpv.conf for general use. The easy way to do that is to rename the portable_config folder to mpv. Then select none in theater, and adjust the mpv.conf to the params you want. I don't suggest leaving it that way, as it may cause confusion in the future. But you can use it to test. In my case, I have a separate mpv.conf for theater.

Edited by Doofus
  • Like 1
Link to comment
Share on other sites

prankmunky13

No dice.

 

I created an mpv.conf file (with one line: hwdec=dxva2) in the appdata\roaming\mpv folder, then opened EMBY Theatre and switched hardware decoding to none. However, when I play a video it still just plays it with no hardware decoding. The funny thing is that when I run MPV.exe directly from the embytheater/x64/mpv folder it correcttly uses whatever hwdec I put in the mpv.conf.

 

What am I doing wrong?

Link to comment
Share on other sites

Guest asrequested

Looks like the handler has been changed. The UI settings (even 'none') overrides the conf. It didn't used to. @@Luke, any chance this could be fixed? By setting to none would allow us to use the conf, again. 

Link to comment
Share on other sites

Guest asrequested

It looks like the 'none' setting is using the 'no' function, which forces software decoding.

 

https://mpv.io/manual/stable/#options-hwdec

 

5ab0676166c44_Snapshot_506.jpg

 

Luke, Is this the part in the handler? Or am I way off?

function getMpvOptions(options, mediaType, mediaSource) {

    var list = [];

    if (options.openglhq) {
        list.push('--profile=opengl-hq');
    }

    list.push('--hwdec=' + (options.hwdec || 'no'));
Link to comment
Share on other sites

Guest asrequested

OK, after deleting this line, I can use the conf, again.

 list.push('--hwdec=' + (options.hwdec || 'no'));

But it looks like mpv finally retired DXVA2. They had mentioned that it may happen, and it looks like they did it in the last build. I know I discovered something about this a while back, and that's when Luke removed it from the settings. There was another way I made it work, but I think they've removed that, too. Here're the changes from the last mpv update.

 

https://github.com/mpv-player/mpv/compare/v0.27.0...v0.28.0

 

5ab07809676cf_Snapshot_507.jpg

 

5ab07e71970eb_Snapshot_508.jpg

Edited by Doofus
Link to comment
Share on other sites

Guest asrequested

So, to conclude, the options in the settings are just fine. They do override the conf, but we have all our options available.

 

But obviously I strayed from the purpose of the thread....a little bit :)

Link to comment
Share on other sites

Guest asrequested

OK, I found how to get dxva2 to work. Use this

hwdec=dxva2
opengl-backend=dxinterop

Or the new way they have it

hwdec=dxva2
vo=gpu
gpu-context=dxinterop

But you can't use it in Theater, as the settings will override it.

Edited by Doofus
Link to comment
Share on other sites

  • Solution
prankmunky13

UPDATE: The issue has been resolved in ET version 3.0.0 as long as I run ET in Win 8 compatibility mode. If that doesn't work for you, you can try implementing dxva2 hardware decoding as detailed below:

 

Temporary solution achieved thanks to @!

 

If anyone else is having trouble with the other hardware decoders in the ET test build and wants to use dxva2 here is how it goes:

 

1) Open embytheatrer\electronapp\playbackhandler\playbackhandler.js in notepad. Find the following line and comment it out using //:

// list.push('--hwdec=' + (options.hwdec || 'no'));

2) Create an mpv folder in users\'username'\AppData\Roaming\

 

3) In the mpv folder create an mpv.conf file using notepad which contains the following code:

hwdec=dxva2
vo=gpu
gpu-context=dxinterop

4) Open ET and play away!

 

Note: Changing the Hardware Acceleration Mode in the ET Video Settings will not do anything now as you have forced dxva2.

 
I get beautiful, smooth 4K HDR playback with zero dropped frames this way. EDIT: Unfortunately, known issues with the RGB mapping with dxva2 in MPV cause my videos to be somewhat faded (seeing black as grey, etc.). It may, however, map correctly on other systems depending on GPU drivers. 
 
However, this is really just a temporary fix. As doofus has pointed out, MPV is dropping dxva2 support. Hopefully d3d11va will be usable in ET by the time the final build is done but there appears to be some issue between the current implementation of MPV in ET and my NVIDIA GPU. If anyone else is having problems with a GT1030 and hardware decoding 4K HDR in ET, let me know!
Edited by prankmunky13
Link to comment
Share on other sites

Guest asrequested

That's interesting. I guess the Nvidia GPUs utilize DXVA2, better. We'll have to see if that survives the next mpv release. If it does, maybe Luke could add it to the selection?

Link to comment
Share on other sites

prankmunky13

I don't think thats the case either since d3d11va in the MPV standalone actually used the least GPU resources compared to all the hardware decode options.

 

However, I now suspect that the version of MPV that you gave me is newer than the one used in ET. I noticed this because I could get away with using the single (hwdec=dxva2) in the mpv.conf for ET but required the full 3 lines to get dxva2 working in the MPV standalone. Since the current MPV documentation states that you require the 3 lines to use dxva2, I can only assume that the ET is using a previous version. So perhaps the problem is simply the fact that ET is using an outdated version of MPV?  

Edited by prankmunky13
Link to comment
Share on other sites

Guest asrequested

The test build has the latest mpv. But you can always replace it with the latest on the mpv site.

Edited by Doofus
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...