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

QBhd
2nd July 2013, 03:12
@ 6233638 .... LOL it wasn't a typo, but you did mis-read what I said. All other tests led me to believe it was NOT 4:4:4 and this test clearly shows that my guess was correct. This test is very clear and very easy to interpret. Again thanks for this image!

QB

Q-the-STORM
2nd July 2013, 03:55
PC/Game mode. (4:4:4)
http://www.abload.de/img/_dsc30695esoj.jpg

And Cinema mode. (4:2:2)
http://www.abload.de/img/_dsc30682ms0w.jpg


thank you very much for this.... "roughly the same magenta color" is not really a very specific description, and what a "obvious difference" and a "subtle difference" is, is very subjective....
your pictures make it clear, I do have 4:4:4...

rurifan
2nd July 2013, 04:30
When you are looking at the pattern normally, there is a slight difference between both halves in PC/Game mode (4:4:4) but that is to be expected.
The difference with 4:2:2 chroma should be an obvious one, as the photos illustrate.

Is there a reason to use that line pattern with the semi-confusing description (it only makes sense once you've seen it) rather than a circle test like this one (http://i.imgur.com/gTsKnxk.png)?

I was thinking maybe madshi ought to ship a test pattern with madvr so normal people will know to fiddle their HDTV settings.

ryrynz
2nd July 2013, 07:39
I'm very :confused: as to the problem.

I implied you should try Fullscreen Exclusive, also have you tried Windowed overlay?

baii
2nd July 2013, 08:31
Sorry for another video card related question

Would gddr3 vs gddr5 vram have any impact on madvr performance, specifically looking at the 6650m vs 6750m.

nevcairiel
2nd July 2013, 08:44
Would gddr3 vs gddr5 vram have any impact on madvr performance, specifically looking at the 6650m vs 6750m.

Yes, quite a bit even. GDDR5 can be much faster on memory heavy operations.

Qaq
2nd July 2013, 08:56
Is it normal for madVR to only detect one of my two connected and identical make/model monitors? I only see one device in madVR's device list...
I tried to complain on this and was told "buggy drivers".

berga.d
2nd July 2013, 09:44
Hi madshi, I'm testing madVR under Win 8.1. It seems I found a problem with the new per-screen dpi setting that's new in 8.1: it causes madVR to stay in "windowed" mode even at fullscreen. Win 8.1 defaults to a different dpi for each screen connected. It sets the system dpi to the one of the main screen at boot time, and then it scales through dwm any app that doesn't use the new dpi api.
Thanks for your work

huhn
2nd July 2013, 09:46
What is your flush setting? If you turn off all of them, what rendering time does it show? With 120Hz output mode, it is obviously that the rendering time needs be less than 8.333 ms -- usually much safe with the value near 5 ~ 6ms.

How about the case with 60Hz output mode?

it doesn't need to be below 8.33 ms 17 ms is ok the source is 48 fps not 120 fps. the peak of ~25 ms is the problem.


Okay, setting CPU queue to 128 helped - at one point the queue fell to 40/128
All the points were playback would "hang" had this problem (though none that badly).

the clip you are using it not an normal clip so i take it back your cpu is a problem too. as long as you can't make the cpu queue stable madvr will not run stable.


you can try to restart the driver that helps me alot with empty backbuffers.

open taskmanager search for ccc.exe kill it and open a new catalyst control center.

but i think the real problem is the vram speed.

chano22000
2nd July 2013, 11:18
Dear 6233638

Thank you for your time and answser http://forum.doom9.org/showpost.php?p=1634859&postcount=19374

Kind regards.

pie1394
2nd July 2013, 15:29
it doesn't need to be below 8.33 ms 17 ms is ok the source is 48 fps not 120 fps. the peak of ~25 ms is the problem.


madshi, is this true when the "smooth motion" option is on?

huhn
2nd July 2013, 20:17
just try it out:

http://s3.imgimg.de/uploads/test15806196png.png

Asmodian
2nd July 2013, 21:11
As an aside, I don't know why madVR only shows one device in the devices list. [...] Also, how can I apply different 3DLUTs to both monitors? I tried to add the device within madVR but that doesn't work with the second display either.

I tried to complain on this and was told "buggy drivers".

I use CRU to change the names of the identical monitors. I just added a -1, -2, -3 to the end of the names and MadVR sees three different monitors now. For some reason resolutions added with CRU stopped working (they do not show up at all) but the name change still works, nvidia+Win8.

dansrfe
2nd July 2013, 22:12
I use CRU to change the names of the identical monitors. I just added a -1, -2, -3 to the end of the names and MadVR sees three different monitors now. For some reason resolutions added with CRU stopped working (they do not show up at all) but the name change still works, nvidia+Win8.

Wow, I used CRU a while back but didn't think to use it for this. I straightened out all the custom refresh rates and renamed the monitors just like you suggested with -1, -2. I removed and disabled the custom resolutions in nvidia cpl as well. Now both monitors show up distinctly in madVR devices list and nvidia cpl shows the custom resolutions set in CRU as native resolutions. Thanks!

karamancho
2nd July 2013, 22:46
while we're at it, my laptops 'generic pnp display' is shown as 'Epson DM110141W1 #-5JfŚÜ' in madvr. any ideas why?

YxP
3rd July 2013, 10:20
Is there a reason to use that line pattern with the semi-confusing description (it only makes sense once you've seen it) rather than a circle test like this one (http://i.imgur.com/gTsKnxk.png)?

Something to do with gamma calibration as well? http://www.phototopics.net/ptgamma.gif

AngelGraves13
3rd July 2013, 15:16
madshi, can you please add chapter markers in the seek bar for exclusive mode similar to how MPC HC/BE does it?

konakona
3rd July 2013, 22:19
I've got a question about connecting tv to my htpc,namely 40ex500 bravia tv to an nvidia gtx660.
From what I've heard,nvidia cards automatically do limited range rgb from hdmi output,unless you change that in registry. I can also switch from RGB to YCbCr from nvidia control panel.
So:

-if i connected it "as is",meaning limited range rgb,should i tell madvr that my tv excepts limited or full range? (blacks looks really washed out when i tell madvr that tv is expecting limited range;from what i understand madvr first converts full to limited,and then nvidia converts from limited to even more limited range)

-if connected as full range,should i tell madvr that my screen expects pc or video levels?

-last,but not least-should i use the limited/full range rgb,or the YCbCr444 output? (logically assuming,YCbCr is unwanted because of double colour space conversions)

turbojet
3rd July 2013, 22:36
Any suggestions how to fix empty backbuffer in window mode with frc on and any external program using gpu (changing windows, opening new chrome/firefox tab, etc.)?

Changing flush settings, resizers, or queue sizes had no effect. Disabling use external device for presentation made it worse by leaving backbuffer always empty. Disabling frc, using overlay, or using fse eliminated it but want to use window mode for multple players and taskbar preview.

This happens with nvidia gts250, 9500gt, hd2000. Other queues stay full. CPU can be as low as 5%, GPU as low as 15% when it's happening. Maybe it's a bug?

mindbomb
3rd July 2013, 23:06
amd and nvidia drivers have an option in the video section to choose 0-255 or 16-235 for dynamic range.
I assume this is for the evr renderer and has no effect on madvr, right?

QBhd
4th July 2013, 04:56
amd and nvidia drivers have an option in the video section to choose 0-255 or 16-235 for dynamic range.
I assume this is for the evr renderer and has no effect on madvr, right?

Correct as far as I know!

QB

namaiki
4th July 2013, 06:26
Correct as far as I know!

QB

I think it may have an effect on the DXVA resizers and on the deinterlacing, but then madVR checks the value at the start and adjusts for it.

gendouhydeist
4th July 2013, 16:13
Hi guys is there anyway to change resolution when playing a video with madVR? cause i set mine to 1440x900 and I wanted it to change resolution to 1920x1200 when playing a video so it won't downscaled videos and return to default resolution after using it. Also I've read somewhere here in forum that you can force madVR to use specified settings in txt format by putting it inside the madVR folder I just don't know where to find it.

Moragg
4th July 2013, 19:20
I implied you should try Fullscreen Exclusive, also have you tried Windowed overlay?

Windows Overlay doesn't work with my GPU.

I tried Fullscreen Exclusive, it worked, but not by utilising the full GPU - it peaked at 50%. Not sure if this means madvr wasn't using smooth motion (FRAPS says with/without SM exclusive forces 120Hz).

Also: will HEVC H.265 increase demand on CPU/GPU/both and by how much?

michkrol
4th July 2013, 19:26
Hi guys is there anyway to change resolution when playing a video with madVR? cause i set mine to 1440x900 and I wanted it to change resolution to 1920x1200 when playing a video so it won't downscaled videos and return to default resolution after using it.

Not sure why you would want to not use native resolution (do you have a CRT?), but Windows 7 (and newer) has quite good scaling options, if the text and buttons are to small for you, so give them a try.

As for your question: go to madVR settings, select: devices -> your display -> display modes
For your case probably best to select both:
switch to matching mode ... when player goes fullscreen;
restore original mode ... when player leaves fullscreen;
be sure to input desired mode(s) below, in your case enter only the 1200p60(?) resolution of course, apply settings and you're done.

Also I've read somewhere here in forum that you can force madVR to use specified settings in txt format by putting it inside the madVR folder I just don't know where to find it.
I don't remember anything like that, so can't help you here. It is possible to add certain tags to videos filenames, but it might be not what you're looking for.

huhn
4th July 2013, 19:38
Windows Overlay doesn't work with my GPU.

I tried Fullscreen Exclusive, it worked, but not by utilising the full GPU - it peaked at 50%. Not sure if this means madvr wasn't using smooth motion (FRAPS says with/without SM exclusive forces 120Hz).

Also: will HEVC H.265 increase demand on CPU/GPU/both and by how much?



h265 only affect the cpu. there aren't any good decoder yet so who knows.

madvr only cares about fps chroma subsampling and resolution. so xvid vp7-9 h264 all that doesn't matter.

mindbomb
5th July 2013, 01:39
blacks looks really washed out when i tell madvr that tv is expecting limited range;from what i understand madvr first converts full to limited,and then nvidia converts from limited to even more limited range


Oh, is this true? That seems pretty weird that you can't just tell madvr to output limited range in this scenario.

sgraves66
5th July 2013, 02:49
I'm trying to use madVR for full-screen only and write directly to an OpenGL surface during windowed-mode. To accomplish this, I'm simply hiding the madVR window when necessary. CPU usage is a bit higher, but it's quite usable in general. Unlike previous designs, I don't create madVR as a child of any top-level window. I'm experiencing issues, such as the renderer window not fully filling the screen (intermittent) and switching out of FSE, when enabled, doesn't retain hidden status (seems like after the 3 second delay, visibility returns). I have a dedicated message pump in an isolated thread that's used only by DirectShow. I thought this would be the most efficient way to separate OpenGL from DirectShow/Win32 for smooth playback.

Do you recommend always specifying a parent window, especially when FSE is enabled? It wouldn't be a big change, but was hoping to alleviate the need for anything other than a notification window for events.

madshi
5th July 2013, 10:41
What are the pros/cons of disabling "use inverse telecine" in the nvidia control panel? With madvr now having its own version of ivtc should i just leave the option unchecked?
madVR's IVTC needs to be manually enabled. Or you can leave it on all the time, but then you may have to manually disable it for true video content. If you can live with having to manually switch madVR's IVTC algorithm on/off once in a while then you don't need NVidia's IVTC. If you prefer to have everything done automatically, you can disable madVR's IVTC algorithm and use DXVA deinterlacing instead. Then it would make sense to turn NVidia's "inverse telecine" on. The disadvantage is that NVidia doesn't decimate. So 60i is converted to 60p instead of 24p. So you'll still have the 3:2 pulldown judder. This problem does not happen with madVR's IVTC algorith, which properly decimates to 24p.

Leave it checked. The pro is that the nvidia one works automatically. The con is that if you are using madvr to change display modes (1080p23 for example), madvr won't know that ivtc is being done and will choose the wrong refresh rate.
More or less correct. However, the problem is not what madVR knows or doesn't know. The problem is that DXVA can't really do decimation, technically.

GPU usage isn't going above 57% yet I still get dropped frames. This is Jinc3+AR+SmoothMotion

Upping it to Jinc8 AR uses the whole 100%, so why can't it use 100% at Jinc3 to not drop frames?
Your GPU and backbuffer queues are rather small. Try increasing them. Especially SmoothMotion benefits from larger queues.

Other users have found that the backbuffer queue often gets empty (which seems to be the main cause of trouble for you, too) if you run other software in the background which also uses the GPU. So try closing all software that might eventually talk to the GPU or use GPU power, even your browser. Does that "fix" the problem?

I turned fullscreen exclusive off since I didn't like it.
Well, I can understand that, but then FSE mode really does produce the most reliable playback for most users.

I tried Fullscreen Exclusive, it worked, but not by utilising the full GPU - it peaked at 50%. Not sure if this means madvr wasn't using smooth motion (FRAPS says with/without SM exclusive forces 120Hz).
Did you have any frame drops? If not, then probably 50% was simply enough to perform all the rendering...

Is it normal for madVR to only detect one of my two connected and identical make/model monitors? I only see one device in madVR's device list...
Hmmmm... Two identical monitors? That's mean... :o Do they have an EDID block? Feel free to create a bug entry for this in the madVR bug tracker. I might have to fix this blindly, though, because I don't have 2 identical displays to test with...

Hi madshi, I'm testing madVR under Win 8.1. It seems I found a problem with the new per-screen dpi setting that's new in 8.1
Please retest this when 8.1 goes official. If the problem then still occurs, please create a bug entry in the madVR bug tracker. Thanks.

it doesn't need to be below 8.33 ms 17 ms is ok the source is 48 fps not 120 fps. the peak of ~25 ms is the problem.
Peaks don't have to be a problem as long as the queues stay full.

madshi, is this true when the "smooth motion" option is on?
Smooth motion does not render at the refresh rate. It renders only so many frames as necessary to achieve smooth motion. So you don't necessarily have to be under 1000/refreshRate milliseconds. There will be a certain threshold you need to stay under, but it's not as easy as 1000/refreshRate, at least not if the movie framerate is much lower than that...

while we're at it, my laptops 'generic pnp display' is shown as 'Epson DM110141W1 #-5JfŚÜ' in madvr. any ideas why?
That's probably what the EDID says.

madshi, can you please add chapter markers in the seek bar for exclusive mode similar to how MPC HC/BE does it?
Not anytime soon, sorry. Feel free to ask again after madVR has reached v1.0.

I've got a question about connecting tv to my htpc,namely 40ex500 bravia tv to an nvidia gtx660.
From what I've heard,nvidia cards automatically do limited range rgb from hdmi output,unless you change that in registry. I can also switch from RGB to YCbCr from nvidia control panel.
So:

-if i connected it "as is",meaning limited range rgb,should i tell madvr that my tv excepts limited or full range? (blacks looks really washed out when i tell madvr that tv is expecting limited range;from what i understand madvr first converts full to limited,and then nvidia converts from limited to even more limited range)

-if connected as full range,should i tell madvr that my screen expects pc or video levels?

-last,but not least-should i use the limited/full range rgb,or the YCbCr444 output? (logically assuming,YCbCr is unwanted because of double colour space conversions)
My recommendation is always to set configure your display so that it expects PC levels (full range). This has 2 important benefits: (1) Levels will be correct for everything, including games, photos, applications and video playback. (2) There should be no problem with image quality.

If your display can't do PC levels, or if you have good reasons for not using this solution, then you have 2 alternative solutions:

(a) Either set the GPU to limited range and madVR to PC levels. This means madVR will render to PC levels and the GPU will afterwards stretch the madVR output (and desktop, games, applications, photos etc) to limited range. Using this approach still has the benefit of having correct levels everywhere. But image quality might suffer because the GPU usually uses a rather bad stretching algorithm, which can introduce banding artifacts.

(b) Or set the GPU to fullrange and madVR to TV levels. This will result in good image quality (no artifacts) and correct levels for video playback. However, desktop, games, applications and photos will have wrong levels.

Oh, is this true? That seems pretty weird that you can't just tell madvr to output limited range in this scenario.
It's not weird at all. If you set the GPU to limited range, it will take the output of every application (including madVR, games and desktop) and stretch it behind the back of those applications from 0-255 to 16-235. If you tell madVR to render in limited range, then if the GPU does another 0-255 to 16-235 stretch, you'll end up with a double stretch.

amd and nvidia drivers have an option in the video section to choose 0-255 or 16-235 for dynamic range.
I assume this is for the evr renderer and has no effect on madvr, right?
I think it may have an effect on the DXVA resizers and on the deinterlacing, but then madVR checks the value at the start and adjusts for it.
Correct.

Any suggestions how to fix empty backbuffer in window mode with frc on and any external program using gpu (changing windows, opening new chrome/firefox tab, etc.)?
Well, if there's a 100% reliable way to reproduce this, and if the backbuffer queue is really the only problem, then you can create a bug entry in the madVR bug tracker for this. I can only do anything (if at all) if I can reproduce it, though. So do your best to create a good step-by-step guide that allows me to reproduce the problem on my PC. I can't promise that there is anything I can do about it, though. It must just be a limitation of normal windowed mode. That's why I added Overlay and FSE modes...

I suppose you did try to use a larger backbuffer queue and it didn't help?

I'm trying to use madVR for full-screen only and write directly to an OpenGL surface during windowed-mode. To accomplish this, I'm simply hiding the madVR window when necessary. CPU usage is a bit higher, but it's quite usable in general. Unlike previous designs, I don't create madVR as a child of any top-level window. I'm experiencing issues, such as the renderer window not fully filling the screen (intermittent) and switching out of FSE, when enabled, doesn't retain hidden status (seems like after the 3 second delay, visibility returns). I have a dedicated message pump in an isolated thread that's used only by DirectShow. I thought this would be the most efficient way to separate OpenGL from DirectShow/Win32 for smooth playback.

Do you recommend always specifying a parent window, especially when FSE is enabled? It wouldn't be a big change, but was hoping to alleviate the need for anything other than a notification window for events.
That sounds like a weird way to use madVR. I don't really know what to recommend here. The renderer window not fully filling the screen sounds like something that you should be able to fix yourself by using IVideoWindow::SetWindowPosition()? Not sure about the hidden status. In the worst case I guess you could use Detours (or some other API hooking solution) to hook ShowWindow() and related APIs to block madVR from making itself visible again? To be honest, I'm not really sure who makes the madVR window visible again, could also be Direct3D or the MS base classes on which madVR is built. Don't really know...

madshi
5th July 2013, 10:41
madVR v0.86.7 released

http://madshi.net/madVR.zip

* added "madTPG.exe" test pattern generator for calibration purposes
* added support for combined 3dlut/VideoLUT file format ("collink -H")
* option "Disable GPU gamma ramps" should now work in windowed mode, too
* fixed: #30: ZoomPlayer got stuck in 'on top' mode after leaving FSE
* fixed: #90: wrong refresh rate (23/24, 59/60) in win8 in FSE mode
* fixed: #91: added madVR version information to settings dialog
* fixed: #92: shaders were not applied to XySubFilter subtitles
* fixed: #93: overlay mode ignored ICC VideoLUTs
* fixed: pixel shader VideoLUT implementation didn't use linear filtering
* fixed: crash when display mode is changed externally (DXVA processing)
* XySubFilter: improved subtitle upload performance
* XySubFilter: optimized downscaling of bitmap based subtitles
* XySubFilter: madVR consumer now reports "preferTvLevels = true"
* XySubFilter: improved performance, if provider sends TV levels subtitles

Vyral
5th July 2013, 11:30
Thanks madshi. I'll try this new version when I get home.
I'm really interested in "Disable GPU gamma ramps" in windowed mode.

ryrynz
5th July 2013, 12:14
Switching between windowed mode (overlay or standard) and FSE...(or maybe it's just launching FSE mode) now takes a good couple of seconds with the whole window being black in the meantime, any chance of speeding back up to the near instantaneous 086.6 levels?

kasper93
5th July 2013, 12:29
* added support for combined 3dlut/VideoLUT file format ("collink -H")

Is it new feature? Current collink doesn't support "-H". To link .cal file it uses "-a". But probably it's new and Graeme hasn't upload new builds yet?

Thanks for new release.

dansrfe
5th July 2013, 12:41
Switching between windowed mode (overlay or standard) and FSE...(or maybe it's just launching FSE mode) now takes a good couple of seconds with the whole window being black in the meantime, any chance of speeding back up to the near instantaneous 086.6 levels?

I can't confirm this behavior.

@madshi
Overlay mode with ICC VideoLUT works now! Oddly enough windowed mode started working after I fixed the buffer settings last week but overlay feels a bit smoother for some reason so I'll stick with it. Quick question, is it normal for overlay to have some lag while resizing and tearing when moving the window around? I assume so but just thought I'd ask.

I'm not sure if the monitors have an EDID block but when I ran CRU I saw that both monitors had identical names in addition to "Product ID"s so I just appended '-1' and '-2' based on the relative location of the monitors from my perspective. After rebooting madVR showed two devices with those names.

Thanks for the fixes and new features in v0.86.7!

ryrynz
5th July 2013, 12:59
I can't confirm this behavior.


I can't either on the HTPC, guess I'll be digging deeper, probably graphics driver related again.. The drawbacks of having the latest and fastest performing driver, luckily it ain't my main playback machine.

michkrol
5th July 2013, 13:34
Switching between windowed mode (overlay or standard) and FSE...(or maybe it's just launching FSE mode) now takes a good couple of seconds with the whole window being black in the meantime, any chance of speeding back up to the near instantaneous 086.6 levels?

Can confirm. Going to FSE takes 2-3 seconds, leaving FSE is instantaneous. I'm using Intel HD4000 with drivers v15.31.9.3165 (newest "official") on Windows 7 x64 and MPC-HC (x86 v1.7.0.7572 (a2432e1)). I find it only slightly annoying, but hope the info helps find the cause.

Everything else works as expected. Thanks for the new version!

dansrfe
5th July 2013, 13:49
Can confirm. Going to FSE takes 2-3 seconds, leaving FSE is instantaneous. I'm using Intel HD4000 with drivers v15.31.9.3165 (newest "official") on Windows 7 x64 and MPC-HC (x86 v1.7.0.7572 (a2432e1)). I find it only slightly annoying, but hope the info helps find the cause.

Everything else works as expected. Thanks for the new version!

Are you sure you don't have the "delay switch to exclusive mode by 3 seconds" checkbox in exclusive mode settings checked?

ryrynz
5th July 2013, 14:01
He doesn't, it's the same issue I posted about, I'm using 15.31.12.64.3204 on the HD 4000.

bugmen0t
5th July 2013, 14:45
For you guys with the delay when switching to FSE:
Can it be that the monitor display rate changes when switching from windowed mode (e.g. 23 Hz) to FSE (e.g. switching to 24 Hz then)?

ryrynz
5th July 2013, 14:50
Nope, from what I can tell It's just the fact it's switching to exclusive, tried a bunch of options with no effect. It's an Intel driver issue.

madshi
5th July 2013, 14:58
probably it's new and Graeme hasn't upload new builds yet?
Correct.

Quick question, is it normal for overlay to have some lag while resizing and tearing when moving the window around?
Yes, unfortunately.

I'm not sure if the monitors have an EDID block but when I ran CRU I saw that both monitors had identical names in addition to "Product ID"s so I just appended '-1' and '-2' based on the relative location of the monitors from my perspective. After rebooting madVR showed two devices with those names.
Hmmmm... I'm not totally sure I understand what CRU does and how it affects madVR. In any case, if the two displays are really identical, do you actually need different settings in the madVR device tab? Shouldn't identical displays also run fine with identical settings?

My problem is this: The current madVR device logic tries to detect the real display, not just "monitor 1" or "monitor 2". Let's say you have 2 different monitors and setup both in madVR. Now let's say you switch them around. The current madVR version doesn't care about which display is connected to which GPU output, so if you switch your two *different* displays around, madVR will still apply the correct settings to the correct display with no changes to the settings needed.

Now having two identical displays makes this really difficult for madVR because both look identical to madVR. E.g. imagine you switch them around: madVR would never be able to notice! That somehow doesn't fully match my current device setup logic.

Any thoughts on this anyone?

Nope, from what I can tell It's just the fact it's switching to exclusive, tried a bunch of options with no effect. It's an Intel driver issue.
Please try disabling the refresh rate changer, just to be safe. The only change in the latest madVR build which I find likely to be related to this is that I've added a hack to make refresh rate changing work properly when entering FSE mode. So I really do wonder whether that's what's causing the delay...

And this definitely doesn't occur in v0.86.6, correct?

ryrynz
5th July 2013, 15:19
Please try disabling the refresh rate changer, just to be safe.
And this definitely doesn't occur in v0.86.6, correct?

Enabled or disabled, same deal.
Definitely no issue with 0.86.6.

michkrol
5th July 2013, 15:38
Correct.
Please try disabling the refresh rate changer, just to be safe.

It doesn't happen with 0.86.6, just double-checked. Disabling the display mode switcher doesn't help.

Checking the mode switcher changes, I've found how to get back the old behavior for one playback (active instance of madVR?), might help in debugging, do the following:

Enable diplay mode changer - set to change while going and leaving fullscreen
Enter a mode that would force switch as the only available
Go fullscreen - the refresh mode changes (as it should)
Leave fullscreen - the mode changes back (as it should)
Disable mode switcher
Go fullscreen (exclusive) - the switch is instantaneous as in v0.86.6

This works until the player/madVR is restarted. Hope it helps somehow.

andybkma
5th July 2013, 15:47
Well good news & bad news. Good news is I can confirm that "fixed: #30: ZoomPlayer got stuck in 'on top' mode after leaving FSE" seems to be working. Bad news is that I also have the delay now when going into FSE (not out of FSE). I have never had the refresh changer turned on and I am using the exact same settings as 86.5. So definitley something was introduced into 86.7 to cause the delay.

But going back to the good news... thanks for fixing the Bug 30 Zoom Player issue :-)

Moragg
5th July 2013, 15:55
Okay, so I think I've found the problem.

In FSE turning off the "Present Several Frames In Advance" massively screws up playback - dropped frames, at scene changes the last one "ghosts" a few seconds into the next scene, the image bounces all the time, and is generally unwatchable.
Turn it on however and playback is smooth as butter.

No other programs open, GPU load remains constant at 50%. I'm not sure how presenting a few frames early could have such a massive effect on performance.
With 1 frame in advance I get 12 frame drops per second.
With 2 in advance this drops to 0.
This is a 48fps video and my screen is 120Hz, if that makes any difference.
Also, without FSE I get ~16 drops per second - and playback is nowhere near as bad as when I turn off "present frames in advance" in FSE, just normal dropped frames.

madshi
5th July 2013, 16:03
Ok, will have to check whether I can isolate the problem with the FSE switch delay somehow.

In FSE turning off the "Present Several Frames In Advance" massively screws up playback - dropped frames, at scene changes the last one "ghosts" a few seconds into the next scene, the image bounces all the time, and is generally unwatchable.
Turn it on however and playback is smooth as butter.
Well, by turning "Present Several Frames in Advance" off you're practically going back to a rather old logic which madVR had used a long time ago. Some people are still using it because for some reason it works better for them. But as you found out yourself, having "Present Several Frames in Advance" turned on with a reasonably high number of frames produces better results for most users - especially on OSs newer than XP.

No other programs open, GPU load remains constant at 50%. I'm not sure how presenting a few frames early could have such a massive effect on performance.
With 1 frame in advance I get 12 frame drops per second.
With 2 in advance this drops to 0.
This is a 48fps video and my screen is 120Hz, if that makes any difference.
Also, without FSE I get ~16 drops per second - and playback is nowhere near as bad as when I turn off "present frames in advance" in FSE, just normal dropped frames.
Well, there you have it: FSE simply is the most reliable playback method. There's a reason why I have it enabled by default in the madVR settings - even though it comes with a number of usability disadvantages.

If your GPU supported Overlay mode, that would have been another thing worth trying. But if normal windowed mode simply doesn't run well on your PC (for whatever reason) you may have no other choice than to use FSE mode.

sgraves66
5th July 2013, 16:27
That sounds like a weird way to use madVR. I don't really know what to recommend here. The renderer window not fully filling the screen sounds like something that you should be able to fix yourself by using IVideoWindow::SetWindowPosition()? Not sure about the hidden status. In the worst case I guess you could use Detours (or some other API hooking solution) to hook ShowWindow() and related APIs to block madVR from making itself visible again? To be honest, I'm not really sure who makes the madVR window visible again, could also be Direct3D or the MS base classes on which madVR is built. Don't really know...

It's a bit odd, but I need a way to draw directly onto the video output in windowed-mode for OSD purposes and the UI is cross-platform, so no D3D for me. OpenGL surfaces also don't play nice with native child windows and they tend to disrupt the UI in general. ISampleGrabber is used for RGB24 capture until I have time to roll my own to convert NV12->RGB24 or perhaps implement a shader for NV12 conversion. IVideoWindow::SetWindowPosition() works intermittently, as well. Normal window positioning through IVideoWindow is just hit-or-miss for some reason and I assume it has something to do with the OpenGL rendering and event threads, but it honestly doesn't make a whole lot of sense to me. Specifying a parent window alleviates the issues. Thanks!

Q-the-STORM
5th July 2013, 21:24
Hmmmm... I'm not totally sure I understand what CRU does and how it affects madVR.

CRU is an easy way to do EDID overrides....
So if he can change the product ID with CRU, the monitors don't have an EDID block...

like you said, madVR wouldn't be able to notice if you switch identical monitors around, but theoretically madVR should be able to detect both displays... maybe it just ignores monitors that have the same Product ID, because like you said, they should run with the same settings....

though for calibration it would be good to be able to put in a different 3DLUT, since displays always differ...

But I guess atm you can already accomplish this by changing the product ID with CRU or any other EDID override...

turbojet
5th July 2013, 21:56
Well, if there's a 100% reliable way to reproduce this, and if the backbuffer queue is really the only problem, then you can create a bug entry in the madVR bug tracker for this. I can only do anything (if at all) if I can reproduce it, though. So do your best to create a good step-by-step guide that allows me to reproduce the problem on my PC. I can't promise that there is anything I can do about it, though. It must just be a limitation of normal windowed mode. That's why I added Overlay and FSE modes...

I suppose you did try to use a larger backbuffer queue and it didn't help?


Can you try encoding a source that's decoded by cuvid or quicksync while playing a video with frc on? That's a pretty constant drop in frames for me but it may take a few minutes to start happening. Otherwise would a log while it's happening help?

Overlay and FSE have limitations that make it impossible to use in certain situations. Larger backbuffer queue quickly jumps from 7-8/8 to 0/8.

mindbomb
5th July 2013, 22:19
madVR's IVTC needs to be manually enabled. Or you can leave it on all the time, but then you may have to manually disable it for true video content. If you can live with having to manually switch madVR's IVTC algorithm on/off once in a while then you don't need NVidia's IVTC. If you prefer to have everything done automatically, you can disable madVR's IVTC algorithm and use DXVA deinterlacing instead. Then it would make sense to turn NVidia's "inverse telecine" on. The disadvantage is that NVidia doesn't decimate. So 60i is converted to 60p instead of 24p. So you'll still have the 3:2 pulldown judder. This problem does not happen with madVR's IVTC algorith, which properly decimates to 24p.


More or less correct. However, the problem is not what madVR knows or doesn't know. The problem is that DXVA can't really do decimation, technically.


wait, I've seen my fps go to 23.976 fps on telecined content without using madVR's film mode. I presumed this was the work of nvidia's ivtc, and subsequently had issues with judder in the sense that the refresh rate changer chose 59.94 because the source filter was reporting 29.97.