gsdx: hidden option disable_hw_gl_draw

OMG, Zone of Ender got a speed boost from 11 fps to 45 fps

Seriously, the goal is to allow benchmarking GSdx without too much overhead of the main renderer draw call

Note: unlike the null renderer, texture/vertex uploading, 2D draw, texture conversions are still done.
This commit is contained in:
Gregory Hainaut 2017-01-11 18:43:45 +01:00
parent 6dabc68c16
commit ced2dd9200
3 changed files with 9 additions and 2 deletions

View File

@ -88,6 +88,8 @@ GSDeviceOGL::GSDeviceOGL()
#endif #endif
m_debug_gl_call = theApp.GetConfigB("debug_opengl"); m_debug_gl_call = theApp.GetConfigB("debug_opengl");
m_disable_hw_gl_draw = theApp.GetConfigB("disable_hw_gl_draw");
} }
GSDeviceOGL::~GSDeviceOGL() GSDeviceOGL::~GSDeviceOGL()
@ -653,7 +655,8 @@ void GSDeviceOGL::DrawPrimitive(int offset, int count)
void GSDeviceOGL::DrawIndexedPrimitive() void GSDeviceOGL::DrawIndexedPrimitive()
{ {
BeforeDraw(); BeforeDraw();
m_va->DrawIndexedPrimitive(); if (!m_disable_hw_gl_draw)
m_va->DrawIndexedPrimitive();
AfterDraw(); AfterDraw();
} }
@ -662,7 +665,8 @@ void GSDeviceOGL::DrawIndexedPrimitive(int offset, int count)
//ASSERT(offset + count <= (int)m_index.count); //ASSERT(offset + count <= (int)m_index.count);
BeforeDraw(); BeforeDraw();
m_va->DrawIndexedPrimitive(offset, count); if (!m_disable_hw_gl_draw)
m_va->DrawIndexedPrimitive(offset, count);
AfterDraw(); AfterDraw();
} }

View File

@ -416,6 +416,8 @@ public:
static bool m_debug_gl_call; static bool m_debug_gl_call;
static FILE* m_debug_gl_file; static FILE* m_debug_gl_file;
bool m_disable_hw_gl_draw;
GSWnd* m_window; GSWnd* m_window;
GLuint m_fbo; // frame buffer container GLuint m_fbo; // frame buffer container

View File

@ -296,6 +296,7 @@ void GSdxApp::Init()
m_default_configuration["CrcHacksExclusions"] = ""; m_default_configuration["CrcHacksExclusions"] = "";
m_default_configuration["debug_glsl_shader"] = "0"; m_default_configuration["debug_glsl_shader"] = "0";
m_default_configuration["debug_opengl"] = "0"; m_default_configuration["debug_opengl"] = "0";
m_default_configuration["disable_hw_gl_draw"] = "0";
m_default_configuration["dump"] = "0"; m_default_configuration["dump"] = "0";
m_default_configuration["extrathreads"] = "2"; m_default_configuration["extrathreads"] = "2";
m_default_configuration["extrathreads_height"] = "4"; m_default_configuration["extrathreads_height"] = "4";