Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (214768 => 214769)
--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog 2017-04-03 11:09:12 UTC (rev 214768)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog 2017-04-03 11:11:28 UTC (rev 214769)
@@ -1,3 +1,31 @@
+2017-03-20 Emanuele Aina <emanuele.a...@collabora.com>
+
+ [Cairo] Ensure depth and stencil renderbuffers are created on GLESv2
+ https://bugs.webkit.org/show_bug.cgi?id=166643
+
+ Reviewed by Darin Adler.
+
+ If the gfx device doesn't support GL_OES_packed_depth_stencil, the
+ separate depth and stencil buffers are not generated.
+
+ Copy what GraphicsContext3DEfl used to do and apply it in
+ GraphicsContext3DCairo.
+
+ The Intel gfx driver seem to tolerate unbound renderbuffers, but
+ enabling debugging in Mesa yields an error:
+
+ $ MESA_DEBUG=1 \
+ MESA_EXTENSION_OVERRIDE=-GL_OES_packed_depth_stencil
+ ./bin/MiniBrowser http://webglsamples.org/aquarium/aquarium.html
+ Mesa: User error: GL_INVALID_OPERATION in glRenderbufferStorage(no renderbuffer bound)
+
+ * platform/graphics/GraphicsContext3D.h:
+ * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
+ (WebCore::GraphicsContext3D::GraphicsContext3D):
+ Ensure separate depth and stencil renderbuffers are created.
+ (WebCore::GraphicsContext3D::~GraphicsContext3D):
+ Ensure separate depth and stencil renderbuffers are released.
+
2017-03-17 Dave Hyatt <hy...@apple.com>
Disable per-region boxes for multicolumn
Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/GraphicsContext3D.h (214768 => 214769)
--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/GraphicsContext3D.h 2017-04-03 11:09:12 UTC (rev 214768)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/GraphicsContext3D.h 2017-04-03 11:11:28 UTC (rev 214769)
@@ -1391,9 +1391,9 @@
GC3Duint m_intermediateTexture;
#endif
- GC3Duint m_depthBuffer;
- GC3Duint m_stencilBuffer;
- GC3Duint m_depthStencilBuffer;
+ GC3Duint m_depthBuffer { 0 };
+ GC3Duint m_stencilBuffer { 0 };
+ GC3Duint m_depthStencilBuffer { 0 };
bool m_layerComposited;
GC3Duint m_internalColorFormat;
Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp (214768 => 214769)
--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp 2017-04-03 11:09:12 UTC (rev 214768)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp 2017-04-03 11:11:28 UTC (rev 214769)
@@ -90,7 +90,6 @@
#if USE(COORDINATED_GRAPHICS_THREADED)
, m_intermediateTexture(0)
#endif
- , m_depthStencilBuffer(0)
, m_layerComposited(false)
, m_multisampleFBO(0)
, m_multisampleDepthStencilBuffer(0)
@@ -138,9 +137,6 @@
::glBindTexture(GL_TEXTURE_2D, 0);
#endif
- m_state.boundFBO = m_fbo;
- if (!m_attrs.antialias && (m_attrs.stencil || m_attrs.depth))
- ::glGenRenderbuffers(1, &m_depthStencilBuffer);
// Create a multisample FBO.
if (m_attrs.antialias) {
@@ -150,6 +146,18 @@
::glGenRenderbuffers(1, &m_multisampleColorBuffer);
if (m_attrs.stencil || m_attrs.depth)
::glGenRenderbuffers(1, &m_multisampleDepthStencilBuffer);
+ } else {
+ // Bind canvas FBO.
+ glBindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_fbo);
+ m_state.boundFBO = m_fbo;
+#if USE(OPENGL_ES_2)
+ if (m_attrs.depth)
+ glGenRenderbuffers(1, &m_depthBuffer);
+ if (m_attrs.stencil)
+ glGenRenderbuffers(1, &m_stencilBuffer);
+#endif
+ if (m_attrs.stencil || m_attrs.depth)
+ glGenRenderbuffers(1, &m_depthStencilBuffer);
}
}
@@ -228,8 +236,15 @@
if (m_attrs.stencil || m_attrs.depth)
::glDeleteRenderbuffers(1, &m_multisampleDepthStencilBuffer);
::glDeleteFramebuffers(1, &m_multisampleFBO);
- } else {
- if (m_attrs.stencil || m_attrs.depth)
+ } else if (m_attrs.stencil || m_attrs.depth) {
+#if USE(OPENGL_ES_2)
+ if (m_depthBuffer)
+ glDeleteRenderbuffers(1, &m_depthBuffer);
+
+ if (m_stencilBuffer)
+ glDeleteRenderbuffers(1, &m_stencilBuffer);
+#endif
+ if (m_depthStencilBuffer)
::glDeleteRenderbuffers(1, &m_depthStencilBuffer);
}
::glDeleteFramebuffers(1, &m_fbo);