Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44a1a1e0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "HWUI: reset buffer state only for ES3 context"

parents 24213321 d82c91d5
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -66,12 +66,15 @@ MakeCurrentResult SkiaOpenGLPipeline::makeCurrent() {
        return MakeCurrentResult::AlreadyCurrent;
    }

    // Make sure read/draw buffer state of default framebuffer is GL_BACK. Vendor implementations
    EGLint majorVersion = 0;
    eglQueryContext(eglGetCurrentDisplay(), eglGetCurrentContext(), EGL_CONTEXT_CLIENT_VERSION, &majorVersion);

    // Make sure read/draw buffer state of default framebuffer is GL_BACK for ES 3.X. Vendor implementations
    // disagree on the draw/read buffer state if the default framebuffer transitions from a surface
    // to EGL_NO_SURFACE and vice-versa. There was a related discussion within Khronos on this topic.
    // See https://cvs.khronos.org/bugzilla/show_bug.cgi?id=13534.
    // The discussion was not resolved with a clear consensus
    if (error == 0 && wasSurfaceless && mEglSurface != EGL_NO_SURFACE) {
    if (error == 0 && (majorVersion > 2) && wasSurfaceless && mEglSurface != EGL_NO_SURFACE) {
        GLint curReadFB = 0;
        GLint curDrawFB = 0;
        glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, &curReadFB);