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?
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.