View Full Version : Media Player .NET (MPDN) - D3D HQ GPU Video Renderer [v2.49.0/v1.31.0 27 Dec 2018]
Zachs
27th June 2015, 13:48
No. The installer only installs the binary version. If we want auto update / update checker for the extensions, the only way is to have the binary version, which has a product version that is tied to github release version.
I'll see if there's a way to detect if a conflict has occurred but that's just one of the many mistakes users could make when using the source version. I think end users shouldn't be tinkering with the scripts anyway. Anyone interested in poking around should be knowledgeable enough to download the source from github.
What we can do is perhaps distribute a readme with the binary version with instructions on how to get the source version. Anyone who's interested in poking around would surely have looked into the extensions folder and readme would be the first thing that stands out.
madshi
27th June 2015, 14:08
Maybe you can detect the conflict and change the wording of the message box to guide the user in solving the conflict? E.g. point the user to the readme. The current message box text is very generic and sounds more like some extension is corrupt/damaged.
Shiandow
27th June 2015, 14:11
What we can do is perhaps distribute a readme with the binary version with instructions on how to get the source version. Anyone who's interested in poking around would surely have looked into the extensions folder and readme would be the first thing that stands out.
That might be a good compromise. I still think it's a shame that users would lose the ability to change the extension's behaviour by changing a few lines of code, but maybe nobody did that anyway.
Zachs
27th June 2015, 14:12
Yeah that would be ideal. Just have to find out if it's possible to detect that it's a conflict and not any other errors...
Zachs
27th June 2015, 14:15
That might be a good compromise. I still think it's a shame that users would lose the ability to change the extension's behaviour by changing a few lines of code, but maybe nobody did that anyway.
Oh I think the ones who frequent this thread know how to switch to the source version in a heartbeat when there's something they need / want to change.
The installer is really meant to make it easy for users who simply just want a media player and don't necessary even know much about image scaling, let alone tinkering with it :)
Anima123
28th June 2015, 00:23
With the upgraded version of Super-xBR, I cannot distinguish it from NEDI with SuperRes now. I'd say it becomes as good with one of my test video.
Edit: For other video clips, NEDI still more 'natural' for me.
mrcorbo
28th June 2015, 15:56
Regarding extension versioning, prior to the binaries being implemented was using file hashing ever considered?
Zachs
29th June 2015, 02:29
Yes, but we wanted something more straight forward to start with. File hashing may still be implemented for the source version later. We don't even have an extensions version checker yet at the moment.
mrcorbo
29th June 2015, 14:24
Got it. I have some ideas about a possible process if you don't already have a mechanism in mind.
Zachs
29th June 2015, 14:26
Oh feel free to discuss here. Belphemur is the one looking into it.
Dark Eiri
29th June 2015, 18:39
Is there any way to support GPU acceleration via integrated GPUs like I do with MPC and LAV? On MPC I set LAV to use QuickSync instead of CUDA, that makes my GTX 770 sleepy and silent at 135 MHz Core and uses my HD4600, which has no monitor output (I believe you guys call that "headless GPU"?), to decode everything, . Any way to do that with MPDN so the GTX770 won't go full clock and noisy every time I boot it up? The iGPU doesn't even show up on the Adapters list.
huhn
29th June 2015, 18:50
the adapter is chosen for presentation not for decoding. you can just choice quicksync under lavfilter and MPDN will use it.
Belphemur
29th June 2015, 20:54
I did think of file hashing instead of Timestamp comparison (as how the uninstaller is done for now). Until now I couldn't find a plugin/script for NSIS to generate hash. Now I found a basic CRC32 that should be enough to check for modification.
I can later on make an installer for the source version, but I think this would get a little complicate for the user (and also could lead to some conflict when the framework get changed/refactored).
Anyway I'm open to any ideas !
huhn
29th June 2015, 22:38
i get high numbers in madVR and foobar too (~4000). the only difference is that MPDN has audio issues and the rest not. so the driver are kinda broken or this software doesn't work properly on windows 10.
not sure if it is good to waste time on it.
i disabled the asus sound card and used the AMD GPU as a sound card.
i saw again high interrupt to process values so the asus soundcard isn't the problem. but the real issue is that the values are way way higher with MPDN.
and this is on a completely reinstalled system.
the next thing i will try is switch out the GPU and have a look at the results.
Magik Mark
30th June 2015, 01:26
Zachs how do we activate the dxvahd render?
Zachs
30th June 2015, 04:08
I've just pushed the DXVA HD Scaler render script to github. This is unreleased yet but I'll be making a new MPDN_Extensions release shortly.
For more info, see https://github.com/zachsaw/MPDN_Extensions/wiki/DXVA-HD-Scaler
Anyway, not sure why anyone would want to use it, but you're the boss!
Zachs
30th June 2015, 04:09
i disabled the asus sound card and used the AMD GPU as a sound card.
i saw again high interrupt to process values so the asus soundcard isn't the problem. but the real issue is that the values are way way higher with MPDN.
and this is on a completely reinstalled system.
the next thing i will try is switch out the GPU and have a look at the results.
It sounds like your AMD driver is causing high DPC latency and MPDN may have uncovered a bug in their driver. Is it a beta version?
Dark Eiri
30th June 2015, 05:16
the adapter is chosen for presentation not for decoding. you can just choice quicksync under lavfilter and MPDN will use it.
It is. And still makes my GTX 770 spike all the way to 1045 MHz.
Zachs
30th June 2015, 05:25
It is. And still makes my GTX 770 spike all the way to 1045 MHz.
Do you see only one adapter on your drop down list? You should see 2. On my Win7 machine, I have the iGPU setup as a headless output and I can switch between the two easily. Are you sure MPC even supports using the headless iGPU to render your video? I certainly can't find an option to allow that.
Magik Mark
30th June 2015, 06:07
I've just pushed the DXVA HD Scaler render script to github. This is unreleased yet but I'll be making a new MPDN_Extensions release shortly.
For more info, see https://github.com/zachsaw/MPDN_Extensions/wiki/DXVA-HD-Scaler
Anyway, not sure why anyone would want to use it, but you're the boss!
Thanks you! I'm now able to use file sharp & adaptive sharpen wihout any problem in GTX 550ti. Most of the videos I play are 8bit including blue ray
I have activated debanding and hopefully it would address any banding issues
Zachs
30th June 2015, 06:12
Thanks you! I'm now able to use file sharp & adaptive sharpen wihout any problem in GTX 550ti. Most of the videos I play are 8bit including blue ray
I have activated debanding and hopefully it would address any banding issues
On GTX 550ti, you should just use hardware bilinear for better quality. DXVA HD will actually produce worse quality and is slower at the same time!
mrcorbo
30th June 2015, 06:23
I did think of file hashing instead of Timestamp comparison (as how the uninstaller is done for now). Until now I couldn't find a plugin/script for NSIS to generate hash. Now I found a basic CRC32 that should be enough to check for modification.
I can later on make an installer for the source version, but I think this would get a little complicate for the user (and also could lead to some conflict when the framework get changed/refactored).
Anyway I'm open to any ideas !
When I have some time I'll try to put together a more complete outline of how I think this might work, but mainly it centers on keeping a manifest of all of the extension files with a hash value for each file, the date modified file property as read at the time the current hash value was generated to detect when a file needs to be re-hashed and an additional property to allow users to mark certain extension files as manual update only. This last basically covering cases where the user has modified an extension and doesn't want the updater nagging them about it.
Magik Mark
30th June 2015, 06:28
On GTX 550ti, you should just use hardware bilinear for better quality. DXVA HD will actually produce worse quality and is slower at the same time!
How do I activate hardware bilinear? I could only see bilinear in chroma/luma upscaling/downscaling. It is not found in image scaling
Zachs
30th June 2015, 06:46
It's under "Scaling performed by GPU hardware" --> Bilinear.
nevcairiel
30th June 2015, 07:16
Does AMD implement DXVA HD now? A few years back when I investigated that API, they didn't offer DXVA HD at all.
Zachs
30th June 2015, 07:24
Well it doesn't work on my old 4350 and I haven't bought an AMD product since so I'm not sure really.
EDIT: Anyway, the DXVA HD scaler seems to only benefit Intel GPUs. They can do Bicubic 100 no AR with a bit less power than MPDN (by exactly 0.2W on both up and downscaling on my Intel HD 3000). Even Nvidia is simply using bilinear when scaling and is identical to MPDN's hardware bilinear.
huhn
30th June 2015, 09:20
madVr had problems using the better DXVA scaler too.
intel should be like lanczos 3 ar (8 bit) and amd and nvidia should be better than bilinear too even through amd is bilinear in madVR for me and something better in EVR. but i'm not even sure if you try to use the same API and i don't think they are useful too.
my GPU driver are software suite 15.20-150522a-184226e. the default WDDM 2.0 driver. these are not the 15.20 driver that promise a huge performance boost. the audio problem was older than preview windows 10 so not sure if a driver can be the reason.
huhn
30th June 2015, 09:37
It is. And still makes my GTX 770 spike all the way to 1045 MHz.
maybe your MPDN settings force your GPU to do this for rendering. quicksync headless mode is about decoding only and decoding with quicksync and presentation with EVR has title to no effect on the GPU unlike most better scaler in MPDN.
Do you see only one adapter on your drop down list? You should see 2. On my Win7 machine, I have the iGPU setup as a headless output and I can switch between the two easily. Are you sure MPC even supports using the headless iGPU to render your video? I certainly can't find an option to allow that.
intel quicksync headless mode is window 8+ only and is only about quicksync decoding. on windows 7 you need a fake monitor to access intel quicksync without putting an display to the GPU so this is no true headless mode.
at least he was talking about decoding not rendering. in headless mode the video is still rendered by the other GPU but EVR doesn't have an impact on them.
Zachs
2nd July 2015, 02:49
intel quicksync headless mode is window 8+ only and is only about quicksync decoding. on windows 7 you need a fake monitor to access intel quicksync without putting an display to the GPU so this is no true headless mode.
at least he was talking about decoding not rendering. in headless mode the video is still rendered by the other GPU but EVR doesn't have an impact on them.
Headless mode isn't exactly a technical term - it simply means a display adapter's output that isn't connected to any displays. In both Windows 7 and 8, you can do what you call "fake monitor". There's no need to do that for Win8 if you're just trying to use QuickSync. However, for rendering (and I assume he wanted his iGPU to do the rendering since he asked if it's possible to get his NV card to stay at lowest clock speed) you need to still "fake" a monitor.
It would make more sense if Microsoft simply allowed you to choose an adapter that isn't connected to a display to do the rendering. That's simply how Optimus works anyway.
the comparison was with MPC-HC and there was no word about rendering what so ever.
in the end very high settings are needed to get a 770 gtx to high power state and the intel wouldn't be able to handle it.
do you really think it is a good idea to render frames on a GPU that isn't presentation them.
just look at optimus system and there high present times.
and 8bit UHD@60 would be about 1.4 gigabytes per sec that needs to be transferred to the presentation GPU.
Zachs
2nd July 2015, 10:59
I didn't say it's a good idea but if you insist on rendering on your igpu, you should be allowed to do that. Optimus isn't a good idea but almost all nvidia GPU equipped laptops are optimus these days. Wouldn't be any worse allowing it.
Anyway I was just wondering if he meant rendering, not decoding. Not everyone knows the right jargon to use as you could see in the thread and I was just giving him the benefit of the doubt.
we can only guess. even though CUVID is forcing the GPU in highest powerstate.
Zachs
2nd July 2015, 12:23
@anima123
I've recently bought an old laptop with optimus just to see if I could replicate your problem with increasing render time but running an hour worth of video continuously with 2 pass SuperRes (default prescaler hardware bilinear) hasn't caused the problem. This is with the iGPU presenting and NV rendering. I've also tried directly using the NV GPU to drive its own display (therefore bypassing iGPU) and also found no problem.
Belphemur
2nd July 2015, 13:22
When I have some time I'll try to put together a more complete outline of how I think this might work, but mainly it centers on keeping a manifest of all of the extension files with a hash value for each file, the date modified file property as read at the time the current hash value was generated to detect when a file needs to be re-hashed and an additional property to allow users to mark certain extension files as manual update only. This last basically covering cases where the user has modified an extension and doesn't want the updater nagging them about it.
The next version of the extensions will use a MD5 hash of each file to check for changes. By default, the uninstaller leaves all files that has been modified and the installer doesn't override existing file.
Now this does only work for the Binary version of it. It's possible to create an installer that would use the Source version of it and do the same. But again, since the Extensions are open-source, and we welcome any change/new feature, if you find something troublesome in an extension, feel free to do a pull request or open an issue about it.
Of course, you can also code your own extension and put its file/dll into the Extensions folder and keep it for yourself. (Those file won't be touched by the installer/uninstaller).
Anima123
2nd July 2015, 21:50
@anima123
I've recently bought an old laptop with optimus just to see if I could replicate your problem with increasing render time but running an hour worth of video continuously with 2 pass SuperRes (default prescaler hardware bilinear) hasn't caused the problem. This is with the iGPU presenting and NV rendering. I've also tried directly using the NV GPU to drive its own display (therefore bypassing iGPU) and also found no problem.
Thank you for doing this. I have reported that the rendering time increasing issue has gone with the latest implementation of SuperRes by Shiandow.
Would you please try it with old one to see if you can replicate the issue?
Shiandow
5th July 2015, 17:00
@all
I've made some changes to the algorithms again. Should be available with the next release of the extensions.
SuperRes:
- Improve performance when softness is off (might change image slightly)
- Add HQ downscaling option. This improves quality and seems to work well with the change above.
SuperChromaRes:
- Same performance improvements
- Works in YUV instead of RGB
Debanding:
- Replace the 'margin' setting with something more intelligent. This seems to improve the image, but is still experimental.
Zachs
7th July 2015, 04:33
I really doubt the Microsoft WHQL certification process is working correctly when it comes to Optimus (perhaps they have no idea how to test all the different configs out there) as there have been 3 WHQL releases of R352 branch NVIDIA GPU drivers and certain configs of Optimus still suffer from a critical bug that causes a fault in ntdll.dll when you run certain applications (MPDN x64 is one of them unfortunately). Other apps are also affected - e.g. GPU-Z (32-bit) and Visual Studio 2010/2013 (see this bug report on Microsoft Connect (https://connect.microsoft.com/VisualStudio/feedback/details/1272232/ntdll-dll-crash-in-visual-studio-2013-on-windows-8-1-enterprise-on-laptop-when-using-a-dual-display-setup)).
It is caused by the Nvidia Optimus DLL Injection code (nvinit.dll for 32-bit apps and nvinitx.dll for 64-bit apps). 32-bit processes fail at fault offset 0x000e5624 in ntdll.dll while 64-bit processes fail at fault offset 0x00000000000f0f20. They both have the same exception code 0xc0000374 which means heap corruption.
The fault happens when the following conditions are true:
1) You are using NVIDIA R352 branch drivers (if you revert to R346 it'll work just fine)
2) Laptop is an NVIDIA Optimus laptop
3) Win8.1 (Win7 works fine)
4) Secondary monitor via HDMI (or DVI) output is set to "Extend my desktop" and is set to a different resolution to your laptop screen
5) System has been restarted after you've installed NVIDIA R352 branch drivers. DLL injected codes from nvinit.dll and nvinitx.dll won't get loaded before you reboot as they reside in the registry (AppInit_DLLs).
Workaround:
Remove nvinit.dll and nvinitx.dll in %systemroot%\sysWOW64 and %systemroot%\system32 respectively.
Note that you can't actually delete the files since they get loaded with every single process (including Explorer.exe) - it's DLL injection - so you have to rename the files (e.g. nvinitx.dl_ and nvinit.dl_) and restart. You can then remove the renamed files.
This removes the ability to make your primary screen (or GPU adapter) render with NV GPU and present with your Intel GPU (essentially disables Optimus) but if you setup MPDN to display on the secondary display, your NV GPU will still operate fine.
Other Optimus issues:
Some users have reported other odd behaviours when using MPDN with Optimus. If you believe Optimus is the culprit (it usually is), you can follow the instructions in the above workaround to "disable Optimus".
Anima123
7th July 2015, 07:24
What do you mean by "disable Optimus", especially with single screen settings? Does that mean that I can use nVidia card instead of the integrate one from Intel?
Zachs
7th July 2015, 07:25
No it's the other way around I'm afraid.
foxyshadis
7th July 2015, 09:11
Do you know if it also affects the 353 branch? If so, then I guess I've just been lucky so far.
aren't we still at branch 352? just over 100 driver so they name it 353.xx
nevcairiel
7th July 2015, 10:04
353.30 and .38 are 353 branch
Optimus is just terrible though, it has always been a source of fun problems.
Zachs
7th July 2015, 12:37
I think they're all from the R352 branch, at least according to the NVIDIA download page for my NVS GPU.
I have a feeling it doesn't happen with all Optimus systems out there. Perhaps its got something to do with the resolution of the external display and the laptop built in display. At least on mine the laptop screen is lower res than the external display, so that may be another condition that would cause the bug to manifest itself.
Belphemur
7th July 2015, 14:51
I think they're all from the R352 branch, at least according to the NVIDIA download page for my NVS GPU.
I have a feeling it doesn't happen with all Optimus systems out there. Perhaps its got something to do with the resolution of the external display and the laptop built in display. At least on mine the laptop screen is lower res than the external display, so that may be another condition that would cause the bug to manifest itself.
I have an Asus's Laptop 750GZ with nVidia 880m, Windows 8.1 and driver R353 and a Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz. I don't have this issue. I forced MPDN to be launched with the nVidia GPU in its control panel.
Tried with a Samsung TV using the thunderbolt port. It does also work with the HDMI port. Native resolution of 1080p on both screen.
Edit: Tried with extended, mirrored and only second screen. No issue.
aufkrawall
7th July 2015, 15:10
At least 353.38 is r353 branch for sure:
http://img.techpowerup.org/150707/nvidia_20150707_160849.png
I don't know about 353.30, but I wouldn't recommend to use it since .38 is far better.
Zachs
8th July 2015, 00:03
I have an Asus's Laptop 750GZ with nVidia 880m, Windows 8.1 and driver R353 and a Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz. I don't have this issue. I forced MPDN to be launched with the nVidia GPU in its control panel.
Tried with a Samsung TV using the thunderbolt port. It does also work with the HDMI port. Native resolution of 1080p on both screen.
Edit: Tried with extended, mirrored and only second screen. No issue.
I think it may only affect Win8.1 Enterprise only since the other person who reported VS2013 crashing immediately upon startup is also running the same OS. Perhaps like I said the 1080p native resolution of your laptop screen masks the problem. There must be some additional conditions I'm missing otherwise this problem will be a lot more widespread. Anyway I've submitted a bug report with Nvidia. We'll see where it goes from there.
At least 353.38 is r353 branch for sure:
http://img.techpowerup.org/150707/nvidia_20150707_160849.png
I don't know about 353.30, but I wouldn't recommend to use it since .38 is far better.
There's no .38 for Quadro yet - 353.30 is definitely from the R352 branch: http://www.nvidia.com/download/driverResults.aspx/86953/en-us
Zachs
8th July 2015, 04:09
@all
I've made some changes to the algorithms again. Should be available with the next release of the extensions.
SuperRes:
- Improve performance when softness is off (might change image slightly)
- Add HQ downscaling option. This improves quality and seems to work well with the change above.
SuperChromaRes:
- Same performance improvements
- Works in YUV instead of RGB
Debanding:
- Replace the 'margin' setting with something more intelligent. This seems to improve the image, but is still experimental.
Release v1.9.0 now includes these changes.
Anima123
8th July 2015, 05:50
Release v1.9.0 now includes these changes.
I am not sure what causes this, but the rendering time increasing problem is back with 1.9.0.
Zachs, if possible, would you please verify it with an Optimus laptop?
Zachs
8th July 2015, 06:47
Been running for 21 minutes and no problems yet. SuperChromaRes 2 pass | Strength 1.00 | Softness 0.00 | Use bilateral prescaler checked.
Started 20.50ms, currently still the same render time.
Anima123
8th July 2015, 07:26
I was using SuperChromaRes (1 pass, strength 1.0) + SuperRes (NEDI, 2 passes, Strength 0.7, Softness 0.0, Use HQ downscaling).
The nVidia driver is 353.30.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.