Log in

View Full Version : madVR - high quality video renderer (GPU assisted)


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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 [614] 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329

Braum
1st June 2015, 09:00
I was using upscaling refinement, but with the other option checked to do it only once. If I disable refinement, the double upscaling is gone.

It's using the right profile. NNEDI3 never worked on my computer, no matter the driver version, no matter if I reinstall Windows.

However... Jinc4 and Lanczos8 were removed, probably because NNEDI3 is a better alternative. But since I don't have NNEDI3, there are cases where Jinc4 and Lanczos8 serve me, so for now I'm better to stick to the old version.

I don't think it matters because your rig isn't powerfull enough to upscale with NNEDI.

I got a i5 3570@4,5Ghz and a 7870XT and to upscale 1280x720 to 1680x998 I can't use Double NNEDI 16x.

I can use NEDI in double and quadruple tough.

huhn
1st June 2015, 10:27
the file in question is 280p that pretty easy to double at least.

rack04
1st June 2015, 13:56
What aspects of a video card are important for madVR performance? I currently have a GTX 680 and get frame drops with NNEDI3, 64 neurons when upscaling 720p to 1440p. I'm considering upgrading to a GTX 970.

aufkrawall
1st June 2015, 14:25
This should work, I used it myself that way. With OpenCL 1.2 driver, performance is even said to be improved.
I'd not buy a Radeon for NNEDI3 because AMD hasn't fixed OpenCL -> D3D interop bug for ages now.

However, now with SuperRes, you can also achieve very good results without NNEDI3, as long as you aren't watching cartoons.

If you want to play games with the card, I'd wait for AMD's Fiji release which should make the 980 less expensive. VRAM of 970 is crippled in an odd way.

nevcairiel
1st June 2015, 14:52
VRAM of 970 is crippled in an odd way.

That is of no consequence for video. In fact, its of very little consequence in general.

petran79
1st June 2015, 15:19
Finally! Nvidia GTX660 Vsync issue on Windows XP has been solved with latest Madshi and Nvidia drivers 347.88
After almost 2 years wait!

After every Nvidia driver update on Windows XP and every new madshi release I tested videos but had the same issue:

June 2013:
http://forum.doom9.org/showpost.php?p=1631301&postcount=18951

Originally Posted by petran79
for a few seconds or even for 1 minute, at that said scene "display" goes at 0000000 Hz instead of 59

Madshi:
Oh, that. Yeah, sounds like a GPU driver issue. madVR highly depends on being able to get up-to-date vsync information all the time. If the display goes to 0000000 Hz that means that the GPU driver isn't reliably providing vsync information. There's probably not much I can do about it, sadly...


This time Vsync seems to be stable at 60 hz at full screen (no exclusive mode), sometimes 61.

In windowed mode it fluctuates from 52-55 hz before stabilizing at 59-60, but never at 0 hz, thus not dropping frames

I can finally watch movies in good quality and without tearing on Windows XP like 3 years ago. Windows 7 is too sluggish.

aufkrawall
1st June 2015, 15:24
That is of no consequence for video. In fact, its of very little consequence in general.
I was explicitly referring to games, and consequences can be enormous (I tested this myself).
But not for video, sure. GTX 970 is a very reasonable card for madVR, probably the best (if you don't need native HEVC decoding).

MysteryX
1st June 2015, 18:45
I don't think it matters because your rig isn't powerfull enough to upscale with NNEDI.

I got a i5 3570@4,5Ghz and a 7870XT and to upscale 1280x720 to 1680x998 I can't use Double NNEDI 16x.

I can use NEDI in double and quadruple tough.

I won't use NNEDI3 for 720p videos, but will definitely for 288p videos! Then I'd have to test whether it would also work on 480p content.

I'm curious. Why were Jinc4, Jinc8 and Lanczos8 deemed "bad" algorithms?


Btw, kind of off-topic, but yesterday I realized that in a video game (with latest Catalyst driver), performance was *higher* when using full-screen windowed mode than when in exclusive mode! Not sure why. I tried that in madVR. There doesn't seem to be any performance difference between windowed mode and exclusive mode; but switching into full screen is much faster.

Thunderbolt8
1st June 2015, 18:52
is anyone able to tell if windows 10 has positive or negative impact on madvr (nvidia (mobile)) performance?

iSunrise
1st June 2015, 18:59
is anyone able to tell if windows 10 has positive or negative impact on madvr (nvidia (mobile)) performance?
Personally, I would not risk it just yet, at least wait for RTM. For desktops Win10 might be ok already, but mobiles have their own weird problems, even on an already stable and feature-complete OS.

huhn
1st June 2015, 19:08
i have issue on windows 10 and i will report issue with the RTM version which will be available soon.

RainyDog
1st June 2015, 19:42
You are using Catmull-Rom for downscaling, right? With other algorithms, linear light might not look correct, its only really recommended for CR.

I've always used Spline3 for downscaling as I prefer the slightly sharper look to CR.

So I shouldn't be downscaling in linear light if using Spline?

aufkrawall
1st June 2015, 19:58
imho one shouldn't use it at all. There's a reason why usually gamma corrected is considered as the desired result (or better said: gamma correction gives the desired result in the end).
I just played some desktop capture videos and fonts look totally awful with linear light downscaling.

6233638
1st June 2015, 20:43
imho one shouldn't use it at all. There's a reason why usually gamma corrected is considered as the desired result (or better said: gamma correction gives the desired result in the end).
I just played some desktop capture videos and fonts look totally awful with linear light downscaling.I really don't think that looking at computer graphics is a good test for downscaling.
You should be using photographs or movies.
Something that was filmed instead of rendered.

With that, linear light downscaling should be better - at least if your display is properly calibrated.

http://forum.doom9.org/showpost.php?p=1675410&postcount=25427 (note: this is a macro image of a fly)
View the comparison images here at 100% in your browser and switch tabs.

The image scaled in linear light should look very close to the source, only lower resolution.
The image without linear light scaling is quite a bit darker than the source image, and finer details are lost.

I've always used Spline3 for downscaling as I prefer the slightly sharper look to CR.
So I shouldn't be downscaling in linear light if using Spline?Catmull-Rom with the anti-ringing filter enabled is the only option which does not result in ugly ringing or aliasing artifacts when linear light scaling is enabled.
I don't recommend enabling the linear light scaling option with anything else.
An old example comparing Catmull-Rom and Lanczos. (http://www.abload.de/img/catrometjna.gif)

aufkrawall
1st June 2015, 21:38
I really don't think that looking at computer graphics is a good test for downscaling.
You should be using photographs or movies.
Something that was filmed instead of rendered.

I did with that grass picture:
http://upload.wikimedia.org/wikipedia/commons/d/dc/Hermosa_beach_chip_trail.jpg


http://forum.doom9.org/showpost.php?p=1675410&postcount=25427 (note: this is a macro image of a fly)
View the comparison images here at 100% in your browser and switch tabs.

The image scaled in linear light should look very close to the source, only lower resolution.
The image without linear light scaling is quite a bit darker than the source image, and finer details are lost.

What is the point of this nearest neighbor upscaling?
It introduces tons of aliasing.
It would be better if the source's resolution would be high enough to have a realistic result in a common native resolution.

cyberscott
1st June 2015, 21:48
The first log makes sense, but the 2nd doesn't. The 2nd log indicates that it wasn't from the build 2 I intended you to test. Either I uploaded the wrong file, or you tested with the wrong file. To be safe, I've uploaded the 2nd build again:

http://madshi.net/madVR8810test4.rar

Could you please test this build again? Thanks!
It is very possible I messed the 2nd one up, was short on time and tried to do it quick. :(
I ran test 4 and same behavior with the queues. Here is the log.
http://s000.tinyupload.com/?file_id=00499522210065716807

6233638
1st June 2015, 22:31
What is the point of this nearest neighbor upscaling?
It introduces tons of aliasing.
It would be better if the source's resolution would be high enough to have a realistic result in a common native resolution.To keep the image the same size so that you can tab through all of them in your browser and make an accurate comparison.
Though fine details are better preserved by using linear light scaling, it is the overall brightness/appearance of the image which is important.

Linear light scaling preserves the "silvery" appearance of the eyes, while scaling without that option shifts the tone more towards brown.
If you wear glasses, you may even want to take them off when comparing the three if you find the aliasing distracting. Resolution should not be a factor in this comparison.

And please ensure that the images are not being scaled at all, they must be displayed at 100% size.

baii
2nd June 2015, 03:24
In general, is there a consent on using higher needi3 neurons vs using SuperRes/ more pass SuperRes?

I have some 480p DVD that is like 0.5% of the content I watch, but I really like those~. My eye test seem to favor more neuron(32->64) compare than more pass, or even activating SR, but then there is the pixel shift which make the comparison kind of weird/hard ?

huhn
2nd June 2015, 07:54
in my test more passes with SR is very harmful to the picture unlike nnedi3 with more neurons so hard to compare.

Anima123
2nd June 2015, 08:26
The effect of SuperRes with madVR is not exactly the same as the one with MPDN for some reason, I don't know why.

I'd prefer the MPDN version, quality speaking. Maybe madshi have some idea to tweak the SuperRes a little bit, or there's some kind of bug when SuperRes and NEDI were included within madVR?

madshi
2nd June 2015, 10:18
I meant P8 state, sorry.
madshi did something to fix NNEDI3 quadrupling in the past with image enhancement because there was a similar issue.
I suppose it's still related to NNEDI3 quadrupling + image enhancement.
Driver gets totally stuck in P8 state, thus it drops lots of frames if it's too slow. It's not able anymore to enter a higher P-state unless the driver is restarted.
I had fixed a bug, but that had nothing to do with power states. I have zero influence on which power states the GPU switches to.

Thanks a lot. Its very easy with that example indeed so I got a good idea now of how they behave. With Blurays though telling the difference is another story. :D
Differences are hard to see in most scenes. However, there are some scenes in which differences can be visible. It's usually when there's lots of red and black.

Hi madshi, found a bug with mVR 88.10 that is not occurring with 88.7. Whenever I try to play the attached link two AVC clips Zoom Player immediately crashes when I use either LAV or ffdshow as the AVC video decoder, whether software decoding, CUDA or Quicksync is selected. I duplicated the problem using PotPlayer and setting the same external AVC decoders as the video decoder. Oddly when I select PotPlayer's AVC built-in decoder the clips don't crash so perhaps that may help with figuring out what is wrong. Like I mentioned, this is new prob, the clips play fine with mVR 88.7. Please let me know what other info I can provide.
I think this will probably be fixed in the next build.

I have some more info for those of us having issues with D3D11 and PotPlayer.

I use a 72 Hz refresh rate for 23.976 playback (with ReClock) and a 60 Hz refresh rate for 29.970/59.940.... PotPlayer's onscreen info (TAB) will show 23.976-->72 (actually starts a little above 72, then falls to 72 and stays there). When the video is paused (or something else pulls focus away) there is a flicker (like going out of FSE) however ctrl-J still says FSE... and now the OSD of PP will show 23.976-->70 (and the 70 keeps falling until it hits 24)... ctrl-J shows empty queues (with no dropped frames, oddly enough) and playback gets super jittery. I have been racking my brains trying to find a way for this to work, but no setting in PP, ReClock or madVR allows me to pause the video and resume without this very very odd behavior. Playback is awesome as long as nothing interrupts it, but many times a video can be paused (can't miss anything for a beer run or to take a leak!!) and having to stop and restart each time is not an option. So I keep going back to D3D9.

To me, it seems that once the stream is interrupted, the refresh that is being reported gets altered in some way to that of the video and not the target... I just tried without ReClock, and everything I described above happens except the playback seems smooth, even with the last two queues not filling up. It's all very odd
Those PotPlayer frame rate reports don't have a lot of meaning.

Does this problem only occur with PotPlayer? Or also with e.g. MPC-HC? I think there is a setting in PotPlayer which causes madVR to rerender frames all the time in paused state, causing rather high GPU consumption in paused state. I'm not very familiar with PotPlayer, though. If you disable that feature (in case you know which it is), does that make the problem go away?

Could it be that downscaling in linear light can totally shift an image in an unwanted way?
Some time ago, I did some tests with downscaling game sreenshots, and with linear light everything seemed to be getting too bright.
Linear light should produce the "correct" result, unlike gamma light. The reason is that blending pixels together in gamma light is mathematically not correct. And downscaling blends a lot of source pixels together for each target pixel. For upscaling it's a bit different. In theory linear light should produce more correct results for upscaling, too, but it adds so much ringing that the positive benefits are outweighed.

You are using Catmull-Rom for downscaling, right? With other algorithms, linear light might not look correct, its only really recommended for CR.
All 2-tap algos should be fine. However, 3-taps and more produce a lot of ringing when using linear light which the anti-ringing filter doesn't completely erase. Other than the ringing, using 3-taps/4-taps for linear light downscaling is ok, too. It's really only the ringing which is the key problem.

FWIW you can actually prove mathematically that using linear light (with a gamma > 1) will make the image brighter. For more information see Jensen's inequality (https://en.wikipedia.org/wiki/Jensen%27s_inequality).
Hmmmm... Isn't that backwards? I mean don't we have to think of linear light as a straight line, and of gamma light as a curve? Jensen's inequality should prove that *gamma light* produces incorrect results, not linear light. Or am I missing something? You seem to suggest that gamma light is a straight line and that linear light is a curve. But I think it's exactly the other way round? Images/videos are using gamma light because that's how CRTs used to work, and also because it happens to approximate the way our eyes perceptually work. But nature/physics really is linear light, not gamma light.

Is it possible to have an option to use D39 overlay in windowed mode and D311 in exclusive mode?
Possible yes. But too much work.

I know this is the madVR thread but since Shiandow's debanding algorithm is being tested along side madVR's, I hope the thread will forgive me for the following.
In my tinkering with the deband algorithm's this weekend I have confirmed for myself a rather happy alternative use for Shiandow's algorithm set at 1.00 strength and .01 margin with grain. It does an excellent job of deblocking and denoising my old dvr rips at sub 480p resolution without totally killing detail (in tandem with nnedi3) and making it a fuzzy mess. Well more fuzzy than it already was.
This is just my opinion, but I think it would really be beneficial (for me and possibly even a small minority of users) if Shiandow might be able to optimize his debanding algorithm further down that path and possibly madshi could use it as a denoiser/general deblocker for madVR somewhere in the near future.
Deblocking should be handled separately from debanding, IMHO. Why? Because a deblocking algorithm can actually assume that blocks appear at typical distances (e.g. at 8x8 pixel boundaries). This information should allow a deblocking algorithm to work more efficiently than trying to make a debanding algorithm remove block compression artifacts.

That said, yes, maybe Shiandow's debanding algorithm could be used as a starting point for a new deblocking algorithm. But there's no room in my time schedule at least for that anytime soon.

With v0.88.9 and v0.88.10 Average stats > rendering never stabilize, it jumps up and down and i've have frame drops. It applies to Jinc and jumps from 6ms to 22ms. If I choose Bicubic it settles at around 18ms after a few seconds.
In older versions rendering times were averaged "forever". That means you got nicely stable times after a while. *However*, directly after switching algos or changing zoom factors or things like that, rendering times are usually much higher than a couple of seconds later. This means that old way of long-time averaging often started too high and needed a looooong time to settle down to the correct values. The new method averages rendering times over just 1 second of playback. So naturally the rendering times can jump quite a bit. However, if the rendering times over multiple consecutive measurement periods are relatively near to each other, madVR averages them together again. So as long as the jumps are not too large from one measurement second to the next, the times should calm down over time, too, and then get much quicker to the correct end result compared to before.

Finally! Nvidia GTX660 Vsync issue on Windows XP has been solved with latest Madshi and Nvidia drivers 347.88
After almost 2 years wait!
FWIW, I don't think it's the drivers. I've added a number of changes for Optimus systems, and I think those probably have helped with your specific problem, too. The drivers are probably still as buggy as ever, but madVR has added a number of driver workarounds to be more forgiving with bad drivers.

In general, is there a consent on using higher needi3 neurons vs using SuperRes/ more pass SuperRes?

I have some 480p DVD that is like 0.5% of the content I watch, but I really like those~. My eye test seem to favor more neuron(32->64) compare than more pass, or even activating SR, but then there is the pixel shift which make the comparison kind of weird/hard ?
in my test more passes with SR is very harmful to the picture unlike nnedi3 with more neurons so hard to compare.
The effect of SuperRes with madVR is not exactly the same as the one with MPDN for some reason, I don't know why.

I'd prefer the MPDN version, quality speaking. Maybe madshi have some idea to tweak the SuperRes a little bit, or there's some kind of bug when SuperRes and NEDI were included within madVR?
There are small differences in the SuperRes implementation. But you guys are too fast. We're still discussing debanding atm. We'll get to SuperRes soon enough.

I find Shiandows 0.80, 0.0, Grain On; vs High, identical in terms of detail loss and shape retention.

IMO, They are so close, any one of them will do perfectly.
As the old saying goes, if it's working don't touch it.
On debanding:
"Add grain". It adds grain, yes, but it's 10x stronger than madVRs/f3kdb's and I don't really feel it being useful. In some cases it even makes an opposite effect and makes banding more visible.
Overall I still strongly prefer madVR debanding over Shiandow's (on anime sources).
Thank you for your feedback, once again!

Any more votes about debanding?

madshi
2nd June 2015, 10:20
It is very possible I messed the 2nd one up, was short on time and tried to do it quick. :(
I ran test 4 and same behavior with the queues. Here is the log.
http://s000.tinyupload.com/?file_id=00499522210065716807
Ok, thanks. One more try, if you don't mind:

http://madshi.net/madVR8810test5.rar

Please activate debug mode first (by double clicking "activate debug mode.bat"), then afterwards drop in the new madVR.ax. If you do it the other way round, but you're replacing the "wrong" madVR.ax file and you're testing with the official v0.88.10 again. I know, it's a bit confusing. Basically, after you dropped the replacement madVR.ax file into the madVR folder, don't double click any batch files, until you've completed testing. Thanks!

Shiandow
2nd June 2015, 13:10
Hmmmm... Isn't that backwards? I mean don't we have to think of linear light as a straight line, and of gamma light as a curve? Jensen's inequality should prove that *gamma light* produces incorrect results, not linear light. Or am I missing something? You seem to suggest that gamma light is a straight line and that linear light is a curve. But I think it's exactly the other way round? Images/videos are using gamma light because that's how CRTs used to work, and also because it happens to approximate the way our eyes perceptually work. But nature/physics really is linear light, not gamma light.


Jensen's inequality doesn't really care about which one is "correct" or "linear". It just uses the fact that the function used to go from gamma light to linear light is convex. If you go the other way around then the function you use is concave, so the inequality will be the other way around. You can really only use it to show that the values will (always) be higher when you use linear light, you can't use it to show whether this is better or not.

Aleksoid1978
2nd June 2015, 13:38
Hi madshi.
I have question for you. How you(what API function use) change resolution/refresh rate ?? In MPC-BE/MPC-HC use ChangeDisplaySettingsEx(). But - after buy new GTX 960 i have some trouble with 24fps mode - after use ChangeDisplaySettingsEx() my TV info that use 24p, but in MPC-BE EVR Custom i see that fps ~23.976(and it's true). If i try use madVR with auto-refresh - i give "true" 24p mode. You do not know what could be wrong ?? :)

nevcairiel
2nd June 2015, 13:59
Hi madshi.
I have question for you. How you(what API function use) change resolution/refresh rate ?? In MPC-BE/MPC-HC use ChangeDisplaySettingsEx(). But - after buy new GTX 960 i have some trouble with 24fps mode - after use ChangeDisplaySettingsEx() my TV info that use 24p, but in MPC-BE EVR Custom i see that fps ~23.976(and it's true). If i try use madVR with auto-refresh - i give "true" 24p mode. You do not know what could be wrong ?? :)

Its the same API, but you have to cheat it.
Call ChangeDisplaySettingsEx with the new mode and CDS_UPDATEREGISTRY | CDS_NORESET once, and then a second time without a new mode and without the flags (it'll use the new mode you set in the previous call then)

Aleksoid1978
2nd June 2015, 14:11
Its the same API, but you have to cheat it.
Call ChangeDisplaySettingsEx with the new mode and CDS_UPDATEREGISTRY | CDS_NORESET once, and then a second time without a new mode and without the flags (it'll use the new mode you set in the previous call then)

It's not necessary. Even call ChangeDisplaySettingsEx() only with CDS_UPDATEREGISTRY or CDS_FULLSCREEN or 0 - it's work. But something wrong with new mode - TV info that 24p, but in fact - 23.976. All other mode working as it should.

madshi
2nd June 2015, 15:21
Jensen's inequality doesn't really care about which one is "correct" or "linear". It just uses the fact that the function used to go from gamma light to linear light is convex. If you go the other way around then the function you use is concave, so the inequality will be the other way around. You can really only use it to show that the values will (always) be higher when you use linear light, you can't use it to show whether this is better or not.
Ah, I see. The basic question that was discussed earlier in this thread was whether linear or gamma light was "correct". I had thought that you had tried to answer that question. Now I see that your reply didn't mean to judge about which is right (or even better).

It's not necessary. Even call ChangeDisplaySettingsEx() only with CDS_UPDATEREGISTRY or CDS_FULLSCREEN or 0 - it's work. But something wrong with new mode - TV info that 24p, but in fact - 23.976. All other mode working as it should.
nevcairiel has it right. If you use ChangeDisplaySettingsEx() the normal way, it will switch to 23.976, even if you specify 24.000. You have to call ChangeDisplaySettingsEx() twice, in a very specific way (see nevcairiel's post), to get true 24.000.

Vegeak
2nd June 2015, 16:18
Since the last 2 versions (0.88.9/0.88.10) if I set debanding as high it drops a lot of frames, I'm using 0.88.8 and it plays fine, my graphic card isn't good at all (GT 610), but I can play 720p files fine. This seems to happen since high debanding was modified, can I get a version with all the new changes but without this change specifically?

sneaker_ger
2nd June 2015, 16:21
New versions enabled gradient analyzing for "high" debanding. Go "rendering"->"trade quality for performance" and tick "don't analyze gradient angles for debanding". Then test again. (I don't know if it really needs much performance. Maybe it's just a coincidence and real problem is something else?)

That said, debanding might change again in the very near future according to the user reports here so this might only be a temporary option.

Vegeak
2nd June 2015, 18:01
Thank you! This fixed my problem.

XMonarchY
2nd June 2015, 18:20
Whoever advised that using the High Speed HDMI cable would allow me to get 12bit not only @ 23Hz, but also at 60Hz was dead on right! I just got one of these cables and I can select 60Hz + 12bit in nVidia CP with no artifacts! I hope games will look better now!


BTW, is it a placebo effect that my games (Withcer 3) look better in 12bit mode than in 8bit mode? I know transitions are better, especially since I use a 1D LUT, but colors also seem richer! I tested my calibration done in 8bit with 12bit mode and there was no difference anywhere, and yet 12bit seems to produce richer colors...

XMonarchY
2nd June 2015, 19:29
Also, I noticed an odd problem. I am getting an occasional stutter during my SMPTE 170M content playback that I have not had before... I can't seem to narrow down which setting causes it. There are no frame drops or glitches or delayed frames for 25-30 minutes and suddenly there is this stutter where the screen shakes for a second and then all is fine for the next 30 minutes. GPU is fine, all is stable. I did update MPC-HC to the latest nightly build, do you think that may be reason?

Sunset1982
2nd June 2015, 21:29
Also, I noticed an odd problem. I am getting an occasional stutter during my SMPTE 170M content playback that I have not had before... I can't seem to narrow down which setting causes it. There are no frame drops or glitches or delayed frames for 25-30 minutes and suddenly there is this stutter where the screen shakes for a second and then all is fine for the next 30 minutes. GPU is fine, all is stable. I did update MPC-HC to the latest nightly build, do you think that may be reason?

Had this too yesterday...

huhn
2nd June 2015, 22:13
here is my opinion on debanding.
i used a BD with a on of banding encoded with VC-1 with about 14 mbit combined with bad mastering.

untouched: http://abload.de/img/untouchednwsn8.png
madVR high: http://abload.de/img/madvrhighqesn8.png
shiandow 1.0 0.0: http://abload.de/img/madvrnew1.00.036sp3.png
shiandow 1.0 1.0: http://abload.de/img/madvrnew1.01.0wds61.png

madVR high is stronger in debanding than shiandow 1.0 with margin 0.0 but a little bit more harmful too.
margin 1.0 has a very bad effect on moving scene this effect is still visible with 0.0 margin but not visible with madVR high.

so i give madVR high a clear edge in moving scenes.

here a screen with the problem i call it clouding on the blue car it is way worse in moving.

untouched: http://abload.de/img/untouched2xpuk6.png
shiandow 1.0 1.0: http://abload.de/img/clouding61ucd.png
shiandow 1.0 0.2: http://abload.de/img/clouding1.00.274ukn.png
shiandow 1.0 0.0: http://abload.de/img/clouding1.00.0neuas.png
madVR high: http://abload.de/img/cloudingmadvr5nux5.png

a deblock filter before debanding may help shiandow's algorithm a lot.

cyberscott
2nd June 2015, 22:25
Ok, thanks. One more try, if you don't mind:

http://madshi.net/madVR8810test5.rar

Please activate debug mode first (by double clicking "activate debug mode.bat"), then afterwards drop in the new madVR.ax. If you do it the other way round, but you're replacing the "wrong" madVR.ax file and you're testing with the official v0.88.10 again. I know, it's a bit confusing. Basically, after you dropped the replacement madVR.ax file into the madVR folder, don't double click any batch files, until you've completed testing. Thanks!

Ok, still change in the queues in this test. Hopefully I got the log correctly generated. Here it is...:
http://s000.tinyupload.com/?file_id=32868104695651332179

madshi
2nd June 2015, 22:49
Also, I noticed an odd problem. I am getting an occasional stutter during my SMPTE 170M content playback that I have not had before... I can't seem to narrow down which setting causes it. There are no frame drops or glitches or delayed frames for 25-30 minutes and suddenly there is this stutter where the screen shakes for a second and then all is fine for the next 30 minutes. GPU is fine, all is stable. I did update MPC-HC to the latest nightly build, do you think that may be reason?
I've no idea. When this stutter occurs, do you have frame drops or glitches or delayed frames then?

here is my opinion on debanding.
i used a BD with a on of banding encoded with VC-1 with about 14 mbit combined with bad mastering.

untouched: http://abload.de/img/untouchednwsn8.png
madVR high: http://abload.de/img/madvrhighqesn8.png
shiandow 1.0 0.0: http://abload.de/img/madvrnew1.00.036sp3.png
shiandow 1.0 1.0: http://abload.de/img/madvrnew1.01.0wds61.png

madVR high is stronger in debanding than shiandow 1.0 with margin 0.0 but a little bit more harmful too.
margin 1.0 has a very bad effect on moving scene this effect is still visible with 0.0 margin but not visible with madVR high.

so i give madVR high a clear edge in moving scenes.

here a screen with the problem i call it clouding on the blue car it is way worse in moving.

untouched: http://abload.de/img/untouched2xpuk6.png
shiandow 1.0 1.0: http://abload.de/img/clouding61ucd.png
shiandow 1.0 0.2: http://abload.de/img/clouding1.00.274ukn.png
shiandow 1.0 0.0: http://abload.de/img/clouding1.00.0neuas.png
madVR high: http://abload.de/img/cloudingmadvr5nux5.png

a deblock filter before debanding may help shiandow's algorithm a lot.
Good feedback - thank you! :)

Ok, still change in the queues in this test. Hopefully I got the log correctly generated. Here it is...:
http://s000.tinyupload.com/?file_id=32868104695651332179
Ok, I've finally found what causes the queues to not fill:

When madVR tries to copy the rendered frame to the backbuffer, exactly one out of four times it takes ca. 150-200ms. Every other time it takes 0ms (meaning no measurable time).

I've no idea why copying to the backbuffer sometimes is so slow and sometimes so fast, and why it seems to have a certain rhythm. It could either be a bug in the GPU drivers, or it could be a misconfiguration of some sort. You already tried lowering the number of pre-presented frames without success, right? And you already double checked the NVidia GPU control panel to make sure that the number of pre-rendered frames is set to application control, correct? Have you changed the madVR flush settings at some point? Have you tried restoring the madVR default settings at some point, just in case? Are you running some background process which might access the GPU (e.g. GPU-Z, or similar)? Try closing all processes which are not strictly needed, including the browser.

There's one more thing: In the original log I could see that madVR had to reset the VSync Direct3D device sometimes, because Direct3D reported it was "occluded". Which suggests that maybe some window might have covered the media player, at least for a short time. Does that make any sense to you? The test build you've tested with now doesn't reset the VSync device, anymore. I had hoped this would make a difference, but seemingly it doesn't.

Aleksoid1978
3rd June 2015, 01:05
nevcairiel has it right. If you use ChangeDisplaySettingsEx() the normal way, it will switch to 23.976, even if you specify 24.000. You have to call ChangeDisplaySettingsEx() twice, in a very specific way (see nevcairiel's post), to get true 24.000.

Thanks - i try :)

cyberscott
3rd June 2015, 01:33
Ok, I've finally found what causes the queues to not fill:

When madVR tries to copy the rendered frame to the backbuffer, exactly one out of four times it takes ca. 150-200ms. Every other time it takes 0ms (meaning no measurable time).

I've no idea why copying to the backbuffer sometimes is so slow and sometimes so fast, and why it seems to have a certain rhythm. It could either be a bug in the GPU drivers, or it could be a misconfiguration of some sort. You already tried lowering the number of pre-presented frames without success, right? And you already double checked the NVidia GPU control panel to make sure that the number of pre-rendered frames is set to application control, correct? Have you changed the madVR flush settings at some point? Have you tried restoring the madVR default settings at some point, just in case? Are you running some background process which might access the GPU (e.g. GPU-Z, or similar)? Try closing all processes which are not strictly needed, including the browser.

There's one more thing: In the original log I could see that madVR had to reset the VSync Direct3D device sometimes, because Direct3D reported it was "occluded". Which suggests that maybe some window might have covered the media player, at least for a short time. Does that make any sense to you? The test build you've tested with now doesn't reset the VSync device, anymore. I had hoped this would make a difference, but seemingly it doesn't.

Glad you were able to isolate the cause, that is a good thing. As far as .88.10, I always started testing at madVR's default settings, only changing the up-scaling to bilinear.
All the flush settings are at default, I never had need to touch them, and If I had, it would be corrected when I reset to default settings.

nVidia's control panel is set globally for "application control" for frames. I had hoped nVidia's new 353.06 drivers might have an effect but it appears to have made no difference.

I don't have gpu-z running nor any type of gpu overclocking/monitoring software running. I have tried closing processes to bare minimum with no changes.

I messed around a little more with the new .ax tonight
One thing I noticed that on the untouched, original .88.10 .ax, changing the exclusive mode present frames in advance didn't change the behavior of the queue, it would stay at 1-4/X until I set it below that. Even then, it would stay 1-4, 1-3, 1-2, etc. The latest madVRtest5.ax, the presented frames will completely fill if set to 4. (4-4/4).

With some more queue adjustments, I currently have all the queues filling up, using .88.10 and MadVRtest5.ax

Decoder queue: 14-15/15
Upload queue: 8-9/9
Render queue: 8-9/9
Present queue: 4/4-4 (lower than I like but the highest setting that works)


Also, remember me mentioning that the Decoder queue (in exclusive mode) would always show one more than it should, such as 14-16/15? When I set the exclusive mode to 4 frames or below, it will show correctly, 14-15/15. Not sure if that has anything to do with this issue, though.

The "occluded" D3D you saw was most like me tinkering with things at one point with the log running and I unintentionally sent you a log with my messing around. Sorry about that. :(

I always can use .88.8 if I want use 10 bit output with higher " presented frames in advance" settings in 10 bit DSD11 mode but of course I couldn't play with the added /changed features in .88.10.

I do appreciate you taking extra time troubleshooting this issue with me even though I'm the only one to have reported it up to now. :thanks:

Here is the log for the full queues if you want to take a look.
http://s000.tinyupload.com/?file_id=48016178447616236926

Della
3rd June 2015, 03:49
I replied earlier, I too have seen the unfilled queues when using 10 bit exclusive. You're not alone & thanks much for all your investigative work.

har3inger
3rd June 2015, 04:15
The newest MPC-HC official release for June 1st causes my render and present queues to bounce around zero despite having render times of around 28-30ms for 24p content. Dropped frame count is surprisingly fine, with only a couple frames per minute, but clearly something isn't working as it was before.

Anyone have a link to a copy of 1.7.6.156 I could revert to? That was the tweaked 64 bit build to support 64 bit madvr. The old one on dropbox from weeks/months back is dead.

Hmm, with further testing to isolate the problem, it went away without me doing anything. Go figure.

MysteryX
3rd June 2015, 06:01
Hey I have a very simple suggestion that would make the usage much simpler.

Why are downscaling algorithms like Catmul in the upscaling pages, and why are upscaling algorithms like Lanczos in the downscaling page?

You could remove downscaling algorithms from the upscaling page and upscaling algorithms from the downscaling page. That would make the interface simpler and make it easier for new users.

Also, someone mentioned that Scale in Linear Light shouldn't be used when downscaling except for Catmul when also using Anti-Ringing. If it's a bad choice for others, it could be removed for other algotirhts.

ryrynz
3rd June 2015, 07:21
Why are downscaling algorithms like Catmul in the upscaling pages, and why are upscaling algorithms like Lanczos in the downscaling page?

You could remove downscaling algorithms from the upscaling page and upscaling algorithms from the downscaling page. That would make the interface simpler and make it easier for new users.

Also, someone mentioned that Scale in Linear Light shouldn't be used when downscaling except for Catmul when also using Anti-Ringing. If it's a bad choice for others, it could be removed for other algotirhts.

They're algorithms for upscaling and downscaling, nothing needs to be removed. There are common preferences for upscaling and downscaling and sometimes different from each other, that's fine.

With regards to scaling in linear light it's a case of only enabling it if you you need it. Some options may move to advanced section but I suspect this rejigging if it occurs will happen closer to 1.0.

madshi
3rd June 2015, 08:13
Glad you were able to isolate the cause, that is a good thing. As far as .88.10, I always started testing at madVR's default settings, only changing the up-scaling to bilinear.
All the flush settings are at default, I never had need to touch them, and If I had, it would be corrected when I reset to default settings.

nVidia's control panel is set globally for "application control" for frames. I had hoped nVidia's new 353.06 drivers might have an effect but it appears to have made no difference.

I don't have gpu-z running nor any type of gpu overclocking/monitoring software running. I have tried closing processes to bare minimum with no changes.

I messed around a little more with the new .ax tonight
One thing I noticed that on the untouched, original .88.10 .ax, changing the exclusive mode present frames in advance didn't change the behavior of the queue, it would stay at 1-4/X until I set it below that. Even then, it would stay 1-4, 1-3, 1-2, etc. The latest madVRtest5.ax, the presented frames will completely fill if set to 4. (4-4/4).

With some more queue adjustments, I currently have all the queues filling up, using .88.10 and MadVRtest5.ax

Decoder queue: 14-15/15
Upload queue: 8-9/9
Render queue: 8-9/9
Present queue: 4/4-4 (lower than I like but the highest setting that works)


Also, remember me mentioning that the Decoder queue (in exclusive mode) would always show one more than it should, such as 14-16/15? When I set the exclusive mode to 4 frames or below, it will show correctly, 14-15/15. Not sure if that has anything to do with this issue, though.

The "occluded" D3D you saw was most like me tinkering with things at one point with the log running and I unintentionally sent you a log with my messing around. Sorry about that. :(

I always can use .88.8 if I want use 10 bit output with higher " presented frames in advance" settings in 10 bit DSD11 mode but of course I couldn't play with the added /changed features in .88.10.

I do appreciate you taking extra time troubleshooting this issue with me even though I'm the only one to have reported it up to now. :thanks:

Here is the log for the full queues if you want to take a look.
http://s000.tinyupload.com/?file_id=48016178447616236926
The VSync reset stuff might have had a part in this, as well. Here's a new test build:

http://madshi.net/madVR8810test6.rar

This time it's a release mode build. So please double click "activate release mode.bat" first, then replace the madVR.ax file. Then please just double check if this test build still fills the queues with your current settings (4 frames pre-presented). If it does, as is well. If it doesn't, the VSync reset stuff is still a problem. I don't need a log this time. Just the information whether this build still fills the queues for you, or not. Thanks.

Aleksoid1978
3rd June 2015, 11:29
nevcairiel has it right. If you use ChangeDisplaySettingsEx() the normal way, it will switch to 23.976, even if you specify 24.000. You have to call ChangeDisplaySettingsEx() twice, in a very specific way (see nevcairiel's post), to get true 24.000.

I try ... and it's don't help. Maybe something wrong with system ?? I do clean install latest Nvidia drivers. But - i create custom mode that work "true" 23.976 mode, maybe it's broken 24p mode ??

madshi
3rd June 2015, 11:34
How does your code look like? Should be something like this:

LONG res = ChangeDisplaySettingsExA(MonitorInfo->szDevice, &devMode, 0, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
if (res == DISP_CHANGE_SUCCESSFUL)
res = ChangeDisplaySettingsEx(NULL, NULL, 0, 0, NULL);
This is at least what madVR is doing.

Aleksoid1978
3rd June 2015, 12:06
How does your code look like? Should be something like this:

LONG res = ChangeDisplaySettingsExA(MonitorInfo->szDevice, &devMode, 0, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
if (res == DISP_CHANGE_SUCCESSFUL)
res = ChangeDisplaySettingsEx(NULL, NULL, 0, 0, NULL);
This is at least what madVR is doing.

This code from MPC-BE:

ChangeDisplaySettingsEx(DisplayName1, &dmScreenSettings, NULL, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
ChangeDisplaySettingsEx(NULL, NULL, NULL, 0, NULL);

nevcairiel
3rd June 2015, 12:15
If you create a custom 23.976 mode on NVIDIA, it can break the 24.000 mode. Delete your custom mode, and both should work fine.

madshi
3rd June 2015, 12:19
But why does it work with madVR then? At least that's how I understood Aleksoid1978's original comment.

We're talking about windowed mode playback, not FSE mode, right? In FSE mode things can be more complicated because Direct3D itself can also try to change/set the display mode...

Aleksoid1978
3rd June 2015, 12:20
If you create a custom 23.976 mode on NVIDIA, it can break the 24.000 mode. Delete your custom mode, and both should work fine.

Well, what then watch a movie with a frequency 23.976 ??
Nvidia don't have a mode for 23.976 fps ))

P.S. we are talking about FSE.

madshi
3rd June 2015, 12:25
How about windowed mode then? Does it work there?

And in FSE mode, are you changing the display mode after or before you enter FSE mode? If you change the display mode, after the switch to FSE has fully completed, your ChangeDisplaySettingsEx() call should overwrite whatever Direct3D has done before. If you change the display mode too early, Direct3D might switch it again during the windowed -> FSE mode transition.