TV-Server Version:
MediaPortal Version: 2.3.0 RC2
MediaPortal Skin: Revision 1.1.6
Windows Version: XP SP2
CPU Type:
HDD:
Memory:
Motherboard:
Motherboard Chipset:
Motherboard Bios:
Video Card: 8800 GTS 320MB, or 7800GT
Video Card Driver: 163.44
Sound Card:
Sound Card AC3:
Sound Card Driver:
1. TV Card:
1. TV Card Type:
1. TV Card Driver:
2. TV Card:
2. TV Card Type:
2. TV Card Driver:
3. TV Card:
3. TV Card Type:
3. TV Card Driver:
4. TV Card:
4. TV Card Type:
4. TV Card Driver:
MPEG2 Video Codec:
MPEG2 Audio Codec:
Satelite/CableTV Provider:
HTPC Case:
Cooling:
Power Supply:
Remote:
TV:
TV - HTPC Connection:
Just installed a clean XP system with the latest drivers. I'm still getting tearing even though I saw it was supposed to be fixed in RC1.
No, I don't want to use the exclusive mode, given in that case I can't use reclock anymore, and I want to use reclock to prevent the jitter occuring when playing a 23.976fps source on a 50hz TV - or call powerstrip to change the refresh rate to 60hz for 29.97 or 30fps sources.
I've been trying out media player classic with the same file, with VMR9 renderless output, using texture surfaces in 3D. At first I also got tearing, until I checked "Lock back-buffer before presenting (may fix broken vertical syncronization". Then tearing was gone, even when unckecking this setting. Weird.
Easiest way to see tearing taking place is to use reclock as the audio renderer, and hit ctrl-shift-alt-F10 to show the tearing test line, (ctrl-shift-alt-F9 to hide it). Should show as an continuous line. If not, tearing is happening.
This issue has been there for so long, I doubt it's ever going to be fixed. Could someone explain what could be this "back buffer locking" so that I can try to do the same on the MP sources? see if it fixes something in my case or not.
I'm willing to spend some time figuring this out, given it prevents me using MP on my system.
Thanks
Edit:
Huh. That was fast.
I checked the source. In d3dapp.cs, BuildPresentParamsFromSettings function:
even though I'm starting MP fullscreen, windowed is true. Therefore, the presentation used is PresentInterval.Immediate, which causes tearing as it's not waiting the vsync to present the backbuffers.
PresentInterval.Default should be used instead, to preserve vsync at all time.
Should I post that somewhere else? I can't see any reason to have an immediate presentation of the backbuffer instead of the proper vsync one, even in the MP user interface. I rebuilt MP with default instead of immediate, and tearing was gone.
MediaPortal Version: 2.3.0 RC2
MediaPortal Skin: Revision 1.1.6
Windows Version: XP SP2
CPU Type:
HDD:
Memory:
Motherboard:
Motherboard Chipset:
Motherboard Bios:
Video Card: 8800 GTS 320MB, or 7800GT
Video Card Driver: 163.44
Sound Card:
Sound Card AC3:
Sound Card Driver:
1. TV Card:
1. TV Card Type:
1. TV Card Driver:
2. TV Card:
2. TV Card Type:
2. TV Card Driver:
3. TV Card:
3. TV Card Type:
3. TV Card Driver:
4. TV Card:
4. TV Card Type:
4. TV Card Driver:
MPEG2 Video Codec:
MPEG2 Audio Codec:
Satelite/CableTV Provider:
HTPC Case:
Cooling:
Power Supply:
Remote:
TV:
TV - HTPC Connection:
Just installed a clean XP system with the latest drivers. I'm still getting tearing even though I saw it was supposed to be fixed in RC1.
No, I don't want to use the exclusive mode, given in that case I can't use reclock anymore, and I want to use reclock to prevent the jitter occuring when playing a 23.976fps source on a 50hz TV - or call powerstrip to change the refresh rate to 60hz for 29.97 or 30fps sources.
I've been trying out media player classic with the same file, with VMR9 renderless output, using texture surfaces in 3D. At first I also got tearing, until I checked "Lock back-buffer before presenting (may fix broken vertical syncronization". Then tearing was gone, even when unckecking this setting. Weird.
Easiest way to see tearing taking place is to use reclock as the audio renderer, and hit ctrl-shift-alt-F10 to show the tearing test line, (ctrl-shift-alt-F9 to hide it). Should show as an continuous line. If not, tearing is happening.
This issue has been there for so long, I doubt it's ever going to be fixed. Could someone explain what could be this "back buffer locking" so that I can try to do the same on the MP sources? see if it fixes something in my case or not.
I'm willing to spend some time figuring this out, given it prevents me using MP on my system.
Thanks
Edit:
Huh. That was fast.
I checked the source. In d3dapp.cs, BuildPresentParamsFromSettings function:
Code:
if (windowed)
{
presentParams.MultiSample = graphicsSettings.WindowedMultisampleType;
presentParams.MultiSampleQuality = graphicsSettings.WindowedMultisampleQuality;
presentParams.AutoDepthStencilFormat = graphicsSettings.WindowedDepthStencilBufferFormat;
presentParams.BackBufferWidth = ourRenderTarget.ClientRectangle.Right - ourRenderTarget.ClientRectangle.Left;
presentParams.BackBufferHeight = ourRenderTarget.ClientRectangle.Bottom - ourRenderTarget.ClientRectangle.Top;
presentParams.BackBufferFormat = graphicsSettings.BackBufferFormat;
presentParams.PresentationInterval = PresentInterval.Immediate;
presentParams.FullScreenRefreshRateInHz = 0;
presentParams.SwapEffect = SwapEffect.Discard;
presentParams.PresentFlag = PresentFlag.Video; //PresentFlag.LockableBackBuffer;
presentParams.DeviceWindow = ourRenderTarget;
presentParams.Windowed = true;
//presentParams.PresentationInterval = PresentInterval.Immediate;
}
else
{
presentParams.MultiSample = graphicsSettings.FullscreenMultisampleType;
presentParams.MultiSampleQuality = graphicsSettings.FullscreenMultisampleQuality;
presentParams.AutoDepthStencilFormat = graphicsSettings.FullscreenDepthStencilBufferFormat;
presentParams.BackBufferWidth = graphicsSettings.DisplayMode.Width;
presentParams.BackBufferHeight = graphicsSettings.DisplayMode.Height;
presentParams.BackBufferFormat = graphicsSettings.DeviceCombo.BackBufferFormat;
presentParams.PresentationInterval = PresentInterval.Default;
presentParams.FullScreenRefreshRateInHz = graphicsSettings.DisplayMode.RefreshRate;
presentParams.SwapEffect = SwapEffect.Discard;
presentParams.PresentFlag = PresentFlag.Video; //|PresentFlag.LockableBackBuffer;
presentParams.DeviceWindow = this;
presentParams.Windowed = false;
}
even though I'm starting MP fullscreen, windowed is true. Therefore, the presentation used is PresentInterval.Immediate, which causes tearing as it's not waiting the vsync to present the backbuffers.
PresentInterval.Default should be used instead, to preserve vsync at all time.
Should I post that somewhere else? I can't see any reason to have an immediate presentation of the backbuffer instead of the proper vsync one, even in the MP user interface. I rebuilt MP with default instead of immediate, and tearing was gone.
France