From 0dc261813a65f85ba10a4c9f5db64d8e3a6816e0 Mon Sep 17 00:00:00 2001 From: Logan McNaughton Date: Tue, 28 Feb 2017 12:11:06 -0700 Subject: [PATCH] Hacky fix for RPi depth issues --- src/Graphics/OpenGLContext/opengl_ContextImpl.cpp | 5 +++++ src/Graphics/OpenGLContext/opengl_GLInfo.cpp | 2 ++ src/Graphics/OpenGLContext/opengl_GLInfo.h | 1 + 3 files changed, 8 insertions(+) diff --git a/src/Graphics/OpenGLContext/opengl_ContextImpl.cpp b/src/Graphics/OpenGLContext/opengl_ContextImpl.cpp index 6606d470..8da95676 100644 --- a/src/Graphics/OpenGLContext/opengl_ContextImpl.cpp +++ b/src/Graphics/OpenGLContext/opengl_ContextImpl.cpp @@ -261,6 +261,11 @@ void ContextImpl::deleteFramebuffer(graphics::ObjectHandle _name) void ContextImpl::bindFramebuffer(graphics::BufferTargetParam _target, graphics::ObjectHandle _name) { + if (m_glInfo.renderer == Renderer::VideoCore) { + CachedDepthMask * depthMask = m_cachedFunctions->getCachedDepthMask(); + depthMask->setDepthMask(true); + glClear(GL_DEPTH_BUFFER_BIT); + } m_cachedFunctions->getCachedBindFramebuffer()->bind(_target, _name); } diff --git a/src/Graphics/OpenGLContext/opengl_GLInfo.cpp b/src/Graphics/OpenGLContext/opengl_GLInfo.cpp index b23272c8..42074956 100644 --- a/src/Graphics/OpenGLContext/opengl_GLInfo.cpp +++ b/src/Graphics/OpenGLContext/opengl_GLInfo.cpp @@ -27,6 +27,8 @@ void GLInfo::init() { const GLubyte * strRenderer = glGetString(GL_RENDERER); if (strstr((const char*)strRenderer, "Adreno") != nullptr) renderer = Renderer::Adreno; + else if (strstr((const char*)strRenderer, "VideoCore IV") != nullptr) + renderer = Renderer::VideoCore; LOG(LOG_VERBOSE, "OpenGL renderer: %s\n", strRenderer); int numericVersion = majorVersion * 10 + minorVersion; diff --git a/src/Graphics/OpenGLContext/opengl_GLInfo.h b/src/Graphics/OpenGLContext/opengl_GLInfo.h index 3110388d..2d7a79d2 100644 --- a/src/Graphics/OpenGLContext/opengl_GLInfo.h +++ b/src/Graphics/OpenGLContext/opengl_GLInfo.h @@ -5,6 +5,7 @@ namespace opengl { enum class Renderer { Adreno, + VideoCore, Other };