skip SWAP_BEHAVIOR_PRESERVED for supportsBufferAge

pointless and unsupported on latter MESA/DRI3
http://lists.freedesktop.org/archives/mesa-dev/2015-November/100869.html

Thanks to Uriy Zhuravlev for reporting and investigation

BUG: 356992
FIXED-IN: 5.5.4
This commit is contained in:
Thomas Lübking 2016-01-17 22:01:00 +01:00
parent 808e003481
commit e641022bf9
2 changed files with 5 additions and 1 deletions

View file

@ -91,6 +91,8 @@ EglOnXBackend::~EglOnXBackend()
void EglOnXBackend::init()
{
initEGL(); // required to toggle
initBufferAge(); // EGL_SWAP_BEHAVIOR_PRESERVED_BIT
if (!initRenderingContext()) {
setFailed(QStringLiteral("Could not initialize rendering context"));
return;
@ -251,7 +253,7 @@ bool EglOnXBackend::initRenderingContext()
bool EglOnXBackend::initBufferConfigs()
{
const EGLint config_attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_SWAP_BEHAVIOR_PRESERVED_BIT,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT | (supportsBufferAge() ? 0 : EGL_SWAP_BEHAVIOR_PRESERVED_BIT),
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,

View file

@ -96,6 +96,8 @@ void initGLX()
void initEGL()
{
EGLDisplay dpy = eglGetCurrentDisplay();
if (dpy == EGL_NO_DISPLAY)
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
int major, minor;
eglInitialize(dpy, &major, &minor);
eglVersion = MAKE_GL_VERSION(major, minor, 0);