Log in

View Full Version : madVR 10-bit Display Support Test


Pages : 1 2 [3] 4 5 6 7 8 9 10 11 12 13

fb39ca4
17th May 2015, 08:45
Will 10 bit work on VGA?

ryrynz
17th May 2015, 10:24
Will 10 bit work on VGA?

Nope. I'd highly recommend updating to DVI/HDMI/DP when possible for other reasons though.

huhn
17th May 2015, 10:50
ReClock is reporting 12-bit input, not output. My bad.

http://i1357.photobucket.com/albums/q760/Warner306/Kodi%20Illustrations/ReClock_zpsbopcrfim.png

this is a 8 bit color space. and the number is bits per pixel.
each channel has 8 but the 2 chroma channel is only 1/4 of the luma channel so this gives you 12 bit per pixel instead of 24 bit per pixel.

iSunrise
17th May 2015, 15:56
first of all you win nothing if you feed a 8 bit panel 10 bit that doesn't even use dither.
That's not the point I was trying to get across. The point is that you should always keep dithering enabled. When you come from internal 16bit floating point data and you select 8bit output, there's another 8bits of data you would cut off without dithering enabled, because the output is integer data. If the display is 8bit and is not even dithering itself, then dithering for madVR is even more important.

Only if you had a screen that is not only accepting 16bit integer (RGB data), but also a panel that is able to display such a high bit depth, only then you would disable dithering.

What a display accepts or not or what a display is able to show is the sole reason why everyone needs to test it for themselves.

the only case where dither isn't need is 16 bit output because madVR doesn't store result higher.
In that case you would also need dithering, since madVR needs to convert 16bit floating point data to 16bit integer. This is ALWAYS the case.

huhn
17th May 2015, 16:16
In that case you would also need dithering, since madVR needs to convert 16bit floating point data to 16bit integer. This is ALWAYS the case.

it's not like madVR is store each step as float. if i'm not mistaken most of it is store as integer.

iSunrise
17th May 2015, 16:40
it's not like madVR is store each step as float. if i'm not mistaken most of it is store as integer.
You're mistaken then, since madVR does everything in pure floating point, hugely because with integer you would constantly lose data within the post-processing steps. Only when it comes to the output stage, where you need integer, madVR applies dithering and then needs to convert to integer. That's also the way it should be done.

vivan
17th May 2015, 19:11
Calculations are done in 32-bit float, because shaders.
Intermediate result (between render steps) is stored as normalized (treated as fp in [0..1] range) 16-bit integer.
16-bit float gives 11 bit of precision in [0..1] range - not enough. 32-bit is twice slower and video rendering requires quite a lot of read/write operations.

Out-of-range data is not really important... maybe only when using 3dlut. But AFAIK madVR internally uses limited range, so it saves some parts of HDR.

RyuzakiL
18th May 2015, 03:04
So after reading all the posts starting with the first radical update madshi made, i'm still kind of confused:stupid:

I'm running on Win. 8.1 Update 3 x64+HD7850+FX8320
Madvr+avisynth+FFDShow+MPC-HC+Reclock+LavFilters

My display is Samsung 40inch Led TV

1. I turned off all video enhancements from CCC including dynamic range since madvr also do that, but i left deinterlace enabled on CCC.
I also switch CCC to run on 12bit and RGB 4:4:4.

2. I didn't mess with native dithering registry hack since from what i read from all the post, I ALWAYS NEED DITHERING.

3. I enabled FSE to be able to use 10bit and all is going well except for random presentation glitches whether "present a frame for every vsync" was ON or OFF. and since i also enabled "display mode switching" by madvr it adds to the time it takes for FSE 10bit to switch >> 5-10 seconds of blackscreen, so it's not recommended for maranthon watching of animes.

Questions

1. I want to lessen extra redundant processing like dithering, deinterlacing and Pixel Conversions in the Chain. So what do you gurus recommend to turn off in the chain? in Lav Filters there's no way to turn off dithering, though i configure it to use random dithering.

2. Can i turn off deinterlacing on CCC since, i configured Lavfilters to deinterlace?

3. I think my display can output 10bit but given the lag time of switching to FSE 10bit + random presentation glitches. I think i need to settle to 8bit for now till madvr fix these issues, coz i think for the moment his focus were on the deband and scaling algorithms. Do I need to change something on LAVVideo settings? since i read somewhere that i need to put a check on something?

4. If i use display mode switching in Madvr, does Reclock becomes useless? I follow this guide http://www.ezoden.com/htpc/4/how-to-setup-htpc-introduction, and it requires to use AviSynth and FFDshow for post-processing, but given that madvr seems to use sharpening algorithms found on Avisynth and FFDshow do you think It's high time for me to scrap those two?

edison
18th May 2015, 03:43
Will 10 bit work on VGA?

It works on CRT via HD15 connector.

nevcairiel
18th May 2015, 10:25
FWIW, the 352.84 NVIDIA driver released today enabled the output bitdepth controls on Windows 8.1 for me, so Windows 10 isn't the only OS where these controls are available now.

James Freeman
18th May 2015, 10:30
I see 352.86 for Windows 7 too, but I'm at work now, so I will test in a couple of hours.
I will also test if this driver dithers at output when in 10/12 bit mode.

James Freeman
18th May 2015, 18:07
I'll just copy paste my post from the official madVR thread:


Windows 7 x64 here.
I have 8 and 10 bit over DisplayPort with my screen, no 12.
Switching to 10bit, my monitor actually goes into 10bit mode so it actually works.
madVR FSE D3D11 10bit switches instantly so that's another sign that all is well.

I have tested and observed the following:
In 10bit mode "Adjust Desktop Color Setting" in control panel (nvidia) actually works in 10bit now, so moving the sliders generate no banding, Hurray!
Operating system Color Management (2DLut) still in 8bit because DWM (Desktop Window Manager) is also still in 8bit, so gradation and banding are generated when I switch on my ICC Porfile.
Windowed Mode in madVR still appears to be in 8bit even if it set to 10bit in madVR, this is again because it has to go through DWM.
Overlay mode is also in 8bit.
In short, EVERYTHING! the whole OS is still in 8bit although the output is in 10bit.

I guess high bit depth DWM is a privileged in windows 10 only, all the older DWM versions of windows (7, 8 , 8.1) are 8bit only.
Or is it? Anyone cares to try windowed mode in 10bit with madVR in 10bit and report is the gradients are visible?

EDIT:
I may be wrong, maybe madshi will be able to call 10bit in windowed mode if the desktop is already in 10bit...

omarank
18th May 2015, 19:33
32-bit is twice slower
Is that true for modern video cards as well?

huhn
18th May 2015, 20:18
madVR needs FSE to get 10 bit.
and it is not confirmed that windows 10 can do 10 bit in window mode. maybe with DX12. maybe never.

Asmodian
19th May 2015, 01:57
You're mistaken then, since madVR does everything in pure floating point, hugely because with integer you would constantly lose data within the post-processing steps. Only when it comes to the output stage, where you need integer, madVR applies dithering and then needs to convert to integer. That's also the way it should be done.

madVR does calculations in 32-bit float but stores each intermediate stage as 16-bit int.

I could also use double float (64bit) for all madVR calculations and store all temp results in 32bit float. That would in theory increase the precision and exactness of madVR's rendering. But it wouldn't bring a visible improvement, and would slow down everything a lot.

RainyDog
19th May 2015, 09:00
So... If your display is a 10bit native panel and properly accepts a 10bit input, can you disable dithering in madVR using D3D11 exclusive with 10bit+ output?

nevcairiel
19th May 2015, 09:02
So... If your display is a 10bit native panel and properly accepts a 10bit input, can you disable dithering in madVR using D3D11 exclusive with 10bit+ output?

You should never disable dithering. Even at 10-bit, there will be data lost if you don't dither.

Zachs
19th May 2015, 09:20
madVR does calculations in 32-bit float but stores each intermediate stage as 16-bit int.

FWIW MPDN does its yuv to rgb conversion and dithering all in 32bit float including the intermediate stores, so it always dithers from 32bit to 8/10/16 bits. Only the step between first and second pass scaling is influenced by the render quality option, which also allows you to choose 32bit float if you select max quality. For single pass scalers, it's 32bit all the way (in the case where you don't use render scripts).

Zachs
19th May 2015, 09:25
Is that true for modern video cards as well?

It depends on which scaler/renderscripts you use. You can play with it by changing the render quality from prefer image quality to prefer max quality in MPDN of you are curious. Image quality setting uses 16bit ints, max quality uses 32bit float. Heck there's even an prefer max performance mode that does only 8bit if you chose to use it. I'd only use it on tight power budget platforms but it does allow you to see what the performance diff is on your GPU/video ram bandwidth with your selected scaler.

x7007
19th May 2015, 15:39
I succeed to use the 10bit , but my render and present queue are 2 and 1.

Without present a frame for every Vsync I had tons of presentation errors / with it none

Any idea how to fix the render and present half queues ?

Does watching movies in 10bit will be any usefulness ? what will it be good for if not for movies

huhn
19th May 2015, 15:47
rule 8...

10 bit output can help with processing on 8 bit screens with proper dither.
and it shows less noise on 10 bit displays.

x7007
19th May 2015, 15:49
rule 8...

10 bit output can help with processing on 8 bit screens with proper dither.
and it shows less noise on 10 bit displays.

so it could help, are the other issues are known as bugs , does it happen to everyone ?

huhn
19th May 2015, 15:50
so it could help, are the other issues are known as bugs , does it happen to everyone ?

depends on the screen. and there could be a lot of bugs 10 bit windows usage is pretty "new"

x7007
19th May 2015, 16:01
depends on the screen. and there could be a lot of bugs 10 bit windows usage is pretty "new"

Did you try to watch a movie with 10bit ? do you have the issue with the render and present queues not full ? and the rendering MS is high by a lot.

huhn
19th May 2015, 16:36
Did you try to watch a movie with 10bit ? do you have the issue with the render and present queues not full ? and the rendering MS is high by a lot.

no works fine for me at least version 88.6. and yes 10 bit works fine but depends a lot on the used screen.
usually 8 bit and forget is the best choice.

Anime Viewer
19th May 2015, 19:20
Did you try to watch a movie with 10bit ? do you have the issue with the render and present queues not full ? and the rendering MS is high by a lot.

I believe I may have been able to replicate your queue problem. Are your queue reading 0-1 or 1-2 before the "/ "regardless of what comes after the "/"?

Ex:

render queue 1-2 / 12
present queue 0-2 / 14


When your queue hit 0 do you see presentation glitches as opposed to dropped frames, both, or neither (even if those it shows it at zero)?

omarank
20th May 2015, 07:03
FWIW MPDN does its yuv to rgb conversion and dithering all in 32bit float including the intermediate stores, so it always dithers from 32bit to 8/10/16 bits. Only the step between first and second pass scaling is influenced by the render quality option, which also allows you to choose 32bit float if you select max quality. For single pass scalers, it's 32bit all the way (in the case where you don't use render scripts).

It depends on which scaler/renderscripts you use. You can play with it by changing the render quality from prefer image quality to prefer max quality in MPDN of you are curious. Image quality setting uses 16bit ints, max quality uses 32bit float. Heck there's even an prefer max performance mode that does only 8bit if you chose to use it. I'd only use it on tight power budget platforms but it does allow you to see what the performance diff is on your GPU/video ram bandwidth with your selected scaler.
Good to know that. I will definitely try out the Max Quality setting to see whether it is any slow on my system.

x7007
20th May 2015, 16:59
I believe I may have been able to replicate your queue problem. Are your queue reading 0-1 or 1-2 before the "/ "regardless of what comes after the "/"?

Ex:

render queue 1-2 / 12
present queue 0-2 / 14


When your queue hit 0 do you see presentation glitches as opposed to dropped frames, both, or neither (even if those it shows it at zero)?

ye, it doesn't actually hit 0, depend if I enable the present a frame for every vsync. but it is render 2 instead of 8 or 7.
the present is always 1 instead of 2 or 3.

If I try to use the D3D11 with 10bit and going full screen Exclusive mode.
1.the ms from 26ms goes to 40ms. ( AKA Fix ) Enabling the Exclusive mode in Potplayer settings to Fastest improves the ms to 31ms in full screen, so we need to enable Exclusive in 2 places and make sure 3DTV is not enabled too.
2.the render queue goes from 7-8/8 to 2-4 changing a bit from time to time.
3.present queue stays 1-3/3
4.if present a frame for every vsync not enabled I have Present errors all the time, with it enabled I don't have any.


EDIT : Wow,,, if you keep 3DTV enabled, it fucks the MS performance from 22ms to 35ms just by it enabled.

feelingblue
23rd May 2015, 07:40
Just for info..

I did all the cross test with render, video settings and various modes.

Benq W1400 VPR does not support 10bit.
Benq declares support for 10bit but actually is 8bit.

I do not make comments on manufacturer honesty...... because there is not a physical screen.

thank you all for the advice

shaolin95
25th May 2015, 16:22
Hello guys!
I am running Windows 8.1 so how can I make sure Aero gets enabled?
My searches seem to mention a "hack" but I was wondering if someone has been able to test this with 8.1

Also, I did test it with the image provided and with the Nvidia Control Panel set to RGB and 0-255 and I was able to see the difference between 8bit and 10 bit (even my wife notice and she rarely sees what I explain lol). What confuses me is that people has commented you need 16-235 to see it with Nvidia for example so makes me wonder if I am doing something wrong.
I am using a BenQ W1070 projector btw.

Any help will be appreciated! :)

huhn
25th May 2015, 16:41
Hello guys!
I am running Windows 8.1 so how can I make sure Aero gets enabled?
My searches seem to mention a "hack" but I was wondering if someone has been able to test this with 8.1
there is an hack to disable it. aero is always active on windows 8

Also, I did test it with the image provided and with the Nvidia Control Panel set to RGB and 0-255 and I was able to see the difference between 8bit and 10 bit

and what did you see? a difference is not what you should look for. you can easily get a worse picture by inputting 10 bit.

What confuses me is that people has commented you need 16-235 to see it with Nvidia for example so makes me wonder if I am doing something wrong.
I am using a BenQ W1070 projector btw.

quote this please. i like to see who said something like this.

shaolin95
25th May 2015, 16:52
there is an hack to disable it. aero is always active on windows 8



and what did you see? a difference is not what you should look for. you can easily get a worse picture by inputting 10 bit.



quote this please. i like to see who said something like this.
Cool about aero and 8!
Clearly better in my case. The "banding" that I was still able to detect with 8bit became a lot harder to see at 10 bit when in full screen and visible again in window mode (when it shows 8bit again) so that was very telling for me and good to know it works!

Looks like the people talking about nvidia and 16-235 etc were either wrong or just on their particular systems so ignore that last comment.
So count the BenQ W1070 as supporting 10bit.

TripleH
28th May 2015, 16:23
I'm trying to enable 10-bit output but having no success with it.

My setup:
nVidia GTX 970 with the latest official driver running on Windows 8.1 x64 connected through HDMI to a Marantz AV8801 SSP and from there to a Lumagen Radience Mini 3D video processor.

AFAIK, my SSP and video processor are both capable of passing and processing 10-bit HDMI input.

However, the nVidia control panel only lets me choose 8-bit output.

Is there any other action the should be taked in order to enable 10-bit HDMI output ?

Thanks.

huhn
28th May 2015, 16:26
if nvidia didn't report 10 or 12 bit that means the EDID said the device can't do it.

try the TV direct at the video card to make sure the TV can take 10 bit or higher input.

Qaq
28th May 2015, 18:01
Perhaps you need to enable DeepColor in the AVR? Run MonInfo to get EDID report.

TripleH
29th May 2015, 18:50
Yes, the problem is EDID related. I connected a HDFury 4K splitter with a custom EDID table to my PC and from there to the SSP and VP just as before and now I have an option to choose 12 bit color output.

Should I use YCbCr 4:4:4 or RGB while the output is set to 12bpc ? I think that RGB should be better since madVR deals with the RGB conversion and the Windows OS itself renders everything at RGB, so a 4:4:4 output should involve another conversion at the end to YCbCr.

Is it right ?

Qaq
29th May 2015, 20:07
RGB 0-255 (madVR/video driver/TV) should do best.

voyager6868
31st May 2015, 21:00
Someone has posted that the nVidia driver does not dither. Could you provide a link to some evidence?

Based on my tests, it does dither. I ran the test detailed in the first post of this thread on an 8-bit monitor and get a smooth pattern (using a Direct3D 10-bit surface). This is a $300 4K monitor that does next to no processing of input, so I highly doubt it is accepting a 10-bit signal and doing something as sophisticated as dithering.

Also, what evidence is there that a consumer nVidia card sends a 10-bit signal, unless it is set to 10bpc or higher in the nVidia control panel? I think people are assuming that if one uses a Direct3D 10-bit surface, that the video card will change modes to 10bpc or higher if the monitor supports it. What evidence is there of that?

AFAICT, the only time nVidia outputs more than 8bpc is if you set it in the control panel (or you have software that explicitly sets the video mode).

Bottom line here is that a dithered 8-bit pattern looks almost indistinguishable from a true 10-bit pattern, so simply looking at the screen is likely not enough to prove anything. Other posters have alluded to this. We need a scientific analysis of the signal coming out of the card.

I would add further, that even when nVidia is sending out a 10-bit signal, there is no guarantee that your monitor is actually showing it a such. It could be dithering down to 8-bit, and you likely could not tell the difference with this gradient test.

I think it will be incredibly hard to ever show than a device is outputting a true 10-bit signal (and given that.. maybe we should not care).

Maybe things will be easier to detect with the human eye once we start using an expanded color space (rec.2020) as there will be greater gaps between the colors.

shaolin95
31st May 2015, 21:08
Someone has posted that the nVidia driver does not dither. Could you provide a link to some evidence?

Based on my tests, it does dither. I ran the test detailed in the first post of this thread on an 8-bit monitor and get a smooth pattern (using a Direct3D 10-bit surface). This is a $300 4K monitor that does next to no processing of input, so I highly doubt it is accepting a 10-bit signal and doing something as sophisticated as dithering.

Also, what evidence is there that a consumer nVidia card sends a 10-bit signal, unless it is set to 10bpc or higher in the nVidia control panel? I think people are assuming that if one uses a Direct3D 10-bit surface, that the video card will change modes to 10bpc or higher if the monitor supports it. What evidence is there of that?

AFAICT, the only time nVidia outputs more than 8bpc is if you set it in the control panel (or you have software that explicitly sets the video mode).

Bottom line here is that a dithered 8-bit pattern looks almost indistinguishable from a true 10-bit pattern, so simply looking at the screen is likely not enough to prove anything. Other posters have alluded to this. We need a scientific analysis of the signal coming out of the card.

I would add further, that even when nVidia is sending out a 10-bit signal, there is no guarantee that your monitor is actually showing it a such. It could be dithering down to 8-bit, and you likely could not tell the difference with this gradient test.

I think it will be incredibly hard to ever show than a device is outputting a true 10-bit signal (and given that.. maybe we should not care).

Maybe things will be easier to detect with the human eye once we start using an expanded color space (rec.2020) as there will be greater gaps between the colors.

Well I have been trying to determine the same thing with my BenQ W1070.
I can clearly see how smooth he test ramp image looks with madvr when I switch to FSE mode vs regular 8bit even though my Nvidia Control Panel only gives me an 8bcp choice.
I wanted to try another player like MDPN but that one I cannot get it to display smooth no matter what so my only test is with MPC and madvr so far.

huhn
31st May 2015, 21:12
nvidia is dithering for sure.

dansrfe
31st May 2015, 21:17
Is there any way to be sure of the results of this test? There is visible banding on windowed and the banding goes away when I invoke a shortcut for FSE while keeping my eyes closely fixed on the screen.

It's a bit hard for me to believe since I have all 1440p korean monitors off ebay yet they are connected directly via an active DP -> Dual-DVI adapter. Are there any changes I need to make in Nvidia's CPL to confirm 10-bit?

Lastly, is dithering in madVR required if 10-bit works and will I need to recalibrate via Argyll and madtpg in 10-bit or can I use the existing 3DLUT?

Thanks!

shaolin95
31st May 2015, 21:30
nvidia is dithering for sure.

How come I dont get the smooth ramp when testing with MPDN? I thought it did the same as MADVR going to 10bit mode in FSE thus I was expecting the next results but then again..that could be just a problem with that program and not related.
So many things to learn for me :D

huhn
31st May 2015, 21:33
How come I dont get the smooth ramp when testing with MPDN? I thought it did the same as MADVR going to 10bit mode in FSE thus I was expecting the next results but then again..that could be just a problem with that program and not related.
So many things to learn for me :D

i don't know is mpdn set to 10 bit output?

shaolin95
31st May 2015, 21:36
i don't know is mpdn set to 10 bit output?

Yep everything set to do it but just wont do it. Tried the 16 bit option too and nothing. Very odd.
And thanks for your recommendation on PM, the system is looking great now.
Ended up calibrating at PC Levels as I use PowerDVD for 3D movies and that one was looking bad when calibrated at tv levels.

voyager6868
31st May 2015, 23:19
How come I dont get the smooth ramp when testing with MPDN? I thought it did the same as MADVR going to 10bit mode in FSE thus I was expecting the next results but then again..that could be just a problem with that program and not related.
So many things to learn for me :D

Are you sure MPDN is interpreting the gradient as 16-bit? Note that if you don't enable RGB48 in the LAV video settings, it will show the gradient as 8-bit, so maybe there is a similar issue with MPDN (caveat is that I've never used that program, so just guessing)

huhn
31st May 2015, 23:37
Are you sure MPDN is interpreting the gradient as 16-bit? Note that if you don't enable RGB48 in the LAV video settings, it will show the gradient as 8-bit, so maybe there is a similar issue with MPDN (caveat is that I've never used that program, so just guessing)

mpdn can't do 16 bit RGB you have to disable everything except y416 in lavfilter.

James Freeman
1st June 2015, 05:11
nvidia is dithering for sure.
Stop giving people answers you have absolutely no idea if they are true or false.

If your statement were true, we all would see smooth pattern on any monitor, which is CLEARLY not the case.
Only from that, I can deduct that your statement is completely thoughtless, impulsive and FALSE.

voyager6868
1st June 2015, 09:07
Stop giving people answers you have absolutely no idea if they are true or false.

If your statement were true, we all would see smooth pattern on any monitor, which is CLEARLY not the case.
Only from that, I can deduct that your statement is completely thoughtless, impulsive and FALSE.

James--you posted earlier that nVidia does not do dithering, however, when I using madVR as you described in Post #1 on a TV whose EDID only supports 8-bit, I get no banding. To me this is solid evidence that nVidia (at least in the latest drivers) is dithering.

It sounds like nevcariel has the same result as me. nVidia is not going to send a 10-bit output signal unless the panel says that it supports it. Otherwise, some users would see "junk" on their screen as the panel would have no idea what to do with such a signal.

Can you point us to your evidence that nVidia is *not* dithering? Which users tried your gradient with the proper settings in madVR, use the latest nVidia drivers set to 8bpc, and get banding on their 8-bit screen?

huhn
1st June 2015, 10:26
Stop giving people answers you have absolutely no idea if they are true or false.

If your statement were true, we all would see smooth pattern on any monitor, which is CLEARLY not the case.
Only from that, I can deduct that your statement is completely thoughtless, impulsive and FALSE.

both me and madshi have test 10 bit driver input on a display that doesn't support 10 bit input.

you can read the rest here:

http://forum.doom9.org/showpost.php?p=1724414&postcount=30503

the driver is clearly dithering. at least for high bit deep input.
i see problems with gamma ramp calibration when 8 bit is outputted i guess nvidia is not dithering in this case and i don't have a clue why.

James Freeman
1st June 2015, 16:43
@voyager6868, huhn

I have done another test and you may be correct about this assumption, nvidia does dither from higher bitdepths if the display is set to 8bit in nvidia control panel.
But the question that arises is whether nvidia dithers if the software calls for 10bit (madVR) and the display actually supports 10bit?
Does nvidia dithers then or actually switches to 10bit mode which the display can receive according to its EDID?

I think nvidia does NOT dither when the display actually supports 10bit and the software calls for 10bit.
A simple indicator is that my Dell U2410 monitor switches modes and shows a different input icon (top left) as though it changed inputs when switching between 8 and 10 bit.
When I try the same with HDMI, I don't see this input changing behavior from my screen, the screen blacks out and back on much quicker than when it actually switches to 10bit mode with DisplayPort input.

I think what we need here is more people with 10bit screens that have clear indicators that the screen is actually receiving 10bit input.
It very well may be that nvidia only dithers when there is a missmatch from higher to lower bit depth, and does not when there is a match.