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

yesgrey
12th April 2009, 12:37
oh ok, coz this link says that HLSL can work in up to 64float
But madshi said he's using 32FP. Don't worry that's more than enough.;)

leeperry
12th April 2009, 12:54
But madshi said he's using 32FP. Don't worry that's more than enough.;)
I think so yeah :p and I rest my case that MVR looks sharper than HR...w/ LSF/GrainF3/Reclock on top of it, it's really mind blowing on the BD of "The Nightmare Before Christmas" in 48Hz :cool:

Apparently the ghost lines in HR disappear if you set the max PS model to 1.1/1.4 instead of 2.0...I'd like to try to see if it improves HR's sharpness, but it'd require a reboot in RivaTuner...and I'm afraid CoreAVC CUDA/MVR might not like 1.1 PS :D

rica
12th April 2009, 13:36
Thanks madshi, just started trials...

FYI guys: no need a custom MPC-HC build.
Register MadVideoRenderer.ax and select it as preferred under external filters.

Here is the graph at the background of MPC-HC:

http://img9.imageshack.us/img9/6595/madvid01.th.png (http://img9.imageshack.us/my.php?image=madvid01.png)


SS from MPC-HC:

http://img412.imageshack.us/img412/9042/madvid02.png (http://img412.imageshack.us/my.php?image=madvid02.png)

Here is the config:

http://img412.imageshack.us/img412/2941/madvid03.png (http://img412.imageshack.us/my.php?image=madvid03.png)


BTW, no problem here:

GTX 260 nVidia FW 185.66 Vista SP1


_ _ _ _ _ _

ice25
12th April 2009, 13:36
Got rid of the tearing by switching around the secondary and primary display.. The CPU usage when i display MadVR on the secondary display is through the roof..

madshi
12th April 2009, 16:19
FYI guys: no need a custom MPC-HC build.
Register MadVideoRenderer.ax and select it as preferred under external filters.
Nice - didn't know that the "preferred" functionality also works for renderers!

madshi
12th April 2009, 16:23
madVR 0.3 released

http://madshi.net/madVR.zip

* lowered CPU consumption a bit
* playback start is now delayed until 3dlut file is fully loaded
* during initialization madVR posts a message to the screen
* added OSD (on screen display) with some stats, can be toggled with Ctrl+J
* added display refresh rate detection
* added GPU rendering time measurements
* Direct3D resources are completely freed on exit now
* errors are now properly handled and displayed
* if 10bit textures are not available, 8bit textures are used instead
* fixed: window size in GraphEdit was slightly too small
* missing 3dlut files are now automatically created by calling "cr3dlut"
* depending on source resolution "SD.3dlut" or "HD.3dlut" is loaded now
* renamed "madVideoRenderer" to "madVR" everywhere
* settings are now saved to (and read from) "settings.ini" file
* improvement for playing video on secondary monitor (not tested)
NOTE:
I've renamed the file from "madVideoRenderer.ax" to "madVR.ax" now. That means you should uninstall/unregister the old version before updating to the new one.

Also please don't be shocked if the first movie playback startup time of madVR 0.3 is extremely long - that's because madVR is not shipping with any 3dlut files, anymore. Instead the 3dlut files are now created on demand (by calling yesgrey3's "cr3dlut" tool), which takes several seconds. But this only occurs the first time you start a movie (it occurs once for SD content and once for HD content).

----------------------

Guys, please test:

(1) Does playback on secondary monitor work better now?
(2) Is the display refresh rate detection working properly (press Ctrl+J)? Also on secondary monitor?
(3) If you have a lot of trouble with stuttering, please post the stats from the OSD (Ctrl+J). That might help figuring out whether your graphics card is too slow, or whether there's a different problem. You can also turn on all the "trade quality for performance" options and check in the OSD which effect these options have on GPU rendering time.

Thunderbolt8
12th April 2009, 17:07
hm stats from a movie (quite grainy movie)

display 59.XXXHz
movie 23.976 fps
1920, 1080
vsync interval 16.73ms
movie frame interval 41.71ms
avrg gpu rendering time 47.XXms
max gpu rendering time 47.XXms

doesnt run smoothly on that c2q with 7600GT (AGP), so how can I determine this from the numbers? is it like that that the avrg gpu rendering time value has to be lover than the movie fram interval value for fluent playback?

edit: when I enable all those "performance for quality settings" then the avrg gpu rendering time drops to ~30ms and it looks almost fluent (max gpu rendering time sometimes still higher than movie framerate interval; creating 10bit textures fails, uses 8bit instead)

rica
12th April 2009, 17:34
some feedback:

tried to open an avs file including a dga created by neuron's DGAVCDecodeNV in MPC-HC. (Sure CUVID server is opened)
Here are the results:

with EVRCustom Presenter CPU utilization is 20 to 35%
with madVR, it is 50 to 75 %.

.03 didn't change the CPU usage.

Is the display refresh rate detection working properly (press Ctrl+J)?

Yes:

http://img412.imageshack.us/img412/2444/madvid04.png

_ _ _ _

leeperry
12th April 2009, 17:38
so my custom timings are not as spot-on as I initially thought...that's w/ CoreAVC CUDA :

http://www.image-load.eu/out.php/i157460_jitter.png

I should be getting an ideal frame interval of 41.67, and it's 41.71...I guess it can't get any better than that just yet :o

and you've added LUT support for SD/HD, awesome :)

now if you could add an option to force triple buffering(this works in MPC HC+VMR9/EVR to never miss the VSYNC fliptime w/ Reclock, using D3DOverrider.exe from the RivaTuner package) and let us fake the GUID to improve compatibility in third party players(MVR is only a few days old), I'd be a happy camper :)

maybe making the OSD white would make it more readable too.. :thanks:

yesgrey
12th April 2009, 17:40
is it like that that the avrg gpu rendering time value has to be lover than the movie fram interval value for fluent playback?
Yes. If madVR is taking more time to render the frame that the time interval between each frame, the next frame to render will be delayed...;)

leeperry
12th April 2009, 17:51
I've got a dllhost.exe that doesn't want to die since I've installed the new beta...maybe it's unrelated :confused:

madshi
12th April 2009, 17:55
hm stats from a movie (quite grainy movie)

display 59.XXXHz
movie 23.976 fps
1920, 1080
vsync interval 16.73ms
movie frame interval 41.71ms
avrg gpu rendering time 47.XXms
max gpu rendering time 47.XXms

doesnt run smoothly on that c2q with 7600GT (AGP), so how can I determine this from the numbers? is it like that that the avrg gpu rendering time value has to be lover than the movie fram interval value for fluent playback?

edit: when I enable all those "performance for quality settings" then the avrg gpu rendering time drops to ~30ms and it looks almost fluent (max gpu rendering time sometimes still higher than movie framerate interval; creating 10bit textures fails, uses 8bit instead)
Grainy or not doesn't matter to madVR. You'd get the same stats even with a static test pattern... ;) Only source resolution and framerate matters to madVR.

Well, that is one slow GPU you have there! I take it you have scaling disabled (1:1 display)? If so, could you please zoom a little and post the average GPU rendering time then? Does it go to 100ms per frame then? :eek:

If you want to give madVR even a chance to achieve smooth playback you have to achieve an "average gpu rendering time" that is a notch lower than the "movie frame interval". I'd say it should not be higher than 35ms for 23.976 playback. Now the optimal configuration for madVR is if you drive the display with the same refresh rate the source is in (in your case 23.976Hz). If you have to use 59.940Hz, things get slightly more difficult for madVR. In that case you may have to bring "average gpu rendering time" down even more. But madVR is not optimized for this situation yet, so even if you do manage to bring gpu rendering time down, don't expect perfect smoothness with the current madVR version.

I'm not sure yet how much influence "max gpu rendering time" will have. Could be that high spikes in that area may result in frame drops. Or maybe not, if I find a way to smoothen things out...

tried to open an avs file including a dga created by neuron's DGAVCDecodeNV in MPC-HC. (Sure CUVID server is opened)
Here are the results:

with EVRCustom Presenter CPU utilization is 20 to 35%
with madVR, it is 50 to 75 %.

.03 didn't change the CPU usage.
Hmmmmmm... I still don't know why CPU utilization is higher with madVR than it is with EVR/VMR/Haali. In theory there shouldn't really be much difference... :( Maybe I will find out one day. But for now I have different priorities, so CPU consumption will have to wait...

so my custom timings are not as spot-on as I initially thought...that's w/ CoreAVC CUDA :

I should be getting an ideal frame interval of 41.67, and it's 41.71...I guess it can't get any better than that just yet :o
You are misinterpreting the OSD information. The "frame interval" is for the movie source framerate. It's not for the display refresh rate. For the display refresh rate look at the first line in the OSD, that looks quite good. Or look at "vsync interval", which is basically half of 41.67 (due to using 48Hz instead of 24Hz), so you should be happy.

now if you could add an option to force triple buffering
Things are not as easy as that. There's more to smooth playback than just enabling triple buffering. Actually triple buffering can be bad in some situations. Anyway, I don't want to talk about smooth motion playback improvements right now because (as I said multiple times), that feature is simply not implemented yet.

and let us fake the GUID to improve compatibility in third party players
No plans for that right now. Please ask those 3rd party players to support madVR.

maybe making the OSD white would make it more readable too.. :thanks:
The OSD layout is not final yet. Only few things in madVR are final right now...

STaRGaZeR
12th April 2009, 17:57
Refresh rate detection is working properly here. However I'm experiencing the typical "colors are washed out" situation. My monitor expects PC levels and it seems that madVR is sending TV levels. All other renderers are fine. To have proper levels with madVR I've to use ffdshow's levels filter. BTW could you provide with a brief description of each resizer? I know a few of them but not the others.

leeperry
12th April 2009, 18:01
I've got a dllhost.exe that doesn't want to die since I've installed the new beta...maybe it's unrelated :confused:
apparently it comes from the "ComSysApp" COM+ service, did you use that to create the LUT's from yesgrey's app or sumthing? if so, it might need to be closed afterwards.
look at "vsync interval", which is basically half of 41.67 (due to using 48Hz instead of 24Hz), so you should be happy.
[...]
I don't want to talk about smooth motion playback improvements right now because (as I said multiple times), that feature is simply not implemented yet.
[...]
No plans for that right now. Please ask those 3rd party players to support madVR.
[...]
The OSD layout is not final yet. Only few things in madVR are final right now...
1)I am happy, no worries :D
2)got it, just an idea :o
3)I did, but the main KMP coder is AWOL...and I tried to hexedit the GUID in both your renderer and kmp.exe w/o succeeding
4)yet it looks really good already :cool:

the measured refresh rate slightly oscillates from time to time, no wonder Reclock is mandatory for smooth playback..

yesgrey
12th April 2009, 18:19
Hmmmmmm... I still don't know why CPU utilization is higher with madVR than it is with EVR/VMR/Haali.
Are you sure all your buffers are created in the GPU memory? Maybe it's using some of the RAM of the computer, which should slow things down and increase CPU usage...

rica
12th April 2009, 18:20
Hmmmmmm... I still don't know why CPU utilization is higher with madVR than it is with EVR/VMR/Haali. In theory there shouldn't really be much difference... Maybe I will find out one day. But for now I have different priorities, so CPU consumption will have to wait...


OK, thanks, sure we have time for this :)

But i should remind you when i open an m2ts with any SW based decoder (like arcsoft), CPU consumption is 75 to 100%.
My trials were based on DGAVCDecodeNV as you know.
:thanks:

STaRGaZeR
12th April 2009, 18:23
Are you sure all your buffers are created in the GPU memory? Maybe it's using some of the RAM of the computer, which should slow things down and increase CPU usage...

I get ~309MB of RAM usage with madVR vs ~105MB with EVRCP.

Any chance of a x64 build?

KoD
12th April 2009, 18:24
madshi, I've sent you a PM with a small anamorphic sample displayed by the renderer with wrong AR . Source is DVD.

ice25
12th April 2009, 18:25
CPU usage is still very high when i use the secondary display for madVR, but according to the stats it's detecting the refresh rate from the primary screen while i'm using the secondary display. So i guess refresh detection for secondary display is bugged atm, cpu usage should be fixed once you get around fixing that.

madshi
12th April 2009, 18:40
could you provide with a brief description of each resizer? I know a few of them but not the others.
Check out this page:

http://audio.rightmark.org/lukin/graphics/lhouse_more.htm

In my source code I've added the following comments. They might help here, too:

aliasing (negative): the lower the better
additional ringing (negative): the lower the better
hide source ringing (positive): the higher the better
sharpness (positive): the higher the better

Bilinear (2 tap)
- aliasing = 5
- additional ringing = 0
- hide source ringing = 3
- sharpness = 5

Catmull-Rom = Bicubic50, Bicubic60, Bicubic75 (2 tap)
- aliasing = 4.5, 3.5, 3
- additional ringing = 1, 2, 3.5
- hide source ringing = 0
- sharpness = 7.25, 7.50, 7.75

Mitchell-Netravali (2 tap)
- aliasing = 4
- additional ringing = 1
- hide source ringing = 1
- sharpness = 5

SoftCubic80, SoftCubic70, SoftCubic60, SoftCubic50 (2 tap)
- aliasing = 0.25, 1, 2, 2.5
- additional ringing = 0, 0.25, 0.5, 0.75
- hide source ringing = 7, 6, 3, 1
- sharpness = 2, 3, 3.5, 4

Lanczos3 (3 tap), Lanczos4 (4 tap)
- aliasing = 2, 1
- additional ringing = 6, 8
- hide source ringing = 0
- sharpness = 8.5, 9

Spline36 (3 tap), Spline64 (4 tap)
- aliasing = 2.5, 2.3
- additional ringing = 4.5, 5
- hide source ringing = 0
- sharpness = 8, 8.1
Please note that these numbers are just my personal opinion. There's nothing scientific about these numbers.

apparently it comes from the "ComSysApp" COM+ service, did you use that to create the LUT's from yesgrey's app or sumthing?
madVR has nothing to do with COM+.

the measured refresh rate slightly oscillates from time to time, no wonder Reclock is mandatory for smooth playback..
Refresh rate measurements are not an exact science. It is to be expected that the measurement oscillates. That does not mean that the real refresh rate does that, too. It just means that the measurement is not perfect. Not too much of a problem, though. madVR doesn't need perfection in this case, if it's reasonably close (as in < 1% from true value), that's good enough.

Are you sure all your buffers are created in the GPU memory? Maybe it's using some of the RAM of the computer, which should slow things down and increase CPU usage...
In theory all buffers used for the rendering should be on the GPU, I've intentionally done it that way.

I get ~309MB of RAM usage with madVR vs ~105MB with EVRCP.
madVR stores 16 decoded frames in RAM.

Any chance of a x64 build?
Not for now, maybe later, when 32bit is more or less complete...

CPU usage is still very high when i use the secondary display for madVR, but according to the stats it's detecting the refresh rate from the primary screen while i'm using the secondary display. So i guess refresh detection for secondary display is bugged atm, cpu usage should be fixed once you get around fixing that.
Too bad, I had hoped that was fixed. Can't properly test it cause I don't have a secondary display at the moment. So I guess the fix will have to wait a while...

noee
12th April 2009, 19:03
XPSP3, HD2600XT, CCC9.4, AMD X2 3.0Ghz, Reclock, MPC-HC (int decoders)
Monitors: (Prim) Samsung 60Hz (PC levels) - (Sec) LG 37 24/60Hz (Video Levels)
Source material: SD = 23.976@24Hz AVC in MKV, HD = 29.970@60Hz AVCHD in M2TS (1080P)

1. Still getting tearing on secondary, SD and HD
2. madVR displaying 60Hz on my secondary (LG) when the monitor is set for 24Hz

Not getting the automatic creation of the LUT's. I ended up creating them myself with modified config files.
I have retained the folder structure from the zip with "cr3dlut" folder in a "madVR" folder.

madshi
12th April 2009, 19:06
1. Still getting tearing on secondary, SD and HD
2. madVR displaying 60Hz on my secondary (LG) when the monitor is set for 24Hz
Yeah, seems that madVR still thinks it's running on primary.

Not getting the automatic creation of the LUT's.
What did you get instead? Any error messages? Or a crash? Or what?

yesgrey
12th April 2009, 19:07
In theory all buffers used for the rendering should be on the GPU, I've intentionally done it that way.

madVR stores 16 decoded frames in RAM.

So the frames are stored in RAM instead of GPU memory?
If they are, when you process them with the GPU are you accessing them via the AGP/PCI-E or via the CPU? Could this be the source of the high CPU usage?...

madshi
12th April 2009, 19:12
madVR v0.3 released *again*

http://madshi.net/madVR.zip

* updated cr3dlut templates
Sorry guys, please redownload. madVR itself is unchanged, but yesgrey3 has been so kind to provide me with some preconfigured cr3dlut templates. Mine has been wrong, it seems.

Please delete "out16.3dlut" (in case you still have it) and "SD/HD.3dlut". Then rerun madVR. Hopefully that will clear any and all complaints about washed out colors.

BTW, there are also templates for video levels now. If you need video levels, replace the files "SD/HD.txt" with "template - SD/HD - Video.txt", then delete "SD/HD.3dlut" and rerun madVR.

Xorp
12th April 2009, 19:12
30mbps avg Blu-ray remuxed to mkv with eac3to, weird resolution reported (its 1920x1080)

http://img151.imageshack.us/img151/2922/testa.png

framerate stays around 18fps according to zoomplayer's stats
graphics card is 8800GTS-640MB

madshi
12th April 2009, 19:12
So the frames are stored in RAM instead of GPU memory?
No. I'm uploading every frame to GPU memory before processing it, of course.

madshi
12th April 2009, 19:17
30mbps avg Blu-ray remuxed to mkv with eac3to, weird resolution reported (its 1920x1080)
Strange! How does the pin connection info look like?

Not sure why you only get 18fps. Might be due to madVR consuming too much CPU so that your decoder chokes (the frame queue is only at 3/16, usually it should be 16/16, having it at so low value means that the decoder is not delivering frames fast enough). But your gpu rendering times are also quite heavy.

Do you happen to have another filter running (e.g. ffdshow) which upscales the video to double resolution? :confused: That would explain the strange movie resolution report and also the high gpu rendering times.

noee
12th April 2009, 19:19
Sorry, yeah, the msg I get is:

madVR Reports:
opening 3dlut file fails

madshi
12th April 2009, 19:23
madVR Reports:
opening 3dlut file fails
Do you happen to use a non-ansi char path? That's the only cause I can imagine right now. Lazy as I am I used ansi chars instead of unicode... :o Or is your overall madVR directory path extremely long (> 260 chars)?

Thunderbolt8
12th April 2009, 19:27
Grainy or not doesn't matter to madVR. You'd get the same stats even with a static test pattern... ;) Only source resolution and framerate matters to madVR.

Well, that is one slow GPU you have there! I take it you have scaling disabled (1:1 display)? If so, could you please zoom a little and post the average GPU rendering time then? Does it go to 100ms per frame then? :eek:
just wanted to indicate grainy = high bitrate file here :)

yes, the card is quite old. I have the same one (as PCIE though) in my own C2D system, might be a tiny bit faster, but not much I guess.

the display I used here has 1680*1050 res, so its not 1:1 (the other screen on my own system has 1280*1024). so you still want me to try zoom? but how can I do that, have no clue about zooming options :S

If you want to give madVR even a chance to achieve smooth playback you have to achieve an "average gpu rendering time" that is a notch lower than the "movie frame interval". I'd say it should not be higher than 35ms for 23.976 playback. Now the optimal configuration for madVR is if you drive the display with the same refresh rate the source is in (in your case 23.976Hz). If you have to use 59.940Hz, things get slightly more difficult for madVR. In that case you may have to bring "average gpu rendering time" down even more. But madVR is not optimized for this situation yet, so even if you do manage to bring gpu rendering time down, don't expect perfect smoothness with the current madVR version.
hm so your advise would be to change it to 24 (or exactly 23.976?)Hz? how can I do that, in my graphic card options when I rightclick on windows screen and then properties (only have the option to choose either 59 or 60Hz there)? or do I need to change that in ffdshow?

TinTime
12th April 2009, 19:31
* depending on source resolution "SD.3dlut" or "HD.3dlut" is loaded now


How does madVR decide what's SD and what's HD? What are the resolution cut-offs?


The crtl+J info is reporting the refresh rate correctly for me at 24Hz, 50Hz and 60Hz (I only use a primary display). Average GPU rendering time hovers around 14ms for 24Hz playback. I've tried a blu-ray AVC source (muxed to mkv with eac3to) and that works for me with CoreAVC CUDA decoding too, on a 512MB 8600GT.

I tried turning off CUDA decoding in CoreAVC and found that I got some tearing during playback of HD AVC files. It looks like tearing for me is a symptom of my PC not quite decoding fast enough. It's an Athlon X2 5600+, which I think is a bit borderline for HD decoding. It's not a problem with madVR itself, unless madVR should absolutely never tear under any circumstances.

HD VC1 is similar. I get occasional tearing which seems to coincide with a dropping in the number of frames in the frame queue reported by madVR. I can't get totally smooth playback with other renderers either though for HD VC1, except for VMR9 with DXVA.

Xorp
12th April 2009, 19:38
Strange! How does the pin connection info look like?

Not sure why you only get 18fps. Might be due to madVR consuming too much CPU so that your decoder chokes (the frame queue is only at 3/16, usually it should be 16/16, having it at so low value means that the decoder is not delivering frames fast enough). But your gpu rendering times are also quite heavy.

Do you happen to have another filter running (e.g. ffdshow) which upscales the video to double resolution? :confused: That would explain the strange movie resolution report and also the high gpu rendering times. Only CoreAVC was decoding, nothing else.

I had the same low fps problem in MPC custom build with madVR, but when I went back to the Beliyaal-build setting madVR as a preferred external renderer, everything runs smoothly now. Getting 16/16 frame queues.

madshi
12th April 2009, 19:46
the display I used here has 1680*1050 res, so its not 1:1 (the other screen on my own system has 1280*1024). so you still want me to try zoom?
No, scaling was probably already activated because it's not 1:1.

hm so your advise would be to change it to 24 (or exactly 23.976?)Hz? how can I do that, in my graphic card options when I rightclick on windows screen and then properties (only have the option to choose either 59 or 60Hz there)? or do I need to change that in ffdshow?
That would be graphics card properties or PowerStrip (if all else fails). But that makes sense only if your display can handle that!

How does madVR decide what's SD and what's HD? What are the resolution cut-offs?
HD = wider than 1024 or higher than 576

The crtl+J info is reporting the refresh rate correctly for me at 24Hz, 50Hz and 60Hz (I only use a primary display). Average GPU rendering time hovers around 14ms for 24Hz playback. I've tried a blu-ray AVC source (muxed to mkv with eac3to) and that works for me with CoreAVC CUDA decoding too, on a 512MB 8600GT.
Sounds good to me.

Only CoreAVC was decoding, nothing else.

I had the same low fps problem in MPC custom build with madVR, but when I went back to the Beliyaal-build setting madVR as a preferred external renderer, everything runs smoothly now. Getting 16/16 frame queues.
Strange. Could you please post the pin connection info? (right click -> filters -> madVR -> Pin Info). If possible for both the situation where madVR reports the funny resolution. And also for the situation where madVR runs fluidly. There must be a difference somewhere. I'd really like to know why madVR reports such a high resolution for you!

madshi
12th April 2009, 19:48
Two questions for those of you who have such ultra high CPU consumption:

(1) Is that with the OSD turned on? Or also with OSD turned off? FWIW, with OSD turned off CPU consumption should be a bit lower than with it turned on.

(2) Are you running madVR on your primary monitor? Or on secondary? I'm asking because running on secondary has problems right now...

STaRGaZeR
12th April 2009, 20:10
Check out this page:

Thanks for the info.

madVR stores 16 decoded frames in RAM.

Wouldn't it be better to store them in the GPU RAM? EVRCP does this, maybe it'd solve latency problems and/or CPU consumption.

Oh and the levels are good now, thanks!

Does madVR have any kind of deinterlacer? Interlaced material looks deinterlaced, with ghosting though. Of course no other deinterlacer is in the chain.

yesgrey
12th April 2009, 20:10
Here are my stats while playing a Blu-ray movie remuxed to a mkv file. My card is a GF 8600GT 256MB.
9756
The frame rendering is ~14ms. For playing in my monitor at 72Hz (13.9ms) is not enough, but should be fine to use with my projector at 48Hz (20ms). If I use Lanczos or Spline resampling the rendering time jumps to ~20ms, so I should not be able to use those resamplers with smooth playing...

madshi, would it be possible for us to set the number of frames buffered (maybe in the settings.ini)? I could try reduce the number to see if it works better with cuda enabled...

yesgrey
12th April 2009, 20:18
In my source code I've added the following comments. They might help here, too:
It might be a good idea to include those comments in the readme...

madshi
12th April 2009, 20:20
The frame rendering is ~14ms. For playing in my monitor at 72Hz (13.9ms) is not enough, but should be fine to use with my projector at 48Hz (20ms). If I use Lanczos or Spline resampling the rendering time jumps to ~20ms, so I should not be able to use those resamplers with smooth playing...
You would be right if madVR needed to draw a *new* Blu-Ray frame every VSync. But if it did that, you'd get 3x respectively 2x as fast movie playback as you should get. madVR has to skip lots of VSyncs with your refresh rates. Because of that the most important reference time is not the "vsync interval" but the "frame interval". So I think you should be able to use Lanczos4 just fine, sooner or later...

madshi, would it be possible for us to set the number of frames buffered (maybe in the settings.ini)? I could try reduce the number to see if it works better with cuda enabled...
The frame queue is stored in RAM, not in GPU. So how could it possibly conflict with CUDA?

It might be a good idea to include those comments in the readme...
I hope that sooner or later I can reduce the number of scaling options. I was hoping to start a vote after a while for which scaling options to keep and which to remove.

leeperry
12th April 2009, 20:21
It might be a good idea to include those comments in the readme...
I think the AVS peeps advise spline36 as the "best" choice...so that's 3 taps then :)

Xorp
12th April 2009, 20:24
madVR selected in Output
Filter : madVR - CLSID : {E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}

- Connected to:

CLSID: {9852A670-F845-491B-9BE6-EBD841B8A613}
Filter: DirectVobSub (auto-loading version)
Pin: Output

- Connection media type:

Video: YV12 3840x2160 24.00fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_YV12 {32315659-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 112

VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 416666

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 3200
dwPictAspectRatioY: 1800
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 3840
biHeight: 2160
biPlanes: 3
biBitCount: 12
biCompression: YV12
biSizeImage: 12441600
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 9a 5b 06 00 00 00 00 00 ........š[......
0030: 00 00 00 00 00 00 00 00 80 0c 00 00 08 07 00 00 ........€.......
0040: 00 00 00 00 00 00 00 00 28 00 00 00 00 0f 00 00 ........(.......
0050: 70 08 00 00 03 00 0c 00 59 56 31 32 00 d8 bd 00 p.......YV12.ؽ.
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................



madVR set as preferred in external filters
Filter : madVR - CLSID : {E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}

- Connected to:

CLSID: {09571A4B-F1FE-4C60-9760-DE6D310C7C31}
Filter: CoreAVC Video Decoder
Pin: Output

- Connection media type:

Video: YV12 1920x1080 24.00fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_YV12 {32315659-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 112

VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 416666

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 1920
dwPictAspectRatioY: 1080
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1080
biPlanes: 3
biBitCount: 12
biCompression: YV12
biSizeImage: 3110400
biXPelsPerMeter: 1
biYPelsPerMeter: 1
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 9a 5b 06 00 00 00 00 00 ........š[......
0030: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0040: 00 00 00 00 00 00 00 00 28 00 00 00 80 07 00 00 ........(...€...
0050: 38 04 00 00 03 00 0c 00 59 56 31 32 00 76 2f 00 8.......YV12.v/.
0060: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................



So DirectVobSub was interfering.

Brazil2
12th April 2009, 20:31
madVR v0.3 released *again*
I can't get any OSD, Ctrl+J has no effect at all.
Maybe because I've manually installed MadVR.ax (using regsvr32) rather than using InstallFilter.exe ?


I'm still having aspect ratio problems with the sample I've posted here:
http://forum.doom9.org/showthread.php?p=1272713#post1272713
And also with this one:
http://mirror05.x264.nl/public/force.php?file=./beyonce.at.the.bbc.1080mbaff.sample.ts
Both files are playing fine with the correct aspect ratio with other renderers.


And I have problems with MPEG2 NTSC interlaced when the built-in MPC-HC decoder is set to BOB. It's hard for me to describe what is happening but the image is 'shaking' a lot.
It seems to be OK with PAL MPEG2 interlaced though.

madshi
12th April 2009, 20:32
So DirectVobSub was interfering.
Yep. I've never used DirectVobSub myself yet, but it seems that it doubled resolution somehow for you, probably with the intention of being able to render smoother looking subtitles. Of course having 4x as many pixels brings madVR (or rather your graphics card) to its knees. Your gpu rendering times should be a lot lower without DirectVobSub doubling resolution, I guess about 4x lower. And that makes a lot more sense because your 8800 should be quite powerful and should have no problems with processing 1080p24.

madshi
12th April 2009, 20:35
I can't get any OSD, Ctrl+J has no effect at all. Maybe because I've manually installed MadVR.ax (using regsvr32) rather than using InstallFilter.exe ?
Strange, seems to work for everyone else? Manually installing makes no difference.

I'm still having aspect ratio problems with the sample I've posted [...] and also with this one
Thanks, will have a look at that later...

And I have problems with MPEG2 NTSC interlaced when the built-in MPC-HC decoder is set to BOB. It's hard for me to describe what is happening but the image is 'shaking' a lot.
If that fine with other renderers? If so, can I have just another sample? :)

Brazil2
12th April 2009, 20:52
If that fine with other renderers? If so, can I have just another sample? :)
Yes, it's fine with other renderers.

Well, any MPEG2 NTSC interlaced DVD compliant file I've tried is doing the same. I've tried with a VOB from a ripped and decrypted DVD (because I couldn't play the DVD itself in MPC-HC with MadVR, MPC-HC just hangs and nothing happens) and also with a MPG file created with MEncoder which is DVD NTSC film compliant. Maybe the 3:2 pulldown is the problem ?
I live in PAL land so I don't have much MPEG2 NTSC material but the ones I have are not working fine when MPC-HC decoder is forced to BOB.

yesgrey
12th April 2009, 20:56
So the frames are stored in RAM instead of GPU memory?
No. I'm uploading every frame to GPU memory before processing it, of course.
The frame queue is stored in RAM, not in GPU. So how could it possibly conflict with CUDA?
From the previous answer I thought the frame queue was stored in GPU memory... now I realize that I've not understood completelly your reply. They are stored in RAM but are copyed to GPU memory (one at a time) before starting any processing. Got it.:)

Because of that the most important reference time is not the "vsync interval" but the "frame interval". So I think you should be able to use Lanczos4 just fine, sooner or later...
Great! so it seems I could keep my 8600gt a little longer...;)

I hope that sooner or later I can reduce the number of scaling options. I was hoping to start a vote after a while for which scaling options to keep and which to remove.
I plan to do my scaler test and will post here the results...

I can't get any OSD, Ctrl+J has no effect at all.
Maybe because I've manually installed MadVR.ax (using regsvr32) rather than using InstallFilter.exe ?
Have you uninstalled the previous? madVideoRenderer.ax?

Brazil2
12th April 2009, 20:59
Have you uninstalled the previous? madVideoRenderer.ax?
Yes, of course I did :)

regsvr32 -u madVideoRenderer.ax
regsvr32 madVR.ax

I haven't rebooted since then. Should I ?

yesgrey
12th April 2009, 21:10
I haven't rebooted since then. Should I ?
Shouldn't be needed, but it will not hurt... maybe you should use the uninstall and install, instead of manually doing it...

leeperry
12th April 2009, 21:18
I've just realized that you can press CTRL+J twice and get even more stats...great for boring movies I guess :cool:

http://www.image-load.eu/out.php/t157493_kmpppp.png (http://www.image-load.eu/out.php/i157493_kmpppp.png)

it's good that it's like HR(and unlike EVR/VMR9), as long as you can catch the VSYNC properly it will remain so and *NOT* drop video frames :)

PS: that'd be fun if you could put 3 or 4 digits after the coma for the VSYNC interval.

buletti
12th April 2009, 21:53
So the frames are stored in RAM instead of GPU memory?

No. I'm uploading every frame to GPU memory before processing it, of course.

The frame queue is stored in RAM, not in GPU. So how could it possibly conflict with CUDA?

Could that be the cause of the high CPU load? The copy operation from RAM into VRAM is done by the CPU and is a rather slow operation AFAIR. However, after a short google search, it seems that this is no big issue anymore with PCI-E and asynchronous memcpy via CUDA...

Snowknight26
12th April 2009, 23:08
Can anything be done about an error that says "graphics card only supports power of 2 textures?" Happens with my GM45.