Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
5th June 2010, 01:41 | #2902 | Link |
Broadband Junkie
Join Date: Oct 2005
Posts: 1,859
|
Somewhat unexpectedly, I now have a NVIDIA GTX 470 on my hands for the next 2 weeks. Currently using the Forceware 197.75 driver on WinXP SP3 x86. That driver does work with madVR.
First thing I did was test that Avatar scene which was causing my 7800GTX 512 major grief. There was still a rendering spike, but overall it seems the GTX 470 is able to muscle through it. At 1920x1080@120Hz display resolution using Spline64 Chroma resizing, the max render (5s) only spiked from 14ms nominally to 20ms and it got through the scene without any dropped frames. Next I tired something a bit more intensive with a 2560x1440@72Hz display resolution using Spline64 for both Luma and Chroma resizing. During that scene the max render (5s) spiked from 24ms nominal to somewhere between 27-47ms. Each time I run it it seems different. Occasionally it would drop a single frame, most times it would get through without dropping anything. Somewhat odd behavior. Another thing I seem to be noticing is that when the 3DLut is applied, it looks much sharper and detailed then I ever remember it looking on the 7800GTX 512, but that could just be better Digital to Analog circuitry. Still makes me somewhat wonder if madVR's 3DLut functionality was ever functioning correctly on my 7800GTX 512 in the first place. For whatever reason (without any direct comparison) playback doesn't seem as smooth as the 7800GTX 512. I'm not sure why, but the GTX 470 feels like it occasionally stutters during playback, even though it rendering like a champ without any dropped frames. Though now that I think about it, eariler in this thread I reported getting occasional stutters without dropped frames with the 7800GTX 512 as well. Hmm... Maybe it's the opposite and the GTX 470 is smoother when madVR is working correctly, so when a stutter happens it's that much more apparent. With the 7800GTX 512 maybe the gap between 'normal' and a 'stutter' was much smaller and less apparent. I'm not sure if it's related, but on the GTX 470, the max present (5s) jumps between 8ms and 18ms every few seconds when playing back video at 1600x1200 @96Hz (Vsync interval 10.42ms). madshi, if you have anything you want me to test please ask soon so I can do as much as possible in the time the GTX 470 is available to me. On June 18th it's going back no matter what. GTX 470 Windows XP SP3 x86 MPC-HC w/ Reclock 1600x1200 @96Hz | 1920x1080 @120Hz | 2560x1440 @72Hz Single Monitor Last edited by cyberbeing; 5th June 2010 at 18:01. |
5th June 2010, 12:12 | #2903 | Link |
Registered User
Join Date: Dec 2008
Posts: 496
|
It seems I was right about the GPU switching power/clock states when using madVR 0.13, as in my case I could indeed solve the max stats(5s) spiking with the option "Power management mode" and selecting "Prefer maximum performance" under "Manage 3D settings" instead of the default "Adaptive" selection. Itīs rock solid now.
(left adaptive, right maximum performance) For all NVIDIA users, hereīs a very good and detailed article for this on geeks3d: http://www.geeks3d.com/20090716/nvid...-capabilities/ In short: When you select "Prefer maximum performance" the driver will always force the GPU to work in maximum performance 3D mode and not allow it to switch between power states based on the actual load of the GPU. This is especially important on mobile variants of the GPUs out there (e.g. 9400M), where the pre-programmed values are very low to save as much power as possible. These values can also be different based on the actual variant of your graphics card, when thereīs a specifically programmed BIOS from a board manufacturer which doesnīt use the reference design provided by NVIDIA. However, according to the article (not sure if this is still up-to-date) this setting is only available on Vista or higher, so Iīm not sure whether thereīs even a way for XP users to "force" the maximum performance mode. Now, since always running your GPU at itīs maximum 3D performance is a total waste of energy I created an application profile for KMPlayer (your player of choice), so that whenever I want to play a movie or video, the above setting will take effect, otherwise I still have "Adaptive" selected on the global profile, so that when I e.g. surf the web the lower power/clock states will be used. Iīm not sure about ATI users though, but itīs possible thereīs also a settings to control power modes. If not, maybe you can solve that by using some 3rd party tool. @cyberbeing: Can you report if this is possible on XP, too? If yes, please try it out, I think this should solve your spikes, too. Especially since a GTX470 should be powerful enough for almost every content @1900x1080@120Hz (at the very least) and Spline64 chroma upsampling when youīre on maximum performance 3D mode. @madshi: On a 1920x1200 display resolution, windowed-mode is always resizing (at least for) 1080p content with madVR 0.13. madVRīs OSD shows the movie resolution as 1920, 800 and the target rectangle as 0, 3, 1902, 796 which will always invoke downsampling. The captures from above show fullscreen (left) and windowed-mode (right) screenshots. Fullscreen mode is ok. Is this intended, normal behaviour? Last edited by iSunrise; 5th June 2010 at 12:41. |
5th June 2010, 13:11 | #2904 | Link | ||||||||||||||
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
FWIW, I've just seen somewhere you're using 120Hz? That's a very high refresh rate. Basically the higher the refresh rate, the more difficult it is for madVR to achieve perfect smoothness. However, a future madVR version in fullscreen exclusive mode with a new special rendering path should be able to achieve perfect smoothness with e.g. 120Hz. But that's a few revisions away. With the current version lower refresh rates makes things easier for madVR to achieve smooth motion. Quote:
Quote:
Quote:
|
||||||||||||||
5th June 2010, 15:34 | #2905 | Link | |||
Registered User
Join Date: Aug 2006
Location: Stockholm/Helsinki
Posts: 805
|
Quote:
GPU: HD4850 OS: Windows 7 x64 Aero: on Display: 1920x1200 @ 60Hz, single Quote:
Though I can't remember what I did last time, now I'm just getting 80004001 if I pause it first, and an additional "- creating Direct3D device failed" together with the 80004001 if I don't pause. Last edited by ajp_anton; 5th June 2010 at 15:39. |
|||
5th June 2010, 17:59 | #2909 | Link | |
Broadband Junkie
Join Date: Oct 2005
Posts: 1,859
|
Quote:
GTX 470 Windows XP SP3 x86 MPC-HC w/ Reclock 1600x1200 @96Hz | 1920x1080 @120Hz | 2560x1440 @72Hz Single Monitor I tested for smoothness a bit more this morning. Oddly enough, the first time I opened the video which was causing me jerkyness, it played back perfectly smooth at 1920x1080 @120Hz. The 2nd through 5th time it was incredibly jerky, and the 6th and 7th time it was smooth again. I assume not catching VSync properly is the 'difficulty' you speak of. For future reference, would ~275MB (~125MB compressed) 'full' application crash dumps created by Dr. Watson be helpful to you when a crash happens? I don't really know how to interpret the dumps or logs, but it seems the drwtsn32.log always lists madVR as doing both of the following during the crash, but for all I know it has nothing to do with it: VSync_EvaluateThread();.by and then UploadThread(); What is the chance that VSync_EvaluateThread() or UploadThread() could crash madVR? Were those things changed in 0.13? Last edited by cyberbeing; 5th June 2010 at 18:12. |
|
5th June 2010, 18:06 | #2910 | Link | ||
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Quote:
Quote:
They might. In order to make them perfectly useful, I may have to make the debug build a real debug build. Currently it's just a release build with added logging. But still, even with a release build the crash dumps may help. Sometimes, at least. Please don't upload v0.13 crash dumps, though. You can start with v0.14. |
||
5th June 2010, 18:06 | #2911 | Link |
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
madVR 0.14 released
http://madshi.net/madVR.zip Code:
* fixed: corruption with some decoders and video clips * fixed: fullscreen -> win+D -> ResetDevice failed * optimized fullscreen <-> windowed switching a bit * relaxed texture requirements -> newer Intel GPUs might work now * added new option "use managed upload textures (XP only)" * added several new options to tweak GPU flush behaviour * removed "disable anti-tearing fix" option Explanation: The new option "use managed upload textures (XP only)" changes the way madVR uploads the video to the GPU. If you check this option, rendering will probably be a bit slower, but changes between fullscreen and windowed mode may work faster. This option is only available for XP. madVR 0.12 behaved as if this option was checked. madVR 0.13 behaved as if this option was unchecked. The flush options control when exactly madVR flushes the GPU and in which way. The option "don't flush" obviously doesn't flush the GPU at all. The option "flush" flushes the GPU, but doesn't wait for the flush to complete. The option "flush & wait (sleep)" flushes the GPU and waits for the flush to complete, by telling to CPU to go sleeping for 1ms at a time. The sleeping saves CPU resources, but the CPU may sleep too long, wasting potential rendering resources. The option "flush & wait (loop)" flushes the GPU and waits for the flush to complete, by constantly checking the GPU state. The CPU (1 core) will run at 100% while waiting for the GPU, when using this option. My suggestion would be to start with all flushes turned off ("don't flush") because that's the best, if you want to keep rendering times down. However, doing it this way may cause stuttering, because the GPU might become confused. So some flushes will probably be necessary. If you find that flushes are needed in your case, try "flush" (without waiting) next. If that doesn't work well enough yet, try one of the wait options. Personally, on my Vista laptop it seems that the best configuration is to set "after render steps" to "flush" and to set "after last step" to "flush & wait (sleep)" and to keep all other options at "don't flush". But please find out your own best settings and report them to me. Please, when you report them, state your exact HTPC setup, as always. Thanks! Last edited by madshi; 5th June 2010 at 18:21. |
5th June 2010, 18:22 | #2913 | Link |
Registered User
Join Date: Jan 2007
Posts: 530
|
Instant crash with .14.... HD2600XT, CCC10.3, Win7 x64, Aero OFF, FFdshow/Reclock/MPC-HC, either monitor (dual mon). EVR-CP works fine.
Code:
00000000 Creator Thread "Creator" = ThreadID 00000690 00000000 Creator CVideoRenderer::CreateInstance(); 00000000 Creator CVideoInputPin constructor; 00000000 Creator CVideoInputPin constructor -> + 00000000 Creator CVideoText constructor; 00000000 Creator CVideoText::GetClassWindowStyles(); 00000000 Creator CVideoText::GetClassWindowStyles() -> + 00000000 Creator CVideoText::OnReceiveMessage(msg: 129, wParam: 0, lParam: 80855076); 00000000 Creator CVideoText::OnReceiveMessage() -> + 00000001 Creator CVideoText::OnReceiveMessage(msg: 131, wParam: 0, lParam: 80855056); 00000001 Creator CVideoText::OnReceiveMessage() -> + 00000001 Creator CVideoText::OnReceiveMessage(msg: 1, wParam: 0, lParam: 80855076); 00000001 Creator CVideoText::OnReceiveMessage() -> + 00000001 Creator CVideoText constructor -> + 00000001 Creator CVideoRenderer constructor; 00000001 Creator Settings_Init(); 00000002 Creator Settings_Init() -> + 00000002 Creator Queue_Init(); 00000002 Creator Osd_InitKeyHook(); 00000002 Creator Osd_InitKeyHook() -> + 00000002 Creator CVideoRenderer constructor -> + 00000002 Creator CVideoRenderer::CreateInstance() -> + 00000002 Creator CVideoRenderer::NonDelegatingQueryInterface(IUnknown{00000000-0000-0000-C000-000000000046}); 00000002 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 0 00000002 Creator CVideoRenderer::NonDelegatingQueryInterface(IUnknown{00000000-0000-0000-C000-000000000046}); 00000002 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 0 00000002 Creator CVideoRenderer::NonDelegatingQueryInterface({9cc7f9f7-3ed1-493c-AF65-527EA1D9947F}); 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface() -> ISubRender 00000003 Creator CVideoRenderer::SetCallback(); 00000003 Creator CVideoRenderer::SetCallback() -> + 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface({56a86895-0ad4-11ce-B03A-0020AF0BA770}); 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 0 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface({8e1c39a1-de53-11cf-AA63-0080C744528D}); 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 80004002 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface({f90a6130-b658-11d2-AE49-0000F8754B99}); 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 80004002 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface({56a86895-0ad4-11ce-B03A-0020AF0BA770}); 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 0 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface({cedb2890-53ae-4231-91A3-B0AAFCD1DBDE}); 00000003 Creator CVideoRenderer::NonDelegatingQueryInterface() -> 80004002 00000003 Creator CVideoRenderer::GetPin(0); 00000003 Creator CVideoRenderer::GetPin() -> + 00000003 Creator CVideoRenderer::GetPin(0); 00000003 Creator CVideoRenderer::GetPin() -> + 00000003 Creator CVideoInputPin::CheckMediaType(); 00000003 Creator CVideoRenderer::CheckMediaType({32315659-0000-0010-8000-00AA00389B71}); 00000003 Creator GetVih2 original media type: 00000003 Creator AM_MEDIA_TYPE: majortype: {73646976-0000-0010-8000-00AA00389B71} subtype: {32315659-0000-0010-8000-00AA00389B71} formattype: {f72a76a0-eb0a-11d0-ACE4-0000C0CC16BA} bFixedSizeSamples: 1 bTemporalCompression: 0 lSampleSize: 380160 cbFormat: 112 00000003 Creator VIDEOINFOHEADER: rcSource: (0,0)-(720,352) rcTarget: (0,0)-(720,352) AvgTimePerFrame: 417083 VIDEOINFOHEADER2: dwInterlaceFlags: 00000000 dwCopyProtectFlags: 00000000 dwPictAspectRatioX: 853 dwPictAspectRatioY: 352 dwControlFlags: 00000000 BITMAPINFOHEADER: biSize: 40 biWidth: 720 biHeight: 352 biPlanes: 3 biBitCount: 12 biCompression: YV12 biSizeImage: 380160 biXPelsPerMeter: 0 biYPelsPerMeter: 0 00000003 Creator GetVih2 final output: 00000003 Creator VIDEOINFOHEADER: rcSource: (0,0)-(720,352) rcTarget: (0,0)-(720,352) AvgTimePerFrame: 417083 VIDEOINFOHEADER2: dwInterlaceFlags: 00000000 dwCopyProtectFlags: 00000000 dwPictAspectRatioX: 853 dwPictAspectRatioY: 352 dwControlFlags: 00000000 BITMAPINFOHEADER: biSize: 40 biWidth: 720 biHeight: 352 biPlanes: 3 biBitCount: 12 biCompression: YV12 biSizeImage: 380160 biXPelsPerMeter: 0 biYPelsPerMeter: 0 00000004 Creator CVideoRenderer::CheckMediaType(MEDIASUBTYPE_YV12, width: 720, height: 352, bitcount: 12, aspectX: 853, aspectY: 352) -> + 00000004 Creator CVideoInputPin::CheckMediaType() -> 0 00000004 Creator CVideoInputPin::SetMediaType(); 00000004 Creator CVideoRenderer::SetMediaType(); 00000004 Creator GetVih2 original media type: 00000004 Creator AM_MEDIA_TYPE: majortype: {73646976-0000-0010-8000-00AA00389B71} subtype: {32315659-0000-0010-8000-00AA00389B71} formattype: {f72a76a0-eb0a-11d0-ACE4-0000C0CC16BA} bFixedSizeSamples: 1 bTemporalCompression: 0 lSampleSize: 380160 cbFormat: 112 00000004 Creator VIDEOINFOHEADER: rcSource: (0,0)-(720,352) rcTarget: (0,0)-(720,352) AvgTimePerFrame: 417083 VIDEOINFOHEADER2: dwInterlaceFlags: 00000000 dwCopyProtectFlags: 00000000 dwPictAspectRatioX: 853 dwPictAspectRatioY: 352 dwControlFlags: 00000000 BITMAPINFOHEADER: biSize: 40 biWidth: 720 biHeight: 352 biPlanes: 3 biBitCount: 12 biCompression: YV12 biSizeImage: 380160 biXPelsPerMeter: 0 biYPelsPerMeter: 0 00000004 Creator GetVih2 final output: 00000004 Creator VIDEOINFOHEADER: rcSource: (0,0)-(720,352) rcTarget: (0,0)-(720,352) AvgTimePerFrame: 417083 VIDEOINFOHEADER2: dwInterlaceFlags: 00000000 dwCopyProtectFlags: 00000000 dwPictAspectRatioX: 853 dwPictAspectRatioY: 352 dwControlFlags: 00000000 BITMAPINFOHEADER: biSize: 40 biWidth: 720 biHeight: 352 biPlanes: 3 biBitCount: 12 biCompression: YV12 biSizeImage: 380160 biXPelsPerMeter: 0 biYPelsPerMeter: 0 00000004 Creator CVideoText::HandleNewMediaType(); 00000004 Creator VIDEOINFOHEADER: rcSource: (0,0)-(720,352) rcTarget: (0,0)-(720,352) AvgTimePerFrame: 417083 VIDEOINFOHEADER2: dwInterlaceFlags: 00000000 dwCopyProtectFlags: 00000000 dwPictAspectRatioX: 853 dwPictAspectRatioY: 352 dwControlFlags: 00000000 BITMAPINFOHEADER: biSize: 40 biWidth: 720 biHeight: 352 biPlanes: 3 biBitCount: 12 biCompression: YV12 biSizeImage: 380160 biXPelsPerMeter: 0 biYPelsPerMeter: 0 00000004 Creator CVideoText::IsDefaultTargetRect(); 00000004 Creator CVideoRenderer::GetTargetRect(); 00000004 Creator CVideoRenderer::GetTargetRect() -> 0, 0, 0, 0 00000004 Creator CVideoText::IsDefaultTargetRect() -> - 00000004 Creator CVideoText::HandleNewMediaType(size: 720 352; aspect: 853 352; sum: 853 352) 00000004 Creator CVideoRenderer::SetSourceRect(newRect: 0, 0, 720, 352); 00000004 Creator CVideoRenderer::SetSourceRect() -> + 00000004 Creator CVideoText::HandleNewMediaType() -> + 00000004 Creator CVideoRenderer::SetMediaType() -> + 00000004 Creator CCustomMemAllocator::SetMediaType(); |
5th June 2010, 18:25 | #2914 | Link | |
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Quote:
Argh. Does it occur with the debug build, only? Or also with the release build? Does it crash every time, or just sometimes? Maybe only with specific videos? |
|
5th June 2010, 18:33 | #2915 | Link |
Registered User
Join Date: Dec 2008
Posts: 496
|
Same here. Tried KMPlayer and MPC-HC and release build and debug build with both players. Same crash. When playing with KMPlayer Vista x64 tells me that it wants to disable Aero Mode and switch to Windows Vista-Basic. Never had that before.
Log (uploaded.to): http://ul.to/t9x8xb Specs: (1) Geforce GTX 260-216 [Nvidia ForceWare Quadro 197.54] (2) Windows Vista x64 (3) Aero on (4) 1920x1200@60Hz - using KMPlayer |
Tags |
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling |
Thread Tools | Search this Thread |
Display Modes | |
|
|