Log in

View Full Version : MPC-HC tester builds for internal renderer fixes


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35

XRyche
16th February 2015, 17:24
Thank You. I'll test these when I get home and let you know. I did find the Y'Cb'Cr test 2 after i wrote the previous post. I used the chroma upsampling shaders last nite. They appeared to work fine and I could see the difference. I like my chroma more defined and sharp though that's why I asked for the Lanczos variants.

XRyche
17th February 2015, 00:17
http://www.mediafire.com/download/m7td27lofk6dyi1/YCbCr-type_sharpen_complex_test_3.7z
Just a reminder; these are renderer-specific shaders for the quality mode. This package includes the three shaders listed above for "sharpen complex, deband and denoise for LMS rendering" and also all current chroma up-sampling shaders.
The readme.txt file contains information about how to chain shaders for different renderer conditions.
The chroma up-sampling shaders are literally copies from the internal shaders. I didn't test them separately, so please inform me if anything is wrong with them.

The Lanzcos variants (all 3) appear to be working without issue. I didn't see any chroma bleeding at all. No apparent resizing bugs. Everything works very well and looks very good when used together. I'll test the other variants throughout the week.

foxyshadis
18th February 2015, 11:55
Jan, I have a question about shader chains. Is it possible to do your favorite processing like deband, resize, etc, then upsample the temporal resolution to the monitor rate, then apply a bit of noise to every frame? I think this is possible in MPDN, but I'd like to know if it can be done in MPC-HC as well. This way the illusion of constant movement can trick the eye into ignoring those too-smooth areas in low-bitrate encodes, or where denoising was applied too heavily.

I remember there was a discussion about changing frame rates in the shaders, but I can't remember what the result was.

JanWillem32
18th February 2015, 19:19
Changing frame rates in shaders isn't possible. The host renderer calls Present()/PresentEx() for every renderered frame to present to the back buffer. Hence it's the host renderer that needs to set up frame rate changes. I implemented the constant frame interpolator a while ago. It always changes the video frame rate to the display refresh rate through either basic (spline fit) or adaptive (motion vectorization and transformation) interpolation methods. Because of the complexity of changing frame rates and the extra textures and transforms this function uses, I'm not planning custom shader support for these stages. (Note that the fourth adaptive interpolation shader is the most complex shader I've ever used.)
Adding various types of (dithering) noise is implemented as well. Static ordered dithering won't change patterns for each frame, but the random ordered and random dither types will.
The options are available in the "View", "Renderer Settings", "Frame Interpolator (PS 3.0)" and "Dithering Levels" menus.

Anima123
19th February 2015, 06:24
I am new user here with this tester build. Can someone enlighten me why the video looks 'greyed out', is there some kind of guide or how-to for the basic/advanced configurations?

For an example, I don't know how to trigger on the frame interpolotor.

burfadel
19th February 2015, 07:00
http://www.mediafire.com/download/m7td27lofk6dyi1/YCbCr-type_sharpen_complex_test_3.7z
please inform me if anything is wrong with them.

When using with MPC-HC (renaming them to .hlsl), they don't work properly when using with madVR. It doesn't matter what the settings are in madVR, the picture ends up being very dark and it looks like the levels are off. If the renderer is changed to EVR (for example), and the video reloaded to use the different renderer, it plays correctly.

This is with trying both the single and mutli-pass methods. All other shaders I use work fine with madVR. I did remove those from the shader list, and that did not help.

I'm using madVR v0.87.14, LAVFilters 0.64.0 (the one that comes with the latest MPC-HC nightly), and MPC-HC nightly 1.7.8.61. Windows 8.1 x64, R9-280X video card, Catalyst 14.12.

ts1
19th February 2015, 07:19
Anima123
Make sure you use Enhanced Video Rendere (Custom presenter). Then in the View -> Renderer Settings -> Presentation enable Alternative Scheduler and choose 16/32-bit floating point surface and then you can use frame interpolator, dithering, color management from the View -> Renderer Settings.

JanWillem32
19th February 2015, 09:06
Anima123, I certainly advise using the quality mode with the 16- or 32-bit options (try 16-bit integer first, it usually works). The performance mode (the default) is indeed not the nicest looking. After some color correction or color management (available as renderer options) things should look a lot better.

burfadel, these are renderer-specific shaders. I probably should have stated that inside the readme of that package, but I did make it clear in my earlier post. I included the color conversion steps of the internal renderer shaders. The ones used by madVR are different, hence the incompatibility.

foxyshadis
19th February 2015, 10:08
Changing frame rates in shaders isn't possible. .... I'm not planning custom shader support for these stages.

Thanks, I won't worry about it then. The dither setting was too weak for the effect I was looking for, but if it's a pain in the ass, it's no big deal.

burfadel
19th February 2015, 11:57
burfadel, these are renderer-specific shaders. I probably should have stated that inside the readme of that package, but I did make it clear in my earlier post. I included the color conversion steps of the internal renderer shaders. The ones used by madVR are different, hence the incompatibility.

Ah okay, my mistake :D.

Is it possible to make a version compatible with madVR, seeing as it is a commonly used and favoured renderer by many?

JanWillem32
19th February 2015, 16:24
foxyshadis, I don't mind adding stronger random dither, or if you want, another type of dither. How much stronger do you need it compared to the current types?

burfadel, I'll take a look at it. The lack of compiler macros will mean manual switching for HD and SD types though.

JanWillem32
19th February 2015, 20:11
Today I finished probably the most part of the new constant frame interpolator. Its methods are pretty much the same as the old version, but the stage has changed to pre-resize, making it less interfering with subtitles, stats screen and OSD.
As per usual, please test and report if anything seems to be off regarding this version.

regular builds (major updates this time):
-

Anima123
19th February 2015, 23:38
I tried your interpolator (not the latest version) last night, it was acceptable when the scenes are continuous, with big scene changes, however, the effect was not so pleasant. In wonder if the algorithm can detect scene change and choose other way to handle the case?

JanWillem32
19th February 2015, 23:48
Which of the three modes were you using? The basic version will have lightening/darkening artifacts when colors change. The adaptive modes will fall back to linear interpolation if the surrounding image drastically changes.

Anima123
20th February 2015, 03:53
I am trying your new build, with correct settings, it works well so far.

Still, even with adaptive mode, in case of scene changes, some noticeable artifacts can be annoying.

Edit: I tried to using the interpolator with VMR 9 renderless, it always crash when trying to get into fullscreen.

Hera
21st February 2015, 07:18
I like this new build so far.

XRyche
21st February 2015, 22:22
foxyshadis, I don't mind adding stronger random dither, or if you want, another type of dither. How much stronger do you need it compared to the current types?



I actually would like to try out some stronger random dithering and/or another type of dithering as well. Since I have a 6 bit TN LCD monitor it might be an improvement.

On an unrelated topic, does the integrated colour management still use CIECAM2 or did you update it to XLRCAM?

Hera
22nd February 2015, 05:15
Still, sometimes, getting black screen on ALT-ENTER

v0lt
22nd February 2015, 09:44
v0lt, Intel chose a fixed-function unit to do mixing for EVR. This unit does not support anything but 8-bit R'G'B' outputs.I use 8-bit for EVR buffers and custom type for shader surfaces. This is only for EVR-custom and Intel.
https://sourceforge.net/p/mpcbe/code/157/

VMR-9 r. does work with 16- and 32-bit floating-point textures (but it needs some special settings to actually return floating-point quality from the mixer).
Which settings do you mean?

JanWillem32
24th February 2015, 23:12
Anima123, I'll take a look at VMR-9 r. again, thank you for notifying me.

Hera, I'll revise the window handling code. Maybe it will work out. It's a bit difficult to get the correct window on top with how the main window handler is organized for windowed fullscreen. D3D fullscreen doesn't have such problems due to a different window order.

v0lt, you're probably right about this patch. It's just a bit dishonest to force 8-bit output textures on the mixer while the user selected a quality option though. I'll have to think about this issue some more, especially since future video adapter drivers could possibly fix this issue. (VMR-9 doesn't have this issue for instance, so EVR shouldn't either with maybe some other settings in the driver.)

XRyche, I've been using XLRCAM exclusively for a while now. It works without much problems and solves some issues I had with CIECAM02.
Here are some extra random noise generators based on XLRCAM (will be included in future builds).

foxyshadis, If you didn't like the type of noise of the built-in dithering (instead of just wanting a stronger effect from it), these might be interesting for you as well.

The two shaders are too long to post here, so I've uploaded them in archived form this time.
-

XRyche
25th February 2015, 01:17
I'm still getting weird colour distortions With the new XLRCAM shaders when used in conjunction with Little CMS and using the shaders colour controls . Here's a screen shot : https://www.mediafire.com/?2c28ewtb9u580r6 . You can see the heavy distortions on the light panels in the background.

foxyshadis
25th February 2015, 11:33
Boy, you sure weren't kidding when you said stronger, now it's drowning in grain. It's interesting though, and it's fast as hell, so I'll play with the strength and find something I like.

There's a weird 15x15 artifact though, where vertical and horizontal correlations seem to create blocks out of the noise. It's very obvious in motion.
https://dl.dropboxusercontent.com/u/54412753/doom9/15x15grain.png

This is on HD 4600 (with Optimus, but I don't think that's used), with default settings on a white background.

ts1
26th February 2015, 09:32
Resize of the player is slow with Adaptive Frame Intepolator, but it's ~2 times faster on 64-bit built.

JanWillem32
27th February 2015, 22:02
v0lt, sorry I didn't answer your post completely last time. The settings needed for VMR-9 are for its mixer output textures. You should never use the texture allocator provided by the mixer, but just use your own methods, else it always allocates 8-bit R'G'B' textures.

XRyche, which shader are you using and whith what settings? Are the artifacts only on blue pixels?

foxyshadis, the internal renderer ditherer can also be made stronger, it just alters monitor-type R'G'B' instead of L'M'S', the correlates for red–green and yellow–blue, and the achromatic response. Whichever you prefer can be made to suit your needs. Don't forget to try both noise modes offered by the two new shaders.
I can't really see that 15x15 specific artifact though. It could be artifacts in the WTW of that white video. It could also be just a too low run count (though I was pretty sure 3 was enough when I last tested it).
To change the run count, alter the "3" in the shader's line: "do {rd(w) rd(z) rd(y) rd(x)} while(++i < 3);// randomize, a low run count will make patterned noise" . That might solve that problem.

ts1, there's a good chance that the external pixel shader compiler (which is used to compile a large set of shaders for the constant frame interpolator) is more optimized on x64, hence the re-initialization speed difference. The difference for debug modes for when testing subtitles is even more dramatic, by the way.

XRyche
27th February 2015, 23:38
XRyche, which shader are you using and whith what settings? Are the artifacts only on blue pixels?



I'm using the latest XLRCAM shaders you posted with everything left as is except two settings. I've set "NoiseMode" to 0 and set all 3 primaries in ScaleLinearLight to 1.26. Any value of 1.25 or less doesn't create that effect. I know the value is rather high but it still shouldn't be producing these results, should it?

As far as what colour pixels the artifacts are manifesting with, they are indeed only blue. Here's another screenshot where the artifacts are even more prevalent : http://www.mediafire.com/view/gl423rn4wbbx2p2/Untitled2.png . It's very apparent on the descending compound screen on the upper-right of Sting and the lower-right of him on the curtains.

JanWillem32
28th February 2015, 17:11
I've revised the color scaling controls for the linear L'M'S' stage and added a gamma control: - . These might be what you're looking for. I decreased the likelihood of any black (or dark color) clipping artifacts. White (or light color) clipping is still present on all controls, except the gamma controls.

XRyche
28th February 2015, 19:03
That worked as far as eliminating the dark artifacts. The colour scaling controls for L'M'S' seem a bit subdued compared to what they were. Everything seems, for lack of a better word, "whiter". The colour gamma controls are interesting. Very "touchy" but I might like them as long as I don't abuse them. Thanks for optimizing the colour controls for me.

JanWillem32
1st March 2015, 23:42
I just replaced the mpc-hc tester dfr7370rs6i builds to (possibly) solve the fullscreen bug reported by Hera and a bug that could pause the visuals on EVR-CP. These packages contain the new shaders as well (but with updated comments).

XRyche
3rd March 2015, 23:32
The Lanczos 2 and 3 chroma upsampling shaders are failing with the new build. Those two appear to be the only ones.

JanWillem32
4th March 2015, 00:34
Thank you for notifying me.
I replaced the builds linked in my previous post. Also, as these four shaders were in the "YCbCr-type sharpen complex test 3" package, I replaced that one as well. http://www.mediafire.com/download/m7td27lofk6dyi1/YCbCr-type_sharpen_complex_test_3.7z

XRyche
4th March 2015, 01:11
They still won't work. I'm getting this error "error X3014: incorrect number of arguments to numeric-type constructor" when I try to compile them in the shader editor.

JanWillem32
4th March 2015, 02:30
You're right indeed (for Lanczos3, not Lanczos2). I replaced the four files again.

XRyche
4th March 2015, 04:56
My Bad :P . I just checked Lanczos3 and ass-u-me d Lanczos2 was still off. Everything is working as it should, for me anyways, again.

ts1
4th March 2015, 22:36
Black screen with dvr-ms files. After trying to reopen the file appears error "failed to register the renderer utility window class".
http://www.filedropper.com/jewelsofcaribbean

JanWillem32
6th March 2015, 18:59
ts1, that's a sample of a type I've never encountered before. Sadly, the player or one of the filters can't close with any renderer it at all it seems. (This isn't a renderer bug.) The trunk build has been patched to handle these types of files correctly, so this issue will be fixed later on.
Nonetheless, the black screen bug is a renderer bug, which I fixed now.
I replaced the builds listed in my earlier post again.

XRyche
7th March 2015, 19:03
With the new build I get massive tearing when playing DVD's In all instances (FS, D3DFS, and windowed) with the frame interpolator regardless of what type of interpolation. When going from windowed to FS the tearing stops. When started in FS and going to windowed the tearing stops.When going from windowed to D3DFS the tearing persists until I go back into windowed mode then it stops. When going directly into D3DFS the tearing persists until I drop into windowed mode .

JanWillem32
7th March 2015, 22:51
I can't replicate the issue, but I can change the mixer frame processing code I altered in the last build. Does this tester version have the same issues? http://www.mediafire.com/download/i6cjn5tfcdrb1d0/mpc-hc_tester_SSE2_for_DVD_plus_frame_interpolation.7z
If the problem persists with this build, I'll have to try to replicate this issue. For that case I have a few questions. Are you sure it's tearing, and not wrong frame ordering? Does it happen with all DVD samples? Does it happen if you select a single video file from a DVD (instead of the open DVD functionality)? If it's on a particular sample, can I have a (reduced) copy?

TOM_SK
7th March 2015, 23:38
How to enable the 'Frame Interpolator' function? The settings are greyed out on my system, I don't understand how to enable the Frame Interpolator feature. Thank you.

http://i.imgur.com/Fsx333x.jpg

Hera
8th March 2015, 06:48
How to enable the 'Frame Interpolator' function? The settings are greyed out on my system, I don't understand how to enable the Frame Interpolator feature. Thank you.

I think you need to enable 32-bit / 16-bit surfaces under "Presentation" first

ts1
8th March 2015, 09:41
Should Frame Interpolator change the AVR frame rate? Because it's always the same for me no matter enabled or disabled F.I.
Edit: FrameR Lock always = video's fps and not monitor refresh rate.
Edit2: open this (http://files.futureleap.com/avatar_60.mkv) video, disable Alternative Scheduler, open stats screen, pause, wait for 10-15 secs, resume - there is always a lag, sometimes player hangs (only with 32-bit surfaces it seems, disabled F.I.).

JanWillem32
9th March 2015, 15:14
ts1, the video frame rate detection and frame rate lock is indeed used for detecting the video FPS. Note that most videos have really bad time stamps (counting in whole milliseconds), so it's not easy to detect the correct frame rate sometimes. The playback fps is always the monitor refresh rate, even if an image has to be displayed for multiple times in a row to match video fps to the display refresh rate. The frame interpolator just doesn't present frames multiple times to match the refresh rate, but generates interpolated frames to present on every display refresh.
I can replicate issues with that video sample. It has rather bad time stamps, and rendering 1280×720 60 fps on the 32-bit surfaces mode is way too heavy for the video memory throughput on my PC. I can't fix the lag, as it's a general performance issue, but I can maybe prevent it from getting stuck. I'll experiment a bit. Thank you for a good testing sample. I'm always looking for problematic files to test the renderer with.

XRyche
9th March 2015, 23:02
I can't replicate the issue, but I can change the mixer frame processing code I altered in the last build. Does this tester version have the same issues? http://www.mediafire.com/download/i6cjn5tfcdrb1d0/mpc-hc_tester_SSE2_for_DVD_plus_frame_interpolation.7z
If the problem persists with this build, I'll have to try to replicate this issue. For that case I have a few questions. Are you sure it's tearing, and not wrong frame ordering? Does it happen with all DVD samples? Does it happen if you select a single video file from a DVD (instead of the open DVD functionality)? If it's on a particular sample, can I have a (reduced) copy?

It doesn't happen with the tester build at all. The only difference is I'm not using any of your custom shaders and my usual build is 64 bit.

I have found something weird though. When I open the .vob file through "quick open" it plays perfectly fine. When I open the disc through "Open DVD/BD" that's when I get the tearing and/or incorrect frame order. This is with my usual 64 bit build. If you still want a sample I'll pm you.

Hera
10th March 2015, 02:01
If you move the mouse from outside left / right corner to the video itself - the mouse pointer will be remain a horizontal resize symbol on the video itself.
Hover on the left / right edge (as if you want to resize horizontally) while video is playing and the move the cursor into the video itself - sometimes the cursor doesn't change

This thing,
<--->

From the bottom (where the seek bar is) sometimes it remains a hand icon

Very minor visual annoyance

JanWillem32
10th March 2015, 12:52
XRyche, if the changes work it's fine I'll implement them this way from now on. I'll write some more code and then I will issue new builds.

Hera, thank you for reporting. I've replicated the issue and I think I already fixed it, too.

JanWillem32
12th March 2015, 22:08
I replaced the builds to include the latest two small fixes. No major changes were made.
x64: http://www.mediafire.com/download/nraypm00z80jik8/mpc-hc64_tester_dfr7370rs6i.7z
x86 SSE2: http://www.mediafire.com/download/23y54r7fz4f9a8a/mpc-hc_SSE2_tester_dfr7370rs6i.7z
x86 SSE: http://www.mediafire.com/download/rhu5ls6itubchca/mpc-hc_SSE_tester_dfr7370rs6i.7z

XRyche
14th March 2015, 03:01
Unfortunately, with the x64 build I'm still getting the tearing/incorrect frame order bug when using frame interpolation when playing DVD's. Here's a screenshot of the issue : http://www.mediafire.com/view/l26tuap9v0agbdu/Untitled6.png . The tearing/incorrect frame order is , of course, much worse while in motion but this should give you some idea of what I am seeing.

ts1
14th March 2015, 10:23
Edit: it works, I didn't know wtv was disabled in LAV Splitter.

JanWillem32
14th March 2015, 16:13
XRyche, is this problem only with the latest version and only with the x64 type? Do you have a (reduced) sample that I can use to try to replicate this issue?

XRyche
15th March 2015, 04:33
XRyche, is this problem only with the latest version and only with the x64 type? Do you have a (reduced) sample that I can use to try to replicate this issue?

Sample PM'd .

CruNcher
15th July 2015, 20:20
@JanWillem32

There is currently some major issue with the EVR Custom Renderer on Nvidias 353.30 WDDM 1.1 (WIN7)

I disabled lav filter P0 render mode as there is no direct window 10 bit support yet in your branch it seems and connection fails totally with P0 and lav filter for 4K Main 10 H.265 video playback currently.

changing from window to fullscreen or maximized window works but when trying to change from maximized window to fullscreen i get a black screen or it shows only the last image rendered audio plays but no video is visible anymore changing back to maximized or window continues normaly

Doesn't happen with MPC-BE nor MPC-HC

tested these so far (same issue)

mpc-hc64 tester dfr7370rrri
mpc-hc64 tester dfr7370rs6i