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

Hypernova
22nd June 2010, 10:36
@madshi Got it. My feedback on other setup is pretty boring though, since it's gonna be "smooth, no flushing required" :)

But if any tweak make thing worse I'll let you know. I'll keep posting about this dual monitor setup as well, but don't worry about replying to those if you think fixing it will make proper setup got worse.

Info
(1) ATi 5770
(2) Windows Server 2008 R2
(3) Aero on
(4) 2560x1600/60Hz + 1920x1080/24p
(5) Dual monitor setup. 1st on DisplayPort, 2nd on HDMI
(6) MPC-HC/No Reclock/PowerStrip

Shii
22nd June 2010, 11:17
madshi, how to make log and where logs stored? Didn`t find any way to do that.

leeperry
22nd June 2010, 12:48
how to make log and where logs stored?
use the debug build, it'll be stored on your desktop...or you can make a dummy logfile in the same folder as the mVR DLL and it'll be overwritten.
On a completely unrelated rant, Catalyst Control Center 10.6 is utterly horrible.
my brief ATi experience was just as lousy as can be...Sapphire that used speedstep on my HD2600XT, but set the 2D idle voltage too low making it crash from time to time...and those terrible drivers that need half a dozen TSR's w/ their sluggish VB-like GUI...getting a GF9600 became such a relief, plus CoreAVC CUDA is pretty good too :p

starla
22nd June 2010, 12:59
madVR does not use EVR at all. madVR behaves like a game, using pure Direct3D. madVR also decides which video frames will be shown at which vsync and the presentation is always done at (nearly) the same scanline. So the problem you're describing does not apply to madVR. Presentation is never done in such a way that it can land on "both sides of the correct v-sync". Of course there can be a bug in madVR's algorithm which decides which frame is shown at which vsync. But so far the logs I've seen look clean.

But what components provides the frames to madVR? EVR mixer I would assume? (EVR is more than just the renderer part.)

Let's assume that it is the EVR mixer that you are still relying on. What will happen when the frame sync (A/V clocks drifting apart) has been drifting away for almost one frame? There is still going to be that same uncertainty what v-sync the frame belongs to. There will be times when when v-sync and the audio renderer based reference clocks are generating different target v-sync and when audio clock fluctuates a bit (few ns would be enough) it could cause a series frames to be landing on random sides of the intended v-sync. The closer the A/V clocks are running in speed the longer uncertainty period the playback has (and 45 min to required 20 ms drift could cause with ease multiple seconds of constant judder).

Of course I could overlook some aspect of the issue, especially when I don't know the implementation details (which is a shame :D)

madshi
22nd June 2010, 13:01
madshi, how to make log and where logs stored? Didn`t find any way to do that.
Rename "madVR.ax" to "madVR [release].ax". Then rename "madVR [debug].ax" to "madVR.ax". Then reproduce the problem. Afterwards there should be a file named "madVR - log.txt" on your desktop. Zip the file and upload it somewhere (don't attach it to this forum). Thanks.

madshi
22nd June 2010, 13:09
But what components provides the frames to madVR? EVR mixer I would assume? (EVR is more than just the renderer part.)
No, the software decoder (e.g. CoreAVC) is directly connected to madVR. No part of VMR nor EVR is ever used. madVR does all the dirty work.

What will happen when the frame sync (A/V clocks drifting apart) has been drifting away for almost one frame? There is still going to be that same uncertainty what v-sync the frame belongs to. There will be times when when v-sync and the audio renderer based reference clocks are generating different target v-sync and when audio clock fluctuates a bit (few ns would be enough) it could cause a series frames to be landing on random sides of the intended v-sync.
Let's look at an example. Let's say the display is 50Hz and the movie is 25fps.

frame 50, optimal vsync 100.4 -> rounded 100
frame 51, optimal vsync 102.6 -> rounded 103
frame 52, optimal vsync 104.4 -> rounded 104

I guess that's what you mean, right? Most renderers would present these frames at vsync 100, 103 and 104. That would produce visible stuttering. madVR has a logic in it which makes sure that this doesn't happen. In the situation described above, madVR would present at vsyncs 100, 102 and 104.

Mark_A_W
22nd June 2010, 14:35
madshi, some very quick feedback on my system:

(1) GPU: ATI 2600XT
(2) OS: Windows W7 x64
(3) Movies: 1080p mkv files, 23.976 fps (obtained from blurays with eac3to)
(4) Display resolution + refresh rate: 1920x1080, 95.904hz Interlaced with PowerStrip
(5) Dual monitor setup, playing on secondary, Aero OFF
(6) Zoom Player
(7) Video decoder: ffdshow (VC1: wmv9), CoreAVC
(8) madVR 0.21, 3DLUT off.
(9) Reclock, no V-sync


0.21 with default settings is a complete mess. Dropped and delayed frames are going nuts, playback is horribly stutter.

Picking: High refresh rate model, selecting copy 1 backbuffer, and setting no. of backbuffers to 3, seems to restore playback similar to v0.18.


I'm not certain if other combos of settings work yet.

(What settings would give me the closest result in theory to v0.18?)

Thanks

Mark

6233638
22nd June 2010, 14:37
Had some time to do more testing now. 0.21 seems to perform worse overall.

I have a video clip that I test smoothness with, that is loaded from the MPC-HC favorites menu. It is static for a few seconds and then pans down which lets playback settle and then shows if it is stuttering. In 0.21 I need to start the video 3 or 4 times before it plays smoothly with any settings, in 0.19 it is smooth first time. This stutter does not show up as dropped/delayed frames or presentation glitches.

All render stats are worse in 0.21, and "copy 1 backbuffer at a time" always stutters when enabled. No dropped/delayed/glitches recorded when this happens.

"upload frames in render thread" seems like it might perform slightly better than without, but it is minor at best. (1ms render)


I thought that switching to the new Nvidia 257.21 WHQL drivers had maybe lowered performance because I am now seeing higher render/present times using the supplied 0.19.ax than when I first tested 0.19, but reverting to 257.15 has not changed it. Average render/present are up from around 20/0.2x to 25/0.6x and I can't explain why. Have checked all Nvidia settings and nothing changes it.

madshi
22nd June 2010, 14:53
0.21 with default settings is a complete mess. Dropped and delayed frames are going nuts, playback is horribly stutter.

Picking: High refresh rate model, selecting copy 1 backbuffer, and setting no. of backbuffers to 3, seems to restore playback similar to v0.18.

I'm not certain if other combos of settings work yet.

(What settings would give me the closest result in theory to v0.18?)
The following settings should be pretty much identical to what v0.18 was doing:

upload frames in render thread: off
copy only 1 backbuffer at a time: off
timing model: normal
no of backbuffers: 3

It seems to me that the key problem in your setup is the number of backbuffers. It seems that 3 works well for you and 8 does not. That's kinda weird, but well, why not. I'd suggest that you start with the settings above and then switch through all tweaking parameters manually, changing only one at a time, to find which improves things and which makes them worse.

Had some time to do more testing now. 0.21 seems to perform worse overall.

I have a video clip that I test smoothness with, that is loaded from the MPC-HC favorites menu. It is static for a few seconds and then pans down which lets playback settle and then shows if it is stuttering. In 0.21 I need to start the video 3 or 4 times before it plays smoothly with any settings, in 0.19 it is smooth first time. This stutter does not show up as dropped/delayed frames or presentation glitches.
Try these settings:

upload frames in render thread: off
copy only 1 backbuffer at a time: off
timing model: high refresh rate
no of backbuffers: 8

These settings should make 0.21 perform *exactly* like 0.19 did. Then go from there and play with one tweak option at a time.

All render stats are worse in 0.21, and "copy 1 backbuffer at a time" always stutters when enabled. No dropped/delayed/glitches recorded when this happens.

"upload frames in render thread" seems like it might perform slightly better than without, but it is minor at best. (1ms render)
Please don't look at stats so much. Instead trust your eyes. Ok, dropped/delayed frames is a rather reliable statistic. But rendering/presentation times are not.

BTW, I have virtually the same setup as you (24Hz instead of 48Hz, though), and for me the best options are the default options, but with modified flush settings, and with "aero" timing model. I think not doing any flush, or only doing a simple flush (no wait) after last render step worked best for me, IIRC.

6233638
22nd June 2010, 15:52
It looks like the main performance discrepancy was the timing mode. I assumed normal was the old mode rather than high refresh.

Testing number of backbuffers with lanczos3 and dropped/delayed frame # and 6 seems optimal with this card for some reason. With 8 I get 45 dropped frames in one scene, 35 with 1 & 6, and 40 with all other settings. Obviously 1 is a poor choice. I would have thought you'd want as many as possible but the results are consistent.

Normally when rendering in bicubic75 it says 5-7/8 backbuffer queue so maybe this is why?


I know you say to go by eye, but it's very hard to objectively judge how smoothness is affected by eye. It's easy to see when it isn't smooth, but tough to decide what performs better when using something the card can't handle like lanczos in my case. Using high refresh again it is 100% smooth with bicubic75 no matter what.

I want to help improve performance further, but numbers are important for that I feel.

Shii
22nd June 2010, 16:36
http://www.mediafire.com/file/wmctlodzmmy/madVR_1080i_720p_logs.zip here is my logs.
madVR - log_monitor_ZoomPlayer.txt taken from my main monitor and works fine. Resolution 1440x900x32bit@72hz
madVR - log_TV_720p_ZoomPlayer.txt taken from my TV and also works. Resolution 1200x670x32bit@50hz
madVR - log_TV_1080i_ZoomPlayer.txt taken from my TV and causes freeze at startup. Closed player by Ctrl+Alt+Del. Resolution 1800x1012x32bit@25i hz

madshi
22nd June 2010, 17:07
It looks like the main performance discrepancy was the timing mode. I assumed normal was the old mode rather than high refresh.
The "normal" and "high refresh rate" modes are identical, except if your display refresh mode is more than 2.3x has high as the source frame rate. Your signature says you're using 48Hz. That's not more than 2.3x, so in your case "normal" and "high refresh rate" should be identical. Were you using "aero" timing mode before?

Testing number of backbuffers with lanczos3 and dropped/delayed frame # and 6 seems optimal with this card for some reason. With 8 I get 45 dropped frames in one scene, 35 with 1 & 6, and 40 with all other settings. Obviously 1 is a poor choice. I would have thought you'd want as many as possible but the results are consistent.
Funny results! :)

I know you say to go by eye, but it's very hard to objectively judge how smoothness is affected by eye. It's easy to see when it isn't smooth, but tough to decide what performs better when using something the card can't handle like lanczos in my case. Using high refresh again it is 100% smooth with bicubic75 no matter what.

I want to help improve performance further, but numbers are important for that I feel.
Personally, I'm trying to up scaling settings by one to find out which settings work best. E.g. if you get smooth playback with Bicubic Luma/Chroma scaling, try setting Chroma upsampling one level higher. If you can get that smooth, try upping Luma scaling one higher. FYI, the GPU power needed for the scaling algorithms are rated like this:

- low: nearest neighbor, bilinear
- middle: mitchell-netravali, catmull-rom, bicubicXX, softcubicXX
- high: lanczos3, spline36
- very high: lanczos4, spline64
- ultra high: lanczos8

here is my logs.
madVR - log_monitor_ZoomPlayer.txt taken from my main monitor and works fine. Resolution 1440x900x32bit@72hz
madVR - log_TV_720p_ZoomPlayer.txt taken from my TV and also works. Resolution 1200x670x32bit@50hz
madVR - log_TV_1080i_ZoomPlayer.txt taken from my TV and causes freeze at startup. Closed player by Ctrl+Alt+Del. Resolution 1800x1012x32bit@25i hz
madVR's vsync detection code fails to work with your 1080i setup. I don't know why exactly. You could try a different driver version, maybe that helps. I will add some more logging code to madVR to find out what's going on exactly in your setup. So I'll need a new log from you when the next madVR version is released (next weekend, or the weekend after that).

starlight2
22nd June 2010, 19:06
with intel HD graphics which recommended algorithm for
use up to luma luma and chroma resampling down?

namaiki
22nd June 2010, 19:11
starlight2, can it run anything besides bilinear? my older intel graphics can only run bilinear, but the intel HD graphics might have the oomph to move to something different.

any chance that you can run lanczos, or spline for luma without lag? (smooth)

nlnl
22nd June 2010, 20:25
Mpc HC (Haali mkv splitter, CoreAVC, WMVideo Decoder DMO) + ATI 5400 (10.6) + Vista 32 + Aero on + 0.21 + monitor input 1080p@23, 24, 50 (single)

A little issue with 0.21.

The file is 720p50 upscaled to 1080p50 (bicubic75/bicubic75/soft100, win mode tweaks: default). Very smooth playback, no dropped or delayed frames.
But if I press space bar 12-18 times (pause, 3 seconds, play, ...), madVR starts dropping frames.

Can not make log file. Using madVR debug I can not get smooth playpack (influence of disk writing?).

Shii
22nd June 2010, 20:57
Another question: how to play DVD`s using madVR? In MPC-HC it throws Macrovision error at start with default decoders, ffdshow video decoder and MS DVD video decoder. In Zoom Player Microsoft DVD decoder can`t connect to madVR, ffdShow Video Decoder causes Macrovision error.
But if I open vob file directly, it plays with any decoders and any players.

naomatrix
23rd June 2010, 00:24
For ATI graphics card company Cyberlink has used technology ATI STREAM to a Cyberlink HAM decoder, by analogy Nvidia CUDA(CoreAVC+CUVID), but it does not work bitstream (decode acceleration in UVD) for renderer madVR. Works with any renderer even with Haali render. Why ?

B.F.
23rd June 2010, 03:30
Any plans for x64 build?

ranpha
23rd June 2010, 04:08
Can the renderer be made to work with MPC-HC's screenshot feature (Alt -I)?

JarrettH
23rd June 2010, 04:28
I'm also having much improved playback using 6 backbuffers, plus I switched on high refresh rate timing mode (my display is 60hz and most videos I playback are 23.97 fps making that about 24 x 2.3 = 55hz). What exactly does this timing mode improve? I don't know where the 9400M GPU lies, but mine is slow...7600 GT 256mb (257.21 drivers), maybe you can't use so many backbuffers with a slow GPU

Mark_A_W
23rd June 2010, 04:54
Any plans for x64 build?


Umm.....why?


You can run a 32bit player on a 64bit OS. I do.


I can't see a need for a 64bit version.

B.F.
23rd June 2010, 05:01
Umm.....why?

You can run a 32bit player on a 64bit OS. I do.

I can't see a need for a 64bit version.

But I use 64bit MPC-HC.
And I don't see any reason to change it to 32bit.

namaiki
23rd June 2010, 05:03
But I use 64bit MPC-HC.
And I don't see any reason to change it to 32bit.

There are no benefits for using MPC-HC x64.

Benefits for MPC-HC 32-bit: software compatibility.

Mark_A_W
23rd June 2010, 05:12
There are no benefits for using MPC-HC x64.

Benefits for MPC-HC 32-bit: software compatibility.


Yep.

Like:

madVR
madFLAC
Reclock
CoreAVC

Just a few I could think of offhand.

namaiki
23rd June 2010, 05:16
CoreAVC's got 64-bit version available now, though.

cyberbeing
23rd June 2010, 05:30
I believe madshi said he would only consider creating a x64 build after the x86 version was feature complete and stable.

B.F.
23rd June 2010, 07:32
Yep.

Like:

madVR
madFLAC
Reclock
CoreAVC

Just a few I could think of offhand.
I need only madVR from that list :)
Actually the thing I need is 64bit madVR with mpc subtitle render support, but I don't think it will be possible any time soon.

Hypernova
23rd June 2010, 10:06
Can the renderer be made to work with MPC-HC's screenshot feature (Alt -I)?

I think madshi said that while it's not hard, he don't want to spend time on it since printscreen works fine.

shambles
23rd June 2010, 12:46
at 48hz on my lcd monitor, with aero on i have constant issues with stuttering, but it doesn't seem to solely be a renderer issue as my whole desktop is affected. with aero off i get tearing with madvr, haali, evr, evr cp, evr sync and wmr9 windowed. with all of them except normal evr, the position is constant; a few px from the bottom. i don't get tearing with old renderer, wmr7 windowed/renderless, wmr9 renderless nor evr cp w/ alternative vsync.

i guess vsync is the issue with both aero on/off.

pankov
23rd June 2010, 12:51
shambles,
how do you get these 48Hz?
Do you use PowerStrip, of you set them in Windows itself (either ATI CCC or NVidia Control Panel)?
What's you video card, monitor count and resolution?

namaiki
23rd June 2010, 12:54
Any chance I could get ~24/48Hz on my laptop's LCD screen?

shambles
23rd June 2010, 13:36
shambles,
how do you get these 48Hz?
Do you use PowerStrip, of you set them in Windows itself (either ATI CCC or NVidia Control Panel)?

powerstrip

What's you video card, monitor count and resolution?

2 displays, monitor connected to ati hd3850 and projector connected to ati hd4350, both are 1920x1080

Thunderbolt8
23rd June 2010, 14:01
seems like I got crappy screen and TV, both run at 60Hz and when I try to change it to 50 or 48Hz via powerstrip then it just doenst work (I just have to change 'refresh rate' at vertical geometry, right?) :/

namaiki
23rd June 2010, 19:44
hmm, if I have MPC-HC playing a video with MadVR and the window is set as all on top (it is in the foreground), even if MPC-HC is not the active window (ie I can use the arrow keys for browsing the icons on the desktop) I can press Ctrl+J and the MadVR OSD will be toggled. Can also be toggled if the MPC-HC window is minimized.

pankov
23rd June 2010, 20:22
madshi,
I can confirm the "stolen shortcut" with Zoomplayer even when not in always-on-top mode.
I guess you've register the keyboard hook as a global one but you are not checking if the owner/parent application is actually the one having the focus.
For me it's not a very big issue because I'm still only testing madVR and still not using it as a main renderer but I won't be happy if it stays like this because Ctrl+J is the shortcut to show the download window in Mozilla Firefox and I use it pretty often.

pankov
23rd June 2010, 20:32
powerstrip

2 displays, monitor connected to ati hd3850 and projector connected to ati hd4350, both are 1920x1080
shambles,
if you carefully read the results of my tests here
http://forum.doom9.org/showthread.php?p=1410195#post1410195
and the conclusions that madshi, I and a few other users reached you'll see that Aero and Powerstrip don't work nice together.
In fact if the refresh rate is not set through windows itself you'll get stutter because Aero thinks it's still the original refresh rate and will sync to it.
Also when you use multiple monitors you should make sure that they are at the same refresh rate (again - the windows' one - not only powerstrip) ... or at least one is a multiple of the other and both are multiples of the video frame rate.
In general Powerstrip can only be used to finetune the timings for example 23.978 vs. 23.976 (in my case) ... or 50.002 vs. 50.000 and I think this will only work if the correction makes the real display refresh rate match the one defined in windows.
That's why I'm currently looking into EDID override so I can define the correct timings in the monitor driver and windows will know that my monitor supports them so I can avoid using Powerstrip.
Sadly I still haven't succeeded, so if you make it, please, do share with us.

shambles
23rd June 2010, 21:51
ah well, i'm not that interested in aero. i just thought i'd post incase it might give madshi some clues about tearing issues with aero off.

mark0077
24th June 2010, 00:18
madshi, I have another (perhaps long term) feature request. Do you know if its possible for windowed mode to have an improvement where it can't be brought out of fullscreen by another app / windows itself.

I had a situation today watching a movie with a friend, where windows update was doing its thing in the background, and then decides to prompt me I need to reboot. It brought mpc-hc out of fullscreen to do this. This is not unique to madVR of course, and doesn't happen when using evr-cp fullscreen exclusive mode. I am just wondering if you'd consider this as a future improvement, where the madVR would prevent things like windows update from bringing the player out of fullscreen mode.... and interrupting a movie :)

This and macrovision error fix are my two only feature requests for madVR at the moment. Just making sure I mention the latest one above before I forget it. Otherwise its A1 :)

Hypernova
24th June 2010, 00:45
madshi, I have another (perhaps long term) feature request. Do you know if its possible for windowed mode to have an improvement where it can't be brought out of fullscreen by another app / windows itself.

I had a situation today watching a movie with a friend, where windows update was doing its thing in the background, and then decides to prompt me I need to reboot. It brought mpc-hc out of fullscreen to do this. This is not unique to madVR of course, and doesn't happen when using evr-cp fullscreen exclusive mode. I am just wondering if you'd consider this as a future improvement, where the madVR would prevent things like windows update from bringing the player out of fullscreen mode.... and interrupting a movie :)

This and macrovision error fix are my two only feature requests for madVR at the moment. Just making sure I mention the latest one above before I forget it. Otherwise its A1 :)

From my understanding as I have asked this question in the MPC-HC thread before, it is MPC-HC responsible to not go off of the fullscreen mode when lose the focus (exclusive is something else). I have asked if they could add an option for it. Appearently it's not that hard to do, but no developer is interested in making it happen. So, we have to live with it.

Mark_A_W
24th June 2010, 13:26
The following settings should be pretty much identical to what v0.18 was doing:

upload frames in render thread: off
copy only 1 backbuffer at a time: off
timing model: normal
no of backbuffers: 3

It seems to me that the key problem in your setup is the number of backbuffers. It seems that 3 works well for you and 8 does not. That's kinda weird, but well, why not.



Yep.

You are right. It was the backbuffers. Anything above 3 and I start to get delayed frames.

It gets progressively worse, till at 8 it's a slideshow with tearing - lots of little tears.


With these settings:

upload frames in render thread: off/on
copy only 1 backbuffer at a time: off/on
timing model: normal/high

I don't see a difference either way so far.


I've started testing with reclock loaded, but "off" - Clock slaved and original speed locked.

Looks good so far. (But no tearing test....hint hint...evr-custom has one ;) )



Also, I've won an ATi HD4850 on ebay. I will see how that goes, and if I can use the 3DLUT with 1080p material, I can't with my HD2600XT.


Mark

madshi
24th June 2010, 20:26
It looks like the main performance discrepancy was the timing mode. I assumed normal was the old mode rather than high refresh.

Testing number of backbuffers with lanczos3 and dropped/delayed frame # and 6 seems optimal with this card for some reason. With 8 I get 45 dropped frames in one scene, 35 with 1 & 6, and 40 with all other settings. Obviously 1 is a poor choice. I would have thought you'd want as many as possible but the results are consistent.
Can you please add some more comments about the new tweak options? Which needs to be set which way for you? Which options impact performance in which way? Please start testing with a setting that works well for you, and then modify the tweak options one by one, so you can comment on the separate options. Thanks!

with intel HD graphics which recommended algorithm for use up to luma luma and chroma resampling down?
Resampling algorithms are a matter of taste. Except that Nearest Neighbor and Bilinear are clearly worse than the others. However, I'm not sure if your intel HD GPU is fast enough to do anything other than Bilinear.

But if I press space bar 12-18 times (pause, 3 seconds, play, ...), madVR starts dropping frames.
Does it keep dropping frames from that point on? Or is it just a phase it goes through and gets non-dropping again after a few seconds?

Another question: how to play DVD`s using madVR?
That currently doesn't work (not with menus).

For ATI graphics card company Cyberlink has used technology ATI STREAM to a Cyberlink HAM decoder, by analogy Nvidia CUDA(CoreAVC+CUVID), but it does not work bitstream (decode acceleration in UVD) for renderer madVR. Works with any renderer even with Haali render. Why ?
I've no idea. Maybe the decoder doesn't output YV12? madVR currently only accepts YV12 output.

Can the renderer be made to work with MPC-HC's screenshot feature (Alt -I)?
Yes, but it's not a priority right now, since PrintScreen does the job.

I'm also having much improved playback using 6 backbuffers, plus I switched on high refresh rate timing mode (my display is 60hz and most videos I playback are 23.97 fps making that about 24 x 2.3 = 55hz). What exactly does this timing mode improve? I don't know where the 9400M GPU lies, but mine is slow...7600 GT 256mb (257.21 drivers), maybe you can't use so many backbuffers with a slow GPU
Not sure why more backbuffers seems to hurt some of you guys. But anyway. Can you please test 3, 2 and 1 backbuffers, too? Which is the v0.18 default. Maybe I should get back to that, since it's the max that works smoothly for some other guys. Also please compare high vs. normal refresh rate, while keeping all other options identical. The "high" refresh rate mode presents the frames at an earlier scanline, but only if the render queue is at 6/8 or higher. Please also test the other two new tweak options (separately) and report back. Thanks.

But I use 64bit MPC-HC.
And I don't see any reason to change it to 32bit.
I'll give you a reason: There is no madVR 64bit version available! :)

Maybe you can give me a reason to create a 64bit version? Right now I see none. And no, "just because" is not a valid reason.

at 48hz on my lcd monitor, with aero on i have constant issues with stuttering, but it doesn't seem to solely be a renderer issue as my whole desktop is affected. with aero off i get tearing with madvr, haali, evr, evr cp, evr sync and wmr9 windowed. with all of them except normal evr, the position is constant; a few px from the bottom. i don't get tearing with old renderer, wmr7 windowed/renderless, wmr9 renderless nor evr cp w/ alternative vsync.

i guess vsync is the issue with both aero on/off.
As pankov has explained, Aero is confused if Windows is set to 60Hz and PowerStrip changes that to 48Hz behind the back of Aero. The solution to your problem should be fullscreen exclusive mode.

seems like I got crappy screen and TV, both run at 60Hz and when I try to change it to 50 or 48Hz via powerstrip then it just doenst work (I just have to change 'refresh rate' at vertical geometry, right?) :/
Most TVs report to the GPU which resolutions and refresh rates they support. If you can't set yours to 50 or 48Hz, then there's a chance that it just can't do 50/48Hz. Of course there's a chance that it does support these refresh rates, without telling the GPU so. But nobody knows, then, which exact timing parameters your TV expects. You will have to simply try if you can make it work or not.

hmm, if I have MPC-HC playing a video with MadVR and the window is set as all on top (it is in the foreground), even if MPC-HC is not the active window (ie I can use the arrow keys for browsing the icons on the desktop) I can press Ctrl+J and the MadVR OSD will be toggled. Can also be toggled if the MPC-HC window is minimized.
I can confirm the "stolen shortcut" with Zoomplayer even when not in always-on-top mode.
I guess you've register the keyboard hook as a global one but you are not checking if the owner/parent application is actually the one having the focus.
For me it's not a very big issue because I'm still only testing madVR and still not using it as a main renderer but I won't be happy if it stays like this because Ctrl+J is the shortcut to show the download window in Mozilla Firefox and I use it pretty often.
I've intentionally implemented it this way because that was the way that worked best for me. As said earlier, I plan to make the OSD key adjustable sooner or later, so it should not be a problem.

I have another (perhaps long term) feature request. Do you know if its possible for windowed mode to have an improvement where it can't be brought out of fullscreen by another app / windows itself.
That should be possible, but I think the proper solution for this is fullscreen exclusive mode.

I had a situation today watching a movie with a friend, where windows update was doing its thing in the background, and then decides to prompt me I need to reboot. It brought mpc-hc out of fullscreen to do this.
Yeah, that happened to me, too. As a result I've reconfigured Windows Update so that it downloads the updates, but doesn't install them automatically. That works well enough for my needs.

You are right. It was the backbuffers. Anything above 3 and I start to get delayed frames.
Ok, how about 2 or 1 backbuffers? Better or worse?

It gets progressively worse, till at 8 it's a slideshow with tearing - lots of little tears.
Very weird. I don't really understand it, but well...

With these settings:

upload frames in render thread: off/on
copy only 1 backbuffer at a time: off/on
timing model: normal/high

I don't see a difference either way so far.
Ok, thanks.

Also, I've won an ATi HD4850 on ebay. I will see how that goes, and if I can use the 3DLUT with 1080p material, I can't with my HD2600XT.
That one should fly through 1080p material, with or without 3dlut, I would guess. I'd get a card that fast, too, if my HTPC thermals could handle it - but they can't.

Lets keep this thread on topic guys and girls.
Yes, please.

madshi
24th June 2010, 20:33
I need more feedback on the new windowed mode tweak options!

(Sorry for the big red font.)

Without proper feedback I can't clean up these options. And that means that I can't move on to fullscreen exclusive mode yet. Which I'd love to do. But I won't - without your feedback on the windowed mode tweak options!

I need to know (and please include your OS, Aero, graphics mode / refresh rate, single/dual monitor, GPU information):

(1) Which backbuffer count works best for you? Which is maybe not best, but still acceptable? Which doesn't work at all for you?
(2) Which timing mode works best for you? Which is maybe not best, but still acceptable? Which doesn't work at all for you?
(3) How about "upload frames in render thread" and "copy 1 backbuffer at a time"?

I want to get rid of these options again, by setting them to a value that works ok for all of you.

leeperry
24th June 2010, 20:58
(1) Which backbuffer count works best for you? Which is maybe not best, but still acceptable? Which doesn't work at all for you?
(2) Which timing mode works best for you? Which is maybe not best, but still acceptable? Which doesn't work at all for you?
(3) How about "upload frames in render thread" and "copy 1 backbuffer at a time"?

I want to get rid of these options again, by setting them to a value that works ok for all of you.
Ah, it's already cleanup time?? I still use those options, and everything seems to work damn fine on XPSP3/8800GS/257.21 Forceware: http://www.imagebam.com/image/d4b50d85199834

I've never seen mVR this smooth tbh :eek:

It takes 90 mins to run tests, so it'd be nice to leave us some more time to evaluate please.

BTW, did you find anything valuable in the logs where PotPlayer freezes if I go FS before the picture showed up?
Logic the wrong way around
Ah! :D It's just common sense to disable m$ automatic updates, especially when you play games/watch movies...anyway, it's a sterile debate.
Hooray
Idiotness knows no bound, that's true. You sure seem to know a lot about that :D

yesgrey
24th June 2010, 21:02
Maybe you can give me a reason to create a 64bit version? Right now I see none. And no, "just because" is not a valid reason.
I only see one reason, and maybe it doesn't apply in this case...

Some applications can get ~10% increase in performance when converted to 64bit, but in this case I don't know if the GPU would also be affected by the same amount. Probably the 64 bit GPU drivers are only 64 bit when communicating with the CPU/OS and internally they are exactly the same as the 32 bit GPU drivers...

Just speculating, though.

madshi
24th June 2010, 21:48
Ah, it's already cleanup time?? I still use those options, and everything seems to work damn fine
The problem is that it's hard for madVR users (even experienced ones) to understand what these options do and how they should be set. So I want to find the optimal settings for these options and then use those settings and remove the checkboxes from the settings dialog. That way new madVR users should get good performance right out of the box, without being overwhelmed by hundreds of weird options.

It takes 90 mins to run tests, so it'd be nice to leave us some more time to evaluate please.
No problem. I'll simply refrain from releasing the first fullscreen exclusive mode version for another 1-3 weeks, depending on how much feedback I get. In the meanwhile, I'll use madVR fullscreen exclusive mode on my PC... :)

Just kidding!

... or not? :p

BTW, did you find anything valuable in the logs where PotPlayer freezes if I go FS before the picture showed up?
Didn't have time to check it out yet.

Some applications can get ~10% increase in performance when converted to 64bit, but in this case I don't know if the GPU would also be affected by the same amount. Probably the 64 bit GPU drivers are only 64 bit when communicating with the CPU/OS and internally they are exactly the same as the 32 bit GPU drivers...
Maybe eventually 64bit could help for video decoders, I don't know. But from what I've read so far, e.g. CoreAVC 64bit is not faster than 32bit. madVR itself will most probably not benefit from 64bit at all, and GPU drivers probably not, either. The real work in done by the GPU, and that is using its own bitdepth, anyway, and it not affected by the bitdepth used by the OS/CPU. madVR and the GPU drivers are mostly just sending commands to the GPU, uploading data to the GPU and waiting for replies from the GPU. Such kind of code doesn't benefit from 64bit at all.

yesgrey
24th June 2010, 21:54
madVR and the GPU drivers are mostly just sending commands to the GPU, uploading data to the GPU and waiting for replies from the GPU. Such kind of code doesn't benefit from 64bit at all.
It's what makes sense, but, just for curiosity, have you tried any benchmarking with shader processing in a 64/32 bit?

madshi
24th June 2010, 21:55
Nope.

leeperry
24th June 2010, 22:09
Hey, I don't think I'm going nuts...but often the options in the .ini files seem to change randomly...I always end up setting it as read only. I just got some hiccuping frames and I had "use managed upload textures" disabled for some reason...I never disable this one! also "flush after final rendering step" was set to "flush & wait (sleep)". OK, I'll set it as read only again...no big deal.

And tests take a while, coz when I see a dropped frame I often rewind, and these days it's always in the movie itself, duh..I'll try to play around w/ "upload frames in render thread" and "copy only one backbuffer" and report back.

madshi
24th June 2010, 22:12
Hey, I don't think I'm going nuts...but often the options in the .ini files seem to change randomly...I always end up setting it as read only. I just got some hiccuping frames and I had "use managed upload textures" disabled for some reason...I never disable this one!
That's weird. Maybe you should run a scandisk, just to be sure? :)

I'll try to play around w/ "upload frames in render thread" and "copy only one backbuffer" and report back.
Thanks, I'd appreciate that. Tests with the timing mode and numbers of backbuffers would be great also.

Hypernova
24th June 2010, 22:12
In this setup:
(1) ATi 5770
(2) Windows Server 2008 R2
(3) Aero on
(4) 2560x1600/60Hz
(5) Single monitor on DisplayPort

The best combination seems to be no check/Aero/8. Note that the only way to see what setting is better for me is to intentionally set something else to the "bad" one eg. to see that the "upload frame in render thread" give me bad result, I have to set the buffer to 3 to be able to see it goes non-smooth. It's a periodic skip frame I think, not exactly stuttering. I'm not sure how it's called though. Same goes for Aero timing and 8 buffer. The 1 backbuffer at a time doesn't do anything for me.

I can't comment on flushing options for this setup, as I need no flush at all for 5770.

Now for the other setup

(1) ATi 5770
(2) Windows Server 2008 R2
(3) Aero on
(4) 2560x1600/60Hz + 1920x1080/24p
(5) Dual monitor setup. 1st on DisplayPort, 2nd on HDMI

The best combination so far is no check/normal/8 and loop/flush/no/no. I still need that OSD enable trick, but once that's done, it's fairly ok. Only skipped frames once in a while. In this setup, Aero timing is the worse option to set. It's keep stuttering all the time.