Skip to content
  • Erik Kurzinger's avatar
    platforms/drm: set read buffer in GbmSurface::makeContextCurrent · e6d2bc15
    Erik Kurzinger authored
    The first time the GBM backend's EGL context is made current after
    creation, both the read and draw surfaces are set to EGL_NO_SURFACE.
    This will set the GL read and draw buffers to GL_NONE in accordance with
    the EGL spec.
    
    When a real surface is later made current, however, the spec is arguably
    unclear on whether the read and draw buffers should remain set to
    GL_NONE or whether they should be restored to the default GL_BACK.  The
    Mesa driver does the latter, the NVIDIA driver does the former.
    
    To work around this difference, Kwin has an explicit call to
    glDrawBuffer in GbmSurface::makeContextCurrent. It does not have a
    corresponding call to glReadBuffer, though, which can cause some desktop
    effects such as background contrast to render incorrectly with the
    NVIDIA driver. This change adds that missing call.
    e6d2bc15