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

corporalgator
2nd June 2013, 17:13
Alright, going to check with the LAV guys about the green screen and report back.

cyberbeing
2nd June 2013, 20:46
Oh lol, OK.....so basically we put my levels problem with PS scripts in the "known issues" drawer and that's it? :(

FWIW the aforementioned script (http://www.avsforum.com/t/912720/color-correction-with-a-htpc-simpler-solution-and-now-it-really-works) has always worked fine with VMR9 & EVR in MPC/PotP/KMP(using stolen code from MPC I presume) and even through this Avisynth PS script wrapper (http://forum.doom9.org/showthread.php?t=87295) in FFDshow.

Sadly the only application from this list that comes with a source code is MPC and even if I were to ask JohnAd(who wrote the gamut mapping PS script, using 3DLUT code from yesgrey) for help, he wouldn't be able to look at what mVR does either :(

I remember you saying that MPC wasn't applying PS scripts properly on BTB/WTW but quite frankly I've never seen anything wrong with test patterns so would that be possible that you'd apply PS scripts exactly as they are in MPC pretty please? Or at least provide a "MPC broken PS script implementation compatibility fix"? :o

Couldn't that script be fixed quite simply by changing the original:

float4 main(float2 tex : TEXCOORD0) : COLOR
{
float4 c0 = tex2D(s0, tex);
c0 = pow(c0, 1/0.45);
c0 = mul(r2r, c0);
c0 = saturate(c0);
c0 = pow(c0, 0.45);

return c0;
}


to the following which adds a clamp for out-of-range values:


float4 main(float2 tex : TEXCOORD0) : COLOR
{
float4 c0 = tex2D(s0, tex);
c0 = clamp(c0, 0.0, 1.0);
c0 = pow(c0, 1/0.45);
c0 = mul(r2r, c0);
c0 = saturate(c0);
c0 = pow(c0, 0.45);

return c0;
}


I know nothing about hlsl though, as this is more a common sense idea that if you don't want out-of-range BTB values processed, you should clamp it. Someone who knows better should probably verify the functionally of such a change, but does that fix your problem?

leeperry
3rd June 2013, 00:07
Couldn't that script be fixed [..] if you don't want out-of-range BTB values processed, you should clamp it. Someone who knows better should probably verify the functionally of such a change, but does that fix your problem?
Ouh, :goodpost: (always wanted to use this emoticon ^^)

That sure would explain why full range source files looked utterly washed out indeed...this quick comparison on a 16-235 rec709 test pattern looks identical(only the filesize is 1 kb smaller for some reason, dithering was disabled of course):

untouched: http://thumbnails105.imagebam.com/25794/721bfa257938607.jpg (http://www.imagebam.com/image/721bfa257938607)

clamped: http://thumbnails102.imagebam.com/25794/5fac43257938605.jpg (http://www.imagebam.com/image/5fac43257938605) unclamped: http://thumbnails105.imagebam.com/25794/dae5f8257938606.jpg (http://www.imagebam.com/image/dae5f8257938606)

Also my funky 0-255 sample looks fine now, looks like you nailed it! :thanks:

I will run more thorough tests and maybe the original PS script didn't care because as madshi said BTB/WTW were clipped by design if I understood him correctly...if madshi could please confirm that you nailed down the root problem, maybe a "compatibility mode" checkbox would still be fruitful in order to provide 100% compatibility with scripts that expect BTB/WTW to be clamped/clipped by design :)

I did send a few PM's to JohnAd but he hasn't connected to AVS in a while(his PM box must be full by now) and same goes for his company's official forum.

ryrynz
3rd June 2013, 00:41
I can't reproduce this issue on my HD4000 (win8 x64). My present queue fills perfectly fine.

Found out what's causing it. It's a program called f.lux which makes the color of your computer's display adapt to the time of day. Removing this from memory the queue fills as it should.

karamancho
3rd June 2013, 01:16
I have a terrible lag in windowed mode but only with some videos. The OSD says their composition rate is 30.000Hz (no lag in 60.000Hz videos). Is this madvr related or is it the videos 'fault'?


Found out what's causing it. It's a program called f.lux which makes the color of your computer's display adapt to the time of day. Removing this from memory the queue fills as it should.

conformed.
edit: it doesn't happen in the newest beta http://justgetflux.com/news/2013/05/29/beta.html

ryrynz
3rd June 2013, 01:51
edit: it doesn't happen in the newest beta[/URL]

Installed the beta, and still has the issue. Disabling or selecting movie mode doesn't change anything either, the program has to be terminated. I've mentioned this problem to the team on their website.

Madshi is it possible to block programs making changes in this way while MadVR is active? Maybe there are other programs that can affect MadVR in the same way?

madshi
3rd June 2013, 08:09
Couldn't that script be fixed quite simply by changing the original [...] to the following which adds a clamp for out-of-range values:

c0 = clamp(c0, 0.0, 1.0);
Good thinking!

Although, actually I had already suggested a very similar thing. However, my suggestion had a bug in it. I had suggested "saturate(c0)" which is the same as "clamp(c0, 0.0, 1.0)". But my mistake was that I suggested "saturate(c0)" instead of "c0 = saturate(c0)". Doh.

Found out what's causing it. It's a program called f.lux which makes the color of your computer's display adapt to the time of day. Removing this from memory the queue fills as it should.
Interesting. I remember somebody mentioning f.lux making problems before...

I have a terrible lag in windowed mode but only with some videos. The OSD says their composition rate is 30.000Hz (no lag in 60.000Hz videos). Is this madvr related or is it the videos 'fault'?
Composition rate is not really related to the video itself. It's the internal OS' Aero redraw rate. Normally it's expected to be identical to the GPU refresh rate. In your case it seems that sometimes the OS chooses a composition rate of only 30.000Hz instead of 60.000Hz, although the GPU refresh rate is probably 60.000Hz (it is, isn't it?). Don't ask my why the OS is doing that. Very stupid, IMHO.

Are you using the madVR display mode changer? Or some other display mode changer?

Madshi is it possible to block programs making changes in this way while MadVR is active? Maybe there are other programs that can affect MadVR in the same way?
For that I'd have to know what those other programs are doing to affect madVR. I don't know that. And even if I knew, madVR would not be able to stop that, unless you wanted madVR to inject a hook dll into all running processes, which would be a rather dramatic thing to do...

ryrynz
3rd June 2013, 09:03
unless you wanted madVR to inject a hook dll into all running processes, which would be a rather dramatic thing to do...

Indeed. One of the mods on the F.lux website seems to think it's a GPU driver bug. I'll wait for confirmation of that first and if that's the case I'll ask that you pass that on to your Intel contact if that's alright.

madshi
3rd June 2013, 10:55
Good news: I think I found a way to make refresh rate switching (23Hz vs 24Hz, 59Hz vs 60Hz) work correctly in win8.

SamuriHL
3rd June 2013, 12:32
Good news: I think I found a way to make refresh rate switching (23Hz vs 24Hz, 59Hz vs 60Hz) work correctly in win8.

Sweet!

Sent from my Xoom using Tapatalk HD

Boltron
3rd June 2013, 13:40
Good news: I think I found a way to make refresh rate switching (23Hz vs 24Hz, 59Hz vs 60Hz) work correctly in win8.

Cool.

6233638
3rd June 2013, 16:02
Good news: I think I found a way to make refresh rate switching (23Hz vs 24Hz, 59Hz vs 60Hz) work correctly in win8.Excellent news! Can’t wait to try out the fixed version. :D

karamancho
3rd June 2013, 16:36
Are you using the madVR display mode changer? Or some other display mode changer?

I'm not using any display mode changer and my display modes list in devices > display modes is empty. Should I add anything to it?

madshi
3rd June 2013, 16:41
I'm not using any display mode changer and my display modes list in devices > display modes is empty. Should I add anything to it?
You don't have to use it if you don't need it. I'm just wondering why your composition rate seemingly changes, depending on which video you're playing. You do mean the composition rate reported by the madVR OSD (Ctrl+J), right? This composition rate usually only changes if the display mode is changed. So how can it change in your case, if you don't use any refresh rate / display mode changer?

karamancho
3rd June 2013, 17:02
You do mean the composition rate reported by the madVR OSD (Ctrl+J), right?

yes

So how can it change in your case, if you don't use any refresh rate / display mode changer?

f.lux might be the problem again. I just disabled it and started a movie that was 30.000Hz and its now back to 60.000Hz.

whats more interesting, after starting f.lux again the same movies composition rate now stays 60.000 (after restarting the player of course) :confused:

mindbomb
3rd June 2013, 18:31
for dxva scaling for intel chips-
with what generation did they move from shaders to a specific scaling asic?

AndreaMG
3rd June 2013, 19:38
Here is a test with Haswell + MadVR + LAV Filters :)

http://www.anandtech.com/show/7007/intels-haswell-an-htpc-perspective

Danat
3rd June 2013, 20:00
Hi madshi. Really appreciate your work on this unique piece of software. I'm using madVR for everything I watch.
Recently I've hit the CPU limit on some 1080p video. I've figured out the exact reason and I'd like to request one small change in madVR config. On like 5 highly detailed fragments (with duration ~15 seconds each) of the entire video, I have stuttering and AV desync (100% CPU usage, decoder queue slowly becomes empty -> hiccups), then everything gets back to normal (60-70% CPU usage, full decoder queue). The bottleneck side-effects appeared even if using EVR renderer, so its the decoder/cpu speed issue. However I've noticed that madVR can pre-buffer decoded frames in advance, which can help my PC to distribute CPU load between heavy and light parts of the video, but the 32 queue size is not enough to achieve this (at least for this video),
so my question/feature request is: Can you increase the configurable CPU queue size to smth like 128 :D, so I could use all my RAM for buffering ?

I tried to hack the madVR registry config values to set 64 queue size, so I could see how that would work out for me, but that didnt work - when I ran MPC-HC the queue size became 12 instead. In case you don't want to mess up the UI with overTICKed trackbar, then perhaps can you allow manual registry config value changes outside of the UI range to be properly processed by madVR ? Or maybe some numeric box under the trackbar for "above 32" values (could be made as a trackbar value multiplier) ? ;)

My specs are:
Athlon II X2 215 ~2.7GHz; NVIDIA GeForce 8800 GTS (320 MB); 3 GB RAM
Win XP SP3; 1920x1080@72Hz
MPC-HC(v1.6.7.7091); LAV(v0.57)-Splitter/Video/Audio; madVR(v0.86.1); ReClock;

Video material:
1860x1048 @ 23.976 fps (1080p x264 Hi10p)

madVR rendering settings:
CPU queue: 32
GPU queue: 8

Setting CPU queue size to 4 doesn't help - it plays the fragment slower/longer with frequent but small frame drops and I think the video looks less stuttering because of that, but the AV desync is still there - even a bit worse than with 32 queue size.

truexfan81
3rd June 2013, 20:46
Hi madshi. Really appreciate your work on this unique piece of software. I'm using madVR for everything I watch.
Recently I've hit the CPU limit on some 1080p video. I've figured out the exact reason and I'd like to request one small change in madVR config. On like 5 highly detailed fragments (with duration ~15 seconds each) of the entire video, I have stuttering and AV desync (100% CPU usage, decoder queue slowly becomes empty -> hiccups), then everything gets back to normal (60-70% CPU usage, full decoder queue). The bottleneck side-effects appeared even if using EVR renderer, so its the decoder/cpu speed issue. However I've noticed that madVR can pre-buffer decoded frames in advance, which can help my PC to distribute CPU load between heavy and light parts of the video, but the 32 queue size is not enough to achieve this (at least for this video),
so my question/feature request is: Can you increase the configurable CPU queue size to smth like 128 :D, so I could use all my RAM for buffering ?

I tried to hack the madVR registry config values to set 64 queue size, so I could see how that would work out for me, but that didnt work - when I ran MPC-HC the queue size became 12 instead. In case you don't want to mess up the UI with overTICKed trackbar, then perhaps can you allow manual registry config value changes outside of the UI range to be properly processed by madVR ? Or maybe some numeric box under the trackbar for "above 32" values (could be made as a trackbar value multiplier) ? ;)

My specs are:
Athlon II X2 215 ~2.7GHz; NVIDIA GeForce 8800 GTS (320 MB); 3 GB RAM
Win XP SP3; 1920x1080@72Hz
MPC-HC(v1.6.7.7091); LAV(v0.57)-Splitter/Video/Audio; madVR(v0.86.1); ReClock;

Video material:
1860x1048 @ 23.976 fps (1080p x264 Hi10p)

madVR rendering settings:
CPU queue: 32
GPU queue: 8

Setting CPU queue size to 4 doesn't help - it plays the fragment slower/longer with frequent but small frame drops and I think the video looks less stuttering because of that, but the AV desync is still there - even a bit worse than with 32 queue size.


if you have 100% cpu usage its going to drop frames no matter what settings you use, sounds like you need a faster cpu to play that video

Danat
3rd June 2013, 21:02
if you have 100% cpu usage its going to drop frames no matter what settings you use, sounds like you need a faster cpu to play that videoI understand that, though while the decoder queue is being emptied the video goes smooth enough (I'm not demanding 0 frame drops lol, if that was the impression). It almost plays fine the first heavy ~7 secs fragment - only on 6-7-th seconds i see heavy stuttering and audio becomes choppy which is quite disturbing ;). Thats how I got an idea of increasing the queue size more.

I love my PC because its properly configured and works like a clock without glitches. This is the only video so far that I got unsolvable problems with (I've been watching many 1080p videos just fine) and I'd rather try out some options such as these before thinking about selling the case :(.

kiccolsd
3rd June 2013, 21:08
Anyone can help me with ringing artifact issue? I have downgraded Intel HD4000 driver to 29XX in order to use Madvr but I'm experiencing some ringing. Tried a lot of 1080p mkv's played on a 1080p LCD therefore I can exclude resize related issues.

madshi
3rd June 2013, 21:35
f.lux might be the problem again.
Argh...

for dxva scaling for intel chips-
with what generation did they move from shaders to a specific scaling asic?
I don't know if they ever used shaders.

Here is a test with Haswell + MadVR + LAV Filters :)
Nice - good to see Haswell finally gets the refresh rates right!

Can you increase the configurable CPU queue size to smth like 128 :D, so I could use all my RAM for buffering ?
Hmmmm... I'll think about it...

Anyone can help me with ringing artifact issue? I have downgraded Intel HD4000 driver to 29XX in order to use Madvr but I'm experiencing some ringing. Tried a lot of 1080p mkv's played on a 1080p LCD therefore I can exclude resize related issues.
I'm not sure I understand what you mean. Do you think that your playback chain somehow adds ringing artifacts to the movie which aren't in the original movie source? Can you show me a screenshot of the exact artifact you mean?

cyberbeing
3rd June 2013, 22:49
Nice - good to see Haswell finally gets the refresh rates right!
Not that that 23.97605 Hz really helps much when the clock deviation is so high at 0.00472% with a dropped frame every 14.84 minutes like their screenshot. The refresh rate of 23.97605 is actually very far from optimal on Ananatech's ASRock Z87E-ITX Haswell testbed in this instance, and still means using something like Reclock is required. I wish review sites like Anandtech would do more in-depth testing on the clock deviation with various hardware setups to find the best matches at standard refresh rates.

IMHO, the optimal setup is one which madVR reports drop/repeat every 3-7+ days when not using Reclock (or similar) with default GPU refresh rate settings. Matching the refresh rate to clock deviance is pretty much the only way to achieve perfect sync without degrading quality in some way, but unfortunately many GPU drivers are too inflexible to lock in fine-tuned refresh rates. This is the main thing going for using madVR with a high refresh rate multiple instead of a matching refresh rate if you seek to fine-tune refresh rate around stubborn drivers. Assuming the driver allow refresh rate timing tweaks of some kind, it becomes exponentially easier to lock in a clock deviance matched refresh rate each time you increase the refresh rate multiple.

Hmmmm... I'll think about it...

If you do implement a high CPU queue like 128, you may want to consider adding an additional slider for the Subtitle queue and/or have it match the GPU queue size instead. Setting the Subtitle queue smaller than than CPU queue I would actually expect would improve reliability in cases of CPU bottlenecks, similar to how setting the CPU queue slightly higher than the GPU queue does.

6233638
3rd June 2013, 22:58
Why is it that video cards have such a hard time outputting the exact clock that you set anyway?

nevcairiel
3rd June 2013, 23:02
Usually precision issues with the clock generators, or inflexibility issues. It may be designed for 23.9760 specifically, but that doesn't mean it can do 23.977 to compensate for audio deviation.

e-t172
3rd June 2013, 23:19
Wait. If I understand this correctly, if you use the same HDMI port for audio *and* video, they should be governed by the same clock (since, AFAIK, in HDMI audio is transferred during the blanking interval between two frames). If that's the case, why is clock deviation still an issue? Shouldn't they be perfectly in sync since it's the *same* clock? Or are we only discussing the case where audio is transported separately (e.g. analog)?

Buckster
3rd June 2013, 23:20
I did some more viewing with Smooth Motion rendering on tonight - watching snippets of films I've watched over and over again (you know those AV demo worthy parts that are worth watching over and over again :) )

what has really shocked me is how with Smooth Motion on - I'm noticing details I've never noticed before - when I say details I don't mean as in it looks sharper, or there is more detail on screen so to speak, but just that there seems to be so much more content in any shot with motion

genuinely leagues better - ok there is the odd very minor additional artefact - but perfectly acceptable

I'm not normally one for "post-processing" - but whatever Smooth Motion is doing it works for my setup - so thanks !

I'm comparing 24p from MadVR as 24p input into TV (my Panasonic plays 24p at 23.976hz which is quite unusual) - you get noticeable flicker in Windows Desktop - but no obvious flicker whilst watching films

to 60p from MadVR as a 60p input into TV

in theory the Panasonic playing 24p content with near to no processing without Smooth Vision should be the ideal setup - but with Smooth Vision on its leagues better

cyberbeing
4th June 2013, 00:23
Or are we only discussing the case where audio is transported separately (e.g. analog)?

It applies to all cases where madVR does not report drop/repeats every "1#J days". My testing with HDMI audio both PCM & Bitstream on my NVIDIA card, tells me it's not excluded. DirectShow's reference clock on the PC is a difference beast related to timing and sync compared to standalone consumer electronic devices.

I have no idea what you consider as "video clock", but the "audio clock" is what DirectShow uses as a reference clock as interpreted by the "system clock". The clock deviance shown by madVR, multiplied by and added to the video frame rate is the "real" playback rate in DirectShow before anything ever gets passed over HDMI or other output. For example, in Anandtech's screenshot with 0.00472% clock deviance, the "real" video & audio playback rate is equivalent to ~23.97715 fps, which is higher than his display refresh rate of ~23.97605 Hz.

I've found madVR's "clock deviation" + "drop/repeat every" measurements to be highly accurate on my systems, but ultimately you should trust your eyes in combination with the number of actual frame drops/repeats/glitches madVR records in the OSD stats. At a certain point, if you are unable to perceive or detect any anomalies, its good enough.

callannn
4th June 2013, 16:23
Hi, I seem to be having a slight problem. Usually on playback I get no dropped/delayed frames at all, but sometimes I can watch the exact same video again (that I've previously had no dropped/delayed frames) on a different day and receive a significant amount of delayed frames (usually ranging from around 70-130 I've noticed). Does anybody know why this is?

If it helps, here are my specs: Samsung NPC700G7C, 16.0GB RAM, Intel Core 17 3610QM @ 2.30GHz, GTX 675M
I'm also using Niyawa's Guide (http://myanimelist.net/forum/?topicid=516729) and use it exclusively for anime playback. I'm also using his 'highest settings' for the scaling algorithm's.

If anyone could help that would be great!

madshi
4th June 2013, 18:46
Not that that 23.97605 Hz really helps much when the clock deviation is so high at 0.00472% with a dropped frame every 14.84 minutes like their screenshot.
Well, the article text did mention that they got an estimate of one frame drop/repeat every couple of hours, IIRC. Not sure why the screenshot doesn't match that.

If you do implement a high CPU queue like 128, you may want to consider adding an additional slider for the Subtitle queue and/or have it match the GPU queue size instead. Setting the Subtitle queue smaller than than CPU queue I would actually expect would improve reliability in cases of CPU bottlenecks, similar to how setting the CPU queue slightly higher than the GPU queue does.
Why would setting the Subtitle queue *smaller* have a similar effect compared to having the CPU queue *bigger*. Both subtitle rendering and decoding are CPU tasks. So I would expect a *bigger* subtitle queue to be benefical for reliability. Of course CPU consumption will be higher while filling the queue. But once it's filled it doesn't matter how large it is. CPU consumption should go back to the same value. So I don't see any problem with a large subtitle queue.

Wait. If I understand this correctly, if you use the same HDMI port for audio *and* video, they should be governed by the same clock (since, AFAIK, in HDMI audio is transferred during the blanking interval between two frames).
In theory this sounds right. But in real life it doesn't always seem to work that way. I'm not sure, maybe they still use different clocks somehow. But what do I know...

I did some more viewing with Smooth Motion rendering on tonight - watching snippets of films I've watched over and over again (you know those AV demo worthy parts that are worth watching over and over again :) )

what has really shocked me is how with Smooth Motion on - I'm noticing details I've never noticed before - when I say details I don't mean as in it looks sharper, or there is more detail on screen so to speak, but just that there seems to be so much more content in any shot with motion

genuinely leagues better - ok there is the odd very minor additional artefact - but perfectly acceptable

I'm not normally one for "post-processing" - but whatever Smooth Motion is doing it works for my setup - so thanks !

I'm comparing 24p from MadVR as 24p input into TV (my Panasonic plays 24p at 23.976hz which is quite unusual) - you get noticeable flicker in Windows Desktop - but no obvious flicker whilst watching films

to 60p from MadVR as a 60p input into TV

in theory the Panasonic playing 24p content with near to no processing without Smooth Vision should be the ideal setup - but with Smooth Vision on its leagues better
Good to hear. FWIW, there have been multiple Panasonic plasma owners now saying similar things. It seems that the 24Hz implementation of Panasonic plasmas is severely lacking.

Hi, I seem to be having a slight problem. Usually on playback I get no dropped/delayed frames at all, but sometimes I can watch the exact same video again (that I've previously had no dropped/delayed frames) on a different day and receive a significant amount of delayed frames (usually ranging from around 70-130 I've noticed). Does anybody know why this is?

If it helps, here are my specs: Samsung NPC700G7C, 16.0GB RAM, Intel Core 17 3610QM @ 2.30GHz, GTX 675M
I'm also using Niyawa's Guide (http://myanimelist.net/forum/?topicid=516729) and use it exclusively for anime playback. I'm also using his 'highest settings' for the scaling algorithm's.
We don't have enough information to help. Without any more info all I can do is give general hints like:

(1) Make sure you disable tools/applications which might eat GPU performance. E.g. newer Firefox/Chrome/IE versions might use the GPU for rendering tasks. Or recently it has been reported that the "f.lux" and "GpuZ" tools can also result in video playback problems. So close them before watching a movie.

(2) Make sure your GPU doesn't clock down. This has happened to some users. I think some tweak tools allow to fix the clock to some specific value.

If these hints don't help, make a screenshot of the madVR OSD (Ctrl+J) in the moment when those frame drops occur. If you can't make a screenshot (FSE mode?), please at least write down the state of the queues and report them here. Then we can go from there...

madshi
4th June 2013, 18:49
madVR v0.86.2 released

http://madshi.net/madVR.zip

* fixed: refresh rate changing didn't always work correctly in Windows 8
* fixed: MPC-BE title bar didn't handle unicode characters correctly
* fixed: IVideoWindow::putBorderColor() had swapped colors (RGB -> BGR)
* fixed: #18: decoder queue sometimes exceeded limits
* fixed: #19: blank screenshots when Smooth Motion FRC is turned on
* fixed: #23: video didn't follow overlay window position when paused
* fixed: #34: smooth motion FRC was sometimes incorrectly turned on
* fixed: #35: framerate tag was not working
* fixed: #37: when no video duration was known, seekbar was not shown
* fixed: #42: memory leak with certain OSD elements
* fixed: #44: GraphStudioNext "Performance Test" Crash
* fixed: #46: xy-vsfilter: 3DLUT was not applied to frames with subtitles
* fixed: #47: xy-vsfilter: subtitles weren't rerendered after scaling change
* fixed: #48: xy-vsfilter: incorrect positioning after downscaling
* fixed: #49: xy-vsfilter: incorrect PGS subtitle positions
* fixed: #50: xy-vsfilter: smooth motion FRC caused subtitles flicker
* fixed: #51: settings dialog now mentions both ReClock and VideoClock
* fixed: #52: xy-vsfilter: incorrect ASS subtitle positions
* fixed: #55: FSE seek bar resulted in inaccurate seeking for DVDs
* fixed: #60: all kinds of artifacts with smooth motion FRC
* fixed: #62: crash when external 3dlut file with long filename was missing
* fixed: #65: film refresh rate was used with dxva decoding -> deinterlacing
* fixed: #66: Cineform decoder v210 (10-bit 4:2:2) corruption
* smooth motion FRC should be back to v0.86.0 performance levels
* increased max CPU queue size to 128 frames
* added support for DCI-P3 and BT.2020 primaries and BT.2020 matrix
* added support for "matrix=2020" and "primaries=2020|DCI" tags
* added resolution based auto detection for BT.2020 (UHD) and DCI-P3
* added explicit detection for non PS3.0 capable GPUs
* added IMadVRInfo interface which makes all sorts of info available
* added a couple workarounds for weird crashes that were reported
As you can see, the new release contains a multitude of bug fixes. Hope nothing new got broken in the process.

Please test and report whether the Smooth Motion FRC related bugs have been fixed in this build.

Btw, Smooth Motion FRC performance should hopefully be back up to v0.86.0 levels (which was faster than v0.86.1). I hope that this performance improvement didn't bring back problems. Let me know...

raul31
4th June 2013, 18:59
Hi madshi,

congratz on the new version that u hav JUST released.
Looking forward to using it very soon.
btw, i'm a newbie so i'm going to ask the following:

what i want to know is, what exact options should i choose within LAV video with regards to the following to get the possible image:
> (hardware acceleration) -> hardware decoder to use: none, nvidia cuvid, intel quicksync, DXVA2 (native), or DXVA2 (copy-back) ? & why
> RGB Output Levels: TV, PC, or UNTOUCHED ? & why
> Dithering Mode: Ordered or Random ? & why
> there are other options as well which i haven't mentioned such as deinterlacing which can be configured within LAV video... what should i choose here for the rest of the options?

i also wanted to know:
i have a 2nd gen I7 [2670] processor & 1GB nvidia GT 525m... all within a beautiful dell xps l502x (WISH i went for the model with 2GB GT 540m )
how am i able to configure MPC-HC so that ALL the decoding & work that needs to be performed by the LAV filters etc is done completely by the I7 processor {CPU} & not touched at all by the nvidia card?
the ONLY thing that should use the nvidia card is MadVR, but how can i exclusively make sure that the nvidia card isn't spending it's power on other decoding? i ONLY want the nvidia card for MadVR & NOTHING else, but can this setup be done where one can choose what processes what etc.

thanks madshi!!!

looking forward to your guidance.

mark0077
4th June 2013, 19:03
thanks madshi!

6233638
4th June 2013, 19:40
fixed: refresh rate changing didn't always work correctly in Windows 8This switches to 24Hz and 60Hz correctly now, but still restores to 59Hz when exiting fullscreen mode. (when previously set to 60Hz on the desktop)

I have also noticed another issue, that may not be madVR's fault.
In JRiver Media Center, if you have their display mode switcher disabled, stopping playback without exiting fullscreen view first, does not attempt to restore the display mode at all. (so stopping a 24Hz video leaves my display at 24Hz)


Seems like a good release otherwise. I appreciate the BT.2020 support being ready for when 4K content is (largely) available.

EDIT: And I'm quite sure that you are aware of it, but using a decoder queue size of 128 takes rather a long time for the image to update when switching between fullscreen and windowed modes, even with "delay playback start until render queue is full" disabled.

Asmodian
4th June 2013, 19:54
what i want to know is, what exact options should i choose within LAV video with regards to the following to get the possible image:
> (hardware acceleration) -> hardware decoder to use: none, nvidia cuvid, intel quicksync, DXVA2 (native), or DXVA2 (copy-back) ? & why
> RGB Output Levels: TV, PC, or UNTOUCHED ? & why
> Dithering Mode: Ordered or Random ? & why
> there are other options as well which i haven't mentioned such as deinterlacing which can be configured within LAV video... what should i choose here for the rest of the options?

i also wanted to know:
how am i able to configure MPC-HC so that ALL the decoding & work that needs to be performed by the LAV filters etc is done completely by the I7 processor {CPU} & not touched at all by the nvidia card?

I'll give some answers to keep madshi free to keep up the good work. These have been covered many times in this thread and I don't think madshi needs to keep answering. :)

(hardware acceleration):
It sounds like you want "none" to me. This is what I use as well, all the other options use the GPU. The "hardware" doing the acceleration is on the GPU.

RGB Output Levels:
Untouched, leave converting color spaces to MadVR.

Dithering Mode:
Random unless you plan to re-encode the output. Random is visually higher quality but it does not encode as well.

You can turn on Yadif in LAV for software deinterlacing, I use video mode for real interlaced video (30i in my case).

All you need to do in LAV to keep the GPU free is to use "none" for hardware acceleration and don't use any shader scripts in MPC-HC.

noee
4th June 2013, 19:57
...
I have also noticed another issue, that may not be madVR's fault.
In JRiver Media Center, if you have their display mode switcher disabled, stopping playback without exiting fullscreen view first, does not attempt to restore the display mode at all. (so stopping a 24Hz video leaves my display at 24Hz)


I see the same thing, but when I then exit jrMC, the display switches back. It's almost like MC is the holdup like it's not "releasing" madVR or madVR not picking up that playback has stopped for some reason.

I'm on Win7 Ult, however. Curious what happens when you close MC.

Danat
4th June 2013, 19:59
Thank you madshi !
Just tried out the 128 CPU queue - and yes it works just like I hoped it would ;) ! Guess I can still count on my PC for this video ;).
First 4 heavy fragments play like there never have been any stuttering on them. The 5-th fragment, which is the longest (23 secs), has some stuttering at the end (decoder queue empty). I've noticed that RAM usage per decoded frame is lower than I expected (6.5 MB) which leaves me with 1 GB free RAM, so if you ever gonna be in the mood to return to this feature, please add some more ticks after 128 (btw I like your solution with 56,64,96,128), like 192, 256. I understand that it's a bit awkward workaround for a slow CPU, but who needs RAM for smth else when watching HD movies anyway ;).

Good job on update.

6233638
4th June 2013, 20:08
I see the same thing, but when I then exit jrMC, the display switches back. It's almost like MC is the holdup like it's not "releasing" madVR or madVR not picking up that playback has stopped for some reason.

I'm on Win7 Ult, however. Curious what happens when you close MC.Ah, you're right - though I had to close Media Server as well, which is why closing Media Center alone didn't seem to work.

e-t172
4th June 2013, 20:23
I have no idea what you consider as "video clock", but the "audio clock" is what DirectShow uses as a reference clock as interpreted by the "system clock". The clock deviance shown by madVR, multiplied by and added to the video frame rate is the "real" playback rate in DirectShow before anything ever gets passed over HDMI or other output. For example, in Anandtech's screenshot with 0.00472% clock deviance, the "real" video & audio playback rate is equivalent to ~23.97715 fps, which is higher than his display refresh rate of ~23.97605 Hz.

What I mean is, the way audio over HDMI works is that audio is transferred during the blanking interval between two frames. The simplest way to make it work from the point of view of the GPU manufacturer is to make sure the number of audio samples transferred between two frames is equal to the frame duration. So, for example, if the refresh rate is 24Hz, then 2000 audio samples (assuming 48kHz sampling rate) of audio will be sent between each frame. As long as the hardware (driver, GPU, whatever) enforces that (which is very easy: just push 2000 samples between each frame, no more, no less), then everything should be fine and no clock deviation should occur, ever, because there's nothing to deviate from: there's only one clock, and it's the video clock (i.e. the clock that controls the refresh rate). Sure this one clock might not be perfectly accurate, but that doesn't matter: the device at the other end of the cable is slaved to the clock of the sending side anyway, so that's not an issue.

Contrast this with the traditional situation where you have a video output and an analog sound card output: in this case you're dealing with the video (refresh rate) clock and the audio (sample rate) clock, which won't be perfectly in sync. In other words, instead of sending 2000 audio samples during a vsync interval (assuming 24p and 48kHz), sometimes you'll send 1998 samples, or 2002 samples (or something else), in other words the two clocks will deviate from each other, and that's why you can't prevent frame drops (unless you use ReClock and/or FRC of course). If instead the video output is also taking care of sending the audio, then the issue goes away completely: one component (the GPU) has control over everything, so it just has to make sure it uses the same clock for everything and just send the correct, constant amount of samples each time. In the case of 24p and 48kHz, it just knows it has to send 2000 samples between each frame, because 48000 / 24 = 2000. That's it. It's that simple. There's no clock deviation, because the audio is now slaved to the vsync.

At least that's the theory. In practice we're still seeing clock deviation when playing both audio and video over HDMI, which, I must say, puzzles me. That would mean that GPU manufacturers are using two clocks for video and audio, which doesn't make any sense because that's actually harder than just doing the right thing and using one single clock.

ajp2k11
4th June 2013, 20:50
Madshi,

any idea why I get a black screen when trying to play some files? If I switch to exclusive mode it says the refresh rate is 0 Hz. Ctrl-J in windowed mode doesn't display...

I've had this problem for a long time, think it might have appeared when switching to Win8. My laptop display is capable of 60/120Hz. Using AMD graphics and I've tried resetting all settings to default.

You've looked at a debug log once but couldn't find anything, could the 0 Hz thing be a clue?

Grateful for any help...

madshi
4th June 2013, 21:27
any idea why I get a black screen when trying to play some files? If I switch to exclusive mode it says the refresh rate is 0 Hz. Ctrl-J in windowed mode doesn't display...
If the refresh rate reads 0Hz that means that your GPU driver doesn't inform madVR reliably enough about the VSync scanline position. That is required by madVR to do proper presentation. This is a rare problem, but some people have it. It's mostly a problem on XP, though, so I'm surprised you have this with win8. I'd suggest that you update to the latest drivers, to make sure. You could also try updating your GPU BIOS, maybe that helps...

ajp2k11
4th June 2013, 21:34
If the refresh rate reads 0Hz that means that your GPU driver doesn't inform madVR reliably enough about the VSync scanline position. That is required by madVR to do proper presentation. This is a rare problem, but some people have it. It's mostly a problem on XP, though, so I'm surprised you have this with win8. I'd suggest that you update to the latest drivers, to make sure. You could also try updating your GPU BIOS, maybe that helps...

Thanks, but isn't it weird that I get this problem only with some files and never with others? Also, it much more common when the files are 1080p and not 720p. It's always the same files too, some files never work...ever. They work fine with EVR-CP though...

madshi
4th June 2013, 21:37
EVR has a totally different presentation logic, it doesn't depend on vsync scanline information.

Not sure why it only occurs with specific video files. Makes no sense to me, unless you're using DXVA decoding and/or DXVA deinterlacing? Try with software decoding and try with deinterlacing turned off. But really, I simply don't have enough information to do anything about this...

callannn
4th June 2013, 22:09
We don't have enough information to help. Without any more info all I can do is give general hints like:

(1) Make sure you disable tools/applications which might eat GPU performance. E.g. newer Firefox/Chrome/IE versions might use the GPU for rendering tasks. Or recently it has been reported that the "f.lux" and "GpuZ" tools can also result in video playback problems. So close them before watching a movie.

(2) Make sure your GPU doesn't clock down. This has happened to some users. I think some tweak tools allow to fix the clock to some specific value.

If these hints don't help, make a screenshot of the madVR OSD (Ctrl+J) in the moment when those frame drops occur. If you can't make a screenshot (FSE mode?), please at least write down the state of the queues and report them here. Then we can go from there...

Ah sorry, what additional info would you need? I don't have f.lux installed on my laptop anymore as it was messing with playback and giving me a huge amount of frame drops, and I never have GPU-Z open or in use in the background when watching a video. I don't actually have anything in use at all when watching videos.

I'm not actually sure how to prevent my GPU from clocking down, so if anyone could tell me I would appreciate it.

I've included this screenshot here (http://i.imgur.com/SH8wZ9T.png) taken at the end of an hour long video for you to have a look at if that is any help?

madshi
4th June 2013, 22:14
The OSD screenshot only helps if it's directly from the situation when the frame drops occur. The additional info we need is for example which queues are (near) empty when those frame drops occur.

Soukyuu
4th June 2013, 23:03
The new version works flawlessly so far, and I can now take screenshots without having to disable smooth motion, thanks!
A question though, which material does smooth motion work with, as I don't seem to see a difference with your regular 23,97fps anime?

Hi, I seem to be having a slight problem. Usually on playback I get no dropped/delayed frames at all, but sometimes I can watch the exact same video again (that I've previously had no dropped/delayed frames) on a different day and receive a significant amount of delayed frames (usually ranging from around 70-130 I've noticed). Does anybody know why this is?

If it helps, here are my specs: Samsung NPC700G7C, 16.0GB RAM, Intel Core 17 3610QM @ 2.30GHz, GTX 675M
I'm also using Niyawa's Guide (http://myanimelist.net/forum/?topicid=516729) and use it exclusively for anime playback. I'm also using his 'highest settings' for the scaling algorithm's.

If anyone could help that would be great!
If you jump near a scene where the framedrop happens, it could be that the decoder queue doesn't fill up fast enough to not drop frames vs. having enough time if you watch the whole episode. I solved nearly all my buffering problems with LAV by just increasing the cpu queue to 64. I'm saying "problems with LAV" because on my test files I get no frame drops with haali, but I do with LAV. So it might be the same for you, I already notified nevcariel about it.

cyberbeing
4th June 2013, 23:07
So I don't see any problem with a large subtitle queue.
It's helpful to layer & stagger even different types of CPU queues in my experience. With the first/top queue in a display chain being the largest, while the ones which follow being progressively smaller but with higher CPU thread priority than the prior queues in an attempt to ensure they stay full in real-time under heavy load. The logic is that the largest fast-filling queue have enough of a buffer to prevent the slower-filling queues below from emptying below 100% full, if you temporarily become bottlenecked.

Though my main concern that I thought you'd catch on to, was cases where you need to re-request and re-alphablend your entire subtitle queue instantly because of that change you made in 0.86.2 to decrease update delay on resolution change. I already saw this as barely acceptable with a CPU queue of 24. But now with a queue of 128, I end up with ~80 dropped frames (i5-3570K @4.4Ghz) as the subtitle queue attempts to refill, which could take a couple seconds if something computationally heavy is being displayed for the entire queue size. It would only be worse with slower CPUs. With a smaller queue, this effect would be minimized or eliminated. If you don't want to separate the CPU and Subtitle queues, maybe you should consider expanding the "delay playback" option to wait for subtitle queue to be completely full for "playback start", "seek", and "window resizing".

IMHO, you need to make one change or the other, otherwise user experience will suffer with large CPU queue + Subtitle queue size.

TheShadowRunner
5th June 2013, 00:15
Hi madshi,
A quick bug report (not due to this new build, as I tested with 0.86.1):
madvr has troubles rendering videos encoded with Cinepak/CVID, the display is all screwed up.
A sample file: here (http://videoff7.free.fr/cvid_sample.avi).
In the exact same graph, replacing madvr by the VMRs or EVR solves the issue.
Unrelatedly, now on to test 0.86.2, thanks for this new build!

Edit: same bug with 0.86.2.

digitech
5th June 2013, 00:25
Madshi,

any idea why I get a black screen when trying to play some files? If I switch to exclusive mode it says the refresh rate is 0 Hz. Ctrl-J in windowed mode doesn't display...

I've had this problem for a long time, think it might have appeared when switching to Win8. My laptop display is capable of 60/120Hz. Using AMD graphics and I've tried resetting all settings to default.

You've looked at a debug log once but couldn't find anything, could the 0 Hz thing be a clue?

Grateful for any help...
Just to make sure... check if you are having another instance of your same video player running in the background, it has happened to me more than once that i already was having two mpc running at the same time thinking i was able to close the first one correctly, then a blank screen appears when i accidentally open the second time the same player and left the first one running, i hope you can understand my lingo-english.

leeperry
5th June 2013, 02:08
nice, :thanks: for the new build!

but if PS scripts are limited to TV range in MPC by design, then how come this script (http://pastebin.com/fwxh3EXB) meant to show any pixel being BTB even works :confused:

and I guess PS scripts applied on 0-255 source files(FRAPS for instance) will be a no-go as well :o