View Full Version : madVR - high quality video renderer (GPU assisted)
Sunspark
22nd July 2025, 03:24
What are you trying to do? No commercial content is higher than 10 bit.
huhn
22nd July 2025, 06:39
Hi, i have an old graphics card GTX960 that doesn't do 12 bit at 60hz, at the moment i am having to change from desktop settings of 8 bit @ 60hz to 12 bit @ 30hz before playing a movie so that madVR can output 12 bit as if i leave the graphics card set at 8 bit then madVR can only output the movie at 8 bit, is there a way around this so i can have the bit depth switch automatically the same as the refresh rate?
there are other tools that can do that but not madVR like colorcontrol.
madVR can't do 12 bit because because directx has it's issues with that.
What are you trying to do? No commercial content is higher than 10 bit.
madVR only outputs RGB and ycbcr 8 bit to RGB is pretty much inf bit deep(well it is not but it is a lot).
Amuat
22nd July 2025, 14:58
huhn, you answered to me some time ago that it indeed helps to have 16-bit Floating Point instead of 8-/10-bit Integer with GPU outputting 12-bit on MPCVR. This discussion made me think what exactly is going on compared to say using 10-bit Integer with GPU outputting the same 10-bit on a 8-bit video? And why is there no similar option for madVR if "madVR only outputs RGB and ycbcr 8 bit to RGB is pretty much inf bit deep(well it is not but it is a lot)"?
huhn
22nd July 2025, 18:15
because back in the days 16 bit dx 11 was "linear" not gamma making it pointless or with other words the output is not what the GPU would output at all so you just replace your dithering with inferior dither and the error from "linear" light.
could be fixed there could be a new surface that doesn't do stuff like that but back then there wasn't one madshi found.
nothing1
23rd July 2025, 03:33
What are you trying to do? No commercial content is higher than 10 bit.
mad VR upscales Chroma to 12 bit, and on my Bravia 9 it is 10bit native but can process and display 12 bit colour , what i am after is not outputting 8 bit as i mainly play uhd 4k movies and they are in 10 bit, i just dont want to manually change the NVIDIA bit depth, but if there is no easy way then i will just do it manually
huhn
23rd July 2025, 07:21
it doesn't do that.
there are no things like 12 colour and the difference between 8 bit and 10 bit is just precision and no difference in colour.
Sunspark
23rd July 2025, 16:30
Maybe they are thinking about how it does some processing internally at 16-bit?
Amuat
24th July 2025, 13:49
Maybe they are thinking about how it does some processing internally at 16-bit?
Can't speak for nothing1, but personally I'm somewhat confused about the name 16-bit Floating Point. Is it basically the same as 12-bit Integer would be when that is the maximum I can output? So like outputting 10-bit with 10-bit Integer option chosen, but with just the added 2 bits for more precise dithering and that's all there is to it?
Emulgator
24th July 2025, 15:24
https://en.wikipedia.org/wiki/Half-precision_floating-point_format
1 bit sign plus a 10-bit mantissa (giving 11bit precision), plus a 5-bit exponent solving 32-fold overflow/underflow range switching:
As processing power became available, computing in this format is nicer-to-have for online rendering.
If it comes to offline compositing, NLEs tend to use 32-bit float:
1 bit sign plus a 23-bit mantissa (giving 24bit precision), plus a 8-bit exponent solving 256-fold overflow/underflow range switching.
huhn
24th July 2025, 18:33
Can't speak for nothing1, but personally I'm somewhat confused about the name 16-bit Floating Point. Is it basically the same as 12-bit Integer would be when that is the maximum I can output? So like outputting 10-bit with 10-bit Integer option chosen, but with just the added 2 bits for more precise dithering and that's all there is to it?
no a GPU can do up to 16 bit in theory using HDM. it pretty much 12 bit int on all device and madVR can only do 10 anyway.
madVR also doesn'T use 16 bit float point math that stuff needs special code and i'm not even sure if dx9 can do that in the first place.
it is doing pretty much all math in 32 bit float and stores intermated in 16 bit floats.
because PC are power of 8 also known as a byte 10 bit int is actually 32 int having all 3 channels in there at the same time.
10 bit 420 is actually one and the same as 16 bit 420 making it 16 bit in size.
the next things with float point and precision is it depends. for example you can use float normalised to 1 or normalised to 255.
CPU floats and GPU float also don't have to be the same so it is all very very complicated...
https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats
p010 uses 0 sign bits 8 exponent bits 2 mantissa bits
the next thing is how this is packed...
you get an array of Y starting at 0 so totally sane but chroma has half hight and same wide switching between U V (Cr and Cb i do not know which is which) so yeah...
RGB 32 is 8 bit with 8 bit waste alpha and not just a 3 dimension array.
and there is also RGB 24 BGR if i remember correctly instead of a 3d array again.
very confusing to me: https://learn.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#nv12
but i guess there has to be a reason cpp can't do 3d array in heap while c can.
nevcairiel
25th July 2025, 08:22
p010 uses 0 sign bits 8 exponent bits 2 mantissa bits
No it doesn't. Its just a plain 10-bit unsigned integer with 6 additional padding bits (zero) to make it 16-bit, making it practically identical to P016, except that the lower bits are zero.
To conclude this entire topic -
Effectively, Windows offers three ways to render video to the screen (and not more):
- 8-bit integer RGB (in D3D11: DXGI_FORMAT_R8G8B8A8_UNORM)
- 10-bit integer RGB (in D3D11: DXGI_FORMAT_R10G10B10A2_UNORM)
- 16-bit floating point RGB (in D3D11: DXGI_FORMAT_R16G16B16A16_FLOAT)
No other formats are available for actual presenting to the screen. They can only be used internally, for decoding, for processing, but not for output.
Due to the way floating point works, the actual precision is hard to exactly compare to an integer format, but its a bit higher then 10-bit integer in any case.
Here is the problem however:
The 16-bit floating point RGB format is .. weird. It uses an scRGB colorspace, which means its linear (gamma 1.0) BT.709 - but it allows values outside of the valid space (0 to 1) to represent higher brightness and wider gamuts. As such it requires very special handling.
On top of that, testing has shown that this format is not actually universally available/working. So no video renderer I know of uses it.
So for all practical purposes, you get two formats, 8-bit, or 10-bit. There is no 12-bit integer format, and with the FP16 format being weird, thats it.
huhn
25th July 2025, 10:13
i got this from here:
https://learn.microsoft.com/en-us/windows/win32/medfound/images/ee3aae23-4f0a-47d0-a46c-f3d7d94205e6.gif
edit: https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats /edit
i know they are integer on the coding side (or words) but they still say it works like that.tehre is also this: "For example, if the white point of an 8-bit format is 235, the corresponding 10-bit format has a white point at 940 (235 × 4)." which is clearly integer stuff...
MPDN can use 16 bit output and that's where i remember from that it needs linear light as you just said. it works universally BTW back in the windows 8 days madshi really didn't like it.
i wonder if 16 bit linear from PQ is even remotely as accurate as 8 bit in PQ...
edit: isn't 0-1 float pretty much "PQ" the first highest bit is 50 % brightness with the rest 0 how does linear work in that regard... isn't that how binary float works?
Balling
11th August 2025, 10:36
p010 exists to support 420 10 bit, [[[so the way it works is that 10 bit are used for Y plane and then 5 bits (so half of 10) are used for both Cb and Cr. 1 bit is unused]]] i was wrong, disregard.
"i wonder if 16 bit linear from PQ is even remotely as accurate as 8 bit in PQ..."
No, PQ cannot be approximated by linear or log or pure gammas.
huhn
11th August 2025, 16:50
no p010 uses 16 bit for Y, U and V and only using 10 of the 16 bit.
it wastes 6 bit for every component been 100% the same as p016.
the packing is Y in full resolution followed by half resolution in hight packing by alternating between U and V and that's it.
the thing i don't get is fixed point instead of a normal integer or if it even matters. i don't even know if cpp can do fixed point without an extra lib...
jakobdylan
19th August 2025, 14:52
hello guys ,where Can I get last beta version of Madvr?
*MidnightWatcher*
21st August 2025, 17:02
hello guys ,where Can I get last beta version of Madvr?
http://madshi.net/madVRhdrMeasure208.zip
It was posted back in early February and as of last week it still hasn't timed out, so it's been good for over 6 months. Maybe madshi forgot to time limit this one. :)
Ilovetv9
26th August 2025, 15:10
[QUOTE=*MidnightWatcher*;2021944]http://madshi.net/madVRhdrMeasure208.zip
Using madvr v0.92.17 on Win10 for a while, but unsure if I ever updated. Is it recommended to update to latest beta version or newest expiring test builds? When updating is it better to uninstall current madvr folder, or just unzip new version and overwrite the older files?
(Also I've read that madvr properties will only show v0.92.17 even if a newer beta/test build is installed, if that is so, is there anyway to check which version is currently installed when updated beyond v0.92.17?)
*MidnightWatcher*
26th August 2025, 15:40
I do recommend beta 208. Unzip and overwrite. Always have a saved zip of the original 0.92.17 in case you want to go back to that.
Not sure if there's a way to know exactly what build it's on but the settings will have obvious differences.
Siso
27th August 2025, 11:22
I do recommend beta 208. Unzip and overwrite. Always have a saved zip of the original 0.92.17 in case you want to go back to that.
Not sure if there's a way to know exactly what build it's on but the settings will have obvious differences.
When is the expiration date?
huhn
27th August 2025, 11:25
around 6 more month
*MidnightWatcher*
1st September 2025, 05:56
around 6 more month
Is b208 the release with the longest time limit since b114?
huhn
1st September 2025, 06:26
it is a year or 9 month i do not know when it was changed to that.
crmb
2nd September 2025, 00:06
When tonemaping HDR content with pgs subtitles (UHD Bluray) the subs are gray instead of white. Is there any fix ?
tp4tissue
3rd September 2025, 16:17
Got some new laptops.
So.... Intel Lunar lake, 140V is fast enough for most madvr tasks @ 4K.
If you use tonemapping + DOWN-scale ssim2d100, it will not push higher than a 1920x800 box before going over 41ms. So, you might actually opt for the 1920 screen over the 2880 screen in some circumstances.
140V in 40watt chassis is not powerful enough to dynamic tonemap 4K. It's slower than a 1050ti for sure in low wattage chassis. 1050ti had some trouble too, so that's a thin line.
Overall 258/256v + 140V's power efficiency is amazing, these are great products from intel. Tp4 got 12hr screentime in normal use, no babying. How much suppport are we going to get though, since they can'd pat gelsinger. There are some software bugs, output side , device detection/ chain isn't working perfectly. You can trick it to work, but it's buggy. If you click too fast around seeking, it will crash madvr.
140T in the new Arrow lake, is even slower than 140V, Tp4 just wouldn't recommend this at all if you want to drive madvr, while the CPU performance is much faster than Lunar lake, the GPU is very hobbled. For example it can't even playback 8K youtube properly. In 50-60watt chassis it should do it, but not in 30-40w.
Keep in mind, these new units have 2x usb C thunderbolts full fat. Don't know if they're bridgeable for 8x total but even 1 port with 4x pcie 4.0, you can external GPU easily with an asm2464pd fairly cheaply.
The Zenbook/vivobook oled screens, HP omnibook oleds. they offer 2880 and a 1920 version.
These use samsung AMOLED, they actually behave extremely well in HDR. Fairly respectable EOTF tracking. They allow for 600nit full field in HDR, most big screen OLEDs can't get anywhere close to that.
The result visually is ALOT of punch, because the screen is small, you're looking at it from maybe 1-2 feet away and you got so much light coming out of it, it looks piercing. Most oled TVs can't do the cloud edges like these panels because the ABL eats it.
A minor drawback is tonemapping, because the screen doesn't have dynamic tonemapping, they hardclip at 600, that's more than enough for most use cases, but you will be missing detail in shows that go above it, like the woman falling into water bubble scene from Altered Carbon. HERE is a very specific use case, where you might opt for the 1920 oled screen because the 140V is powerful enough to drive a 1920x800 tonemapped ssim box, but no bigger, it definitely will not do any 2880 box with tonemapping.
AMOLED has very good gamut. You couldn't ask for better on a laptop. Tp4 measures the Amoled at 171% srgb, vs 184% on qd-oled. QDoled on laptop would be really bad because of reflectance.
So this is as good as it gets gamut wise on mobile. The color accuracy, well there's no 3D lut in the driver. It does a decent enough job, leaning towards warm tones in the Asus version, 6000-6200k. My guess is they set the blue lower to preserve it, You can see those pixels are much bigger than the red/green, they're quite vulnerable.
I don't suspect it will be a problem if you use it NORMALLY to watch movies. Make sure to shift to top and bottom to even out the wear. Thanks Madvr.
In SDR, the panels do 360-380 nit sustained.
They're 100% glossy, so it looks fantastic indoors, __---outdoors, fogetabloutit.
tp4tissue
3rd September 2025, 18:28
No it doesn't. Its just a plain 10-bit unsigned integer with 6 additional padding bits (zero) to make it 16-bit, making it practically identical to P016, except that the lower bits are zero.
To conclude this entire topic -
Effectively, Windows offers three ways to render video to the screen (and not more):
- 8-bit integer RGB (in D3D11: DXGI_FORMAT_R8G8B8A8_UNORM)
- 10-bit integer RGB (in D3D11: DXGI_FORMAT_R10G10B10A2_UNORM)
- 16-bit floating point RGB (in D3D11: DXGI_FORMAT_R16G16B16A16_FLOAT)
No other formats are available for actual presenting to the screen. They can only be used internally, for decoding, for processing, but not for output.
Due to the way floating point works, the actual precision is hard to exactly compare to an integer format, but its a bit higher then 10-bit integer in any case.
I don't think any of the visual problems are the result of the internal data pipe at this point.
Almost always, it's bad behavior from the display device itself. Samsung lately though, top notch dithering, fantastic 10bit-smooth presentation in all window types, even os hdr looks great.
I could care less if it's actual 10bit, it LOOKS smooth and I can still make out texture, not softened.
tp4tissue
3rd September 2025, 18:37
there are other tools that can do that but not madVR like colorcontrol.
madVR can't do 12 bit because because directx has it's issues with that.
madVR only outputs RGB and ycbcr 8 bit to RGB is pretty much inf bit deep(well it is not but it is a lot).
What happens if you select 12bit output in the GPU setting, is it a LIE ?:scared::scared:
Asmodian
3rd September 2025, 22:07
Not a lie, the GPU sends 12 bit data, but it is effectively still only 10 bits of precision. The extra precision available in madVR's internal 16 bit data is lost, the video data will have 0s for the two least significant bits (or the four least significant bits if madVR is set to 8 bit output).
tp4tissue
4th September 2025, 02:40
Does that mean we should just run 10bit, and not push the cable so hard? Especially since we disable DSC.
huhn
4th September 2025, 08:25
Not a lie, the GPU sends 12 bit data, but it is effectively still only 10 bits of precision. The extra precision available in madVR's internal 16 bit data is lost, the video data will have 0s for the two least significant bits (or the four least significant bits if madVR is set to 8 bit output).
let's hope they don't add just zeros and add the first 2 digit at the end instead.
11111111 is clearly brighter then 1111111100 and that's a problem.
Does that mean we should just run 10bit, and not push the cable so hard? Especially since we disable DSC.
if nothing is buggy yes 10 bit would be in theory lossless and unchanged. but in practise many TV are worse with 10 bit input and better of with 8.
Amuat
4th September 2025, 14:20
if nothing is buggy yes 10 bit would be in theory lossless and unchanged. but in practise many TV are worse with 10 bit input and better of with 8.
How does this mesh with what you said earlier about using 16-bit floating point with 12-bit GPU output being helpful? Or is that simply in terms of dithering, but on the whole might possibly be worse than using auto 8/10 with GPU correspondingly at 8/10 depending on the source?
tp4tissue
4th September 2025, 15:04
My question to Asmodian is mostly about cable stability.
If you're asking about "image quality" you have to go by eye, and decide based on whether it looks "right" or "wrong" by toggling dithering in Madvr while outputing 8/10/12 bit exclusively.
The data pipe won't let you down, but the TV almost certainly would.
So few TVs dither correctly.
Make sure you use my shortcut to restart explorer, otherwise 10bit does not work in W11 unless in full screen exclusive, which won't trigger without restarting explorer if you had another 3d surface app.
Asmodian
4th September 2025, 16:54
Does that mean we should just run 10bit, and not push the cable so hard? Especially since we disable DSC.
Yes, no point sending 12 bit video from Windows as far as I can tell. Maybe Windows HDR mode can do something with the extra bits.
let's hope they don't add just zeros and add the first 2 digit at the end instead.
Good point! I wonder what Nvidia does. :scared:
huhn
4th September 2025, 19:59
you can "double" bit shift and add the original values and dither or add the first to digit at the end both work quite ok.
here is an exsample.
11111111 bit shift by 8 1111111100000000 + 11111111 truncate to 1111111111 or 111111111111 or dither.
you can also do a "%" thing that works really well.
if value is 0 return 0 else value/2.55 for white that's 255/2.55 that 100. for 10 bit 1023 10.23*100 results dither and that's it.
another number is 200 so it is a bit more than 800.
10.23*(200/2.55)=802,3529...
bit shift would be 11001000 into 1100100011 which is 803 that's even rounded or truncated already quite different.
so we have 800
802
802 with a couple of 803 when using simple dithering.
803
welcome to hell because i'm a noob at this.
gamma correction to value other values more for dithering there is so much to consider.
tp4tissue
5th September 2025, 06:28
Been using 113 for a long time, not much need because the TV tonemaps and ABL.
I will say, 208 compared to 113, the primary difference that's immediately visible is the edges of highlights are more rounded and less bloated/blob-yy.
Unfortunately, 208 definitely uses a tad more GPU power than v113, actually dunking the lunar lake 140v intel gpu all together, even at 1920x960. Damn you cruel Madshi, you've ruined Tp4's new laptop.
/Hyperbolic, Tp4 could give up ssim2D, for 1D.
tp4tissue
9th September 2025, 16:08
If you guys were to build out the perfect Madvr portable laptop, How would you spec it, including screen and ports, everything?
Asmodian
9th September 2025, 19:25
If you guys were to build out the perfect Madvr portable laptop, How would you spec it, including screen and ports, everything?
By 'portable' do you mean for travel? Used on planes?
RTX 5080, a big 300 Hz color accurate OLED, and a 4TB M.2 second drive for media. Everything else is unimportant; anything that has a RTX 5080 will be good enough.
What are the ports for? DP 2.1b (USB-C) and an HDMI 2.2 for an external screen?
tp4tissue
9th September 2025, 19:48
Those are gigantic and very heavy + require a giant power brick. So you're looking at 7-8lbs all together. You carry this type of machine around?
Asmodian
9th September 2025, 19:56
Absolutely not, no more big heavy laptops for me! I need a laptop that I can take on planes. This is why I asked what you meant by portable.
You can get a decently thin and light laptop with a 5080 and a OLED screen. I don't think any have a 300 Hz OLED yet, you would have to settle for 240 Hz. :p
Sunspark
10th September 2025, 01:18
I don't know how you guys can really focus well on a movie on a plane. All the noise, vibration, people moving around, etc.
Asmodian
10th September 2025, 18:09
Not viewing it on the plane... just having it with me in the overhead bin. :p
tp4tissue
11th September 2025, 23:32
Not viewing it on the plane... just having it with me in the overhead bin. :p
So Asmodian just mentally flexes on fellow aeroplane people watching 2003 infotainment LCDs as he sits next to them knowing he's got 3080 Madvr OLED overhead that he's not watching??
This peasant tea is not good enough for me, I'd rather die of thirst. :cool:
For Tp4, probably the new 890m in AMD 370 is the cutoff for OK madvr performance in a 40watt 3lb laptop. It's enough for a 1080p oled, which is enough for a 14" laptop.
Also, this probably won't be enough gpu to tonemap into a 300nit panel. The new 500-600nit oleds are kind of a valve that has slighly lower gpu requirement.
Anything that can drive a 2880x1800 oled or 4K tonemap will cross into the 5lb category.
Asmodian
12th September 2025, 03:01
So Asmodian just mentally flexes on fellow aeroplane people watching 2003 infotainment LCDs as he sits next to them knowing he's got 3080 Madvr OLED overhead that he's not watching??
Haha, you asked for perfect, not what we have. :p
I have a thin gaming laptop I use for travel. It runs madVR pretty well, but it isn't what I would call a "perfect" madVR laptop. Having it in my carry on isn't too painful.
I tend to listen to audio books and read on planes.
Sunspark
12th September 2025, 03:09
I'm going to be travelling, and I will take my steam deck with me. Might be tough.. turns out my glasses prescription has gotten worse and I have to hold stuff close without glasses, but the two eyes are not the same focal distance. :(
I wish there were a machine that could just scan the eyes and "know" what is correct, instead of the fumbling that we have currently where different people give different scripts. I had a good one who was a surgeon, but he retired years ago. This is what they should be putting AI into, something useful.
tp4tissue
12th September 2025, 05:20
They're giving you the same scripts, but you have to understand that the eye is a highly dynamic system.
For example, eating alot of salt one day, can change your eye pressure, and alter the measurements. If you slept on one side of your face with your eye in the pillow, it will alter the shape of your eye that day, and if you got measurements, it'll be slightly different.
They do put you through the machine, and the machine gives a read out, but then they do the #1 #2 human test to double check.
Then there's the Glasses.
They grind them, but there's a sweet spot, and where it should sit on your face. Your ears are not exactly level, your eyes are not level with eachother, and your nose is slightly crooked to one side, and one side of your face / head is slightly flatter than the other.
Contact lenses takes care of the optical alignment problem, but it's still not great if you got astigmatism, because the lenses aren't ever perfectly at the angle of correction when you blink.
varekai
15th September 2025, 13:35
Setup
Geforce Nvidia RTX 4060 8GB (HDMI 2.1 8K Cable)
Playing 4K Ultra HD Blu-ray video from HDD PC Win10x64 using various mediaplayers -> HDMI 2.1 8K Cable -> Sony Bravia 8 4K OLED Smart TV (input eARC)
The question is, which video renderer is optimal, madVR or MPC Video Renderer?
Subjectively, I think I see better results ("in the eye of the beholder") with MPC than madVR.
But, I really don't know how to configure madVR properly for UHD 4K Blu-ray video material?
When using MPC renderer, picture looks (in my opinion) really great with these default? settings.
https://i.imgur.com/Vj49g2p.png
But... could it be optimal/improved?
Wouldn't it be best if the image changed as little as possible from the input source?
Also, how do I update madVR (madVR v0.92.17) to latest release madVR Test Build 208 and is this update timelimited?
Any input on this is greatly appreciated.
Best regards,
varekai
huhn
15th September 2025, 15:02
madVR has 3 major short comings comapred to mpc-vr and is pretty much better at anything else.
madVR is incapable of placing chroma correctly for UHD BDs it is hard coded for mpeg2.
it can not do any DV on it own.
has issue where it drops frames even trough it shouldn' and is very hardware hungry compared to mpcVR.
if it comes to scaling they ae not even in the same ballpark.
you are currently using a bicubic version called catmull-rom and the high crime of bilinear for chroma.
i will now make a very simple test with some easy scaler in madVR and you can compare yourself with a typical chroma test image.
https://slow.pics/c/cVH9XXSA
this is not even close and the scaler used are very cheap.
the new beta version are mostly fixing some windows 11 related bugs and change a lot about tone mapping HDR which is really not that important on an device that can do HDR and funny because it can't place UHD BD chroma correctly.
Siso
15th September 2025, 16:00
I'm wondering how do you keep things in sync with mpcvr? In madvr you can use reclock, or custom resolution or smooth motion. How about mpcvr?
huhn
15th September 2025, 16:05
reclock and custom res work the same.
whiel madVR has helpful tools to do a custom res you can just set it up with madVR and use the same one for mpcVR.
SM is unique to madVR and MPDN the same function in mpv has nothing todo with that. i don't test all video renderer maybe someone else has copied it.
Siso
15th September 2025, 16:08
reclock and custom res work the same.
whiel madVR has helpful tools to do a custom res you can just set it up with madVR and use the same one for mpcVR.
SM is unique to madVR and MPDN the same function in mpv has nothing todo with that. i don't test all video renderer maybe someone else has copied it.
Alright, but what about not using custom resolution?
huhn
15th September 2025, 16:40
i do no follow madVR does nothing special about applying it.
it use api or you use custom res tool.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.