| Summary: | SetSwapInterval should now be enabled for ANGLE/EGL (2.0.4rc2) | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Mark Logan <mark> |
| Component: | video | Assignee: | Sam Lantinga <slouken> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | CC: | amaranth72, carles.pages |
| Version: | 2.0.3 | ||
| Hardware: | x86 | ||
| OS: | Windows 8 | ||
Is there a way to detect the ANGLE version used, so it can be conditionally enabled? It should also be enabled when ANGLE isn't used (e.g. when using the OpenGL ES 2 / EGL wrapper .dll's from the PowerVR SDK.) Would be nice to get this fixed. Is it really needed to enable it conditionally at this point? The original commit is from more than 3 years ago, and I cannot find any information regarding when the bug was fixed in angle. So even if we checked the angle version (with glGetString(GL_VERSION) for instance), I do not know from which version it would be safe to enable it. I found the bug, it was fixed in 2013. https://bugs.chromium.org/p/angleproject/issues/detail?id=481 In my opinion it should be safe to unconditionally use SetSwapInterval now. Anyone who encounters the bug should update their ANGLE to a version less than 3 years old, especially since they'd be using a SDL version that's 3+ years newer than their ANGLE version. Okay, thanks guys! https://hg.libsdl.org/SDL/rev/f3439b0eb486 |
In SDL_windowsopengles.c, WIN_GLES_SetSwapInterval is as follows: WIN_GLES_SetSwapInterval(_THIS, int interval) { /* FIXME: This should call SDL_EGL_SetSwapInterval, but ANGLE has a bug that prevents this * from working if we do (the window contents freeze and don't swap properly). So, we ignore * the request for now. */ SDL_Log("WARNING: Ignoring SDL_GL_SetSwapInterval call due to ANGLE bug"); return 0; } With a recent version of ANGLE (early July) calling SDL_EGL_SetSwapInterval with a D3D11 backend appears to work just fine. I am working on testing this with D3D9.