Fullscreen tearing with native resolution

Hi there!

I’m creating window with win32 api without glut etc…and I run into a problem with screen tearing in fullscreen.
Basicly I have set WS_POPUP as a window style and resolution of my monitor as window size.
I’m running on AMD radeon HD 7770 and I see terrible tearing!
When I put WS_POPUPWINDOW style instead of WS_POPUP, the tearing is gone, however I have unwanted border around my scene.
Another thing I noticed is fact, that the tearing disappears when the resolution is NOT native.
So when I pass my_screen_resolution + 1 as size parameter, the tearing is gone.

RESx = 1920;
RESy = 1080;
hwnd = CreateWindowEx(NULL, NAME, NAME, WS_POPUP, 0, 0, RESx, RESy, NULL, NULL, hInstance, NULL);
SetWindowPos(hwnd, 0, -1, -1, RESx + 1, RESy + 1, 0); // With this function call, the tearing disappears!

What can I do to get rid of the tearing without having to run on not native resolution?

I highly suspect a driver issue here.

I don’t think so since I don’t have such problem in other games. Plus I am not alone having this problem.

we have the same problem here. i found somewhere on the web (do not remember the link) that on any windows with aero th swap chain will be replaced with the system built-in one when an application (application window) goes fullscreen. it would be great to hear how to prevent that.

Which Windows? On Win 7 if I disable that annoying compositor by dialing in a Windows 7 Basic theme, then with VSync enabled, I get OpenGL windows rendered w/o tearing and locked to 60Hz on an ATI GPU, even when they aren’t rendered full screen.

i found this comment

When you make a fullscreen window, it will bypass the DWM compositor.


does anyone know where datenwolf has this information from? and does anyone know how to prevent this ‘bypassing’?

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.