summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Render.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2014-12-28 21:46:00 +0100
committerdegasus <wickmarkus@web.de>2014-12-28 22:31:24 +0100
commit1ed41672f50c9cfe7aa4ab5aa3b73f7e41029124 (patch)
tree6080bfa765cb2580bd22bb7805dbca7725c3350a /Source/Core/VideoBackends/OGL/Render.cpp
parent9465a877f8e896463b9f43f94016d89019d1d5d5 (diff)
OGL: disable driver warnings fetch
This did give a decent slowdown on some drivers.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp35
1 files changed, 25 insertions, 10 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index 2def435a11..e4dcca32ff 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -15,6 +15,7 @@
#include "Common/StringUtil.h"
#include "Common/Thread.h"
#include "Common/Timer.h"
+#include "Common/Logging/LogManager.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
@@ -479,6 +480,7 @@ Renderer::Renderer()
g_ogl_config.bSupportSampleShading = GLExtensions::Supports("GL_ARB_sample_shading");
g_ogl_config.bSupportOGL31 = GLExtensions::Version() >= 310;
g_ogl_config.bSupportViewportFloat = GLExtensions::Supports("GL_ARB_viewport_array");
+ g_ogl_config.bSupportsDebug = GLExtensions::Supports("GL_KHR_debug") || GLExtensions::Supports("GL_ARB_debug_output");
if (GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3)
{
@@ -527,17 +529,22 @@ Renderer::Renderer()
g_ogl_config.bSupportsAEP = false;
}
- if (GLExtensions::Supports("GL_KHR_debug"))
+ if (g_ogl_config.bSupportsDebug)
{
- glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, nullptr, true);
- glDebugMessageCallback( ErrorCallback, nullptr );
- glEnable( GL_DEBUG_OUTPUT );
- }
- else if (GLExtensions::Supports("GL_ARB_debug_output"))
- {
- glDebugMessageControlARB(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, nullptr, true);
- glDebugMessageCallbackARB( ErrorCallback, nullptr );
- glEnable( GL_DEBUG_OUTPUT );
+ if (GLExtensions::Supports("GL_KHR_debug"))
+ {
+ glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, nullptr, true);
+ glDebugMessageCallback(ErrorCallback, nullptr);
+ }
+ else
+ {
+ glDebugMessageControlARB(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, nullptr, true);
+ glDebugMessageCallbackARB(ErrorCallback, nullptr);
+ }
+ if (LogManager::GetInstance()->IsEnabled(LogTypes::VIDEO, LogTypes::LERROR))
+ glEnable(GL_DEBUG_OUTPUT);
+ else
+ glDisable(GL_DEBUG_OUTPUT);
}
int samples;
@@ -1416,6 +1423,14 @@ static void DumpFrame(const std::vector<u8>& data, int w, int h)
// This function has the final picture. We adjust the aspect ratio here.
void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const EFBRectangle& rc, float Gamma)
{
+ if (g_ogl_config.bSupportsDebug)
+ {
+ if (LogManager::GetInstance()->IsEnabled(LogTypes::VIDEO, LogTypes::LERROR))
+ glEnable(GL_DEBUG_OUTPUT);
+ else
+ glDisable(GL_DEBUG_OUTPUT);
+ }
+
static int w = 0, h = 0;
if (g_bSkipCurrentFrame || (!XFBWrited && !g_ActiveConfig.RealXFBEnabled()) || !fbWidth || !fbHeight)
{