diff --git a/plugins/GSdx/GSDeviceOGL.cpp b/plugins/GSdx/GSDeviceOGL.cpp index 38f8d9d552..190b5fbd58 100644 --- a/plugins/GSdx/GSDeviceOGL.cpp +++ b/plugins/GSdx/GSDeviceOGL.cpp @@ -88,6 +88,8 @@ GSDeviceOGL::GSDeviceOGL() #endif m_debug_gl_call = theApp.GetConfigB("debug_opengl"); + + m_disable_hw_gl_draw = theApp.GetConfigB("disable_hw_gl_draw"); } GSDeviceOGL::~GSDeviceOGL() @@ -653,7 +655,8 @@ void GSDeviceOGL::DrawPrimitive(int offset, int count) void GSDeviceOGL::DrawIndexedPrimitive() { BeforeDraw(); - m_va->DrawIndexedPrimitive(); + if (!m_disable_hw_gl_draw) + m_va->DrawIndexedPrimitive(); AfterDraw(); } @@ -662,7 +665,8 @@ void GSDeviceOGL::DrawIndexedPrimitive(int offset, int count) //ASSERT(offset + count <= (int)m_index.count); BeforeDraw(); - m_va->DrawIndexedPrimitive(offset, count); + if (!m_disable_hw_gl_draw) + m_va->DrawIndexedPrimitive(offset, count); AfterDraw(); } diff --git a/plugins/GSdx/GSDeviceOGL.h b/plugins/GSdx/GSDeviceOGL.h index 53960b8aa0..59899e3076 100644 --- a/plugins/GSdx/GSDeviceOGL.h +++ b/plugins/GSdx/GSDeviceOGL.h @@ -416,6 +416,8 @@ public: static bool m_debug_gl_call; static FILE* m_debug_gl_file; + bool m_disable_hw_gl_draw; + GSWnd* m_window; GLuint m_fbo; // frame buffer container diff --git a/plugins/GSdx/GSdx.cpp b/plugins/GSdx/GSdx.cpp index 67a549a07d..a6e25433b0 100644 --- a/plugins/GSdx/GSdx.cpp +++ b/plugins/GSdx/GSdx.cpp @@ -296,6 +296,7 @@ void GSdxApp::Init() m_default_configuration["CrcHacksExclusions"] = ""; m_default_configuration["debug_glsl_shader"] = "0"; m_default_configuration["debug_opengl"] = "0"; + m_default_configuration["disable_hw_gl_draw"] = "0"; m_default_configuration["dump"] = "0"; m_default_configuration["extrathreads"] = "2"; m_default_configuration["extrathreads_height"] = "4";