Log in

View Full Version : Aero (desktop composition) effects on video playback (EVR and madVR)


pirlouy
28th January 2010, 19:12
Instead of spamming MPC-HC thread, I think this "issue" should have its own thread. I expect some people to confirm or add remarks about what they notice in their configuration.

Some people here have noticed that when you use dual screen, when you try to use 24Hz (or 23Hz -thanks somy, i didn't know it was referring to 23.976Hz-) on second screen (usually TV), there are major lags (it's more than judder in fact), that you notice when watching video. Yet, if you watch EVR Sync graph, you'll see 2 parallel lines. But in fact, you may notice regular glitches.

If you're in this case, you should try to disable Aero (right click MPC-HC.exe > "disable desktop composition") and then you'll notice you don't have glitches anymore.

If you use one only screen, you should not have this behavior. If you use 23 or 24 Hz, you should not have lags (sometimes I have, but it seems it's due to renderer since it works if I restart).

So, why not disabling Aero when watching video ? Because when Aero is enabled, you do NOT have tearing. Indeed, Aero does something that prevents tearing. I think nobody here can affirm he has tearing with Aero enabled, no ?

What about you ? Have you noticed lags/judder when watching movies on second screen (in 24Hz and even 50Hz) ?
Maybe it's not Aero which is the problem, but just an option in windows (Somy thought it might be related to Seven preview taskbar features); If you don't have problem in dual screen with Aero, tell us !


It also seems renderer are not affected the same way by Aero, (mono or multi screen). Have you noticed lags, judder, dropped frames with madVr or EVR Sync with Aero enable ?


When madVR or EVR Sync use Direct 3D in fullscreen, I think we'll be able to advise to disable Aero in order to let renderer deal with tearing and synchronization...

pirlouy
28th January 2010, 19:19
@somy: I use mono screen now (TV as monitor), so I'm not able to do test anymore in dual screen, but yesterday I have tried madVR, in 23,976Hz, 1080p, Reclock, Aero enable, 40 minutes playback, and I did not notice lags after some time (it was what you had noticed, IIRC) but I have forgotten to watch number of dropped frames...

I'll try the same test later, with EVR Sync.

somy
28th January 2010, 19:59
@somy: I use mono screen now (TV as monitor), so I'm not able to do test anymore in dual screen, but yesterday I have tried madVR, in 23,976Hz, 1080p, Reclock, Aero enable, 40 minutes playback, and I did not notice lags after some time (it was what you had noticed, IIRC) but I have forgotten to watch number of dropped frames...

I'll try the same test later, with EVR Sync.

Thanks!
I did the same test and it did work smoothly without ReClock as soon as you play movie on primary display.
BTW, judder exists not only with MadVR, but also with EVR CP. ReClock hides the problem for us, but the movie playback should be almost smooth in theory even without ReClock.

somy
28th January 2010, 20:05
For those who want auto refresh rate change with MadVR, see the following batch script:

cd /d %~dp0
min.exe
cd MediaInfo
mediainfo --inform=Video;%%FrameRate%% %1 > temp
set /P frames=<temp
del temp
echo %frames%
if "%frames%"=="25.000" set nref="TV50HZ"
if "%frames%"=="23.976" set nref="TV23HZ"
if "%frames%"=="29.970" set nref="TV59HZ"
"C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\CLI.exe" start load profilename=%nref%
cd ..
wait 5
"D:\Program Files (x86)\MPC HomeCinema\mpc-hc.exe" /fullscreen %1
"C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\CLI.exe" start load profilename="24HZ"
wait 3
set nref=
set frames=

Basically it uses MediaInfo to check FPS and then change refresh rate by using CCC profile, you can modify the script to support PowerStrip or Nvidia driver.

MPC-HTPC
28th January 2010, 20:35
Thanks for posting your refresh rate change script somy! :)

pirlouy
29th January 2010, 13:41
Yesterday, I've tried:
mono screen, EVR Sync, in 23,976Hz, 1080p, Aero enable, 40 minutes playback; even if I did not notice judder, I think there was. EVR graph was jerky (even if lines were parallel).

I think Aero implements something to prevent tearing, but it causes judder. I confirm my first impressions: if you want no judder, the first step is to disable Aero and let the renderer (with reclock) handles synchronization and tearing...

mark0077
29th January 2010, 14:25
I don't experience judder with or without Aero. What type of cpu and gfx cards do you guys have, that have trouble with Aero on?

My question about aero would be, do the renderers take into account, the 1 frame delay introduced with Aero on. i.e. do they add an appropriate audio delay to counteract it. Or would this be upto the audio renderer. It would need to add the correct delay depending on what 1 frame corresponded to, say 1 frame at 24hz would be a different delay than 1 frame at 50hz.

I think this is needed to get 0ms audio / video sync.

somy
29th January 2010, 15:14
Yesterday, I've tried:
mono screen, EVR Sync, in 23,976Hz, 1080p, Aero enable, 40 minutes playback; even if I did not notice judder, I think there was. EVR graph was jerky (even if lines were parallel).

I think Aero implements something to prevent tearing, but it causes judder. I confirm my first impressions: if you want no judder, the first step is to disable Aero and let the renderer (with reclock) handles synchronization and tearing...

Thanks for your input. I'm now using mono display setup and I noticed that MadVR playback is much smoother than EVR and EVR Sync. To summarise the issue:
1. Dual screen with different refresh rate+aero: all renderers are laggy, not even watchable. Sync renderer is better than others, but still has noticable judder.
2. Dual screen with different refresh rate+NO aero: much smoother with most renderers, but tearing in MadVR.
3. Mono screen with Aero: works fine with MadVR, very smooth indeed. However, noticable judder in EVR sync and EVR CP.

Possible causes:
1. Aero (most likely the vsync function and preview feature)
2. 24P playback isn't really supported well by OS and renderers.

somy
29th January 2010, 15:16
I don't experience judder with or without Aero. What type of cpu and gfx cards do you guys have, that have trouble with Aero on?

My question about aero would be, do the renderers take into account, the 1 frame delay introduced with Aero on. i.e. do they add an appropriate audio delay to counteract it. Or would this be upto the audio renderer. It would need to add the correct delay depending on what 1 frame corresponded to, say 1 frame at 24hz would be a different delay than 1 frame at 50hz.

I think this is needed to get 0ms audio / video sync.


0ms audio/video sync is impossible and impractical to archive IMO. Your TV or projector might introduce delay. In my AE3000 if I turn frame creation feature I have to set a delay in my AMP to 100MS for audio stream.

mark0077
29th January 2010, 15:36
Of course its probably impossible to get 0 ms perfect, but that doesn't mean we shouldn't try to reach it. I know the delay of my tv, about 70~ms. I add 70ms audio delay to compensate for this.

What I am saying here is, software like renderers should also compensate for video delay introduced by aero, whatever the ms delay that corresponds to 1 frame delay, and add this as an extra audio delay.

This should get us much closer to 0ms. I have often set a certain audio delay for say 24hz, only to find it didn't seem to work well for 50hz, because of the difference in aero delays with 1 frame being a different number of ms depending on refresh rate. So if the renderer looked after the aero video delay (with an audio delay) for us, then we could set a fixed audio delay ourselves in mpc-hc or ffdshow, that matches the ms delay introduced by our TV's, hopefully getting us close to perfect matching audio and video, if the renderers are doing a good job.

So I think the following video delays should be taken into account

1) Y ms Delay introduced by Aero (corresponding Y ms audio delay should be added by player / renderer to compensate. Renderers / mpc-hc should internally add 1000 / refresh rate, ms audio delay.).
2) X ms Delay introduced by TV (corresponding X ms audio delay can be added in mpc-hc, ffdshow, or in your receiver).

I don't think number 1 is being done at all. The video renderers when they report 0ms difference in audio / video, I think they are referring to when they send the audio / video, not when windows would actually push that out to your devices. i.e. they don't take into account windows waiting 1 frame, to send the video data when aero is enabled which for 24hz display setting, corresponds to 1000 / 24hz = 42ms delay in video......

decapitado
29th January 2010, 17:12
The only way I can get perfect 24hz play in Win7 (zero dropped frames, and I´ve been playing with settings for months) is:

Haali Renderer + CoreAVC + Aero Enabled.

The only downside is I can´t use Shaders, but I prefer that than having stuttering, skipping and dropping frames :)

pirlouy
29th January 2010, 19:31
I don't experience judder with or without Aero. What type of cpu and gfx cards do you guys have, that have trouble with Aero on?
Indeed, I should have mention some useful informations:
hardware:
- CPU Intel E8400 (dual core 3 Ghz)
- Nvidia Geforce 8800GT 512 MB RAM
- 1 GB of RAM (2GB when my RMA is finished)

software:
- Windows 7 Premium 64 bits
- ffdshow recent builds (no dvxa)
- MPC-HC recent builds (was 1557 in my recent test) (32bits)

pirlouy
29th January 2010, 19:41
The only way I can get perfect 24hz play in Win7 (zero dropped frames, and I´ve been playing with settings for months) is:

Haali Renderer + CoreAVC + Aero Enabled.
Maybe you think it's perfectly smooth, because renderer does not count frames dropped or glitches because of Aero.

EVR Sync does not see frames dropped (or glitches) because of Aero (you can see this glitch when watching EVR Sync Graph).
And I think it's the case of madVR and Haali renderer (I don't use this one, since not developed anymore).

But it's not easy to see a dropped frame (or glitch) when watching movie. It's like 3:2 pulldown; it's not really noticeable, yet it is present.

somy
30th January 2010, 00:22
OK, I'm very happy with mono display setup +aero + MadVR now, the playback is super smooth and it proofs my opinion that ReClock is not really needed when FPS matches refresh rate.
I watched both 25P and 24P content for several hours, and I didn't notice any judder/lag. :) There is only one thing I can't explain though: MadVR seems to be much smoother then Sync renderer, I did notice judder when I choose sync renderer.
Conclusion: Anyone who wants smooth 24P playback should try my setup.

Razoola
17th February 2010, 19:41
There are ways around the stutter aero causes when using a primary and secondary screen but personally I think the best option is to disable aero. Thats why I like MPC-HC cause it has the option to disable it while watching videos and renabling it after.

Let me give some example of what I have found with aero enabled. When watching a video on the secondary screen the primary screen must also be set at a multiple of the video frame rate to stop stutter. For example (P=primary, S=secondary);

P=60hz, S=30hz, video=30fps ---- No stutter
P=72hz, S=24hz, video=24fps ---- No stutter
P=75hz, S=50hz, video=25fps ---- No stutter
P=60hz, S=25hz, video=25fps ---- Stutter

To solve the stutter in the last example P must be either 25,50,75,100,etc. The problem however is unless you mess around with powerstrip youll probably still get a stutter every so often with the above due to slight verances in refresh rates between monitors (which is why I think its easier to simply disable aero).

Personally I feel players should be disabling Aero by default while doing their stuff and let users decide to enable it (after reading a warning message).

pirlouy
17th February 2010, 22:31
Thank you very much for your findings ! I wasn't able to test all these resolution as my monitor was able to do only 60/75Hz.

Maybe you don't know, but you can disable Aero by application. You just have to right click the executable file (for example mpc-hc.exe), then properties > Compatibility > check "disable desktop composition". So you can disable Aero for all application you want.

Overlay mixer renderer disables Aero when it is used, so you're not obliged to check this option.

As you, I think Aero should be disabled in most cases, but for those who have one screen and want to use EVR, they can keep Aero.

somy
26th February 2010, 14:58
Thank you very much for your findings ! I wasn't able to test all these resolution as my monitor was able to do only 60/75Hz.

Maybe you don't know, but you can disable Aero by application. You just have to right click the executable file (for example mpc-hc.exe), then properties > Compatibility > check "disable desktop composition". So you can disable Aero for all application you want.

Overlay mixer renderer disables Aero when it is used, so you're not obliged to check this option.

As you, I think Aero should be disabled in most cases, but for those who have one screen and want to use EVR, they can keep Aero.

I gave up on dual screen now, there are too many strange problems with my new HD5770 graphics card. And for now I'm using EVR D3D with GUI support (it tears if aero is turned off). EVR D3D doesn't work for me very well, and it causes black screen when I exit.

pirlouy
26th February 2010, 21:10
Bah, even if it's buggy, dual screen works, but you have to disable Aero, and use a renderer with no tearing without Aero. Even if Overlay mixer is criticized, tearing is much more annoying that image quality and for me it works perfect for that matter.

But in my case, I have chosen to use my full HD in 1280x720 on my couch. With new MPC-HC version, I can automatically switch to 1080p in 24Hz. Just perfect ! :D

somy
27th February 2010, 23:02
There are ways around the stutter aero causes when using a primary and secondary screen but personally I think the best option is to disable aero. Thats why I like MPC-HC cause it has the option to disable it while watching videos and renabling it after.

Let me give some example of what I have found with aero enabled. When watching a video on the secondary screen the primary screen must also be set at a multiple of the video frame rate to stop stutter. For example (P=primary, S=secondary);

P=60hz, S=30hz, video=30fps ---- No stutter
P=72hz, S=24hz, video=24fps ---- No stutter
P=75hz, S=50hz, video=25fps ---- No stutter
P=60hz, S=25hz, video=25fps ---- Stutter

To solve the stutter in the last example P must be either 25,50,75,100,etc. The problem however is unless you mess around with powerstrip youll probably still get a stutter every so often with the above due to slight verances in refresh rates between monitors (which is why I think its easier to simply disable aero).

Personally I feel players should be disabling Aero by default while doing their stuff and let users decide to enable it (after reading a warning message).

Disable Aero causes tearing even I choose D3D full screen with my 5770 graphics card.....

Jong
28th February 2010, 02:02
Not here with a 5750. I always use D3D mode with Aero OFF. Do you do a lot of shader processing? Or something else "non standard"?

edit: GUI support is not ideal. It disables additional buffering in D3D mode effectively removing probably its major benefit (verified by ar-jar (http://www.ostrogothia.com/?p=1679)).

Razoola
28th February 2010, 06:58
Disable Aero causes tearing even I choose D3D full screen with my 5770 graphics card.....

Not for me (though I have nvidia). You may want to check in your gfx drivers control panel what vsync settings your player application are set to.

pirlouy
15th June 2010, 17:57
An interesting point of view of cyberbeing :
http://forum.doom9.org/showthread.php?p=1408556#post1408556

He experimented problem with Aero, but maybe all its problems were because Aero lost the V-Sync.


When Aero "loses" the V-Sync, in fact, it's not like if it disabled V-Sync, it's just that you have stuttering in every applications: you can perceive it when playing video, or when you use an application with smooth effects (OSD effects, smooth scrolling if you have extension, etc.) or when you move a window.

Aero is good for tearing, but bad for smoothness...

How does Aero lose V-Sync ? Some games, some applications, etc. That's not often, but to avoid it, you have to find what is the trigger...

To find real V-Sync, you have to disable and enable it again (for example with an application which disables desktop composition temporarily).

Gser
15th June 2010, 18:11
Turn it off because it's useless junk.

pirlouy
15th June 2010, 19:18
Personally, I like the aspect, and the fact it enables V-Sync (when it works, that's nice), but for videos, it's not reliable.

Jong
15th June 2010, 20:26
Despite its problems it is one of the main reasons I moved to W7 from XP. At least Flash and other online video is watchable without horrendous tearing.

I do disable it for local video playback though - TMT does it automatically for Blu-ray/DVD and I have it set OFF for mpc-hc playback of all other media.

Hypernova
16th June 2010, 06:02
I just recently got a projector so now for the first time I have a 24p display. I'm still playing around with it (that's why I have not post feedback on madVR thread for awhile. Well, like anyone will notice :p ).

If you play a smaller file in MPC-HC so that the seeking cursor is moving quite fast, you would see that when it stutter, the seeking cursor is also stutter with the video! I certainly think it's Aero, but I like Aero and madVR, so I have to find some other way instead of disable it.

In my case, Sync Renderer cannot solve this. However, exclusive mode get rid of this problem entirely! So I have high hope when madshi eventually implement it in madVR.

Edit: I should have mention that this is all with dual monitor with 60/24. With single setup I don't experience this issue. Also, it looks like using DVI on primary cause less problem than using DisplayPort. It's not entirely smooth, but less stuttering. 2nd is on HDMI.

flanger216
18th June 2010, 00:12
An interesting point of view of cyberbeing :
http://forum.doom9.org/showthread.php?p=1408556#post1408556

He experimented problem with Aero, but maybe all its problems were because Aero lost the V-Sync.


When Aero "loses" the V-Sync, in fact, it's not like if it disabled V-Sync, it's just that you have stuttering in every applications: you can perceive it when playing video, or when you use an application with smooth effects (OSD effects, smooth scrolling if you have extension, etc.) or when you move a window.

Aero is good for tearing, but bad for smoothness...

How does Aero lose V-Sync ? Some games, some applications, etc. That's not often, but to avoid it, you have to find what is the trigger...

To find real V-Sync, you have to disable and enable it again (for example with an application which disables desktop composition temporarily).

This parallels my own experiences. For the most part, I use Aero on two monitors, one @ 24hz and one @ 60hz, and I have no issues. This includes watching movies in Mediaportal through its EVR presenter. However, randomly (or after some sequence of actions I haven't nailed down) it does seem to lose 'sync'. Not only does v-sync fail, but everything becomes extremely juddery, right down to the Windows desktop. Except, mouse movements remain smooth no matter what, which I find rather baffling.

I've also found that simply reinitializing either display (by switching refresh rates, for instance) also 'reboots' Aero and gets everything properly synced again.

EDIT --- oh, and I do always switch my home-theater screen to be the 'primary' monitor before watching a movie, which may explain why I don't have as many problems as some.

mindbomb
22nd October 2010, 17:43
just like to add that the windows hotkey to switch monitor config quickly is the windows button+p

and my experience is that i can either set my tv as the only monitor, or i have to disable desktop composition in mpc to get smooth video without occasional hiccups.

bobdynlan
26th October 2010, 21:27
If you play a smaller file in MPC-HC so that the seeking cursor is moving quite fast, you would see that when it stutter, the seeking cursor is also stutter with the video! I certainly think it's Aero, but I like Aero and madVR, so I have to find some other way instead of disable it. That's normal, as the seekbar points very close to the actual frame served. You could test with an audio file from a slow drive also, same thing will happen.
But the seekbar has issues of it's own as I've hit them when trying to skin it. It's actually a gdi flicker caused by overpainting. Aero on hides most of it, tough. You could try testing the build i've made from the gui thread and compare this particular issue, as that one buffers the painting and flickers less no matter if Aero is on/off. It definetly needs more work.

soulkeeper
31st October 2010, 12:14
well i'm still playing around with all the various options/configurations (reclock, aero, D3d, renderers e.t.c) in order to find the smoothest playback...
in my setup ,htpc connected to a pc monitor through dvi and to a projector via hdmi through avr,i've chosen to only have one display active at a time..so when i turn on my avr and pj,the pc monitor switches off and i have my desktop "moved" at pj....

is this considered a dual monitor setup?

If it's not,i should not have the above problems caused by aero.....

Razoola
31st October 2010, 14:13
well i'm still playing around with all the various options/configurations (reclock, aero, D3d, renderers e.t.c) in order to find the smoothest playback...
in my setup ,htpc connected to a pc monitor through dvi and to a projector via hdmi through avr,i've chosen to only have one display active at a time..so when i turn on my avr and pj,the pc monitor switches off and i have my desktop "moved" at pj....

is this considered a dual monitor setup?

If it's not,i should not have the above problems caused by aero.....

As long as both are not active at the same time it should be considered a single monitor setup. Just make sure you don't have a moving playing before switching the monitors.

soulkeeper
31st October 2010, 14:57
@Razoola
Thanks!!