Commit e757333e authored by Jamie Nicol's avatar Jamie Nicol
Browse files

Bug 1869569 - Avoid CompositorOGL::BeginFrame's glInvalidateFramebuffer...

Bug 1869569 - Avoid CompositorOGL::BeginFrame's glInvalidateFramebuffer optimization on Xclipse 920 GPU. r=gfx-reviewers,nical

In CompositorOGL (used by software webrender on Android) as an
optimization we use glInvalidateFramebuffer rather than glClear for
the color attachment if there is no non-opaque invalid region. This
causes rendering glitches on the Samsung Xclipse 920 GPU. This patch
marks GLfeature::invalidate_framebuffer as unsupported on this GPU,
causing us to fall back to the glClear pach which avoids the glitches.

Differential Revision: https://phabricator.services.mozilla.com/D196416
parent 404c987e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -657,6 +657,7 @@ bool GLContext::InitImpl() {
      "Gallium 0.4 on llvmpipe",
      "Intel HD Graphics 3000 OpenGL Engine",
      "Microsoft Basic Render Driver",
      "Samsung Xclipse 920",
      "Unknown"};

  mRenderer = GLRenderer::Other;
@@ -754,6 +755,10 @@ bool GLContext::InitImpl() {
      // DrawElementsInstanced hangs the driver.
      MarkUnsupported(GLFeature::robust_buffer_access_behavior);
    }

    if (Renderer() == GLRenderer::SamsungXclipse920) {
      MarkUnsupported(GLFeature::invalidate_framebuffer);
    }
  }

  if (IsExtensionSupported(GLContext::ARB_pixel_buffer_object)) {
+1 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ enum class GLRenderer {
  GalliumLlvmpipe,
  IntelHD3000,
  MicrosoftBasicRenderDriver,
  SamsungXclipse920,
  Other
};